»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
dpk p6: say 'xß' ~~ rx:i/XSS|YS/ 00:01
camelia Nil
dpk p6: say 'xss' ~~ rx:i/XSS|YS/ 00:02
camelia 「xss」
dpk p6: say 'xß' ~~ rx:i/Xß|YS/
camelia 「xß」
dpk p6: say 'xss' ~~ rx:i/Xß|YS/
camelia Nil
dpk ⬑ this seems like a bug
00:03 gregf_ left
dpk though beware there is also the more complicated case (from an implementation perspective) of rx:i/[XS|Y]S/ 00:03
none of the regexp engines i've tried has got that one right, and only Ruby (oniguruma) has got the previous examples right too 00:04
00:05 ryn1x left
dpk (i've tried re2, pcre, perl 5, and egrep) 00:05
00:15 mson left 00:21 lookatme joined
lookatme o/ 00:21
tyil \o 00:23
00:25 Khisanth left 00:30 kaare_ left, kaare_ joined 00:32 ryn1x joined 00:33 MasterDuke joined 00:35 silug left 00:36 mudman left 00:38 Cabanossi left, Khisanth joined 00:40 Cabanossi joined
dpk okay, even ICU's regexp engine does not bother to try to match (?i:(XS|Y)S) against xß 'correctly' 00:41
so i think that case can safely be ignored
00:45 eliasr left 00:51 aborazmeh joined, aborazmeh left, aborazmeh joined 00:53 sena_kun left 00:55 char_var[buffer] left, char_var[buffer] joined 00:57 silug joined
lookatme I am curious if I collect the everything(include lib, precomp) moar needed, is it possible run it in another pc. 00:58
01:00 silug left 01:04 silug joined, markong left
ryn1x When uploading to CPAN on PAUSE do I need to put Perl6 in the 'Target Directory' field? 01:17
01:19 cdg joined, dayangkun joined 01:23 cdg left 01:33 mudman joined 01:37 Cabanossi left 01:40 Cabanossi joined 01:42 b2gills left 01:45 pilne left 01:50 b2gills joined 01:55 cdg joined
ZzZombo m: say "\n" ~~ /<ws>/ 01:58
camelia

ws => 「
01:59 cdg left 02:00 lizmat joined
ZzZombo Eh, why does the regex doc page omit info for `<ww>` despite using the negated form in 4 places towards the end of it? 02:03
What does exactly it do?
buggable New CPAN upload: Terminal-Spinners-0.0.3.tar.gz by RYNIX cpan.metacpan.org/authors/id/R/RY/...0.3.tar.gz
geekosaur ZzZombo, it's in there. look for 'Predefined subrules:' 02:05
geekosaur notes a typo, reading on therefrom... 02:06
ZzZombo Why is it written with the '?'?? It makes no sense, and made Ctrl+F to fail. 02:08
Also, shouldn't the dot be used to suppress capture?
geekosaur that is explained in the description 02:10
*any* symbol character prevents capture; '?' is used because it implies 'this is an assertion that matches a *state*, as opposed to something that actually matches one or more characters' 02:11
lookatme m: say "123" ~~ /<.ww>/; say "123" ~~ /<?ww>/; say "123" ~~ /<ww>/; 02:12
camelia 「」
「」
「」
ww => 「」
geekosaur whereas <.ww> would suggest that <ww> matches some character or characters
lookatme What's the difference `.` and `?`
geekosaur in this case they;re the same from a perl 6 standpoint, it's consistency for the reader that matteers
ok, what I said above was mumblenonsense
lemme see if I can figure out a different way to say it
perl 6 actually does not care what symbol you use to say 'this is non-capturing'. (in some specific circumstances using ! has meaning.) 02:13
lookatme I found ` <alpha> # match a letter and capture to $alpha (eventually $<alpha>) 02:14
<.alpha> # match a letter, don't capture
<?alpha> # match null before a letter, don't capture` in design doc
geekosaur from a *human* standpoint, using '.' is intended to say 'this matches some text, and would give it to us but we told it not to'
from a *human* standpoint, using '?' means 'this matches a particular state instead of a particular set of characters'
so like <?before foo> means "match the state of being just before 'foo'", as opposed to "match 'foo'" 02:15
02:17 mudman left
geekosaur <ww> is an assertion that you are between word characters. it doesn't match and wouldn't capture any actual characters; it is a state. as such, it doesn't make much sense normally to use it in default capturing mode, since the capture would aways be empty 02:17
02:18 kitsunenokenja joined
geekosaur *but* in some contexts (like building regexes programmatically) it is useful for all such things to behave consistently, so you don't need to have special cases "this <xxx> captures, but this <xxy> doesn't" 02:18
so all rules behave the same way: they add *something* to the list of captuires, unless they start with a symbol in which case they do not. 02:19
so, if you say <ww> in a regex, if it matches it doesn't match *haracters*, but it still records an empty capture for consistency 02:20
lookatme m: say "fp" ~~ /<alpha><alpha>/; say "fp" ~~ /<.alpha><alpha>/; say "fp" ~~ /<?alpha><alpha>/; # this make sense
camelia 「fp」
alpha => 「f」
alpha => 「p」
「fp」
alpha => 「p」
「f」
alpha => 「f」
geekosaur and . and ? don't actually mean anything different. but for human readers . implies it would capture characters but ? implies it's about a certain condition being true instead of about what character(s) it would match 02:21
it's just convention
02:21 khw left
lookatme Hmm 02:21
ZzZombo But the question what exactly constitutes "within word" still stands. 02:25
geekosaur that's defined a little before that in \w 02:28
"matches a single word character; i.e., a letter (Unicode category L), a digit or an underscore."
02:29 espadrine left
geekosaur so <?ww> matches between two things that match \w, and <?wb> matches between two things where one matches \w and the other matches \W 02:29
lookatme m: say "123abc" ~~ /\d+<?ww>\w+/ 02:30
camelia 「123abc」
02:30 mudman joined
ZzZombo thanks 02:31
lookatme m: say "123 abc" ~~ /<?wb>\w+/
camelia 「123」
geekosaur huh, maybe it's smarter than p5's, that would be nice. (one thing that always annoyed me about the p5 version was I had to separately handle the "start/end of line" case( 02:32
ok, filed doc bug :) 02:33
02:33 khw joined
geekosaur (unrelated, I just noticed it while ooking at the doc) 02:33
that said, the doc wshould probably be clearer about what those chars mean if it's not already stated somewhere 02:34
the speculation was clear about it
02:39 stmuk_ joined 02:41 stmuk left 02:45 ilbot3 left 02:55 kitsunenokenja left, ilbot3 joined, ChanServ sets mode: +v ilbot3 03:02 noganex joined 03:05 noganex_ left 03:08 dmaestro joined
dmaestro m: use Inline::Perl5 03:09
camelia ( no output )
03:10 ufobat_ joined
dmaestro m: use Inline::Perl5 ; my $a = EVAL "[ 1, 2 ]", :lang<Perl5>; say $a.elems 03:10
camelia 2
dmaestro m: use Inline::Perl5 ; my $a = EVAL "[ ]", :lang<Perl5>; say $a.elems 03:11
camelia 0
03:11 konsolebox left, entonian joined 03:12 konsolebox joined
dmaestro Interesting, I don't get the above result (0 elements for an empty Inline::Perl5::Array) on my Mac running Rakudo Star 2017.10 03:13
03:13 entonian left, ufobat___ left
dmaestro > my $a = EVAL "[]", :lang<Perl5> ; say $a.elems 03:14
4294967296
Inline::Perl5:ver<0.29>:auth<github:niner> 03:19
geekosaur looks like a fixed bug to me
dmaestro How recently? version? 03:20
Is there a way to ask camelia what version of a module is loaded? 03:24
geekosaur I think there is b ut it's not easy and I'm not sure of details. means messing with CompUnitRepos 03:28
dmaestro ok, thanks. I haven't found a reference to that bug in Inline::Perl5 - could it have been a rakudo bug on Mac? 03:30
03:31 BenGoldberg joined
geekosaur also possible, yes 03:34
it could even be a perl 5 bug
(or worse, not a bug but somehow a mismatch because perl 5 got replaced/upgraded/it's running the wrong one) 03:35
03:50 konsolebox left 03:53 Cabanossi left
dmaestro Well, turns out an attempted re-install of Inline::Perl5 failed because of too-new version of Module::Runtime - I had the latest version in my local::lib. 03:53
I removed the local::lib version so it would fall back on the system installed module. Inline::Perl5 reinstalled OK and the bug disappeared. 03:54
03:55 troys_ is now known as troys, Cabanossi joined 03:56 konsolebox joined, dmaestro left
geekosaur there you go then. probably mismatched versioning, then; different perl 5 releases have subtly different internals and macros like (iirc) PvAV will not necessarily work right against a different perl library 03:57
03:59 noganex_ joined 04:02 dmaestro joined
dmaestro I removed the local::lib version so it would fall back on the system installed module. Inline::Perl5 reinstalled OK and the bug disappeared. 04:02
Nope, only seemed to disappear - the correct result is given the first time I run it! Subsequent attempts fail. 04:03
04:03 noganex left
geekosaur wow. that sounds like a precomp issue 04:03
.tell nine colabti.org/irclogger/irclogger_log...11-24#l119 possible precomp bug? (cf colabti.org/irclogger/irclogger_log...1-24#l156) 04:04
yoleaux geekosaur: I'll pass your message to nine.
dmaestro m: use Inline::Perl5; my $a = EVAL "[]", :lang<Perl5>; $b = EVAL "[]", :lang<Perl5>; say [ $a.elems, $b.elems ] 04:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$b' is not declared
at <tmp>:1
------> 3Perl5; my $a = EVAL "[]", :lang<Perl5>; 7⏏5$b = EVAL "[]", :lang<Perl5>; say [ $a.e
dmaestro m: use Inline::Perl5; my $a = EVAL "[]", :lang<Perl5>; my $b = EVAL "[]", :lang<Perl5>; say [ $a.elems, $b.elems ]
camelia [0 0]
dmaestro doug$ perl6 -e 'use Inline::Perl5; my $a = EVAL "[]", :lang<Perl5>; my $b = EVAL "[]", :lang<Perl5>; say [ $a.elems, $b.elems ]' --> [0 4294967296] 04:07
geekosaur hm, that's not even precomp, it's just weird. 04:13
well, left message for nine, maybe they can decipher it
04:18 konsolebox left 04:19 konsolebox joined
dmaestro Posted details in github.com/niner/Inline-Perl5/issues/106 04:22
04:22 Cabanossi left 04:24 Cabanossi joined 04:25 dmaestro left 04:28 konsolebox left 04:34 konsolebox joined, mudman left
ZzZombo m: say 'asd' ~~ /(.*)/ 04:35
camelia 「asd」
0 => 「asd」
ZzZombo m: say 'asd' ~~ /(.)*/
camelia 「asd」
0 => 「a」
0 => 「s」
0 => 「d」
04:43 ivans left 04:44 kshannon joined 04:47 konsolebox left 04:49 ivans joined 04:53 konsolebox joined 05:06 Cabanossi left 05:09 Cabanossi joined 05:10 kaare_ left, kaare_ joined 05:15 konsolebox left 05:16 konsolebox joined 05:23 ragnor4k joined 05:24 ragnor4k left 05:29 aborazmeh left 05:31 konsolebox left 05:32 konsolebox joined 05:36 Cabanossi left 05:39 Cabanossi joined 05:51 khw left 06:08 Cabanossi left 06:09 Cabanossi joined 06:19 konsolebox left, wamba joined 06:20 konsolebox joined 06:22 s0me0ne-unkn0wn joined 06:25 s0me0n3-unkn0wn left
ZzZombo Why does this keep on matching indefinitely: 06:29
token string { \h* [<header> || <key-value>]? <comment>? \h* [\n || $] }
on the last line of my file, which is empty.
m: say '' ~~ /$/ 06:31
camelia 「」
ZzZombo m: my token a { \h* [\n || $] };say '' ~~ &a 06:42
camelia 「」
ZzZombo what
06:44 mojca joined, mojca left, mojca joined 06:49 mojca left
Geth doc: 523f616499 | (Alex Chen)++ (committed using GitHub Web editor) | doc/Language/regexes.pod6
Fix typo, geekosaur ++

close #1683
06:51
synopsebot Link: doc.perl6.org/language/regexes
06:53 troys is now known as troys_ 07:00 mojca joined, mojca left, mojca joined
ZzZombo m: my token a { (\h* [\n || $])* };say '' ~~ &a 07:01
yeah, this works to show my issue.
camelia (timeout)
ZzZombo ^
07:05 domidumont joined 07:06 mson joined 07:07 darutoko joined 07:10 geospeck joined
ZzZombo m: my token a { (\h* [\n || $])+ };say '' ~~ &a 07:10
camelia (timeout) 07:11
07:11 domidumont left
geekosaur the expression can match nothing, and can do so repeatedly 07:11
07:12 domidumont joined
geekosaur and will do so at the end of input because the $ will always match there and match empty string for \h* 07:12
lookatme m: say "" ~~ /(<?>)/ 07:13
camelia 「」
0 => 「」
lookatme m: say "" ~~ /(<?>)*/ # will timeout
camelia (timeout)
geekosaur (potentially it's worse than that because iirc $ matches before newline whereas $$ means actual end of input, but the alternation with \n catches that screw case)
07:13 lowbro joined, lowbro left, lowbro joined
lookatme m: say "" ~~ /(<?>)**1..3/ # will timeout 07:14
camelia 「」
0 => 「」
0 => 「」
0 => 「」
lookatme Interesting :)
geekosaur basically anything that can match zero characters and succeed, that is then repeatable with no stop case (that is, nothing following that can match), will always loop forever matching end of input
and yes, that too, if instead of * or + you give it a range, it'll match the maximum number of times 07:15
ZzZombo so, what can I do to avoid that? Keep in mind that for my purposes, empty or consisting of only whitespace documents are valid. 07:16
geekosaur I would generally make sure the action tokens always match something, and write the grammar with whitespace tokens in positions that don't get to repeat forever. (this means for example letting the TOP token end with a single, nonrepeated, optional whitespace match --- and, again, the whitespace rule should always match *something*) 07:19
it's rather difficult to make grammar engines or parser generators handle this for you; the halting problem will always find some way to bite you 07:20
07:36 lizmat left, lizmat joined 07:39 parv joined 07:42 markong joined
buggable New CPAN upload: Terminal-Spinners-0.0.4.tar.gz by RYNIX cpan.metacpan.org/authors/id/R/RY/...0.4.tar.gz 07:43
07:47 wamba left 07:52 Cabanossi left 07:54 Cabanossi joined 07:55 llfourn left 07:56 Ven joined, Ven is now known as Guest66176 08:02 pecastro left 08:03 dayangkun left, pecastro joined 08:19 dayangkun joined
Geth ecosystem: e28a057086 | (Jarkko Haapalainen)++ (committed using GitHub Web editor) | META.list
App::Platform moved to CPAN
08:30
08:32 abraxxa joined 08:37 wamba joined 08:38 Cabanossi left 08:39 Cabanossi joined 08:43 scimon joined 08:46 BenGoldberg left 08:56 ryn1x left 09:08 Cabanossi left, konsolebox left 09:09 Cabanossi joined 09:10 konsolebox joined 09:16 mson left, lizmat left 09:19 wamba left 09:25 robertle joined 09:35 mojca left 09:36 Cabanossi left 09:37 mojca joined, mojca left, mojca joined 09:39 Cabanossi joined 09:45 wamba joined
Geth mu: 97bba7fbcd | (Moritz Lenz)++ | misc/perl6advent-2017/schedule
p6advent: claim day 8
09:46
09:47 dayangkun left 09:54 char_var[buffer] left, xi- left 09:58 xi- joined 10:04 lizmat joined 10:06 ZzZombo left, ZzZombo joined 10:13 wamba left 10:16 sena_kun joined 10:19 eliasr joined 10:20 mojca left 10:26 mojca joined, mojca left, mojca joined 10:27 aborazmeh joined, aborazmeh left, aborazmeh joined 10:29 mojca left
Geth doc: gfldex++ created pull request #1686:
be precise when to early is to early for constant
10:36
10:37 Cabanossi left 10:39 Cabanossi joined 10:42 wamba joined 10:44 Guest66176 left 10:45 mojca joined, mojca left, mojca joined 10:46 Ven joined 10:47 Ven is now known as Guest10002, Geth left 10:48 Geth joined, ChanServ sets mode: +v Geth 10:50 lizmat left 10:55 ryn1x joined 11:02 ryn1x left, Guest10002 left 11:06 Ven joined, Ven is now known as Guest67205 11:15 Guest67205 left
ZzZombo m: my $b=Str;my $a is default(Int)=$b;say $a.new; 11:16
camelia
ZzZombo m: my $b=Nil;my $a is default(Int)=$b;say $a.new;
camelia Any.new
ZzZombo what is this? 11:17
I expect the second to be `Int.new` in effect. 11:18
nvm
m: my %b;my $a is default(Int)=%b<asd>;say $a.new; 11:19
camelia Any.new
ZzZombo hm
this is fucked up
how then can I pass a TYPE as a parameter, and have a default value for it at the same time? Obviously I can't do `my $class=$arg // $default` for this. 11:21
11:30 mojca left
El_Che ZzZombo: you should look into mult 11:35
multi
jnthn m: sub foo($x = 'default value') { dd $x }; foo 42; foo Int; foo; 11:37
camelia Int $x = 42
Int $x = Int
Str $x = "default value"
11:38 bisectable6 left, bisectable6 joined 11:47 aborazmeh left 11:52 Cabanossi left 11:54 Cabanossi joined 12:00 araraloren joined 12:01 astj left 12:02 astj joined, mojca joined, mojca left, mojca joined 12:06 astj left
gfldex m: my $b := Nil; my $a is default(Int) = $b; say $a.new; 12:07
camelia 0
gfldex m: say Int.new;
camelia 0
gfldex ZzZombo: ^^^ 12:08
ZzZombo I do not want a multi. I get the parameter from a hash.
gfldex, thanks. 12:09
m: my %b;my $c:=%b<asd>;my $a is default(Int)=$c;say $a.new;
camelia Any.new
ZzZombo ? 12:10
12:12 konsolebox left
gfldex ZzZombo: `is default` reacts only to Nil, not just any undefined value. And Hash will autovivify to Any. 12:12
m: my %b of Nil; my $c:=%b<asd>; my $a is default(Int)=$c; say $a.new; 12:13
camelia 0
12:13 konsolebox joined
gfldex ZzZombo: ^^^ 12:13
ZzZombo nice
jnthn m: my %b of Nil; %b<x> = 42 12:14
camelia Type check failed in assignment to %b; expected Nil but got Int (42)
in block <unit> at <tmp> line 1
jnthn Only so nice ;)
ZzZombo oh
m: my %b;my $c:=%b<asd> // Nil;my $a is default(Int)=$c;say $a.new;
camelia 0
ZzZombo this
jnthn m: my %b is default(Nil); my $c:=%b<asd>; my $a is default(Int)=$c; say $a.new;
camelia 0
jnthn Also this
12:16 Ven joined 12:17 Ven is now known as Guest48862 12:20 gfldex left
jnthn lunch & 12:20
12:21 cpage_ joined 12:25 jeromelanteri joined, konsolebox left
timotimo i'd use :exists to see if something's in there rather than relying on a specific value being returned by accessing 12:26
12:26 konsolebox joined 12:28 ZZZzz joined, ZZZzz left 12:32 rindolf joined 12:36 Cabanossi left, wamba left 12:39 Cabanossi joined 12:50 jeromelanteri left 12:53 zakharyas joined 12:57 zakharyas left 13:03 nuk9 joined 13:10 raschipi joined 13:20 kitsunenokenja joined 13:23 pmurias joined
Altreus Why doesn't the if version require a block? docs.perl6.org/language/py-nutshel...rehensions 13:25
13:27 tlaxkit joined
teatime I think in perl5 at least that form of if was described as a "statement modifier" 13:28
13:29 abraxxa left 13:32 Zoffix joined
Zoffix Altreus: because those are statement modifiers and none of them require a block. I think the writer of that section simply didn't realize `for` doesn't need it either 13:33
raschipi m: .say for 1..4
camelia 1
2
3
4
Zoffix What happened with ugexe? I got a flood of notifications about closed PRs from him this morning 13:34
m: sub foo { $^a * 2 }; say (&foo for ^3) 13:36
camelia (sub foo ($a) { #`(Sub|61255088) ... } sub foo ($a) { #`(Sub|61255088) ... } sub foo ($a) { #`(Sub|61255088) ... })
Zoffix m: say (-> $ {42} for ^3)
camelia (42 42 42)
Zoffix I would've expected the block form to behave same as the sub form above. Basically the same as a block at the end of a routine (it'd get returned as a block, unless it's a bareblock 13:37
13:37 Cabanossi left
Geth doc: 403d0fea02 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/py-nutshell.pod6
Tweak list comprehension examples

  - These are blocks, not anonymous functions
  - Show a block-less `for` example irclog.perlgeek.de/perl6/2017-11-24#i_15489899
13:39
synopsebot Link: doc.perl6.org/language/py-nutshell
13:39 Cabanossi joined, wamba joined
Zoffix ) 13:39
MasterDuke Zoffix: re ugexe, i would guess it's related to irclog.perlgeek.de/perl6/2017-11-23#i_15486662 and the subsequent conversation
Altreus Zoffix: we tested it, and it complains about sink context
well, without the arrow
m: ( $_ + 1 for 1,2,3 ) 13:40
camelia WARNINGS for <tmp>:
Useless use of "+" in expression "$_ + 1" in sink context (line 1)
Altreus like this
whereas
m: ( $_ + 1 if $_ > 1 for 1,2,3 )
camelia WARNINGS for <tmp>:
Useless use of "+" in expression "$_ + 1" in sink context (line 1)
Altreus oh that's new
on our rakudo that didn't complain
Zoffix m: say ( $_ + 1 for 1,2,3 ) 13:41
camelia (2 3 4)
Altreus oh it's because I didn't store it in an array isn't it
m: my @saddfga = ( $_ + 1 for 1,2,3 )
camelia ( no output )
raschipi Yeah, it detected you're just throwing the value away and warned you of that.
m: ( quietly $_ + 1 for 1,2,3 ) 13:42
camelia WARNINGS for <tmp>:
Useless use of "+" in expression "$_ + 1" in sink context (line 1)
raschipi m: ( quietly ($_ + 1) for 1,2,3 )
camelia WARNINGS for <tmp>:
Useless use of "+" in expression "$_ + 1" in sink context (line 1)
Altreus so it's a feature of the REPL, I guess, that it complains about sink context and then echoes the result anyway?
13:42 silug left
raschipi REPL is weird 13:43
Zoffix It won't work. `quietly` is for silencing CX::Warn and those ^ I think come from optimizer complaining
Altreus: doesn't do it for me. What code are you using?
13:44 Guest48862 left
raschipi It didn't complain in the REPl for me either 13:44
Zoffix It's possible you're using a very old Rakudo, Altreus
raschipi Oh, sorry. It did
Altreus yes I think it's just a version thing :)
raschipi > ( $_ + 1 for 1,2,3 )␤ WARNINGS for <unknown file>:␤ Useless use of "+" in expression "$_ + 1" in sink context (line 1) 13:45
13:45 comborico1611 joined
Zoffix That shows for me too. `( $_ + 1 if $_ > 1 for 1,2,3 )` doesn't show it tho. Weird. 13:46
Altreus aha, must be the REPL and not the eval bot 13:47
raschipi camelia doesn't use the REPL
Zoffix MasterDuke: thought so. Thanks. 13:48
Zoffix &
13:48 Zoffix left
Geth doc: 80d2f04df9 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/py-nutshell.pod6
Make references to routines actual links to their docs
13:49
synopsebot Link: doc.perl6.org/language/py-nutshell
13:50 Ven joined, wamba left, Ven is now known as Guest20721
Altreus does perl6 have any built in partial application for functions? 14:03
moritz Altreus: yes, see method "assuming"
and for operators there's a syntax 14:04
m: say $plus-two = * + 2; say $plus-two(5)
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$plus-two' is not declared
at <tmp>:1
------> 3say 7⏏5$plus-two = * + 2; say $plus-two(5)
moritz m: my $plus-two = * + 2; say $plus-two(5)
camelia 7
Altreus yo 14:05
imma look this up
can't catch this language out can I?
moritz well, you can ask for homocionicy or whatever it's called :) 14:06
14:06 cpage_ left
timotimo homoiconicity i think 14:06
Altreus well I'd never heard of it to ask 14:08
14:08 Cabanossi left
Altreus now you've ruined it ;) 14:08
14:09 Cabanossi joined
raschipi That is what Python does, using whitespace to represent syntax. 14:09
lucs Am I supposed to keep synchronized the version number of my module both in the .pm6 file (unit module Foo:ver<1.1>) and in the META6.json file ("version" : "1.0",)? (whoops! they're different!) 14:10
14:10 Aaronepower joined
lucs s/to keep/to manually keep/ 14:11
14:12 MasterDuke left 14:14 geospeck left, geospeck joined 14:15 geospeck left
pmurias raschipi: nope, homoiconicity means the program text has the same structure as the program AST 14:15
yoleaux 23 Nov 2017 00:26Z <samcv> pmurias: that is a little bit complex. simply see this table unicode.org/reports/tr10/#Comparis...able_Table the full definition is complex, but non-ignorable just means nothing is ignored except the baseline levels of the UCD spec
SmokeMachine m: react whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say} 14:17
camelia (timeout)(0 0) 14:18
14:19 konsolebox left
SmokeMachine m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say}; whenever Promise.in: 11 {say "timed out"; done} 14:19
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3r Promise.in: 11 {say "timed out"; done}7⏏5<EOL>
SmokeMachine m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say}; whenever Promise.in: 11 {say "timed out"; done}} 14:20
camelia (0 0)
(1 1)
(2 2)
(3 3)
(4 4)
(5 5)
(6 6)
(7 7)
(8 8)
(9 9)
timed out
SmokeMachine m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say}; whenever Promise.in: 15 {say "timed out"; done}} 14:21
camelia (0 0)
(1 1)
(2 2)
(3 3)
(4 4)
(5 5)
(6 6)
(7 7)
(8 8)
(9 9)
timed out
SmokeMachine m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^2)) {.say}; whenever Promise.in: 15 {say "timed out"; done}} 14:22
camelia (0 0)
(1 1)
timed out
14:22 geospeck joined
jnthn If you're trying to get it to not bother wiht the timed out thing once the zip is over, then add ;LAST done after the .say 14:23
*with
raschipi pmurias: Like in Lisp? 14:24
14:24 konsolebox joined, Guest20721 left 14:25 Ven joined, Ven is now known as Guest25826 14:26 Guest25826 left
pmurias raschipi: yes 14:30
SmokeMachine jnthn: I think it's different from the docs... it says that the resulted supply will be done when any of the supplies be done... 14:31
m: react { whenever Supply.zip(Supply.interval(.1), Supply.from-list(^10)) {.say}}
camelia (timeout)(0 0)
jnthn Hm, interesting 14:35
SmokeMachine I think its will only be done when every supply is done: github.com/rakudo/rakudo/blob/mast...y.pm#L1224
jnthn Yup, that's what the impl reads like to me also 14:36
SmokeMachine s/its/it/
jnthn Wonder what roast things
*thinks
SmokeMachine docs.perl6.org/type/Supply#method_zip
14:39 Ven joined, Ven is now known as Guest92717
jnthn Yeah, agree the impl isn't in line with the docs 14:41
Also, what the docs want is surely the more useful thing
SmokeMachine it does not test with live/on-demand supplies... github.com/perl6/roast/blob/d1baf2...pply/zip.t 14:42
I agree...
jnthn Doesn't test the current behavior that we don't like though, so we're free to fix it :) 14:43
SmokeMachine :) 14:44
jnthn Goodness, the folks doing construction work outside my office have a machine that's creating so much vibration, my keyboard is shaking... 14:45
SmokeMachine :-o
I think zip-latest has the same problem... 14:46
timotimo jnthn: yes, for the other thing, see "zip-latest" i guess? 14:47
14:47 astj joined 14:49 philomath joined
SmokeMachine adding a LEAST {done} on each whenever would fix that? 14:49
jnthn LAST, but yes
Think so, anyway
I don't have time to try it right now 14:50
14:50 cdg joined
SmokeMachine yes, LAST, sorry! 14:50
14:50 Guest92717 left
SmokeMachine Ill do that when I come home... 14:50
jnthn Cool :)
SmokeMachine++ 14:51
SmokeMachine :)
14:53 Ven joined, Ven is now known as Guest9401 14:54 nuk9 left
raschipi LAST but not LEAST 14:56
jnthn ;)
14:58 geospeck left
SmokeMachine :) 14:58
14:59 geospeck joined 15:00 astj left 15:01 Guest9401 left, astj joined 15:03 geospeck left 15:07 kitsunenokenja left 15:09 Ven_ joined, ryn1x joined 15:11 philomath left 15:16 astj left 15:17 astj joined, ryn1x left 15:20 tlaxkit left 15:25 ryn1x joined 15:29 Ven_ left 15:34 mojca left, Ven_ joined 15:38 ufobat_ left 15:42 raschipi left 15:46 gfldex joined 15:47 cdg left, cdg joined
comborico1611 Question on printing unsigned integer into bits. value = 65000; putchar( value & displaymask ? '1' : '0' ) ; Is value still 65000, or somehow miraculously binary? 15:48
15:49 raschipi joined 15:51 cdg left
comborico1611 Raschipi, Question on printing unsigned integer into bits. value = 65000; putchar( value & displaymask ? '1' : '0' ) ; Is value still 65000, or somehow miraculously binary? 15:52
raschipi Is that Perl6? 15:53
comborico1611 Heh, no.
15:53 john_parr left
raschipi So I have no idea 15:53
15:53 ryn1x left
comborico1611 Oh, alright. Thanks, though. 15:53
raschipi Everything is binary, modern computers know nothing else. 15:54
15:54 john_parr joined
comborico1611 Hmm. 15:54
15:54 Ven_ left, Ven joined 15:55 Ven is now known as Guest32335
raschipi In the past there were decimal computers and even before that there was analog computers, But it has been decades that's not used anymore. 15:55
So I can answer with confidence it is indeed binary. 15:56
15:56 jstuder joined
comborico1611 But the purpose of the program is to print an integer into binary. 15:57
I suppose it is possible that giving an integer to bitwise& automatically converts integer into binary. 15:58
raschipi integer is binary 15:59
gfldex m: my Int $i = 49152; say $i.base(2); 16:00
camelia 1100000000000000
raschipi comborico1611: If displaymask has only one bit set, doing an AND on it with a number will tell if the same bit is set on the number
comborico1611 That's a nice clean binary. 16:01
16:01 ryn1x joined
comborico1611 I don't know why this is so confusing to me. 16:02
16:03 Guest32335 left
raschipi here is something similar in P6: 16:04
m: my $num = 116; say so $num +& 2** $_ for 1,2,3...30
camelia False
True
False
True
True
True
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
raschipi Or with 0 and 1:
m: my $num = 116; say + so $num +& 2** $_ for 1,2,3...30 16:05
camelia 0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
raschipi Do you get the algorithm? 16:08
16:12 ggg joined
ggg hi? 16:13
tyil hi
16:14 ggg left 16:15 wamba joined
comborico1611 I'm sorry, no. Thanks for trying. 16:15
raschipi let's go over it, one bit at a time
comborico1611 I do understand how to bitwise and operator works. But how a particular code works, I don't understand. 16:16
raschipi You didn't get the one you posted or the ones in Perl6 too? 16:17
comborico1611 1 & 0 = 0 1 & 1= 1. And so on.
The one i posted. 16:18
raschipi Can you provide context for it? 16:19
What it does depends on the value displaymask has.
comborico1611 User enters an integer. The program simply outputs it's binary equivalent. It uses a for Loop to go bit by bit, and it is that for Loop that is strange to me. 16:20
raschipi So the part that is strange you didn't post?
It probably multiples displaymask by 2 or bit shifts it one position over (which is the same thing for integers) 16:21
comborico1611 I did: value = 65000; putchar( value & displaymask ? '1' : '0' ) ; Is value still 65000, or somehow miraculously binary?
The worst part of this is I'm typing from my phone. 16:22
raschipi putchar probably outputs to the screen and has no side effects
probably
comborico1611 Correct. 16:23
16:23 Morfent joined, gagalicious joined
raschipi So, what's the matter? 16:23
comborico1611 But bit mask is 10000000 00000000 . That & with 65000 (binary) yields all zeros. Yet his program prints 65000 in binary. 16:24
So there is something I'm missing. 16:25
I wish i could post photos on here.
El_Che I am happy you can't 16:26
:)
comborico1611 Haha. Good point!
El_Che many people have slack/mattermost/... allergies 16:27
raschipi m: say + so 0b0000000000100000 +& 65000
camelia 1
16:27 dmaestro joined, prettty-girl joined
raschipi 10000000 00000000 & with 65000 is 0 because the corresponding bit in the number is 0. Do you know AND can be applied to numbers bigger than 1 bit, right? 16:28
comborico1611 I wasn't sure if it could. 16:29
It treats them as 1?
raschipi You do it "bit by bit", like when summing you go digit by digit summing them. 16:30
comborico1611 Correct.
raschipi So, if a number has just one of it's own bits set, the result will have a 1 only if the other number has a 1 in the corresponding position 16:31
comborico1611 Correct. Hey, thank you for trying, but i need to take a break. 16:32
raschipi Right, another time then
comborico1611 If i figure this thing out, I'll try to remember to tell you what my hang-up was.
Morfent when i run make rakudo-test when compiling rakudo star from source on freebsd 12, t/04-nativecall/02-simple-args.t fails with "Dubious, test returned 1 (wstat 256, 0x100)" 16:36
timotimo can you ./perl6 t/04-nativecall/02-simple-args.t and see what it outputs?
16:37 Cabanossi left
Morfent hastebin.com/rupepocuxo.go 16:37
i'm wondering if the issue's related to the tests that are skipped on mac os x, since its kernel uses parts of freebsd's 16:38
timotimo this should be too far from the kernel to matter :\
Morfent ah
is this something i'd need to worry about though? 16:39
16:39 Cabanossi joined
timotimo i could imagine perhaps "unsigned short" not meaning "16bit integer" on your system 16:40
that would certainly mess this test up
maybe our C code for these tests should fprint diagnostics when they don't get the right value 16:41
so maybe putting an fprintf(stderr, "# value received: %hd\n", x); before the "return 0" in 02-simple-args.c tells us something interesting 16:42
Morfent i'll give that a shot 16:45
timotimo though perhaps %hx is nicer to look at than %hd 16:46
16:47 khw joined
Morfent # value received: -2 16:48
timotimo hm, isn't that correct though?
like, if you use %hx it'll use unsigned logic and display as hexadecimal and that should correspond to 0xFFFE 16:49
well, 0xfffe in the case of %hx, 0xFFFE with %hX
Morfent i was in the middle of running make when you mentioned to use %hx
16:50 lowbro left
timotimo you shouldn't need to run make again i think 16:50
16:50 MilkmanDan joined
timotimo though i'm not sure how exactly compile_test_lib is implemented 16:50
Morfent i wasn't sure, so i was running it again just to be safe 16:51
16:51 domidumont left
Morfent # value received: fffe 16:52
timotimo OK, so the C code we have there is not what we expect
i mean, it doesn't compile the same way on your system as on others
i.e. we're relying on undefined behaviour?
raschipi Morfent: which compiler do you have? 16:53
Morfent clang 4.0.1
i have clang 5.0.0 installed, i'll check again with that 16:54
raschipi Is Perl6 even tested on Clang?
timotimo it is 16:55
oh
moarvm is, but that only runs nqp's test suite
and those don't contain nativecall stuff, or at least not much of it 16:56
16:56 troys_ is now known as troys
raschipi Morfent: Can you try GCC? 16:56
Morfent sure
timotimo you're on freebsd, right? any more details than that? 17:01
freebsd 12
Morfent: just to verify, the fprint you have goes between both return statements, right? 17:02
Morfent it goes before both 17:03
timotimo oh
well, that changes things a whole lot
17:03 setty1 joined
timotimo now it could be it's correctly running the "return 11" but we're somehow not taking the return value correctly 17:04
rather than giving us 0xfffe but comparing against 0xfffe giving "false"
can you make that change and re-run?
17:06 Cabanossi left
Morfent sure 17:07
wait what change do you mean? 17:08
17:08 Cabanossi joined
timotimo put the fprintf between "return 11" and "return 0" 17:10
such that it only gets run when the code is about to return 0
Morfent same deal, # value received: fffe 17:12
timotimo now that is interesting!
um, could you change the wording inside the message so we can be sure that it actually compiled the change you made?
17:13 parv left
timotimo i don't want to be surprised by compile_test_lib being "clever" about caching or something :) 17:13
scimon Can I apologise in advance for anything I say in my talk at LPW tomorrow that's wrong. :D 17:16
17:16 scimon left
Morfent # value received, different message: fffe 17:16
timotimo okay that's weird!
Geth ecosystem: a34a96fb5c | (David Warring)++ (committed using GitHub Web editor) | META.list
Font::AFM to CPAN
17:18
timotimo can you operate gdb and/or lldb? 17:19
Morfent never used them before
timotimo how complicated is it to get a freebsd 12 VM up and running containing a working perl6? 17:21
17:21 robertle left
timotimo doesn't look trivial to get at a freebsd 12 17:22
buggable New CPAN upload: Font-AFM-1.24.2.tar.gz by WARRINGD cpan.metacpan.org/authors/id/W/WA/...4.2.tar.gz 17:23
raschipi This download links in the PAUSE new upload messages are kinda useless. I think linking to the module home page would be better. 17:25
Morfent the os itself is relatively simple to get installed, but there's a bit of work involved to get it to run properly in virtualbox
timotimo damn (:
:(
17:26 lizmat joined
Morfent i'm not sure if virtualbox additions will run correctly or not since 12 is on the dev branch atm 17:26
i can install virtualbox and get a vm set up to see if it'll work
17:27 raschipi_ joined
timotimo i'm not sure if i'll have much time to look into this today 17:27
17:27 raiph joined
timotimo would you be okay with a guided gdb session over irc? 17:28
17:29 pmurias left, raschipi left, raschipi_ is now known as raschipi
Morfent sure 17:30
timotimo cool. we have a ./perl6-gdb-m script that'll land you right inside a gdb session 17:31
it'll run the program to completion if you don't ctrl-c, but we can just re-run it after setting up break points and such
so you'd run ./perl6-gdb-m t/04-nativecall/...t
then set a break point with "break TakeUInt16" 17:32
when you "run" it'll reach that point and wait for us to do whatever
dmaestro I'm trying to do a deep comparison (eqv), but I want cmp semantics between Cool values. Any way to lexically modify the eqv op behavior to do that?
timotimo oh, but a moarvm without --debug=3 and with anything but --optimize=0 will make debugging a pain
Morfent Could not open t/04-nativecall/...t. Failed to stat file: no such file or directory 17:33
timotimo well, the ... would be ... what, 02-simple-args i think?
17:33 ryn1x_ joined, Morfent left 17:34 ryn1x left, Morfent joined 17:36 ryn1x_ left, ryn1x joined 17:38 pmurias joined
Morfent ok, tried again with ./perl-gdb-m t/04-nativecall/02-simpleargs.t 17:38
timotimo Morfent: did you get my last message? you'd have t/04-nativecall/02-simple-args.t in the argument list
Morfent i don't think i did
timotimo needs one more hyphen i believe?
17:39 eliasr left
dmaestro Wishing I could hook into the (presumed) recursive behavior of eqv, but this doesn't work: 17:39
say { multi sub infix:<eqv>(Cool $l, Cool $r) { $l cmp $r === Same }; [42.0] eqv ['42'] }()
timotimo dmaestro: aye, the implementations of eqv all look only in *their* lexical scope for the other operators, which is the core setting
dmaestro m: say { multi sub infix:<eqv>(Cool $l, Cool $r) { $l cmp $r === Same }; [42.0] eqv ['42'] }()
camelia False
timotimo lexically speaking your own implementations are unreachable 17:40
dmaestro Yeah, I figured that was the reason ...
evalable6 False
dmaestro Any other features of Perl6 that conveniently reach deep into nested structures I might use? 17:41
timotimo hypers kind of do that 17:42
m: say [[1, 1], 2] »==« [[1, 2], 2]
camelia [[True False] True]
timotimo m: say [[1, 1], 2] »==« [1, [2, 2]]
camelia Lists on either side of non-dwimmy hyperop of infix:<==> are not of the same length while recursing
left: 2 elements, right: 1 elements
in block <unit> at <tmp> line 1
dmaestro hmm...
timotimo if you catch that exception in case things are odd-shaped 17:43
dmaestro That might actually work for what I'm doing ...
timotimo and you'll then have to break the structure down
17:43 geospeck joined
timotimo because [False] is a list with one element, and therefor it'll booleanify to True 17:43
Morfent i'm not really sure what you mean by needing one more hyphen timotimo 17:44
timotimo the file name
you wrote "simpleargs" i thought it should be "simple-args"
Morfent oh, that was a typo 17:45
timotimo OK
Morfent Function "TakeUInt16" not defined. Make breakpoint pending on future shared library load? (y or [n])
timotimo oh, the i must be lower case 17:46
dmaestro m: say [42.0] »cmp« ['42'] 17:47
camelia [Same]
Morfent that was it 17:48
Thread 1 hit Breakpoint 1, 0x000000080dc9ca54 in TakeUint16 () from /usr/home/morfent/Downloads/rakudo-star-2017.10/rakudo/lib02-simple-args.so
17:48 silug joined
timotimo OK, good 17:48
now "print x" gives you what? 17:49
Morfent No symbol "x" in current context.
timotimo oh?
hm, compile_test_lib is perhaps not compiling any debug info into the files
AlexDaniel squashable6: next 17:50
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 6 days and ≈16 hours (2017-12-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel If someone has any suggestions for the next squashathon, please let me know
17:51 mson joined, Cabanossi left
moritz maybe Perl 6 websites? 17:52
perl6.org, examples.perl6.org, modules.perl6.org etc.
dunno if that's a good idea 17:53
17:54 Cabanossi joined
timotimo Morfent: try editing t/04-nativecall/CompileTestLib.pm to have -O0 -g3 after the $cfg<cflags> and $cfg<ldflags> in lines 16 and 16 17:54
16 and 17
Morfent done 17:57
dmaestro timotimo: I think this will do 90% of what I want. Thanks!
m: say so all([42] »cmp« ['42']) === Same
camelia True
timotimo cool
17:59 araraloren_ joined, domidumont joined
Morfent The spawned command 'clang -shared -fPIC -O3 -DNDEBUG -Wl,-rpath,"//usr/home/morfent/Downloads/rakudo-star-2017.10/install/lib" -lm -lpthread -lkvm -o -O0 -g3 lib02-simple-args.so 02-simple-args.o' exited unsuccessfully (exit code: 1) 18:00
timotimo bleh, does it hate multiple -O flags? 18:01
Morfent yeah, -O3 and -O0
er
timotimo okay, put .subst("-O3", "") after the closing " in those lines
that's terrible, but it'll get us what we want for now 18:02
Morfent still fails
18:02 araraloren left
timotimo oh 18:02
Morfent oh, those flags are showing up after -o
timotimo yes, that's the problem here
OK, then put it *before* the cflags and ldflags :D
18:03 troys is now known as troys_
timotimo i mean ideally you'd rebuild moarvm with --optimize=0 --debug=3 in the flags for its Configure.pl 18:04
Morfent ...now the test passes
timotimo :o
Morfent oh wait i forgot to remove the second set of flags on line 16 18:05
18:05 araralonre__ joined
Morfent but now i can print x 18:05
$1 = 65534
timotimo m: say 0xfffe 18:06
camelia 65534
timotimo that's correct
which makes sense because the test passes
18:07 llfourn joined
timotimo without disassembling the code and looking directly at register contents we won't make headway here it seems? 18:07
Morfent i was running this after fixing my typo
the test still fails
timotimo oh? the test fails but x prints 65534?
Morfent yeah
timotimo what does "print 0xfffe" give you?
18:07 BenGoldberg joined 18:08 araraloren_ left
Morfent $2 = 65534 18:08
timotimo OK, now you can step through the code with "n" and see what it does. "list" will output a piece of source code 18:09
Morfent it segfaults at some point 18:11
hastebin.com/yoceqikulu.cs 18:12
18:13 lizmat left
timotimo the trap would have been interesting. it's supposed to output information before crashing though i think? 18:14
SmokeMachine im having a problem compiling rakudo... 18:15
www.irccloud.com/pastebin/jC1gQLFO/
Morfent this is what list shows just after the trap hastebin.com/kaxacerewa.cpp 18:16
SmokeMachine does any one knows why?
timotimo Morfent: it doesn't have line number or source code info for where it actually is (which is moarvm's interpreter loop) so it just outputs what it last had
SmokeMachine: are you working from a clean state? i.e. "make clean" and everything? 18:17
SmokeMachine trying to make clean...
timotimo Morfent: how were you compiling rakudo? did you have a Configure.pl with --gen-moar in the commandline? 18:18
Morfent perl Configure.pl --backends=moar --gen-moar
timotimo OK, you can give moar options there, too, let me look 18:19
Morfent perl version's v5.24.3
AlexDaniel moritz: interesting idea. There are only 27 open issues (from all mentioned repos) so maybe that does not provide enough room for the squashathon
timotimo --moar-version=--optimize=0 --moar-version=--debug=3
SmokeMachine timotimo: make cleaned... im trying to make again...
same error... 18:20
AlexDaniel I was also thinking about a bot squashathon, but at the moment you can't really run whateverable locally… :S
18:21 geospeck left, geospeck joined
timotimo SmokeMachine: that's very strange because the step right before it should have used Perl6/Grammar.moarvm just the same way as this one? 18:23
18:23 Morfent left, Morfent joined
SmokeMachine www.irccloud.com/pastebin/gxZwnh85/timotimo 18:24
timotimo SmokeMachine: but it already gave you a step with "stage parse" and other timings, right?
SmokeMachine yes 18:25
www.irccloud.com/pastebin/FNWCTq0Z/
18:26 geospeck left, geospeck_ joined
timotimo that doesn't make sense to me :( 18:26
Morfent: with those flags to Configure.pl you'll have to rebuild, but it'll let you actually use gdb properly 18:27
Morfent alright
SmokeMachine :( 18:28
18:29 dmaestro left 18:30 Morfent left 18:31 Morfent joined, geospeck_ left, geospeck joined 18:35 s0me0ne-unkn0wn left
raschipi Can you imagine a bot squashaton, 300 bots connected at the same time to the channel for debugging? 18:35
timotimo we'll just set up an irc server docker container :P
18:38 robertle joined 18:42 wamba left 18:43 cdg joined
Morfent timotimo: after running perl Configure.pl --backends=moar --gen-moar --moar-option=--debug=3 --moar-option=--optimize=0, make still compiles with -O3 18:49
timotimo did it recompile moar at all?
i.e. did you see many short lines with "3rdparty" and such? 18:50
Morfent yep 18:51
18:51 robertle left 18:52 cdg left
Morfent hastebin.com/rorafedeni.m 18:52
timotimo hm, yes, indeed :\ 18:55
well, you can cd into the nqp/moarvm folder or where it is exactly
check out the Makefile for a list of options that were originally passed to Configure.pl in there
tweak that and re-run Configure.pl inside moarvm, then "make install"
after that, no real need to recompile anything else
18:55 darutoko left
SmokeMachine timotimo: I cloned again, and that worked... 18:57
timotimo i'm afraid i have to leave for a bit now 18:58
18:59 dmaestro joined
AlexDaniel raschipi: in debug mode *ables only join #whateverable tho :) 19:02
19:09 redhands joined
raschipi AlexDaniel: Why would people run them on debug mode? 19:12
19:12 MasterDuke joined
AlexDaniel IIRC it's harder to run them otherwise :D 19:12
raschipi Right, then problem solved 19:14
19:14 MasterDuke_ joined 19:17 stmuk joined, MasterDuke left 19:19 stmuk_ left
jstuder Hey all, for the docs I rewrote a section on "Truncating slices" in the subscripts page to address some inaccurate info and submitted the PR a few days back. I was hoping that someone more senior could give it a once over to make sure everything is accurate. 19:23
Or should I just commit it and any inaccuracies can be addressed after the fact?
Morfent timotimo: after doing that, gdb gives something a bit different hastebin.com/fecosawula.cs 19:27
19:29 mojca joined, mojca left, mojca joined
AlexDaniel jstuder: OK, first of all thanks for the awesome PR 19:30
jstuder: PRs that have lots of effort put to them often require lots of effort to review them, that's why it took so long :) 19:31
jstuder: so it is totally correct to come here and to kick some asses to get the job done
jstuder: here's one thing: “produced one-after-another up until the point that the subscript no longer yields a defined value from the collection” 19:32
m: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*]
camelia (d (Any) f)
AlexDaniel jstuder: so [4] was actually not defined, but it didn't stop
jstuder AlexDaniel: no problem. I'm not trying to kick any asses, just wasn't sure anyone was aware. 19:33
AlexDaniel: i see.
AlexDaniel my point is that you should feel free to kick some asses :)
jstuder ok i appreciate it.
AlexDaniel m: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[lazy 3..*]' 19:34
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3tters[4]:delete; say @letters[lazy 3..*]7⏏5'
expecting any of:
infix
infix stopper
postfix
statement end
AlexDaniel m: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[lazy 3..*]
camelia (d)
AlexDaniel hmmm… but that's a bug, right?
c: 2015.12 my @letters = <a b c d e f>; @letters[4]:delete; say @letters[lazy 3..*] 19:35
committable6 AlexDaniel, ¦2015.12: «(d)»
AlexDaniel or is it?
jstuder Hmm I guess there could be more to this than I thought. 19:42
I appreciate you looking into it.
19:45 domidumont left
AlexDaniel jstuder: ok, here's something to consider 19:49
c: 2015.12 my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*]; 19:50
committable6 AlexDaniel, ¦2015.12: «(d)»
AlexDaniel c: HEAD my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*];
committable6 AlexDaniel, ¦HEAD(3166400): «(d (Any) f)»
AlexDaniel let's see what was the justification for the change
bisect: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*];
bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=3166400) because on both starting points the exit code is 0
AlexDaniel, bisect log: gist.github.com/2bca83b3f25f8043ca...d09264a640
AlexDaniel, (2017-10-08) github.com/rakudo/rakudo/commit/45...51c42a52ff
AlexDaniel c: 456358e3c3^,456358e3c3 my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*]; 19:51
committable6 AlexDaniel, ¦456358e3c3^: «(d)» ¦456358e: «(d (Any) f)»
AlexDaniel :S
19:54 MasterDuke_ left
AlexDaniel jstuder: alright, I created this ticket: github.com/rakudo/rakudo/issues/1268 19:56
jstuder I guess we'll find out what the intended behavior is and I'll revise the PR accordingly. 19:59
AlexDaniel: that bisectable bot is pretty cool.
AlexDaniel: is there some way to use it without displaying all the results on the channel? I'd love to give it a try but wouldn't want to drive everyone crazy. 20:01
20:01 silug left
moritz jstuder: you can try to /msg the bot 20:05
jstuder moritz: thanks. I'm definitely going to give that a try. 20:06
20:12 someuser joined 20:13 raschipi left
jstuder bisectable says it's too private in there :( 20:13
oh well, there is always git bisect
20:14 committable6 left 20:15 committable6 joined, ChanServ sets mode: +v committable6 20:19 kerframil joined, silug joined
AlexDaniel jstuder: you can go to #whateverable and do as many queries as you like :) 20:21
20:21 zakharyas joined
jstuder AlexDaniel: thanks 20:22
20:24 jstuder left, mojca left 20:25 jstuder joined 20:28 cdg joined 20:32 cdg left 20:35 zakharyas left 20:36 zakharyas joined 20:37 zakharyas left, Cabanossi left, zakharyas joined 20:39 Cabanossi joined 20:48 dmaestro left 20:49 zakharyas left 21:03 kerframil left 21:04 vike left 21:09 Guest31287 joined 21:11 vike joined 21:26 Guest31287 left 21:27 Guest31287 joined 21:30 espadrine joined 21:32 kitsunenokenja joined 21:33 s0me0ne-unkn0wn joined 21:34 Morfent left 21:37 Cabanossi left 21:39 Cabanossi joined 21:40 Cabanossi left 21:41 Cabanossi joined 21:42 Morfent joined
Geth mu: 85fa828441 | (Jonathan Worthington)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule
Add myself to the Advent shcedule
21:49
jnthn Such typing! 21:50
moritz jnthn: for the advent post you'll have the option to correct your typing before it goes live :-) 21:53
22:04 japhb joined
Geth doc: f4b6bd9707 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/glossary.pod6
add item LGTM
22:10
synopsebot Link: doc.perl6.org/language/glossary
22:10 setty1 left
jnthn moritz: Phew! :) 22:11
22:18 cdg joined 22:20 comborico1611 left, comborico1611 joined 22:21 Guest31287 left 22:22 cdg left
timotimo Morfent: hey 22:25
Morfent hey
22:25 pi2 joined
timotimo Morfent: can you send me the .so file that gets compiled for the test that was failing? 22:26
i have a compiler expert sitting next to me :P
alternatively, go back to the break point in TakeUint16 and ask gdb to "disassemble" 22:27
22:29 pilne joined
Morfent this is what disassemble outputs hastebin.com/wekabonemu.pl 22:30
22:30 japhb left
timotimo can you also give the output of "info registers" 22:31
22:32 japhb joined
Morfent hastebin.com/yecewegimi.go 22:32
22:35 Thrush joined 22:37 Cabanossi left
Thrush Has anybody here tried the challenges on code-golf.io ? 22:37
Perl 6 often dominates. 22:38
22:39 Cabanossi joined
AlexDaniel well… yes 22:39
s0me0ne-unkn0wn But still cannot beat golf-oriented languages like Jelly 22:40
22:40 geospeck left, geospeck joined
s0me0ne-unkn0wn Perl 6 with its whitespace enforcement is not the best golf language imho :) 22:41
AlexDaniel golf-oriented languages make no sense to me really. I remember there was one that mapped typical golfing problems to each ascii character, so every solution was 1 byte…
Thrush There's the prime-number puzzle, and the top score is 22 chars. I can get it down to 23 chars, but I can't figure out how to squeeze out an extra char.
Perl 6 is nice for golf puzzles with prime numbers, due to the .is-prime method. 22:42
AlexDaniel Thrush: use unicode character instead of a normal numeric
m: say 10; say ⑩
camelia 10
10
s0me0ne-unkn0wn golf-oriented languages make no sense beyond code gold, to be precise :)
AlexDaniel Thrush: no, for the number 22:43
s0me0ne-unkn0wn AlexDaniel: They usually count bytes, not characters in golf competitions
Geth mu: deepnext++ created pull request #29:
Update schedule
AlexDaniel s0me0ne-unkn0wn: not that particular website
s0me0ne-unkn0wn: well, “bytes” makes no sense to me either… 22:44
Thrush AlexDaniel: There's a unicode character for 10? And for 100?
AlexDaniel like, in what encoding, right?
timotimo Morfent: hi, this is timotimos so-called "expert" speaking
AlexDaniel Thrush: that you'll have to figure out :)
Thrush: also relevant: github.com/perl6/mu/blob/master/mi...hedule#L25
timotimo the trouble is that the c function expects the upper bits of the 16-bit argument to be clean, but as you can see from "info registers", they're clearly not
s0me0ne-unkn0wn Probably some language somewhere in India have a dedicated character for "100" and if it's on unicode table you can use it with Perl 6 :) 22:45
timotimo i have had a look in the ABI, but it unfortunately remains quiet on the issue.
22:45 geospeck left
timotimo the safe thing is probably for the caller to clear those bits if some callees expect that 22:45
and with that, back to timotimo 22:46
AlexDaniel I'll just leave this here… :P gist.github.com/AlexDaniel/52b203c...6ec335336c 22:47
Thrush This is very interesting. I never knew there was a unicode character for 10 (or 100) before.
s0me0ne-unkn0wn Wow, 1000000000000 even 22:49
22:50 mcmillhj joined
AlexDaniel s0me0ne-unkn0wn: so -0.5 is not that interesting, huh? :P 22:51
timotimo Morfent: can you do another recompile of moarvm? this time with --moar-option=--has-libffi in the mix? 22:52
er, i mean, you're using moarvm's configure.pl directly, so use --has-libffi directly 22:53
Thrush m: say 100; say ௱ 22:54
camelia 100
100
Thrush Wow... I got it!
I found the symbol for "௱" (TAMIL NUMBER ONE HUNDRED) at www.fileformat.info/info/unicode/ca...o/list.htm . 22:55
22:55 mcmillhj left
s0me0ne-unkn0wn AlexDaniel: Well, right now I live in Croatia and I have the clock with glagolic characters in place of normal digits on my wall so digits lower than 13 represented by single character don't surprise me a lot, but 1000000000000... 22:55
Thrush Glagolic? Do you mean "glagolitic"? 22:57
Morfent timotimo: probing whether your compiler thinks that it is gcc Can't compile simple gcc probe, so something is badly wrong at build/probe.pm line 147. 23:01
Geth mu: 570da66916 | deepnext++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule
Update schedule
mu: 077e632f57 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule
Merge pull request #29 from deepnext/patch-1

