»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
00:07 snarkyboojum left 00:08 w_richard_w joined 00:19 MasterDuke joined, MasterDuke left, MasterDuke joined
Xliff New type for Method+{NativeCall::Native[Method,List]}+{NativeCall::NativeCallSymbol[Str]} must have a matching representation (P6opaque vs Uninstantiable) 00:22
WTF?
00:23 rindolf left
Xliff Can track it back to here: /home/cbwood/Projects/p6-GtkSheet/t/.precomp/63E4AAE64C7542EB0B85901B40F60D2087BC5BAA/08/08C89E729EB43D174A13395D8BC408A1A8637630: 00:24
And yet another instance in which it would be Very Good for P6 to be able to do Module -> Hash resolution.
00:40 AlexDaniel left 00:50 dominix__ is now known as dominix 01:03 kurahaupo left 01:05 irco left, zachk left
Xliff m: my @p = <GTK:: GTKSheet>; say "GTK::Roles::CSSProvider" ~~ /^ @p/ 01:12
camelia 「GTK::」
Xliff m: my @p = <GTK:: GTKSheet>; say "GTKSheet" ~~ /^ @p/ 01:13
camelia 「GTKSheet」
Xliff m: my @p = <GTK:: GTKSheet>; say "GTSheet" ~~ /^ @p/
camelia Nil
timotimo Ulti: you still there? 01:24
01:28 kerrhau left 01:36 agentzh joined, agentzh left, agentzh joined 01:38 mahafyi left
timotimo Ulti: we put something into configure.pl because when you have a mix of gnu binutils and xcode you'll get an extremely confusing message a la "this library has been compiled for x86, but you're trying to link it into a 64bit binary" 01:42
El_Che damn, John Oliver's show about Brexit was funny 01:43
02:02 choiboi joined
choiboi p6: say "Hello, World!"; 02:02
camelia Hello, World!
choiboi I have been reading around the docs and I wanted to know why someone would want to use immutable variables instead of mutable ones. Does it offer more speed? 02:03
timotimo it can offer clarity 02:04
are you refering to "my \foo = 1" here?
actually, yeah, a sigil-less variable comes without a Scalar container, so there's one less indirection for accessing 02:06
the run-time optimizer aka spesh can now do better with scalars, but that's mostly in the next release 02:07
choiboi timotimo: Yeah I'm refering to `\bar` variables. Thanks for your answer. Is following the docs a good way to learn Perl6? 02:11
timotimo i think you'll have much more luck with something more tutorial- or book-like 02:13
the docs are really meant to be a reference where you go when you're not sure about something, forgot about something, or want all the details
perl6book.com/ - we have this cool site for Actual Books 02:14
perl6.org/resources/ - this page links to lots of learning stuff
we've just recently found out that putting the "go here to learn stuff" right next to the documentation instead of visibly in front of it will keep most people away from these 02:15
oh, if you like video-learning, there's just recently been like a 1 hour video on youtube by someone who took inspiration from the "learning perl 6" book from brian d foy 02:16
www.youtube.com/watch?v=l0zPwhgWTgM - this one
Xliff Anyone know how to debug this one?
#3 0x00007ffff79f4f37 in MVM_interp_run (tc=tc@entry=0x555555559ca0, initial_invoke=0x7ffff7f04ac0 <Uninstantiable_this_repr>, invoke_data=0x55555659ba60)
at src/core/interp.c:3142
02:16 mowcat left
Xliff I'm particularly worried about "<Uninstantiable_this_repr>" 02:16
02:16 mowcat joined
timotimo that's a repr for things that you're not allowed to instantiate 02:17
Xliff Hrm.
choiboi timotimo: I'm gonna check those out, thanks! (I'm language hopping, I love language hopping)
Xliff timotimo: How can I track that down? 02:18
timotimo have fun! feel free to ask lots of questions in irc
Xliff: actually, the "initial_invoke" parameter to interp_run isn't important
what kind of error are you getting? 02:19
Xliff It's a SEGV
timotimo is that in the deserialize op? 02:20
Xliff Trying to expand what I've done with GtkSheet
MVM_serialization_deserialize
Yeah. Next frame up
Or down... depending on how you look at it.
timotimo can you paste some more of that stack trace?
Xliff paste.fedoraproject.org/paste/iynb...x-EX7CVFww 02:21
timotimo is the address of the tc actually sane? looks funny with all the 5s in it 02:22
have you tried some things like turning off spesh or the jit or inlining? and recompiling moar with --debug=3 --optimize=0 will make debugging easier
Xliff I usually compile with --debug=3 02:24
timotimo the optimize flag is the important one :)
02:25 choiboi left
Xliff MVM_SPESH_DISABLE and MVM_JIT_DISABLE? 02:25
02:25 choiboi joined
timotimo disabling spesh will also disable the jit, so try each in turn 02:25
Xliff Same crash. Recompiling rakudo. 02:27
This will take a sec. 02:29
choiboi timotimo: Can I interpolate 02:34
timotimo: Can I interpolate \vars in ""?
timotimo yep, either {thevar} or $(thevar)
there's more ways, but they get longer and longer :P 02:35
Xliff timotimo: OK. Rakudo recompiled.
choiboi timotimo: ahhh just like Ruby, you can do things more than one way. That's always nice
timotimo yup! the "TIMTOWTDI" principle has been with perl for the longest time
"there is more than one way to do it"
works a little better than python's "there should only be one way and it should be the obvious one" 02:36
El_Che Ruby's is probably TIMTOWTDIAEIAO
"there is more than one way to do it and everything is an object"
timotimo well, in rakudo everything's an object, too
choiboi Woah Perl6 is amazing. Why did I have to learn Python in school? I could have learned things like there is more than one way to do it 02:38
El_Che In Rakudo everything is Mu 02:39
choiboi El_Che: What's Mu?
El_Che damn, Mu and Cool should have changed places
The root of the Perl 6 type hierarchy. 02:40
The Japanese and Korean term mu (Japanese: 無; Korean: 무) or Chinese wu (traditional Chinese: 無; simplified Chinese: 无), meaning "not have; without", is a key word in Buddhism, especially Zen traditions.
choiboi El_Che: oh like wuwei? 02:44
El_Che: (I know what cool is C Object Oriented Library right?)
timotimo almost
it's the Convenient OO Loopbacks" 02:45
choiboi oof
Xliff m: my @p = ('GTK::'); say 'GTK::CSSProvider.BUILD' ~~ /^ @p/ 02:46
camelia 「GTK::」
timotimo everything that derives from Cool implements methods by looping back to a different type that's cool
like "that method? i'm cool with that"
Xliff m: my @p = ('GTK::'); die 'Hunh?' unless 'GTK::CSSProvider.BUILD' ~~ /^ @p/
camelia ( no output )
02:46 molaf left
Xliff m: my @p = ('GTK::'); die 'Hunh?' without 'GTK::CSSProvider.BUILD' ~~ /^ @p/ 02:46
camelia ( no output )
02:48 kkielak left
choiboi timotimo: That's so cool 02:48
timotimo m: say Whatever but Cool
camelia Cannot mix in non-composable type Cool into object of type Whatever
in block <unit> at <tmp> line 1
timotimo that used to work, haha
we're now more strict about that 02:49
choiboi timotimo: reimplement it xD
timotimo nah, it's good for performance
choiboi timotimo: Who needs performance? What is this, C? jk jk 02:50
timotimo would be nice to outperform python and perl5 for most things 02:51
currently we outperform them for some things
choiboi timotimo: Isn't Perl5 ancient? I'm surprised that Perl6 isn't faster, especially since I read that a lot of unnecassary stuff was dropped from backwards compatibility. 02:52
timotimo no perl5 is continuously being developed 02:53
Xliff Ancient == Well Tested
timotimo that, too
perl5 has had a loooot of time for performance optimization and tuning
the regex engine in particular is something we lag far behind in terms of performance
but the syntax and features usually make up for it
and you can always use Inline::Python, Inline::Perl5 or Inline::C or NativeCall in those cases 02:54
Xliff 'GTK::CSSProvider.BUILD'.starts-with('GTK::').say
evalable6 True
Xliff ^ Is there any way to turn that into a junction?
choiboi timotimo: Perl6 has inline python and inline c??? oh my gosh this is so cool
timotimo yup
Xliff 'GTK::CSSProvider.BUILD'.starts-with('A::' | 'B::' | 'C::' | 'GTK::').say
evalable6 any(False, False, False, True)
timotimo Xliff: not sure how you'd want a junction there
yeah, that works 02:55
Xliff my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); 'GTK::CSSProvider.BUILD'.starts-with(@p.any).say
evalable6 any(any(False, False, False, True))
Xliff my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); 'GTK::CSSProvider.BUILD'.starts-with(@p.any).so
m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); 'GTK::CSSProvider.BUILD'.starts-with(@p.any).so
camelia ( no output )
timotimo you have a junction in @p already there
Xliff m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); 'GTK::CSSProvider.BUILD'.starts-with(@p.any).so.say
camelia True
02:55 w17t left
Xliff OK. 02:55
timotimo m: my @p = 'a::' | 'b::' | 'c::' | 'gtk::'; say @p.perl 02:56
camelia [any("a::", "b::", "c::", "gtk::")]
Xliff Would that be a better way to write it?
The thing is... @p can change during runtime. 02:57
timotimo just make @p a regular array of strings and use @p.any
Xliff Just did. :)
timotimo good good
02:59 molaf joined
Xliff How slow are junctions compared to: 'my $t = False; for (@p) { last if ($t = $s.starts-with($_)) }; die "Bad" unless $t' 02:59
timotimo junctions aren't very fast :) 03:00
Xliff OK. So we rewrite again! ;) 03:01
m: die "WTF" unless True 03:03
camelia ( no output )
MasterDuke benchable6: HEAD compare my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $a; $a = 'GTK::CSSProvider.BUILD'.starts-with(@p.any).so for ^10_000 ||| my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if ($t = $s.starts-with($_)) } };
benchable6 MasterDuke, starting to benchmark the 1 given commit
MasterDuke, No new data found
timotimo huh, what's wrong with the head commit? 03:04
MasterDuke benchable6: HEAD compare my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $a; $a = 'GTK::CSSProvider.BUILD'.starts-with(@p.any).so for ^10_000 ||| my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if $t = "GTK::CSSProvider.BUILD".starts-with($_) } }; 03:05
benchable6 MasterDuke, starting to benchmark the 1 given commit
MasterDuke, No new data found
MasterDuke timotimo: the "No new data found"?
Xliff m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $a; $a = 'GTK::CSSProvider.BUILD'.starts-with(@p.any).so for ^10_000; say now - INIT now
camelia 0.47781275
timotimo yeah
committable6: HEAD say "hi" 03:06
committable6 timotimo, ¦HEAD(5b62bb1): «hi␤»
Xliff m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if ($t = $s.starts-with($_)) } }; say now - INIT now;
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$s' is not declared
at <tmp>:1
------> 3 for ^10_000 { for (@p) { last if ($t = 7⏏5$s.starts-with($_)) } }; say now - INIT
MasterDuke that's just a bug in benchable6's output, there isn't actually a problem
Xliff m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if ($t = 'GTK::CssProvider.BUILD'.starts-with($_)) } }; say now - INIT now;
camelia 0.43574032
Xliff Oooh! Not bad.
.0.04 seconds
MasterDuke my @p = ('A::', 'B::', 'C::', 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if ($t = 'GTK::CssProvider.BUILD'.starts-with($_)) } }; say now - INIT now; 03:08
evalable6 0.0280982
kybr maybe dumb question. why doesn't "a b c".split get me (a b c)? with no args, i would expect behaviour like .split(/\s+/). 03:09
MasterDuke benchable6: compare HEAD my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $a; $a = 'GTK::CSSProvider.BUILD'.starts-with(@p.any).so for ^10_000 ||| my @p = ('A::', 'B::', 'C::', 'GTK::'); my $t = False; for ^10_000 { for @p { last if $t = "GTK::CSSProvider.BUILD".starts-with($_) } };
benchable6 MasterDuke, starting to benchmark the 1 given commit
MasterDuke, gist.github.com/e50ba1bf0b67e02655...4440a19842
timotimo kybr: that's .words :) 03:10
kybr yay!
so, th
it's there to teach me to find .words, cool
timotimo haha
Xliff MasterDuke: Why such wildly different numbers?
timotimo server's busy with other stuff making the measurements unreliable perhaps? 03:11
Xliff m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if $t = 'GTK::CssProvider.BUILD'.starts-with($_) } }; say now - INIT now;
camelia 0.3752258
Xliff m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if $t = 'GTK::CssProvider.BUILD'.starts-with($_) } }; say now - INIT now;
camelia 0.3713326
Xliff m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { for (@p) { last if $t = 'GTK::CssProvider.BUILD'.starts-with($_) } }; say now - INIT now;
camelia 0.357421
MasterDuke because junctions are slower. and camelia is running on a different server than benchable6
timotimo m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { $t = so @p.first("GTK::CSSProvider.BUILD".starts-with: $_) } say now - INIT now; 03:13
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3K::CSSProvider.BUILD".starts-with: $_) }7⏏5 say now - INIT now;
timotimo m: my @p = ('A::' | 'B::' | 'C::' | 'GTK::'); my $t = False; for ^10_000 { $t = so @p.first("GTK::CSSProvider.BUILD".starts-with: $_) }; say now - INIT now;
camelia 0.397291
Xliff m: role A { has @!a = ('A'); }; class AA does A { submethod BUILD { self.a; }; }; AA.new
MasterDuke timotimo, Xliff: your @p is still a junction
camelia No such method 'a' for invocant of type 'AA'
in submethod BUILD at <tmp> line 1
in block <unit> at <tmp> line 1
timotimo haha whoops
c: HEAD my @p = ('A::', 'B::', 'C::', 'GTK::'); my $t = False; for ^10_000 { $t = so @p.first("GTK::CSSProvider.BUILD".starts-with: $_) }; say now - INIT now; 03:14
committable6 timotimo, ¦HEAD(5b62bb1): «0.36790072␤»
timotimo c: HEAD my @p = ('A::', 'B::', 'C::', 'GTK::'); my $t = False; for ^10_000 { $t = so @p.first("GTK::CSSProvider.BUILD".starts-with: $_) }; say now - INIT now;
committable6 timotimo, ¦HEAD(5b62bb1): «0.3716581␤»
timotimo ho-hum
Xliff m: role A { has @!a = ('A'); }; class AA does A { submethod BUILD { self.a.say; }; }; AA.new
camelia No such method 'a' for invocant of type 'AA'
in submethod BUILD at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: role A { has @!a = ('A'); method a { say @!a }; }; class AA does A { submethod BUILD { self.a.say; }; }; AA.new
camelia []
True
Xliff ^^ ???
Lemme guess. Can't initialize attributes in a role? This was working before I recompiled. 03:15
timotimo having a BUILD will make defaults and such no longer work
at least i think that's what it is
Xliff Well... that's what I'm running into, now. Not the crash, but this new thing.
03:16 mowcat left
timotimo m: role A { has @!a = ('A'); method a { say @!a }; }; class AA does A { submethod TWEAK { self.a.say; }; }; AA.new 03:16
camelia [A]
True
Xliff m: role A { has @!a = ('A'); method a { say @!a }; }; class AA does A { }; AA.new 03:17
camelia ( no output )
Xliff m: role A { has @!a = ('A'); method a { say @!a }; }; class AA does A { }; AA.new.a
camelia [A]
Xliff So roles can't provide a reasonable default, anymore?
timotimo i'm sorry, what? 03:18
that's just a custom BUILD overriding the default stuff
also the reason why TWEAK was invented 03:19
Xliff can roles implement TWEAK?
timotimo yes, but applying a role to a class will copy everything in, so a class' TWEAK would be overwritten
i think someone's working on a patch to make all submethod BUILD or TWEAK be called 03:20
03:29 w_richard_w left
kybr i think i want to 1) extend the Perl6 grammar in a few minor ways, then 2) run the REPL with these change. what should i look at? is there an example of that somewhere? 03:38
timotimo sounds like you want a slang 03:39
there's a few slangs already up on modules.perl6.org
you should be able to either use the slang from the repl, or at least start the repl with -MTheSlang
Xliff MasterDuke / timotimo: github.com/Xliff/p6-GTKSheet 03:41
MasterDuke cool 03:42
Xliff Do roles have an init method? 03:43
Or is that up to the composing type? 03:44
m: my @a = <a b c>; .say for 'A', @a; 03:45
camelia A
[a b c]
Xliff m: my @a = <a b c>; .say for 'A', |@a; 03:46
camelia A
a
b
c
timotimo it's currently up to the composing type 03:48
04:25 ferreira joined 04:26 ferreira1 left 04:30 ferreira1 joined, ferreira left 04:35 ferreira1 left 05:05 w17t joined 05:07 molaf left, sno left 05:23 zacts joined 05:41 hkdtam joined 05:51 curan joined 05:54 jmerelo joined
Geth ecosystem: 876fe01e78 | (Michael T. Wolfinger)++ (committed using GitHub Web editor) | META.list
Add Bio::ViennaNGS
05:56
ecosystem: 6e069a88e3 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | META.list
Merge pull request #428 from mtw/patch-1