Update schedule Thanks!
timotimo Morfent: hg.dyncall.org/pub/dyncall/dyncall/..._x64.c#l74 - check this out 23:04
see how it passes short args by pretending they are longlong
Morfent yeah
ryn1x Does CPAN store statistics anywhere? Like number of downloads? 23:05
s0me0ne-unkn0wn Thrush: Exactly, excuse me for my English, I speak mostly Slavic languages :)
timotimo that's where the upper bytes of the regsiter get filled by sign extension
the question becomes: do we have functions that would expect sign extension for the upper bytes? 23:07
Thrush Quite all right, s0me0ne-unkn0wn. I just googled the term, and google was correcting me slightly.
s0me0ne-unkn0wn: Ĉu vi parolas Esperanton? (Do you speak Esperanto?) 23:08
El_Che utf8 pr0n hour at #perl6, /me thinks :) 23:09
23:10 mcmillhj joined
s0me0ne-unkn0wn Thrush: Unfortunatelly no, my first language is Russian, I also speak Croatian, Bosnian an Serian (which are mosly the same language), very limited Polish and Bulgarian and also Perl (as native) and Perl 6 (as foreign) :) 23:11
AlexDaniel El_Che: softcore, real unicode porn will be in the advent post :P
23:11 lizmat joined
El_Che AlexDaniel: haha 23:12
23:15 mcmillhj left
lizmat . 23:15
El_Che lizmat: that the most boring utf8 of the evening :) 23:18
lizmat sorry, it was only intended as ascii :-)
El_Che :) 23:20
(there was a utf8 conversation going on before you joined) 23:21
Thrush Thanks for your help, guys. I have to leave now. 23:23
23:25 Thrush left 23:29 wamba joined 23:39 mudman joined 23:41 comborico1611 left 23:42 comborico1611 joined 23:44 raschipi joined 23:48 kitsunenokenja left 23:50 comborico1611 left 23:56 redhands left, Herby_ joined
Herby_ o/ 23:57
mudman \ o
raschipi \o
23:58 comborico1611 joined