Add Bio::ViennaNGS
jmerelo releasable6: status 06:00
releasable6 jmerelo, Next release will happen when it's ready. 5 blockers. 175 out of 311 commits logged (⚠ 1 warnings)
jmerelo, Details: gist.github.com/a7b33367fa5d338ccf...3c8bf86a33
hkdtam p6: say "test" 06:07
camelia test
hkdtam p6: my @tmp1 = (2,3); my @tmp2 = (5,6); my @LIST; for ^4 -> \j { @tmp2[0] = rand; @LIST[j] = flat @tmp1, @tmp2, j } ; say @LIST; for ^4 -> \j { say @tmp2[0] = rand; } 06:08
camelia [(2 3 0.6656873832204571 6 0) (2 3 0.6656873832204571 6 1) (2 3 0.6656873832204571 6 2) (2 3 0.6656873832204571 6 3)]
0.9875624674225565
0.715286121908144
0.38004383073687487
0.44438911168658923
hkdtam sorry for bothering, i wonder why in the first loop the rand @tmp2[0] remain the same ? thx in advance.
jmerelo hkdtam: I think it's because @tmp2 is a list, and thus immutable 06:11
m: my @tmp = [1,2]; @tmp[0]=3; @tmp.say 06:13
camelia [3 2]
jmerelo m: my @tmp = (1,2); @tmp[0]=3; @tmp.say
camelia [3 2]
jmerelo No, it's not that... 06:14
06:15 sauvin joined
jmerelo hkdtam: in the code above, you are only writing the result of the last iteration when you print @LIST; tha is, it's the same as if you write flat @tmp1, @tmp2, 4. 06:15
hkdtam: the second loop just prints the result of the random number generation 06:17
Ah, OK, scratch that.
@LIST[j] contains a list, and in that list you're only assigning a value to the third element, which is the one that changes, besides the last one. 06:18
hkdtam: now I see what you mean. The result of the rand is alway sthe same. Right. 06:19
m: my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; } say @tmp2
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3(1,2); for ^4 -> \j { @tmp2[0] = rand; }7⏏5 say @tmp2
jmerelo m: my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; }; say @tmp2 06:20
camelia [0.33248703132673585 2]
jmerelo m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; @results.push: @tmp2 }; say @results
camelia [[0.7745583856154056 2] [0.7745583856154056 2] [0.7745583856154056 2] [0.7745583856154056 2]]
jmerelo hkdtam: the result is not itemized until it's printed with "say". When you do that assignment, you are actually assigning the container to a function; that function will only be called when say is invoked 06:22
m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] := rand; @results.push: @tmp2 }; say @results
camelia [[0.6521014370969498 2] [0.6521014370969498 2] [0.6521014370969498 2] [0.6521014370969498 2]]
jmerelo m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = +rand; @results.push: @tmp2 }; say @results 06:24
camelia [[0.2056152893160691 2] [0.2056152893160691 2] [0.2056152893160691 2] [0.2056152893160691 2]]
jmerelo hkdtam: see docs.perl6.org/language/traps#Cont..._a_capture 06:25
m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand.item; @results.push: @tmp2 }; say @results
camelia [[0.6968494569424182 2] [0.6968494569424182 2] [0.6968494569424182 2] [0.6968494569424182 2]]
jmerelo m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; @results.push: @tmp2.item }; say @results
camelia [[0.5414524115922716 2] [0.5414524115922716 2] [0.5414524115922716 2] [0.5414524115922716 2]]
jmerelo Really
m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; @results.push: @tmp2.map( .item ) }; say @results 06:26
camelia Cannot resolve caller map(Array:D: Any:U); none of these signatures match:
($: Hash \h, *%_)
(\SELF: &block;; :$label, :$item, *%_)
in block <unit> at <tmp> line 1
jmerelo m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; @results.push: @tmp2.map: .item }; say @results
camelia Cannot resolve caller map(Array:D: Any:U); none of these signatures match:
($: Hash \h, *%_)
(\SELF: &block;; :$label, :$item, *%_)
in block <unit> at <tmp> line 1
jmerelo m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; @results.push: @tmp2.map: *.item }; say @results
camelia [(0.8396110202543787 2) (0.8396110202543787 2) (0.8396110202543787 2) (0.8396110202543787 2)]
jmerelo m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; @results.push: (@tmp2[0].item, @tmp2[1]) }; say @results 06:27
camelia [(0.7153743994110374 2) (0.7153743994110374 2) (0.7153743994110374 2) (0.7153743994110374 2)]
jmerelo m: my @results; my @tmp2=(1,2); for ^4 -> \j { @tmp2[0] = rand; say @tmp2; @results.push: @tmp2 }; say @results 06:28
camelia [0.3566023730683954 2]
[0.1302139115723132 2]
[0.6624795923696042 2]
[0.6985133821404953 2]
[[0.6985133821404953 2] [0.6985133821404953 2] [0.6985133821404953 2] [0.6985133821404953 2]]
hkdtam jmerelo: thank you very much for the help, i reduced/reproduced this from a case where all values from @LIST[i] = @tmp where @tmp were different but every items on @LIST had the same value 06:30
jmerelo hkdtam: I wish I could have nailed it from the beginning, but I'm still kind of sleepy. Sorry. 06:31
hkdtam jmerelo: thank you very much indeed, good night
06:45 zacts left
Xliff m: my $mls = "One\nTwo\nThree"; .say for $mls.lines.map( *.lc ) 06:49
camelia one
two
three
Xliff m: my $mls = "One\nTwo\nThree"; .say for $mls.lines.map({ $_ .= chomp; .lc }) 06:50
camelia Cannot modify an immutable Str (One)
in block <unit> at <tmp> line 1
Xliff m: my $mls = "One\nTwo\nThree"; .say for $mls.lines.map({ .chomp; .lc })
camelia one
two
three
Geth doc/master: 4 commits pushed by (JJ Merelo)++ 06:51
06:59 jeromelanteri joined 07:04 dominix_ joined 07:05 w17t left 07:07 dominix left
Xliff \o/ 07:32
gist.github.com/Xliff/395ac11d29c3...ed552bde6d 07:34
See second screenie!
And with that... I nap!
jmerelo Gnight Xliff
Xliff: that's pretty cool! 07:35
07:36 jmerelo left
Xliff :) 07:36
jmerelo
github.com/Xliff/p6-GTKSheet/blob/...gtksheet.t 07:37
07:38 jeromelanteri left 07:52 yoleaux joined, ChanServ sets mode: +v yoleaux 08:14 hkdtam left 08:15 hc1^ joined 09:07 dakkar joined 09:08 rindolf joined 09:38 w17t joined 09:46 eseyman left 09:48 ravenousmoose_ left 09:49 ravenousmoose_ joined 09:55 gregf_ joined 09:58 eseyman joined 10:18 dominix_ left 10:26 dominix_ joined 10:38 gregf_ left 10:40 gregf_ joined 10:48 eseyman left 10:52 ravenousmoose_ left, ravenousmoose_ joined 10:59 ravenousmoose_ left, ravenousmoose_ joined 11:04 ravenousmoose_ left 11:06 gregf_ left 11:08 gregf_ joined 11:19 mowcat joined 11:49 choiboi-mobile joined
lizmat snores 11:58
11:59 choiboi-mobile left 12:05 choi-mobile joined
choi-mobile hey guys! 12:05
lizmat choi-mobile o/ 12:07
choi-mobile liznat: \o 12:08
lizmat choi-nobile /o
choi-mobile lizmat: 0\ 12:10
lizmat :-)
choi-mobile 😊 12:12
is there an emoji library for Perl6?
lizmat choi-mobile: what would you expect that to do ? 12:13
12:15 choi-mobile2 joined
choi-mobile2 lizmat: to be able to replace text like :smile: :stuck_out_tongue: with the corresponding emoji 12:16
12:17 choi-mobile left 12:21 choi-mobile2 left
lizmat m: say "\c[FACE WITH STUCK-OUT TONGUE]" 12:21
camelia 😛
12:21 choi-mobile joined
lizmat m: say "\c[FACE WITH STUCK-OUT TONGUE]" 12:22
camelia 😛
lizmat choi-mobile: ^^ I don't think you need a library per se ?
choi-mobile lizmat: nope :(
lizmat m: say "FACE WITH STUCK-OUT TONGUE, BUTTERFLY".uniparse # this perhaps ? 12:24
camelia 😛🦋
lizmat choi-mobile: I'm not sure what you want to achieve
choi-mobile I just thought implementing emoji would be something cool I could do to add to the Perl6 project but I guess its already been done. 12:25
lizmat well, maybe the interface could be improved ? 12:26
the current interface is rather rigid, and does not allow for any errors
choi-mobile oh yeah, like a more lazy evaluation of emoji code?
lizmat m: say "FACE WITH STUCKOUT TONGUE, BUTTERFLY".uniparse # not very helpful
camelia Unrecognized character name [FACE WITH STUCKOUT TONGUE]
in block <unit> at <tmp> line 1
timotimo i wonder where most people look to for what to call these short emojis
yoleaux 19 Feb 2019 05:36Z <jmerelo> timotimo: *.perl6.org seems to be down
timotimo like, the unicode consortium doesn't define that :stuck_out_tongue: should be FACE WITH STUCK-OUT TONGUE 12:27
choi-mobile yeah I will definitely work on this (I want it to be similar to emoji.cr) 12:28
lizmat looks 12:29
choi-mobile: you mean like github.com/veelenga/emoji.cr ? 12:30
choi-mobile lizmat: yes
lizmat ++choi-mobile
12:32 ravenousmoose_ joined
choi-mobile what does the ++ do? 12:32
moritz karma/recognition/praise 12:35
yoleaux 19 Feb 2019 05:35Z <jmerelo> moritz: perl6.org seems to be down
moritz and typically applied as a prefix for things planned, and as a postfix for things done 12:36
choi-mobile mortiz: oh thanks
lizmat: thanks
guifa Also, lizmat, the current implementation won’t handle for non-English languages, although there is data for it 12:37
lizmat guifa: link ?
afk& 12:39
guifa lizmat: for example www.unicode.org/cldr/charts/34/ann...manic.html 12:40
The XML data is contained in the common/annotation/$langcode.xml file in this file unicode.org/Public/cldr/34/cldr-common-34.0.zip 12:41
oh and also in common/annotationsDerived/$langcode.xml 12:44
12:45 choi-mobile left 12:46 choi-mobile joined
guifa just thought for libraries that access this data, this would make a fairly nice use casefor a BEGIN phaser (maybe with an INIT that runs the same once every so often). You’d always have the most up to date data even if the library author doesn’t update 12:47
choi-mobile p6: say "FACE WITH SMILE".uniparse 13:03
camelia Unrecognized character name [FACE WITH SMILE]
in block <unit> at <tmp> line 1
choi-mobile p6: say "SMILE".uniparse
camelia
13:03 choi-mobile left 13:12 AlexDaniel joined 13:24 sena_kun joined 13:29 mahafyi joined
Geth doc: 3099e5c02b | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/packages.pod6
expand with more paractical examples
13:39
synopsebot Link: doc.perl6.org/language/packages
13:39 w17t left
tbrowder can a doc link be put in a =head2 element? 13:43
sena_kun I don't think so. 13:45
at least, they are already automatically navigating to specific places. 13:46
13:59 choi-mobile joined
choi-mobile is the evalbot open source and if so where is its code? 13:59
jnthn choi-mobile: github.com/perl6/evalbot I believe 14:00
14:01 rindolf left
choi-mobile jnthn: thanks 14:02
AlexDaniel choi-mobile: yeah, that's the right link, but what are you looking for specifically? There's also whateverable that offers similar functionality: github.com/perl6/whateverable 14:04
timotimo camelia: source 14:11
14:11 choi-mobile left
timotimo camelia: help 14:11
camelia timotimo: Usage: <(star-m|nqp-jvm|nqp-moarvm|debug-cat|p5-to-p6|nqp-js|rakudo-moar|rakudo-jvm|prof-m|perl6|rm|master|r-jvm|nqp|sm|p56|nqp-q|r|nqp-m|star|rakudo|r-m|rj|nqp-mvm|j|p6|m|r-j)(?^::\s(?!OUTPUT)) $perl6_program>
14:13 lucasb joined
choiboi AlexDaniel: I just wanted to see how it works. I was thinking of writing a IRC bot that can get emoji for users. 14:23
AlexDaniel unicodable6: emoji 14:24
unicodable6 AlexDaniel, U+1F3FB EMOJI MODIFIER FITZPATRICK TYPE-1-2 [Sk] (🏻)
AlexDaniel, U+1F3FC EMOJI MODIFIER FITZPATRICK TYPE-3 [Sk] (🏼)
AlexDaniel, 5 characters in total (🏻🏼🏽🏾🏿): gist.github.com/f8aa48d67f765b89d0...a650dc319b
AlexDaniel unicodable6: tears of joy
unicodable6 AlexDaniel, U+1F602 FACE WITH TEARS OF JOY [So] (😂)
AlexDaniel, U+1F639 CAT FACE WITH TEARS OF JOY [So] (😹)
AlexDaniel choiboi: like this?
unicodable6: pile of
unicodable6 AlexDaniel, U+1F4A9 PILE OF POO [So] (💩)
AlexDaniel hmm where's the sad one
“the frowning pile of poo emoji was removed from the list of emoji candidates” oh noes :( 14:25
choiboi choiboi: Something that /msg [usr] the actual emoji
AlexDaniel choiboi: evalbot is written in perl5, whateverable is in perl 6 14:26
choiboi AlexDaniel: I'll checkout whateverable
AlexDaniel choiboi: perhaps you should consider using IRC::Client directly, whateverable is a bit too heavy for your purposes. See github.com/perl6-community-modules...t#synopsis 14:27