»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:03 aborazmeh left 00:04 thou left 00:06 rangerprice left 00:11 aborazmeh joined, aborazmeh left, aborazmeh joined 00:22 mprelude left 00:25 Celelibi joined 00:34 ptufts joined 00:35 pecastro left 00:40 BenGoldberg joined 00:43 Celelibi left 00:51 pullphinger joined 01:01 raiph left 01:04 pochi_ left 01:23 llfourn joined 01:28 llfourn left 01:31 colomon left 01:33 laouji joined 01:34 colomon joined 01:38 Celelibi joined, dayangkun joined 01:39 cognominal left 01:47 thou joined 01:52 thou left 02:06 muraiki left 02:08 peteretep left 02:12 noganex joined 02:15 noganex_ left 02:28 aborazmeh left 02:39 ptufts left 02:45 cfloare left, cgfbee left 02:49 kaare_ joined, Averna joined 02:52 slowpoke_ joined, slowpoke_ left 03:16 cgfbee joined 03:17 cfloare joined 03:20 BenGoldberg left 03:24 telex left 03:25 llfourn joined 03:26 telex joined 03:29 llfourn left 03:35 thou joined 03:39 Averna left 03:40 aborazmeh joined, aborazmeh left, aborazmeh joined, thou left 03:54 aborazmeh left 03:56 aborazmeh joined, aborazmeh left, aborazmeh joined 03:58 llfourn joined 04:13 AlexDaniel left 04:14 aborazmeh left 04:22 laouji left 04:23 laouji joined 04:27 laouji left 04:31 laouji joined 04:36 aborazmeh joined, aborazmeh left, aborazmeh joined 04:37 eiro left 04:38 khw left 04:40 ShimmerFairy left 04:42 eiro joined 04:44 ShimmerFairy joined 05:14 xfix joined, xfix left, xfix joined 05:24 thou joined 05:28 thou left 05:36 leont joined 05:39 mr-foobar left 05:43 skids left 05:49 mr-foobar joined 05:56 CIAvash joined 06:01 leont left 06:02 aborazmeh left 06:03 kst left 06:09 FROGGS left 06:12 diana_olhovik joined 06:15 cdc left, cdc joined 06:17 laouji left 06:25 laouji joined 06:26 CQ2 joined 06:33 FROGGS joined 06:40 domidumont joined 06:41 [TuxCM] left 06:44 RabidGravy joined 06:45 domidumont left, domidumont joined
masak morning, #perl6 06:46
moritz \o
RabidGravy erp 06:49
06:52 domidumont left
nine Good morning! 06:52
06:54 laouji left 06:59 cschwenz1 joined 07:00 cschwenz left
masak RabidGravy: Enterprise Resource Planning? :) 07:02
RabidGravy nah it already sap-ped my will to live
07:02 laouji joined 07:04 Ven joined 07:05 domidumont joined
FROGGS o/ 07:05
ZBEGR - a customized greeting 07:06
Ven pretty cool. Hello there!
07:10 El_Che left 07:12 thou joined, El_Che joined, liztormato joined
liztormato waves from a place with a view of the sea 07:13
moritz waves back, listening to "Sailing to Philadelphia" 07:15
TEttinger waves but is distracted by people in NZ linking photos of their crickets i.imgur.com/Te1Y7kC.jpg 07:17
07:17 thou left
nine waves from a train 07:17
jdv79 i believe i missed the bus at the airport. next one might be in 3 hours.
cdc .tell zostay I think you can replace "Supply.on-demand(-> $a { ... })" construction with a supply block. gist.github.com/jnthn/a56fd4a22e7c...onstructs. I find this latter construction more readable.
yoleaux cdc: I'll pass your message to zostay.
07:18 larion left, liztormato left 07:20 liztormato joined
moritz can somebody explain in very simple terms what an on-demand supply does? 07:23
(and what it does differently than a "live" supply?)
jdv79 where is that distinction made? 07:24
moritz in src/core/Supply.pm iirc 07:25
07:25 llfourn left 07:26 rindolf joined 07:27 liztormato left 07:28 Ven left 07:29 mattp_ left
RabidGravy on demand supply can be pre-populated with items and these will be available to a subsequent tapper, whereas a "live" one only the items that are emitted after the tap are seen 07:30
eg Supply.from-list() or e.g Supply.interval() 07:31
cdc then, a live supply can't "overflow", right ?
moritz RabidGravy: only available to the first tapper, or to all of them? 07:32
m: my $s = Supply.from-list(1, 2, 3, 4); $s.tap({}); $s.tap(&say); $s.done
camelia rakudo-moar 5ba44f: OUTPUT«Type check failed in binding &emit; expected 'Callable' but got 'Hash'␤ in block <unit> at /tmp/8quFHYLQIb:1␤␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«Type check failed in binding &emit; expected 'Callable' but got 'Hash'␤ in block <unit> at /tmp/4bWjCyfx7X:1␤␤»
moritz m: my $s = Supply.from-list(1, 2, 3, 4); $s.tap({;}); $s.tap(&say); $s.done
camelia rakudo-moar 5ba44f: OUTPUT«1␤2␤3␤4␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«1␤2␤3␤4␤»
07:32 darutoko joined
moritz to all, it seems 07:32
07:34 zakharyas joined
RabidGravy cdc, yeah on a live one if there are no tappers, emitting is basically a no-op 07:36
07:37 zakharyas left
cdc RabidGravy: thanks! 07:38
moritz ... and the bikeshedding on p6u continues (about oneliners now being strict again, by default) 07:39
RabidGravy good, good 07:41
07:41 zakharyas joined
ShimmerFairy moritz: there are people who _want_ no strict on one-liners? That's news to me. 07:41
masak the populace seems divided on this. 07:42
07:42 mohij_mobile joined
moritz ShimmerFairy: aye 07:42
masak let's provide an easy opt-in for the nonstricters and be done with it.
07:42 salva joined
ShimmerFairy masak: what's the P5 commandline option for 'no'ing modules? 07:42
moritz --nostrict :-) 07:43
masak moritz: I've also heard the words "hot" and "cold" used for "live" and "on-demand". I guess it comes down to being unable to do, or uninterested in, retroactive replay.
oha the issue seems that -M-strict or -Mnostrict isn't working
ShimmerFairy moritz: there isn't an obvious subject line, could it be "killer advantages" ?
masak moritz: like, a mouse isn't likely to save up its old cursor positions just 'cus you subscribed late.
moritz ShimmerFairy: yes, deep in that thread
masak moritz: (and there might not be a use case for that.) 07:44
ShimmerFairy For the record, I still think pragmas should have separate 'yes'/'no' keywords, and that modules being 'no'd doesn't seem to make sense to me, at least in P6-land
(and user-defined pragmas, as I understand them, are just slangs for Perl 6. No need to confuse module loading and compiler pragmas, in my opinion) 07:45
I've always thought 'use' for enabling pragmas was weird, btw, I just didn't know the P5 legacy reasons until recently :) 07:49
07:52 abraxxa joined
moritz ShimmerFairy: I don't find it weird, because there are no clear-cut limits between pragmas and "real" modules 07:53
ShimmerFairy moritz: to me, pragmas have always been compiler flags, more or less. I don't think user-defined ones have been possible until recently, whenever slangs appeared. 07:54
especially since P6 at least currently has no idea what 'no' means for modules, IIUC, so the 'no' disabling keyword is purely a pragma thing. 07:55
RabidGravy yeah, after all if one was to make a user defined "pragma" you'd almost certainly have to "use" the implementation at which point having to do something else to activate it becomes a bit redundant
nine FWIW most pragmas in Perl 5 nowadazs are really user defined modules. 07:56
The same will probably be true for Perl 6 at one point.
ShimmerFairy I'm just so used to pragmas being just a collection of flags handled by Grammar.nqp that the idea of them being module-like is crazy talk to me :P 07:57
nine In Perl 5 I use common::sense; in all my code that does use strict; use warnings; use utf8; yada yada for me 07:58
RabidGravy It's possible that the term "pragma" isn't particularly useful
"pragmatic module" may work better
lizmat Granada, here we come! 08:01
&
08:01 lizmat left
ShimmerFairy At the very least, I'd appreciate a divide between compiler flags and modules of any kind :) 08:01
RabidGravy make sure you don't go Grenada instead
masak is also almost about to leave for Granada
ShimmerFairy (not that it's a big deal for me either way, esp. at this point in P6 development. It's more one of those "would be nice" sorts of things for me ☺) 08:02
RabidGravy ShimmerFairy, I'd probably agree with you
mohij_mobile .tell tadzik I'm thinking about creating a plenv lookalike for Perl 6.Do you think it's a good idea to do it in perl5 (instead of bash)? Would it make sense to integrate this into rakudobrew or would a separate package be better?
yoleaux mohij_mobile: I'll pass your message to tadzik.
mohij_mobile .tell tadzik: Pros for perl: Works on Windows/BSD/..., that's what rakudobrew is written in. Pros for bash: Small startup time, same as all the other *env things. 08:04
yoleaux mohij_mobile: What kind of a name is "tadzik:"?!
mohij_mobile .tell tadzik Pros for perl: Works on Windows/BSD/..., that's what rakudobrew is written in. Pros for bash: Small startup time, same as all the other *env things.
yoleaux mohij_mobile: I'll pass your message to tadzik.
ShimmerFairy RabidGravy: in particular, I'd like someday for 'use warnings' to be like gcc's -w flags; that is 'use warnings :!P5 :empty_angles :etc' :) 08:05
08:07 virtualsue joined, blackcat_ joined 08:08 araujo_ joined
[ptc] slowly gets ready for Granada... 08:08
08:11 araujo left 08:19 pmurias joined
pmurias hi 08:20
08:23 espadrine_ joined, zacts left
pmurias any #perl6'er already in Granada? 08:23
08:24 araujo_ left, zacts joined
RabidGravy judging by my facebook feed, half of London is in Granada already 08:29
08:31 cognominal joined, araujo joined, araujo left, araujo joined 08:33 Ven joined
masak enjoys imagining that being literally true 08:34
08:35 laouji left 08:38 larion joined 08:39 laouji joined
masak airport & 08:42
08:43 baest_ is now known as baest
[ptc] have a good flight, masak 08:51
08:56 Ven left 09:00 thou joined 09:03 Ven joined 09:05 thou left 09:08 leont joined 09:10 mattp_ joined
RabidGravy rsync is not playing nicely with the rest of my computer this morning 09:16
09:16 TEttinger left
moritz bad rsync, no cookie 09:17
09:21 llfourn joined 09:23 laouji left 09:26 llfourn left 09:27 laouji joined 09:32 cschwenz1 left, laouji left
_itz_ packs for .es 09:33
09:34 leont left 09:44 pochi joined 09:46 rmgk left, rmgk joined
pink_mist mohij_mobile: how feasible is it even to use a plenv-alike on windows? if you want to target BSD why not do it in sh rather than bash? 09:49
09:57 zakharyas left
RabidGravy is there a way of detecting the "WARNING: unhandled Failure detected in DESTROY" programatically so that I can turn them into test failures? 09:58
09:59 andreoss joined, salva left
andreoss m: constant \x = 1,2,3; x.shift; x eq [2,3]; 09:59
camelia rakudo-moar 5ba44f: OUTPUT«WARNINGS:␤Useless use of "eq" in expression "x eq [2,3]" in sink context (line 1)␤Method 'shift' not found for invocant of class 'Parcel'␤ in block <unit> at /tmp/FfAurrze8A:1␤␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«WARNINGS:␤Useless use of "eq" in expression "x eq [2,3]" in sink context (line 1)␤Method 'shift' not found for invocant of class 'List'␤ in block <unit> at /tmp/eM19FvulYJ:1␤␤»
andreoss m: constant \x = 1,2,3; x.shift; say x eq [2,3];
camelia rakudo-moar 5ba44f: OUTPUT«Method 'shift' not found for invocant of class 'Parcel'␤ in block <unit> at /tmp/8U0DusFBb0:1␤␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«Method 'shift' not found for invocant of class 'List'␤ in block <unit> at /tmp/CEBaJ2616L:1␤␤»
andreoss m: constant \x = @ _ 1,2,3; x.shift; say x eq [2,3];
camelia rakudo-moar 5ba44f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aD2L5iH3E3␤Two terms in a row␤at /tmp/aD2L5iH3E3:1␤------> 3constant \x = @7⏏5 _ 1,2,3; x.shift; say x eq [2,3];␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ …»
GLRelia rakudo-moar 57b7eb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qxXimF404l␤Two terms in a row␤at /tmp/qxXimF404l:1␤------> 3constant \x = @7⏏5 _ 1,2,3; x.shift; say x eq [2,3];␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ …»
andreoss m: constant \x = @ = 1,2,3; x.shift; say x eq [2,3];
camelia rakudo-moar 5ba44f: OUTPUT«True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«True␤»
andreoss mutable constants
m: constant \x = (1,2,3).Array; x.shift; x eq [2,3]; 10:01
camelia rakudo-moar 5ba44f: OUTPUT«WARNINGS:␤Useless use of "eq" in expression "x eq [2,3]" in sink context (line 1)␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«WARNINGS:␤Useless use of "eq" in expression "x eq [2,3]" in sink context (line 1)␤»
10:01 Ven left
andreoss m: constant \x = (1,2,3).Array; x.shift; say x eq [2,3]; 10:01
camelia rakudo-moar 5ba44f: OUTPUT«True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«True␤»
10:03 dayangkun left
mohij_mobile pink_mist: How would you assess the Windows user base wrt how they currently use Perl5 and will/should use Perl6? 10:06
10:06 [Sno] left 10:07 prammer joined 10:08 [Sno] joined
andreoss m: constant \x = 1.Array; say ++x[0]; 10:08
camelia rakudo-moar 5ba44f: OUTPUT«2␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«2␤»
andreoss m: constant \x = 1.Int; say ++x;
camelia rakudo-moar 5ba44f: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/hTzWzyYb8x:1␤␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/zD6n9GTOtz:1␤␤»
RabidGravy mohij_mobile, lot's of people use p5 on windows, the vast majority use a packaged build such as strawberry perl
pink_mist mohij_mobile: I'm not thinking the issue is one of userbase, but rather a technical issue ... granted I'm not clear on exactly how a plenv works, but will it actually be able to do the same things in a windows shell? doesn't it need to do some subshells to set env variables? how will that even work?
10:08 pullphinger left
mohij_mobile pink_mist: plenv uses shims to delegate to the respective executables. Rakudobrew does that already (and also on windows). 10:10
pink_mist oh I see, then carry on :P 10:11
mohij_mobile Possible caveat: I am pretty sure one has to put filename suffixes on all the shims to make windows atomatically pick the correct interpreter (no shebang support on windows)
10:13 llfourn joined
RabidGravy yes, it has to be either .BAT or .CMD on windows 10:13
(assuming you want it run under the default command shell) 10:14
mohij_mobile RabidGravy: or .pl if using Perl proves to be feasable.
RabidGravy assuming that the installed perl added the association of course 10:15
mohij_mobile One can set Ending -> Interpreter mappings, if I remember correctly Strawberrry does that by default.
pink_mist does perl6 depend on perl5 anyway? or would one need to install perl5 in order to make use of pl6env? 10:16
RabidGravy yeah see "assoc" I think it's called, or do it with powershell
moritz pink_mist: rakudo depends on perl 5 at run time
pink_mist: erm, sorry, at configure time
pink_mist: and for building; but not for running
pink_mist right, and pl6env will need to be building and configuring its perl6es anyway, so I guess that doesn't matter for this then =) 10:17
mohij_mobile I am still thinking about what a good workflow on windows could look like (assuming Inline::Perl5 will be required in the forseable future). Strawberrry -> rakudobrew -> Perl6 is the best I could come up with up to now.
Custom perl5 versions are missing in that workflow though. Could be a tough one to create a plenv in Perl though... :-( 10:19
andreoss can i have immutable array? 10:21
10:22 pmurias left
moritz andreoss: no; arrays are mutable by definition 10:22
tadzik computer, messages
yoleaux 08:02Z <mohij_mobile> tadzik: I'm thinking about creating a plenv lookalike for Perl 6.Do you think it's a good idea to do it in perl5 (instead of bash)? Would it make sense to integrate this into rakudobrew or would a separate package be better?
08:04Z <mohij_mobile> tadzik: Pros for perl: Works on Windows/BSD/..., that's what rakudobrew is written in. Pros for bash: Small startup time, same as all the other *env things.
tadzik mohij_mobile: well, apart from its name rakudobrew is much more like plenv than perlbrew :)
mohij_mobile: what do you want to create that rakudobrew isn't? 10:23
mohij_mobile that's what I'm thinking :-)
I'm mostly interested in local/.perl-version support
tadzik what's that? 10:24
mohij_mobile But if it turns out easy I'd go for full pl* command support.
put a .perl-version file with the version number you want in a folder and when you are in that folder that version of perl is automagically used
10:25 jdias joined
pink_mist that's neat 10:25
10:27 jdias left
tadzik oh! 10:29
very cool
10:30 jdias joined
mohij_mobile the plenv + carton combination is very useful in creating reproducable runtime envionments for perl applications. I'd like extend that for projects using perl6+Inline::Perl5. 10:31
food&
10:31 jdias left 10:41 rindolf left, mprelude joined 10:46 virtualsue left, virtualsue_ joined, virtualsue_ is now known as virtualsue
cdc m: my @array; @array.push(a => 1) 10:47
camelia ( no output )
GLRelia ( no output )
cdc m: my @array; @array.push(a => 1); @array.say
camelia rakudo-moar 5ba44f: OUTPUT«␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«[]␤»
cdc m: my @array; @array.push((a => 1)); @array.say
camelia rakudo-moar 5ba44f: OUTPUT«a => 1␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«[a => 1]␤»
cdc it's OK 10:48
10:48 thou joined 10:51 rindolf joined 10:53 thou left, virtualsue left, salva joined 10:55 pecastro joined
cdc m: my $a = class { has Str @.strs }.new(strs => <hello world>); my @b; given $a { @b.push: { 1 => .strs[0] } }; @b.perl.say 10:57
camelia rakudo-moar 5ba44f: OUTPUT«[-> ;; $_? is parcel { #`(Block|65994176) ... }]<>␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«[-> ;; $_? is parcel { #`(Block|65854248) ... }]␤»
cdc m: my $a = class { has Str @.strs }.new(strs => <hello world>); my @b; @b.push: { 1 => $a.strs[0] }; @b.perl.say
camelia rakudo-moar 5ba44f: OUTPUT«[{"1" => "hello"}]<>␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«["1" => "hello"]␤»
cdc is this ^^ expected? 10:58
ie, why in the first case this creates a Block, whereas it creates a Hash in the latter case? 10:59
timotimo if you use $_, that's a sign for wanting a block
(and you used $_ implicitly via ".strs[0]")
FROGGS aye 11:00
cdc: this would have returned a hash just a week ago... I fixed a bug there to return a block
11:00 zakharyas joined
cdc timotimo: ho, I see 11:01
FROGGS: yes, it used to work :)
FROGGS cdc: because if it wasn't a block, it would translate to: { 1 => Any.strs[0] }
cdc FROGGS: can I take a look at the commit/ticket?
FROGGS hold on
cdc: github.com/rakudo/rakudo/commit/ab...6a68a77f0b 11:02
cdc FROGGS: thanks!
FROGGS RT #125767
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125767
FROGGS m: my $a = class { has Str @.strs }.new(strs => <hello world>); my @b; given $a { @b.push: { 1 => $_.strs[0] } }; @b.perl.say 11:03
camelia rakudo-moar 5ba44f: OUTPUT«[-> ;; $_? is parcel { #`(Block|81705808) ... }]<>␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«[-> ;; $_? is parcel { #`(Block|71678872) ... }]␤»
FROGGS and that $_ refers to the block it is in...
so yes, I still think it is correct
cdc FROGGS: I understand now, thanks! 11:06
for the record, one just has to use a pointy block with a named parameter in this case. 11:07
m: my $a = class { has Str @.strs }.new(strs => <hello world>); my @b; given $a -> $X { @b.push: { 1 => $X.strs[0] } }; @b.perl.say 11:08
camelia rakudo-moar 5ba44f: OUTPUT«[{"1" => "hello"}]<>␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«["1" => "hello"]␤»
ShimmerFairy Yeah, generally when you find yourself nesting $_-using scopes, you should either name some of them or contend with $OUTER::_ and the like :P 11:13
11:21 Akagi201 joined 11:24 SamuraiJack joined 11:33 rindolf left
jdv79 finally got to the hotel 11:36
11:39 Ven joined 11:47 zakharyas left 11:54 abraxxa left, abraxxa joined
daxim what does {:!e, :!q, :!r, :!t, :!w}<> mean? and in general, how do I look up parts of the syntax? p3rl.org/data equivalent? 11:57
cdc daxim: where did you find this? To me the trailing <> looks like a glitch from pre-GLT ages 11:59
11:59 Ven left
daxim output of .perl method, and rakudo was just brewed today 12:00
Juerd I don't know what the empty <> would be used for, but {} is a hash, :!e is a pair (e => False)
cdc daxim: :!e is the short for "e => False"
m: {:!e, :!q, :!r, :!t, :!w}.perl.say
camelia rakudo-moar 5ba44f: OUTPUT«{:!e, :!q, :!r, :!t, :!w}␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«{:!e, :!q, :!r, :!t, :!w}␤»
timotimo heh 12:01
our .perl is "clever" enough to abbreviate that
cdc daxim: about the syntax part, you might take a look at S02
timotimo m: {:!e, :!q, :!r, :!t, :!w}.fmt("%s %s").say
camelia rakudo-moar 5ba44f: OUTPUT«q False␤e False␤w False␤t False␤r False␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«q False␤e False␤w False␤t False␤r False␤»
cdc daxim: design.perl6.org/S02.html 12:02
xfix m: {e => False}.perl.say 12:04
camelia rakudo-moar 5ba44f: OUTPUT«{:!e}␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«{:!e}␤»
xfix Pretty much.
RabidGravy is on the verge of breaking his computer 12:06
so I can do "require Foo; say ::('Foo').^methods" and all is good 12:07
but in the actual code that I want to do it in, it isn't working
which is somewhat aggravating 12:10
12:10 llfourn left 12:12 AlexDaniel joined 12:14 mohij_mobile left
timotimo i vaguely recall something about things not working perfectly when in the mainline, so perhaps you have to put it into a curly? 12:17
FROGGS RabidGravy: I fear you have to golf it to something rakudobuggable 12:20
RabidGravy: I'll happily try to fix it 12:21
12:22 CIAvash left 12:29 llfourn joined 12:31 Akagi201 left 12:36 thou joined, pullphinger joined
RabidGravy ah, I think I got it 12:38
"use" craps out with circular include detected or whatever 12:39
require just doesn't do it
silently 12:40
12:41 thou left
hoelzro o/ #perl6 12:44
colomon \o 12:45
ShimmerFairy How close is the next rakudo release, ooc? (I won't merge anything major if there's one coming up, just push it as a branch instead) 12:47
moritz ShimmerFairy: I don't quite know; I'm still not clear if there's a MoarVM release or not 12:48
andreoss m: constant \x = $ = 1; x++; say x 12:49
camelia rakudo-moar 5ba44f: OUTPUT«2␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«2␤»
hoelzro ShimmerFairy: according to the release guide, it's on the 17th...but there was supposed to be one on the 20th?
andreoss what is constant in that case?
moritz andreoss: the reference to the container is constant
though one might argue that constant should decontainerize 12:50
ShimmerFairy m: constant \x = $ = 1; x++; say x.VAR.WHAT
camelia rakudo-moar 5ba44f: OUTPUT«(Scalar)␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(Scalar)␤»
ShimmerFairy m: constant \x = 1; say x.VAR.WHAT
camelia rakudo-moar 5ba44f: OUTPUT«(Int)␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(Int)␤»
12:50 pat_js joined
ShimmerFairy moritz: I don't think they should decont, since their entire point is to not force anything into item/list/hash/etc. context :) 12:51
andreoss why does .gist now describes lists as (a b c) without commas? 12:53
ShimmerFairy the brackets are to more clearly show nested list structure without resorting to .perl 12:54
the still-space-separation is because it'd look noisier with commas, at the least for a .gist 12:55
andreoss oh. actually it was without brackets before, sorry
moritz there'a always .perl too
dalek ast: 6104874 | hoelzro++ | S17-lowlevel/lock.t:
Fix TODO test for RT #124793

This test suffers from a multithreading bug known as "lost wakeup". A lost wakeup situation occurs when you have one thread signaling a condition variable, and another waiting on it. What happens is that the signal happens before the wait, and the thread waiting waits for a signal that will never come. Normally, it occurs because one side forgot to lock the mutex guarding the condition variable. However, since conditional variables are typically used to guard resources whose condition changes, it can still occur when using locks. The solution was to have the waiting thread check an artificial resource for readiness, and the signaling thread to make that artificial resource ready.
12:56
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124793
hoelzro where is the source for dalek? 12:57
ShimmerFairy hoelzro: is that why lock.t always failed for me when I set TEST_JOBS ?
hoelzro ShimmerFairy: that's a separate reason
FROGGS RabidGravy: are you doing 'require Foo' or 'require "Foo.pm"'?
hoelzro but I believe I know why that is too
RabidGravy require Foo
hoelzro lock.t calls $t1.join...but join() is not a method on Thread 12:58
it's a method on Any
FROGGS RabidGravy: hmmm, sad, I was hoping for the opposite
hoelzro which is just self.list.join
FROGGS RabidGravy: though, that sounds solvable
12:58 Ven joined
hoelzro so Thread.^find_method('join') doesn't actually do anything thread-related 12:58
RabidGravy it definitely is the circular inclusion thing
hoelzro should I change the test to use finish instead of join, or add Thread.join as a synonym to Thread.finish? 12:59
I'm leaning towards the latter
RabidGravy I removed the offending use out of the file that I was trying to require and it all works
moritz hoelzro: the source for dalek: git://github.com/Infinoid/dalek-plugins.git
[Coke] waves from his desk at work. :|
hoelzro o/ [Coke]
moritz: thanks! 13:00
13:01 sufrostico joined
hoelzro I'll just add Thread.join, and will beg for forgiveness later if need be =) 13:02
moritz ++hoelzro
13:04 llfourn left 13:06 [TuxCM] joined
AlexDaniel m: m: say [::]/\/\/\/\/\/\[:/ 13:07
camelia rakudo-moar 5ba44f: OUTPUT«13␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«13␤»
AlexDaniel hmmmmmmm
11 was a better number irclog.perlgeek.de/perl6/2015-07-24#i_10948795 13:08
13:08 Ven left
dalek kudo/nom: fd8b378 | hoelzro++ | src/core/Thread.pm:
Add Thread.join as an alias for Thread.finish

A lot of people from other programming environment backgrounds will likely try Thread.join, and get very confused when it compiles and runs but does not synchronize. Also, the chances of wanting to perform a string join with a thread is low
13:10
timotimo maybe we should have Any be one step further down a derivation chain and having something a bit less magicy derived from Mu and have that as the type restriction for most things ... 13:14
moritz we have that already, it's called Cool 13:15
we're just not consequent in putting stuff into Cool instead of Any
13:15 salva left
timotimo oh? 13:18
ShimmerFairy On the other hand, if you were to move stuff to Cool, then classes still interested in those would have to inherit _everything_ Cool does. I wonder what methods on Any could be put in Cool but shouldn't force a user to 'is' Cool.
timotimo well, join is something to use with lists and Any is for things that are elements, but can act like lists
moritz or we could just stop pretending that Any is a one-element list 13:19
13:20 muraiki joined
ShimmerFairy I don't think I'd mind that, but would it break anything major? 13:20
moritz nothing major, just many details 13:21
ShimmerFairy (I think just stuff like Any.List -> List.new(self) would be sufficient if we were to stop pretending)
moritz for example, currently list.pick returns the picked element, not a one-element list
and that currently DWIMs both when used as an element and a list 13:22
ShimmerFairy Without knowing any of the nasty details underneath such a change, I think I'd like a greater distinction between items and lists, and specifically not confusing items and singular lists :) 13:24
FROGGS ShimmerFairy: you'd have to convince TimToady then :o)
ShimmerFairy FROGGS: Like I just said, I'm nowhere near qualified to do that :P
13:25 RabidGravy left
ShimmerFairy It's never bothered me, really, I'm just saying that the idea of making lists and items distincter has possibly a nice sound to it :) 13:25
13:25 skids joined
hoelzro what would be a good cut-off point for log messages from Git push events? 13:26
I no longer want to subject the entire channel to the novels I push into git commits =)
moritz hoelzro: 50 lines?
hoelzro: I like reading long commit messages here :-)
13:26 Ven joined
hoelzro oh, you do? 13:26
colomon long commit messages are good. :)
ShimmerFairy hoelzro: I like writing long commits, and I'm imminently going to push a branch full of 'em :P 13:27
hoelzro mwahahaha
ok, then I won't do anything!
FROGGS hoelzro: I also like long messages... so please dont touch it :o) 13:28
hoelzro got it!
FROGGS $ perl6 -e 'BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); say Test' 13:39
(Test)
\o/
ShimmerFairy \o/ 13:40
I'm assuming that's some module work there? :)
13:40 Ven left
FROGGS aye 13:40
ShimmerFairy (er, S11/S22)
13:41 rindolf joined
JimmyZ FROGGS: Does it mean faster startup? 13:42
FROGGS JimmyZ: no, it just is about saner code
hoelzro I wrote a mail about dealing with deprecations leaving rakudo this month: www.nntp.perl.org/group/perl.perl6....11175.html 13:43
13:44 visitor1 is now known as shinobicl
FROGGS +1 to that 13:44
13:44 shinobicl is now known as shinobi-cl
FROGGS dunno if we need a branch though 13:44
ugexe are CU things going to still be cached by their path in the future? 13:45
13:45 khw joined
FROGGS ugexe: most likely, yes 13:46
err...
yes, confirmed
ugexe an odd related problem from months ago was using CompUnit to precompile a monkey-type'd core module. it would fail trying to load the monkey-type'd class, just without the monkey-typing
13:47 RabidGravy joined
shinobi-cl Hi, i wrote a module some time ago, havent tested with latest releases and only with Rakudo... This GLR has anything to do with modules? Or more with core Perl6 functionality? 13:47
dalek osystem: bebdc45 | (Sterling Hanenkamp)++ | META.list:
adding P6SGI 0.4.Draft to the ecosystem
FROGGS ugexe: hmmm, I guess I'd need an example or spectest...
RabidGravy shinobi-cl, it would be prudent to test the module against the glr-ed rakudo
ugexe FROGGS: additionally the module in question is *already loaded*, i.e. was being used by the module trying to precompile it 13:48
FROGGS ugexe: ohh well, that's a problem 13:49
ugexe ill try to dig up the problem bit of code if i can find it and golf it down sometime
FROGGS ugexe: also moarvm remembers CUs by path
ugexe i see. so if one were to monkey-type CURLI so they could access %!dists (%dist{$path} = module) and change something it would likely not work? 13:52
FROGGS I don't understand the connection of monkey-patching a built-in class and precompiling some random module... 13:53
ugexe i think it might have been CU that I was monkey patching 13:54
dalek kudo/cu_load: 78cf343 | FROGGS++ | src/core/CompUnitRepo.pm:
simplify handling of "use ...:from<...>"
13:55
kudo/cu_load: f010b7b | FROGGS++ | src/core/CompUnit (2 files):
move module loading code from CUR to CompUnit
muraiki zostay: if the p6sgi response is a promise but the message body is a supply, shouldn't a failure in the supply technically invalidate the promise? I guess I'm confused about embedding something that doesn't have the same sense of finality as a promise in a promise
FROGGS ugexe: ohh, and then it gets recomposed and if forgets about the lexical %instances and such?
13:56 rurban joined
ugexe yeah 13:56
moritz m: my $s = Supply.new; my $p = s.Promise; $s.fail("foo"); say $p.status 13:57
camelia rakudo-moar fd8b37: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/Mskbvqh_H9:1␤------> 3my $s = Supply.new; my $p = s.Promise7⏏5; $s.fail("foo"); say $p.status␤Couldn't find terminator .␤at /tmp/Mskbvqh_H9:1…»
GLRelia rakudo-moar 57b7eb: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/ytlKEQ5rhJ:1␤------> 3my $s = Supply.new; my $p = s.Promise7⏏5; $s.fail("foo"); say $p.status␤Couldn't find terminator .␤at /tmp/ytlKEQ5rhJ:1…»
13:57 Ven joined
moritz m: my $s = Supply.new; my $p = $s.Promise; $s.fail("foo"); say $p.status 13:57
camelia rakudo-moar fd8b37: OUTPUT«Method 'fail' not found for invocant of class 'Supply'␤ in block <unit> at /tmp/8UOZGPrIRl:1␤␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«Method 'fail' not found for invocant of class 'Supply'␤ in block <unit> at /tmp/XjbbJI1ooT:1␤␤»
moritz m: my $s = Supply.new; my $p = $s.Promise; $s.quit("foo"); say $p.status
camelia rakudo-moar fd8b37: OUTPUT«Broken␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«Broken␤»
FROGGS m: use MONKEY-TYPING; class Foo { my $bar; method baz { $bar = 42 }; method flubber { say $bar } }; Foo.new.baz; Foo.new.flubber; augment class Foo { }; Foo.new.flubber 13:58
camelia rakudo-moar fd8b37: OUTPUT«42␤42␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«42␤42␤»
FROGGS ugexe: does not seem that simple^^
moritz m: my $s = Supply.new; my $p = $s.Promise; $s.emit('bar'); $s.quit("foo"); say $p.status
camelia rakudo-moar fd8b37: OUTPUT«Kept␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«Kept␤»
ugexe FROGGS: it would run fine. it was only when precompiled
FROGGS I see 13:59
muraiki moritz: p6sgi isn't turning a supply into a promise; it's a promise that contains a list, with a supply as an element of the list
assuming that's what you're testing :)
moritz muraiki: yes :-) 14:00
14:02 domidumont left 14:03 pat_js left 14:04 thou joined, telex left 14:06 telex joined 14:07 hernanGOA joined 14:09 domidumont joined 14:11 rurban left 14:12 abraxxa left
ugexe FROGGS: going over my old comments i can give a more accurate description now. `class Some::CompUnit is CompUnit { method precomp(|c) { nextwith(|c } };` followed by Some::CompUnit.precomp(blah). This would work in most cases, but a core module that had been monkey-typed (and in case it relates, its `augment class IO::Path`) would be precompiled with `CompUnit` while everything else was precompiled with 14:12
`Some::CompUnit`
14:12 abraxxa joined 14:15 andreoss left, andreoss joined 14:18 rurban joined 14:19 Ven left
RabidGravy eugh "GNOME with Wayland" doesn't do the ssh agent thing 14:20
RabidGravy reboots again
14:20 Possum left, RabidGravy left 14:21 Possum joined 14:24 cognominal left 14:25 pat_js joined 14:26 RabidGravy joined, rurban left 14:27 Ven joined
[Coke] so, in re: august release - My recommendation is that we skip the august release, concentrate on getting glr merged back to mainline and removing the deprecations for the september release. 14:27
since we've already -basically- skipped it, let's just officially skip it.
then we can focus on moving forward instead of trying to catch up. 14:28
ShimmerFairy The only reason I heard for one was to have a recent-ish nom release to have sit on the channel after glr is merged, but then again you don't need a release to set that up :)
muraiki all I've done for rakudo is to find a few bugs, so I have no experience with making a release. but as a user I think that's a reasonable course of action 14:29
14:29 Ven left 14:30 cognominal joined
[Coke] We can put in a placeholder "no-release" message and email it out to the list. I'll start on composing that. 14:31
PerlJam [Coke]++ 14:32
14:36 pmurias joined 14:37 larion left, Guest54260 left 14:38 dalek left, salva joined 14:40 JimmyZ left
ShimmerFairy aw, dalek died :< 14:40
14:40 Ven joined 14:42 synbot6 left 14:44 Util_ left
[Coke] github.com/rakudo/rakudo/blob/nom/...2015.08.md 14:46
14:47 Ven left
pmurias who killed dalek? 14:49
14:49 CIAvash joined 14:50 perl6_newbee joined, Ven joined
ShimmerFairy [Coke]++ looks good to me :) 14:51
14:54 Ven left 14:55 Khisanth left
moritz somebody drove up hack's load to 32 or higher 14:55
now I can't connect to it anymore
FROGGS eww
moritz doing a hard reset now 14:56
14:57 dalek joined, ChanServ sets mode: +v dalek, psch left
dalek p/js: 52c0117 | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement printing to stderr.
15:00
hoelzro pmurias++
15:00 abraxxa left
hoelzro pmurias: by the way, I talked with a few people about having the JS backend live in master, and got a good deal of support for that. how do you feel about it? 15:00
15:02 salva left
pmurias hoelzro: having it in master will help keeping the test suits in sync and fight of bitrot 15:02
will jnthn be at yapc::eu? 15:04
I was hoping to talk to him amount the merge
15:05 cschwenz joined 15:06 Khisanth joined, PerlJam joined
dalek p/js: c4c285c | (Pawel Murias)++ | src/vm/js/nqp-runtime/nfa.js:
Support EDGE_CODEPOINT_LL and the longlit optimalisation
15:06
15:06 diana_olhovik left
FROGGS pmurias: he won't 15:07
15:08 [Coke] joined
pmurias FROGGS: :( 15:09
dalek p/js: 8a21e61 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
A ugly hack the way nqp::atpos_i works needed for NFA construction.

Needs a rework/rethinking of the way arrays are handled to solve properly.
p/js: 6c9e0bc | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 66 to run_tests
15:09 perl6_newbee left
[Coke] +1 on merging nqp/js to master. 15:09
it's not like it's in the way of any of the other impls. 15:10
pmurias there are currently no js specific ifdefs 15:11
15:15 FROGGS left
hoelzro pmurias: that's the idea 15:16
pmurias: I started on a merge last Wednesday; it's quite tricky
but I started powering through it this morning
also, are you opposed to using node-bignum instead of node-bigint? the latter isn't maintained and doesn't work on Node 0.12 15:17
[Coke] throws away today's roast data run due to reboots. 15:26
1,032 RTs remain.
there are 9 tickets currently tagged [GLR] that need review. 15:27
(and probably more untagged that are GLRish)
hoelzro: did you see github.com/rakudo/rakudo/blob/nom/...2015.08.md ? that's partially a response to your email. 15:28
hoelzro looks
15:29 Util joined
[Coke] If we mostly agree on that email, I would say let's 1) merge glr back to nom in rakudo and master in roast; 2) start ripping out deprecations; 3) figure out if anything else -has- to go in september's release. 15:29
hoelzro [Coke]: sounds good to me 15:30
15:32 Alina-malina left 15:35 Alina-malina joined 15:37 rangerprice joined
pmurias hoelzro: I don't have a strong preference for any of those libraries 15:42
hoelzro cool
pmurias hoelzro: any hard parts with the merge? 15:43
hoelzro yes =)
pmurias can I help with anything? 15:44
hoelzro there are a bunch of errors when trying to build it; I don't remember them off hand (something about add_multi_method, iirc?), but I'll keep working on it when I get home
I'm at work right now, but I'll keep working on it afterwards
15:55 andreoss` joined 15:56 andreoss left 15:59 andreoss` left
pmurias hoelzro: re bignum/bigint switch, there seems to be a problem with binary and of negative numbers but once I figure how that's supposed to work I'll switch the library over 15:59
hoelzro pmurias: there's an outstanding issue with bignum for that; I was thinking of forking and issuing a PR to fix htat
but I won't stop you if you want to do that ;)
timotimo heads out until end of day 16:00
16:01 MilkmanDan left
pmurias hoelzro: got a link to the issue? 16:02
hoelzro pmurias: I don't know if there's an actual issue, but there's a mention about it here: github.com/justmoon/node-bignum#differences
16:03 MilkmanDan joined 16:05 larion joined
japhb [Coke]: Your announce doc still contains "The tarball for this release is available" 16:09
16:09 CQ2 left
japhb Otherwise it seems reasonable. I like the idea of just making this a fallout-heavy release and trying to make the next few much less so. 16:10
hoelzro: I'd say until the glr merge has had a couple days to shake out, there shouldn't be any deprecations removal except whatever comes with the merge itself. 16:12
After that, I'd say clear out any really old deprecations first, then the ones that were created more recently. Certainly I think the first round of deprecations could easily be "anything deprecated more than 6 months ago" all in one fell swoop. 16:13
hoelzro japhb: sounds good to me 16:14
japhb What's the current plan for merges? Besides glr, we've got a few interesting merges to do at all levels of the stack, don't we? 16:18
tony-o who is github:daotoad ? 16:19
16:20 pullphinger left, [Sno] left 16:21 pmurias left, [Sno] joined 16:25 spider-mario joined 16:29 mohij joined, rurban joined
hoelzro japhb: speaking of merges, I have a feature branch that changes up Proc::Async a bit, but I'd like more eyes on it: github.com/rakudo/rakudo/tree/proc-async-ready 16:34
cschwenz (sorry for being very much off topic) Anyone here currently at YAPC::Eu? 16:35
hoelzro o/ cschwenz 16:37
cschwenz \o hoelzro :-)
hoelzro cschwenz: this channel is a little quieter than usual, so I'm guessing a lot of the people there aren't on IRC at the moment 16:39
16:39 cschwenz1 joined
moritz hoelzro: 1) I don't like the naming. Why is a method for starting a program "started"? 2) I think it would be much user-friendlier to queue calls that depend on the program having started than having the user do that 16:40
imho the 'await $program.start(...)' thing is a red herring; that only happens in very trivial code; otherwise you wouldn't need the ::Async variant 16:41
16:41 domidumont left
hoelzro re: the red herring - that's a fair point; it's kind of an anti-pattern 16:41
(unless you need to consume both stdout and stderr)
I agree about the naming; I chose something that's not start() so start itself could be deprecated instead of just changing out from under everyone using it 16:42
I would prefer to use start, tbh
moritz well, it might be an anti-pattern, but not pervasible enough to require rename to a worse name
*pervasive
oh, I'm pretty sure modern Proc can consume both stdout and stderr 16:43
16:43 cschwenz left
hoelzro it can, but can it consume interleaved? 16:43
cschwenz1 hoelzro: how about start with a different signature/accepted parameters/whatever it's called?
hoelzro can one do something like select() with the two handles?
dalek kudo/nom: d8ef5ea | coke++ | docs/announce/2015.08.md:
remove ref to tarball in non-release

  japhb++
[Coke] enjoys comfort breakfast, lunch, and beverages. 16:44
hoelzro cschwenz1: hmm...the thing is that my change changes start() from returning a Promise that is kept on child exit, to one that's kept when the child has actually started
cschwenz1 thus you would get to use start and instead of changing out from under everyone, it'll break just like a deprication would 16:45
hmm
16:46 rurban left
hoelzro moritz: would you prefer just breaking await $p.start() behavior instead of using a suboptimal name? 16:47
japhb hoelzro: Does anything ever set ProcStatus to Finished
?
hoelzro japhb: it seems not 16:48
that would be a simple fix, though
japhb Also, is the TapBeforeSpawn check in !supply a race with the 'ready' callback? 16:49
16:49 tping joined, cschwenz1 left
muraiki I know there's a way to do this, but I forget how to do it: a parallel map where order is not important 16:50
hoelzro japhb: which line is that?
er, nvm
japhb New lines 73 and 187 16:51
16:51 rurban joined, rurban left
japhb muraiki: .hyper if order of operations is not important, .race if order of operations *and* order of output is not important. 16:51
muraiki japhb: thanks! your mentioning race reminded me, but I wasn't sure 16:52
japhb Well, technically, those just coerce the pipeline mode.
16:52 larion left
skids m: my @a = 1,2; @a[0,1] = (3..4).map({$_}); @a.say; # PR#522 fixes this. 16:52
camelia rakudo-moar 9b38c7: OUTPUT«3 4␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/7ZfI5AXCl6:1␤␤»
japhb It seems like an interesting GLR side effect is finding places we do unnecessary extra work 16:53
16:54 diana_olhovik joined 16:57 larion joined 17:10 pat_js left 17:15 FROGGS joined
RabidGravy is the "react { whenever ... } " thing fairly settled now? 17:20
17:24 _itz joined 17:26 _itz_ left 17:30 diakopter joined
pierrot good afternoon. how can I verify if a string belongs to the language generated by a Perl6 grammar? 17:31
RabidGravy just feed it to .parse() or do you mean something else? 17:32
17:36 vendethiel joined
RabidGravy e.g. 17:38
m: grammar Foo { token TOP { "foo" } }; say so Foo.parse("foo"); say so Foo.parse("bar")
camelia rakudo-moar d8ef5e: OUTPUT«True␤False␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«True␤False␤»
pierrot I was just looking at this article en.wikipedia.org/wiki/Perl_6_rules, the part where it says how to construct a grammar in Perl6 for the language {a^nb^nc^n: n>=1}. it would be with a rule like this: rule S { (a+) (b+) (c+) <{$0.elems == $1.elems == $2.elems}> }. considering a string, say $str="aabbcc", how can I know if that string is generated by the grammar? 17:39
sorry, I was writing the message while you were writing yours with the example
:P
RabidGravy it's really that simple 17:41
if you just want to validate you don't need to pass any action class (if you have one) as it will just return a defined match or not 17:42
17:43 domidumont joined
pierrot grammar example { rule S { (a+) (b+) (c+) <{$0.elems == $1.elems == $2.elems}> }; then example.parse("aabbcc") would return true, right? 17:46
ugexe you need a TOP 17:47
pierrot what means a "TOP". the initial rule? 17:49
RabidGravy so in your case rule S should be rule TOP 17:51
it is the "entry point" of the grammar
you can supply another rule to the parse method though
e,g: 17:52
m: grammar example { rule S { (a+) (b+) (c+) <{$0.elems == $1.elems == $2.elems}> }; say so example.parse("aabbcc",rule => 'S'); 17:53
camelia rakudo-moar d8ef5e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0akGSVL1He␤Missing block␤at /tmp/0akGSVL1He:1␤------> 3 so example.parse("aabbcc",rule => 'S');7⏏5<EOL>␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BDouYmVROY␤Missing block␤at /tmp/BDouYmVROY:1␤------> 3 so example.parse("aabbcc",rule => 'S');7⏏5<EOL>␤»
RabidGravy m: grammar example { rule S { (a+) (b+) (c+) <{$0.elems == $1.elems == $2.elems}> }}; say so example.parse("aabbcc",rule => 'S');
camelia rakudo-moar d8ef5e: OUTPUT«False␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«False␤»
RabidGravy well apart from the rule not working but hey 17:55
17:56 Calibellus joined
rangerprice Perl is building using yacc ? ANTLR ? ... 17:57
[Coke] Perl 6 Grammers. 17:58
bah. Grammars.
back in the US for 2 days and I already can't spell!
vendethiel
.oO( grammer nazi! wait, no.. )
muraiki m.c. grammer
[Coke] rangerprice: github.com/rakudo/rakudo/blob/nom/...rammar.nqp 18:00
rangerprice oh ok thank
dalek c: 3c2ce32 | paultcochrane++ | lib/Type/Temporal.pod:
Add docs for sleep and friends
18:03
colomon muraiki: “U can’t parse this!” 18:04
muraiki colomon++ 18:05
pyrimidine .oO ( Kelsey Grammer )
18:06 xiaomiao joined 18:07 lea left 18:08 dha joined
dha Good approrpriate-time-of-day-for-your-time-zone! 18:10
[Coke] m: “U can’t parse this!”; # yes I can.
camelia rakudo-moar d8ef5e: OUTPUT«WARNINGS:␤Useless use of constant string "U can’t parse this!" in sink context (line 1)␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«WARNINGS:␤Useless use of constant string "U can’t parse this!" in sink context (line 1)␤»
dha [Coke] - You mentioned that some people are working on the docs. Would it make sense for me to coordinate with said people, or is it all "We don't talk to each other, just write!" ;-) 18:11
japhb .ask nine Given the machine-native guts of github.com/rakudo/rakudo/commit/994fb0aa3f , why doesn't IO::Handle.print have a str multi to avoid the box and unbox of $str in the call to $out.print($str)? I would think that might actually chew up a fair amount of GC and performance during heavy output, especially when you consider that multi sub print() has the same problem. 18:12
yoleaux japhb: I'll pass your message to nine.
[Coke] dha: there is currently no organized effort other than chatting here on IRC that I'm aware of. I would suggest just letting us know when you're working on something here, and the other interested doc folks can chime in, and perhaps you'll inspire some n00bs to contribute some docs at the same tmie. 18:14
dha Ok. The reason I ask is I'm considering doing something wide-ranging and possibly not worth doing. :-) 18:16
18:17 lucasb joined
dha I'm thinking of going through the doc directory and adding a "=comment TODO" to anything that's not documented (as, for instance, there is in variables.pod for C<state>) so we can track what's not done more easily. 18:17
Is that a good idea, an ok idea, or just stupid?
PerlJam After extensive review of your idea over the 10 seconds I've been paying attention to IRC just now, it sounds likea good idea to me :) 18:19
dha Heh.
And what are *your* credentials for 10 second evaluations? ;-) 18:20
PerlJam [Coke]: re your post-glr email ... was anyone annotating the tests for those things that are required for 6.0 versus those things that can be put off to later releases. (i.e. what does 6.0 mean in roast?) 18:21
er, there should be another ? in there
RabidGravy dha, an alternative might be to add an issue on the docs github, that way people will see it without examining the files 18:24
dha RabidGravy - do you have any idea how many things are not yet documented? :-) 18:25
I'm figuring this way you can just grep the damn things and get a count.
PerlJam RabidGravy: once annotated, the docs could be grepped to generate the issue.
18:25 lea joined
RabidGravy PerlJam, this is also true and a good plan :) 18:25
sufrostico hi 18:26
pierrot RabidGravy: sorry, I was away. Why didn't it work?
18:26 SamuraiJack left
PerlJam sufrostico: greetings 18:26
sufrostico anyone with problems to install perl6 on a raspberry pi 2 ?
I'm using rakudobrew
RabidGravy no, it works fine for me
dha ok, then. I'm going to start shoving comments into the docs. wheee.
sufrostico rakudobrew build moar works fine... but when traying to run 18:27
rakudobrew build-panda
it says that it can't find the perl6 command
18:27 pmurias joined
RabidGravy dha, no clear idea. I keep noticing un-documented things all the time 18:27
PerlJam RabidGravy: now you add TODOs for them when you spot them ;) 18:28
dha RabidGravy - Hence my plan. Thank you. :-)
RabidGravy PerlJam, or just add the documentation ;-p
dha That would also be nice. Please feel free to do so for C<state> in variables.pod before I start asking lots of annoying questions about it. :-) 18:29
PerlJam RabidGravy: Sure, but in lieu of the documentation (some things may be complex or take more time to document than you have), you can add the TODO :)
RabidGravy sufrostico, add the location of the perl6 to PATH 18:30
e.g. ~/.rakudobrew/bin/perl6
sufrostico RabidGravy, yep... and it works...
I can call perl6 from the command line
18:35 blackcat_ left
[Coke] PerlJam: there was talk about annotating tests, but no one wants to have to go through and decide what's really a req vs. what happens to be working that way right now. It's a huge job. 18:35
dha: there's already a WANTED section...
[ptc]: any comments for dha on his docplan? 18:36
FROGGS $ perl6 -e 'use Data::Dumper:from<Perl5>; say Dumper [1, 2]' 18:37
[$VAR1 = 1;
$VAR2 = 2;
]
PerlJam [Coke]: I agree, but ... S01:37 naturally raises the question of "what's official?"
FROGGS it is odd to use Perl 5 modules just like that :D
nine++ 18:38
18:38 synbot6 joined
PerlJam S01:37 18:38
synbot6 Link: design.perl6.org/S01.html#line_37
PerlJam stupid bot. Why do you keep dying?
dha [Coke] - yeah, but adding all the undocumented stuff to that a) would make it hard to read and b) would be imprecise and not give any idea of how much still needs work. 18:39
For instance, none of the 13 methods in Baggy are documented.
So, just adding "all methods for Baggy" to WANTED would not give any impression of how much work needs to be done in that particular area. 18:40
RabidGravy there are whole classes not documented
dha If anything that's undocumented has some kind of flag, we can get actual data and munge it as needed.
RabidGravy - yes, but do you know how much work is needed to document a given undocumented class? 18:41
(and by "you" I probably mean "one") 18:42
[Coke] dha: so you'd add stubs to the docs as part of adding hte todos?
RabidGravy the problem with adding whole (empty) class documentation is that the mpty page will just appear in the docs 18:44
[Coke] RabidGravy: I don't think that's a huge problem
encouragement to fill in the void.
PerlJam indeed
RabidGravy so at that point the methods could be stubbed automtically 18:45
[Coke] +1 from me - at least the methods will appear, even if they currently have no docs. bonus points for having some nice text that explains why the space is blank.
FROGGS dalek is so silent :S 18:46
PerlJam +1 from me too FWIW
dha Not sure what you mean by stubs. I'm looking at variables.pod and under "=head2 The C<state> Declarator" theres a line that reads "=comment TODO"
pink_mist +1
RabidGravy a spot of grep, a spot of sed ypu could do most of the missing classes
dha I'm thinking of adding that wherever something has a heading, but no information.
I admit, that fact that Pod::Parser isn't passing tests is not making me happy in this context. 18:47
RabidGravy yeah then "=head2 method foo\n\n=comment TODO"
dha That, of course, would only do methods or other things that only have single words to them. 18:49
FROGGS .tell lizmat look at the cu_load branch when you got some time... I fell pretty comfy with it
yoleaux FROGGS: I'll pass your message to lizmat.
dha I'm probably going to try to whip something up that'll find things like "=head2 Some Stuff Here\n\n=head2" 18:50
RabidGravy oh, I was meaning the generation of stub documentation for missing classes 18:51
dha oh, yes. of course. Yes, that would certainly do.
The thing is, if the classes aren't already in the docs, I probably don't know about them. :-) 18:52
18:52 whiskey-drinking joined
dalek kudo/cu_load: 269107e | FROGGS++ | src/core/CompUnit.pm:
silence warning when loading modules
18:52
kudo/cu_load: ba2ade8 | FROGGS++ | src/ (2 files):
hook I::P5's ModuleLoader to CUR, not P6::ML
kudo/cu_load: c3a8c25 | FROGGS++ | src/core/CompUnitRepo.pm:
make CU's file path absolute
FROGGS ohh, better late than Ni
dha So... I would, at this point at least, just be adding TODO comments to existing empty headings.
FROGGS +1 18:53
18:55 pmurias left
PerlJam my ack of src/core shows 405-ish classes, most of which are X:: classes 18:55
170 non X:: classes 18:56
whiskey-drinking in expression @arr[*-1] what is the star? Whatever object? 18:57
PerlJam whiskey-drinking: aye, that's a Whatever
RabidGravy m: say *.WHAT 18:58
camelia rakudo-moar d8ef5e: OUTPUT«(Whatever)␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(Whatever)␤»
[Coke] m: say (*-1).WHAT 18:59
camelia rakudo-moar d8ef5e: OUTPUT«(WhateverCode)␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(WhateverCode)␤»
japhb Is the Nativecall for C++ merge waiting on the GLR merge? 19:00
[Coke] I pinged the mailing list in case IRC is dead while people go from SPW to YAPC::EU, but: anyone object if we merge glr back to nom by the end of the day?
PerlJam gist.github.com/perlpilot/12688b954a70fa28f525 for anyone interested in how I used ack or what the list of classes are 19:01
dha PerlJam - ta. 19:02
RabidGravy [Coke], yeah, I juust did three rakudobrews, can you leave it until tomorrow to reduce my feelings of futility ;-)
sufrostico OK, working know... for some reason the perl of the raspi is not getting right the PATH
japhb [Coke]: We're at zero failing spectests and sanity tests when rakudo/glr is paired with roast/glr, yes?
PerlJam [Coke]: Your plan sounded good. I don't object to the merge 19:03
sufrostico I manually edited the rakudobrew script on the line 338 and put the full path
RabidGravy one failing sanity test
japhb RabidGravy: which one?
sufrostico: Did you 'export' the PATH change in the same shell that you used to run following rakudobrew commands? 19:04
RabidGravy the nativecall/16-rt<mumble>08
colomon started a moar-glr module smoke test run a few minutes ago...
PerlJam [Coke]: plus, if that's the way we're headed, merging will give those people who have code that may be affected by it more time to do something about it before the Sept. release
sufrostico japhd yep 19:05
echo $PATH shows the right paths
japhb PerlJam: Don't we also need to document (at least) the role and grammar decls as well?
PerlJam japhb: Good point.
japhb sufrostico: that's odd then 19:06
RabidGravy: Sounds relatively minor, but clearly *someone* will notice, since it came from an RT 19:07
[Coke]: Yeah, I'm in favor of merging now/today.
19:07 rurban joined
japhb Who's got the patch pumpkin on C++ nativecall? 19:07
RabidGravy japhb er, at least one of my modules doesn't work at all because of it 19:08
pink_mist sufrostico: what does: export | grep PATH #give you?
PerlJam japhb: gist updated
japhb RabidGravy: Are you the one that created the RT? :-)
RabidGravy yes
sufrostico japhb, ok.. working know ... I'm a horse... the PATH does not support the ~ symbol
pink_mist normally your shell will expand that for you before it winds up in the variable 19:09
japhb sufrostico: Oh yeah, not literally (so not single quoted when you set the PATH). It has to be expanded before the assignment happens. :-)
RabidGravy I've actually stopped working on audio stuff as not being able to deal with native flooats is somewhat of a showstopper
japhb RabidGravy: Oh, is it just failing in general, not nom- or glr-specific? 19:10
RabidGravy both
lucasb m: my @a = <a b c>; say @a[ -> *@b { 1 } ]
camelia rakudo-moar d8ef5e: OUTPUT«b␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(timeout)»
japhb RabidGravy: OK, so it may be a horrible pain, but it doesn't affect the glr merge.
RabidGravy no, not at all 19:11
japhb hoelzro, FROGGS: Is one of you the pumpkin holder for C++ nativecall? 19:12
RabidGravy sufrostico, what shell? 19:14
I just shove that exact path in the .bashrc and it's all good
dha Ok, I'm going to start adding TODOs. If we decide we don't like them, we can revert. This is why we have a VCS, right? 19:18
PerlJam dha++
skids lucasb: really glr is kind of "right" on that one. The arity of a slurpy is Inf, so it tries to feed it infinitely many copies of the array length for WhateverCode purposes. I could probably add a commit to warn on that to PR522 19:19
19:19 cognominal left
FROGGS japhb: I probably did the most in that area... 19:20
skids Hrm what are the rules for Inf-arity WhateverCode elsewhere...
FROGGS I should continue on this soonish :S 19:21
dalek c: b7fb7c9 | (David H. Adler)++ | lib/Type/Baggy.pod:
Added TODO comments to lib/Type/Baggy.pod
lucasb skids++, yeah, I really don't know what it should do. I was just showing a corner case...
m: say |(42 xx *)
camelia rakudo-moar d8ef5e: OUTPUT«␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(timeout)» 19:22
lucasb I wonder why camelia ends up with an empty output
skids lucasb: Partyly it is because the slice code treats all closures as WhateverCode. I did not fix that, because my money is on someone relies on it. 19:23
Only taking WhateverCode would make it difficult to construct an Inf-arity one. 19:24
19:26 diana_olhovik left, domidumont left
[Coke] dha: maybe also add a note to WANTED about the plan for TODO comments. 19:26
dha [Coke] - will do, thanks. 19:27
[Coke] dha++
RabidGravy speaking of docs, are $*SPEC and the IO::SPec::* sub-classses staying for the foreseeable? 19:29
dalek c: 37f6c07 | (David H. Adler)++ | WANTED:
Added TODO plan to WANTED
19:30
RabidGravy I actually started them then someone hinted they might not be staying
19:31 diana_olhovik joined
japhb FROGGS: What prevents merging C++ nativecall after the GLR merge (+ perhaps a bit of shakeout)? ISTR you saying it was not complete, but that it was at least partially functional. I'd like to prevent future bitrot, and get more people looking at it, by getting it on the main branch. 19:31
vendethiel japhb: IIRC, windows stuff 19:32
19:33 emilbarton joined 19:34 Possum left, darutoko left, Celelibi left, Sgeo_ left, gfldex left, GLRelia left, plicease left, MilkmanDan left, cibs left
japhb vendethiel: If it is *only* Windows stuff that blocks it, that is not IMHO sufficient reason to keep it out. 19:34
19:34 MilkmanDan joined
vendethiel japhb: i'm not 100% sure. (btw, remember our lead dev is windows :P) 19:34
19:35 Possum joined, darutoko joined, Celelibi joined, Sgeo_ joined, gfldex joined, GLRelia joined, plicease joined, Guest63243 joined
vendethiel (well, is *working* on windows, at least...) 19:35
emilbarton hi, I get: no such attribute '$!buffer' in method accept at Socket/INET.pm:118 trying to launch a test server (my $Listen = IO::Socket::INET.new(:listen, :localport(3333));)
japhb vendethiel: Yes, but he's not doing C++ Nativecall work.
19:35 dustinm` joined
japhb Unless you meant that C++ nativecall *breaks the build* on Windows .... 19:35
19:35 cibs joined 19:36 CIAvash left
vendethiel japhb: I don't think it does. I just meant - in general - that we can't really afford to treat windows as a second-class citizen :P 19:38
emilbarton maybe you moritz could explain, as you wrote this piece of code 19:40
moritz emilbarton: sounds like a bug; not much to explain 19:41
emilbarton should I add an attribute to new? 19:42
moritz in fact I don't know about the $!buffer syntax 19:43
or better a 'has' 19:44
19:44 laben joined
laben hello #perl6, how are you all doing? 19:45
tadzik sweaty
weather awful
dha ok, I guess.
moritz emilbarton: sorry, I have no brain capacity left today; feel free to ask me again tomorrow
emilbarton all right moritz I'll try in the morning then 19:46
muraiki emilbarton: I'm able to do this without any errors: perl6 -e 'my $Listen = IO::Socket::INET.new(:listen, :localport(3333)); sleep;'
do you have a recent rakudo?
emilbarton yes
laben m: for 1 { LAST { say "last!" }; next; }
camelia rakudo-moar d8ef5e: OUTPUT«last!␤»
GLRelia ( no output )
lucasb I think $!buffer is a jvm thing, isn't it? 19:47
emilbarton yes
lucasb emilbarton: are you on jvm?
oh, ok
emilbarton no
muraiki ah, I'm using moarvm
laben ok, let's check what happened wrt ecosystem
19:47 Possum left, darutoko left, Celelibi left, Sgeo_ left, gfldex left, GLRelia left, plicease left, Guest63243 left
emilbarton bur muraiki, lucasb, the error occurs when my $conn = $Listen.accept; 19:48
muraiki emilbarton: I can do that also without a problem 19:49
what does perl6 --version show?
dha Is there any reason C<for> and C<gather>/C<take> are commented out in control.pod?
emilbarton This is perl6 version 2015.07.2 built on MoarVM version 2015.07 19:50
muraiki heh my perl6 is 2015.07.1-bunchofstuff so you actually have a newer one than me
let me build and we'll see
FROGGS japhb: I can potentially merge it after I checked that it works on linux, windows and mac... 19:51
japhb: though, the problem is I've got no mac :/
jdv79 dha: you're not coming to ::EU? 19:52
19:52 Possum joined, darutoko joined, Celelibi joined, Sgeo_ joined, gfldex joined, GLRelia joined, plicease joined, Guest63243 joined, raiph joined
dha jdv79 - sadly, no. Couldn't get it together in time. 19:52
Going to try for LPW, though.
jdv79 is that soon? 19:53
briefly talked to jim aboout p6 doc effort. i'm not sure he was into it. maybe you could "present" on how to contribute at the next tech meeting. 19:54
idk
dha Dec 12 for LPW 19:55
Yeah, I'm going to try to put something like that together. Although "how to contribute" seems a bit vague. I don't mean the phase is vague, I mean the hows of contributing are vague. :-) 19:56
mohij tadzik: Do you know the reason for using PATH modification in the *NIX shims in rakudobrew instead of directly calling the respective executable? 19:57
jdv79 as that is the day i began i will not be there. not that you asked. just sayin.
japhb FROGGS, vendethiel: I think we should allow merging changes that are just waiting on testing from other OSen, because non-core people on those platforms don't even know to go looking for other branches to test. So we end up with a chicken-and-egg problem getting testing on those other platforms, unless we merge. 19:58
dha jdv79 - so noted. :-) 19:59
japhb That said, we should merge such branches *long* before the next release. :-)
jdv79 dha: i'm sure others have better ideas but even something like "pick a class, diff it to its doc at the routine level. find the deficiencies and address them>
"
would be better than nothing
dha This is probably me being slow, but, what does "diff it to its doc at the routine level" actually mean? 20:00
20:01 diana_olhovik left
muraiki emilbarton: I was able to get the IO::Socket::INET example at doc.perl6.org/type/IO::Socket::INET to work using "perl6 version 2015.07.1-185-gd8ef5ea built on MoarVM version 2015.07-108-g7e9f29e" 20:02
emilbarton: that's what rakudobrew gave me, so I'm not sure about perl 2015.07.2
which is what you have
20:03 whiskey-drinking left
emilbarton ok now I think that I'm using Socket::INET from an earlier perl version 20:03
I just copied it to my newer perl
20:04 espadrine_ left, kjs_ joined
jdv79 i just meant loock for undoc'd routines 20:04
*look
the hotel wifi is a bit laggy ^H
dha ah. ok. 20:05
jdv79 or maybe try to do something relatively simple with p6 using only the docs ^H
(no source diving ^H)
report the issues and if you can fix ghem ^H
i'm just making stuff up at this point but ... can't be that hard) 20:06
:)
emilbarton but muraiki the difference between the versions are This is perl6 version 2015.07.2 built on MoarVM version 2015.07 vs 2015.07.2 built on MoarVM version 2015.07
dha Ok, I'm going to assume that, given the silence on the topic, C<for> and C<given>/C<when> should not be commented out in control.pod. Changing to visible, but documented as TODO for now.
jdv79 - indeed. I've certainly been winging it this whole time. :-)
muraiki emilbarton: you have perl 2015.07.2 and I have 2015.07.1-185-gd8ef5ea 20:07
emilbarton no I mean 2015.07.1-155-gedffe05 built on MoarVM version 2015.07-57-gec051f5 vs 2015.07.2 built on MoarVM version 2015.07
jdv79 i get the feeling moritz might feel teh same way and he's the docs guy
emilbarton muraiki I'm using IO from the earlier one, and I don't know how to get the newer 20:08
dha oops. that should be C<gather>/C<take> above.
muraiki emilbarton: maybe just do a `rakudobrew build moar` and hope for the best :) 20:09
emilbarton no since I've installed first rakudobrew (older) and then perl6 through Fedora (newer) -- but Fedora package manager doesnt propose IO so where could I download it? 20:10
muraiki oh, you installed perl6 through fedora? yeah, I only use rakudobrew
skids lucasb: I pushed a fix for the [-> *@ { }] case to PR#522. I'm not sure |(1 xx *) can be fixed unless/until we have something like a "HintedIterator" role for things that know their Inf-ness or elems without reifying. 20:11
dalek c: 802a261 | (David H. Adler)++ | lib/Language/control.pod:
Took entries that were commented out in lib/Language/control.pod and
jdv79 dha are with/without doc'ed nearby?
muraiki because then i can get the latest stable version, although it seems like you somehow have a newer version from fedora's package manager
jdv79 oh, nm
emilbarton are these versions on github?
jdv79 misfire
muraiki until rakudo hits 1.0 I would recommend not using distribution-provided versions of rakudo
RabidGravy the fedora rakudo is quite uo to date for a packaged version
dha jdv79 - those do not seem to appear in control.pod 20:12
emilbarton muraiki can you give me the address of a repo?
muraiki emilbarton: a repo for what? rakudobrew?
emilbarton: I'd remove the fedora package and then use github.com/tadzik/rakudobrew
RabidGravy I've got both installed, doesn't cause a problem 20:13
emilbarton ok I'll try that maybe -- let's see what moritz says tomorrow
muraiki once you install rakudobrew you'll want to `rakudobrew build moar`
jdv79 i meant misfire about eh nearby part ^H
20:13 telex left
emilbarton thanks muraiki 20:13
lucasb skids++, cool, thanks
muraiki because yeah you probably have somthing crazy going on with different library versions and perl versions
dha Well, since they're not there at all, I guess they're not nearby... :-)
jdv79 they should be doc'ed in that file somwehre
timotimo o/
20:14 emilbarton left
timotimo once rakudobrew is done, you want ... oh 20:14
20:14 telex joined
RabidGravy muraiki, I don't have a problem with having both installed 20:14
dha jdv79 - ok, there are a whole bunch of entries at the end that aren't documented yet. I'll add those. Should that show as one entry or two?
jdv79 i take mine wix without 20:15
*wiz
muraiki RabidGravy: yeah, but I'm not sure why he's experiencing the problem he's experiencing, so this at least gets us on the same page :)
timotimo wizout?
jdv79 i didn't check explicitly but randomly its been said alot ^H
there are lots of holes like that ^H
LHF as they say. as long as you are comfortable writing coherent docs that is 20:16
timotimo: i'll try that next time i'm at Pat's
pretty sure the guy will just yell "what" back at me ^H
dha that would be wit'out. :-) 20:17
unless you mean without wiz.
cheesesteaks are complicated. 20:18
[Coke] 1029 RTs left.
dalek c: d3d7bbf | (David H. Adler)++ | lib/Language/control.pod:
Added with/without to control.pod as per jdv79's suggestion
jdv79 no doubt about that ^H
[Coke] Goal: get us under 1K tickets for the september release.
20:18 brrt joined, darutoko left 20:19 nightfrog left, laben left
sufrostico RapidGravy, the shell its bash 20:19
20:19 kjs_ left 20:20 xiaomiao left 20:21 nightfrog joined
dha Hm. A couple of entries in nativecall.pod have "TBD" as their content. I assume that's "To Be Decided". Should those get TODO comments or not? Thoughts? 20:22
20:22 xiaomiao joined, brrt left
dalek c: 55471e9 | RabidGravy++ | lib/Type/IO/Spec.pod:
Start IO::Spec docs
20:23
c: c2538a8 | RabidGravy++ | lib/Type/IO/Spec.pod:
Add method prototypes

Added TODO comments to TBD entries in nativecall.pod
20:23 dalek left
pink_mist I'd say they should 20:23
RabidGravy oops sorry
dha pink_mist - Yeah, I thought so too. Certainly it can't hurt.
20:24 dalek joined
RabidGravy dha, all with =comment TODO 20:24
20:24 ChanServ sets mode: +v dalek
dha *nod* so mote it be. 20:24
20:24 MilkmanDan left 20:26 MilkmanDan joined
RabidGravy dha, those things in natvecall may not be completely implemented yet 20:26
dha Indeed. But maybe having the TODO comments will give that a push! :-) 20:27
pierrot I'm trying a simpler example than earlier. Suppose I have the following context-free grammar: S -> ab | aSb (of course S, that is the unique variable, is the initial symbol). That grammar obviously generates the language {a^nb^n: n>=1}. Now I'd like to convert it to Perl 6.
I tried:
m: grammar example { rule S { a<S>?b } }; say so example.parse("ab", rule => 'S');
camelia rakudo-moar d8ef5e: OUTPUT«True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«True␤»
pierrot and returns true
but 20:28
m: grammar example { rule S { a<S>?b } }; say so example.parse("aabb", rule => 'S');
camelia rakudo-moar d8ef5e: OUTPUT«False␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«False␤»
20:28 xfix left
pierrot returns false 20:28
what's wrong?
timotimo m: grammar example { regex S { a<S>?b } }; say so example.parse("aabb", rule => 'S'); 20:29
camelia rakudo-moar d8ef5e: OUTPUT«True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«True␤»
timotimo something about the semantics of rule is causing that to not work
c: 4ad2498 | (David H. Adler)++ | lib/Type/IO/Spec (5 files):
Merge branch 'master' of github.com/perl6/doc
timotimo m: grammar example { regex S { :s a<S>?b } }; say so example.parse("aabb", rule => 'S'); 20:30
camelia rakudo-moar d8ef5e: OUTPUT«False␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«False␤»
timotimo sigspace somehow b0rks it for you, but it shouldn't, eh?
i mean, spaces are always optional in sigspace and there are no spaces to be found anywhere
RabidGravy I noticed that before and just thought I hadn't read the docs properly ;-) 20:32
YuviPanda hello!
pierrot so is it a bug?
YuviPanda I wrote a perl6 module! github.com/yuvipanda/perl6-Ident-Client
the docs tell me to ask here to get it added to the ecosystem :)
RabidGravy YuviPanda, make a pull request to github.com/perl6/ecosystem adding your META file to the META.list 20:34
pierrot I'd like to know if it's me that I'm not understanding well how to specify a grammar or it's the Perl 6 implementation that is not working
RabidGravy i.e add raw.githubusercontent.com/yuvipand.../META.info to it 20:35
YuviPanda done! github.com/perl6/ecosystem/pull/55
PerlJam YuviPanda: you're going to want to make sure the name in META.info (currently Ident::Client::Perl) is the same as what's in the module and probably include "depends" and "provides" in your META.info.
lucasb idk if I understand correctly, but the spaces right after and before "{" and "}" are significant?
m: grammar G { rule TOP {a<TOP>?b} }; say so G.parse("aabb")
camelia rakudo-moar d8ef5e: OUTPUT«True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«True␤»
dalek osystem: 635680b | (Yuvi Panda)++ | META.list:
Add Ident::Client

Simple Ident protocol client
osystem: 1e4f697 | RabidGravy++ | META.list:
Merge pull request #55 from yuvipanda/patch-1

Add Ident::Client
YuviPanda PerlJam: whoops, fixing 20:36
PerlJam: has no dependencies, and I guess provides is just Ident::Client
20:36 yqt joined
raiph m: grammar example { token TOP { (a+) (b+) (c+) {$0.chars == $1.chars == $2.chars} }}; say so example.parse("aabbcc"); # for pierrot 20:36
yoleaux 25 Aug 2015 11:22Z <ab6tract> raiph: Not to worry, mate. I just had to run, and am always bothered by a "then fix it" response to a (relatively) major language design discussion
camelia rakudo-moar d8ef5e: OUTPUT«True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«True␤»
pierrot yoleaux: I had tried that, but with rule instead of token 20:37
and also I had substituted "elems" for "chars"
RabidGravy YuviPanda, "provides" : { "Ident::Client" : "lib/Ident/Client.pm" }
YuviPanda yep just updated 20:38
RabidGravy or similar
YuviPanda github.com/yuvipanda/perl6-Ident-C.../META.info
pierrot is there some good documentation about grammars (with examples and so on.. ) ? 20:39
raiph pierrot: the `rule` declarator means 1) spaces in regex are significant and 2) no backtracking
YuviPanda RabidGravy: thanks for merging!
PerlJam: thanks for spotting the META.info messup
so when does modules.perl6.org/ get updated? :) 20:40
PerlJam pierrot: doc.perl6.org/language/grammars
pierrot: not comprehensive if that's what you meant by "good" :)
YuviPanda: I think it's updated every 15 minutes or so
YuviPanda \o/ cool
RabidGravy YuviPanda, I would suggesr also adding "source-url": "github.com/yuvipanda/perl6-Ident-Client" at the top level as I'm not sure how compliant some things are 20:41
(though this may be remedied now)
YuviPanda RabidGravy: hmm, panda gen-meta gave me the current location of source-url
raiph pierrot: `token` declarator means 1) ignore spaces in regex and 2) no backtracking
YuviPanda or at least, source
RabidGravy: but I can add the source-url as a toplevel, sure
pierrot raiph: thanks 20:42
raiph pierrot: `regex` declarator means 1) ignore spaces in regex and 2) backtrack to try match
RabidGravy at one stage it generated that but the thing that generated the packages.json didn't use it or something
raiph pierrot: { ... } in rule (`rule`/`token`/`regex`) is an assertion whereas <{...}> inserts result of {...} as a subrule 20:44
YuviPanda right
I've updated it now
20:44 rurban left
pierrot raiph: awesome. Now I'm understanding. 20:44
dha Should I look to add the reduction operators to operators.pod or are we planning on documenting the newfangled metaoperators elsewhere at some point? 20:45
RabidGravy stick 'em in
pierrot PerlJam: that documentation is missing a lot of information :/
20:46 colomon left
TimToady .tell ChoHag irclog.perlgeek.de/perl6/2015-08-30#i_11144152 looks like a bug to me, since .= is sugar for assignment, and assignment is supposed to be eager; please file a bug report, if you haven't already 20:46
yoleaux TimToady: I'll pass your message to ChoHag.
raiph pierrot: and I did s/.elems/.chars/ because otherwise you were doing 0 == 0 == 0 20:47
pierrot hmmm wouldn't be 1 == 1 == 1 ? 20:48
dha ok. ... I was just going to ask if anyone wanted to dash off a line for the precedence table for me, but they're already in the table, if not actually documented.
raiph m: grammar example { token TOP { (a+) (b+) (c+) {say $0.elems} }}; example.parse("aabbcc"); # for pierrot
camelia rakudo-moar d8ef5e: OUTPUT«0␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«0␤»
mohij waaa google looks different!
dha Also, operators.pod contains the text "Other cases include meta-reduced infix operators (C<[+]| 1, 2, 3>)" Aren't the reduction operators actually considered list *prefix* operators? That's certainly the indication in the spec and in the precedence table. 20:49
(this is in the paragraph in operators.pod lines 101-104) 20:50
raiph pierrot: $0, $1 etc. are numbered regex captures (as you know) that contain full blown Match objects
PerlJam pierrot: there's this thing I wrote about grammars several years ago: github.com/perlpilot/perl6-docs/bl...-intro.pod (there's always going to be lots of information missing I'm afraid) 20:51
dha Oh god. There are Bag operators...
Ok, those are associated with a class, and not effectively builtins. whew. 20:52
pierrot raiph: yeah, I know. But $1 is "aa", $2 is "bb", etc. And earlier I had tried "aa".elems and I got 1 20:53
m: say "aa".elems
camelia rakudo-moar d8ef5e: OUTPUT«1␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«1␤»
pierrot why with the capture variables is 0 ? 20:54
raiph pierrot: If you treat a Match object as a list it lists its numbered regex captures; the $0, $1 etc. captures in your example have zero (sub-)captures
pierrot ohhh right 20:55
raiph whereas 'aa' when treated as a list acts as a 1 element list 20:56
pierrot Yep, I caught it.
Thanks
raiph pierrot: yw. :) I have to run now, will backlog later for any other Qs you have 20:57
pierrot Thanks raiph :D 20:58
dalek c: 89d3f16 | (David H. Adler)++ | lib/Language/subscripts.pod:
Added TODO comment to Modifying Elements entry in subscripts.pod
dha So. Anyone have any input on that infix/prefix question about reductions? 'cause I'm not touching that unless I actually think I understand it...
21:00 skids left
[Coke] dha: sorry, IDK. 21:01
dha Ok.
PerlJam dha: I think that's what the paragraph is saying. Listops can be either term or prefix; an example listop is when you meta-reduce and infix op like [+] 21:02
dalek c: 1f5b4de | (David H. Adler)++ | lib/Language/syntax.pod:
Changed commented out entries at the end of syntax.pod to commented
PerlJam s/and/an/
dha ah. ok. that makes sense
PerlJam++
21:03 dwarring joined
lucasb m: say 2 [+] 3 21:03
camelia rakudo-moar d8ef5e: OUTPUT«5␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«5␤»
dha ok, that's weird. 21:04
21:04 kjs_ joined
dha m: say [-] 3 21:04
camelia rakudo-moar d8ef5e: OUTPUT«3␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«3␤»
dha ok, that may be even weirder.
m: say 2 [-] 3 21:05
camelia rakudo-moar d8ef5e: OUTPUT«-1␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«-1␤»
TimToady a reduction op with 1 arg always just returns that arg
and that one is not a reduction
m: say 2 [[[[[-]]]]] 3
camelia rakudo-moar d8ef5e: OUTPUT«-1␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«-1␤»
dha Huh.
TimToady you can just put as many [] there to disambiguate as you like
it's mostly for disambiguating with metaops
m: say 1,2,3 Z[+] 4,5,6 21:06
camelia rakudo-moar d8ef5e: OUTPUT«5 7 9␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(5 7 9)␤»
dha tentatively nods.
21:07 kjs_ left
TimToady it's only in prefix position that [] is interpreted as reduction 21:07
and you can put extra [] there too
m: say [[[*]]] 2..10 21:08
camelia rakudo-moar d8ef5e: OUTPUT«3628800␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«3628800␤»
dalek ast/glr: e6fa419 | (David Warring [email@hidden.address] | integration/advent2012-day22.t:
[advent2012-day22.t] GLRify 'IP address parse' example. unfudge RT121789
lucasb TimToady++ for explanation 21:09
TimToady so really there's only the [op] reduction syntax, and all other [] around infixes are no-ops, used for clarity or disambiguatoin
PerlJam suddenly feels like an unstated thing should be stated.
(Don't use extra [] unless *really* necessary :)
dha ...or if we're starting up an Obfuscated Perl 6 Contest. 21:10
PerlJam exactly
dha We need to get Jon Orwant to publish a Perl 6 Journal. This is, after all, his fault. :-) 21:11
PerlJam heh
TimToady m: say 1,2,3 Z![==] 3,2,1 21:12
camelia rakudo-moar d8ef5e: OUTPUT«True False True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(True False True)␤»
TimToady m: say 1,2,3 Z!== 3,2,1
camelia rakudo-moar d8ef5e: OUTPUT«True False True␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«(True False True)␤»
21:13 rangerprice left
timotimo oh hey TimToady :) 21:14
21:15 muraiki left
[Coke] waves to TimToady 21:16
TimToady feels like he's suddenly the center of attention... 21:17
dha You should be used to that by now. :-) 21:18
Are the reduction operators defined any differently at this point from the way they are in S03? Or can I just grab the first paragraph for operators.pod? 21:19
21:20 pochi left, colomon joined
TimToady dha: yes, that's still pretty accurate 21:21
dha I. e. "Any infix operator (except for non-associating operators) can be surrounded by square brackets in term position to create a list operator that reduces using that operation"
ok. Will add.
[Coke] RT: 1,028
lucasb Is it really intended that (1,2,3), [1,2,3] gistify to "(1 2 3)" and "[1 2 3]" ? What do you think about putting some commas in there or drop the brackets? 21:22
TimToady that's what .perl is for
[Coke] heads out from work - I'll send out the august non announcement tonight. I'll do the merges for glr in nom and roast unless someone objects or beats me to it.
TimToady and we didn't have the brackets before, which resulted in confusion post-GLR
so just think of them as s-exprs 21:23
lucasb s-exprs, funny :) So basically, .Str, .gist and .perl give 3 different formats :)
vendethiel 's not sure we absolutely need both [] and (),but still needs to figure out parts of glr... 21:24
TimToady m: say 1,2,3 Z <a b c>
camelia rakudo-moar d8ef5e: OUTPUT«1 a 2 b 3 c␤»
PerlJam lucasb: it would be kind of strange for them to all have the _same_ format!
GLRelia rakudo-moar 57b7eb: OUTPUT«((1 a) (2 b) (3 c))␤»
TimToady ^^ there's where it's really important to see the structure 21:25
21:28 masak joined
masak good evening, #perl6 21:28
[ptc] o/ # perl6
masak :)
dalek c: ee39d98 | (David H. Adler)++ | lib/Language/operators.pod:
Added entry on Reduction operators to operators.pod
21:29
dha If anyone has a chance at some point to take a peek at that to make sure I didn't get anything wrong or leave anything significant out I'd appreciate it.
Also, in put on the heading would be good, as it doesn't match the other headings in that doc, due to it covering multiple operators. 21:30
timotimo i find it a bit strange to say "reduction operators have ... associativity"
that sounds like you can put multiple reductions "in a row" and they'll somehow associate 21:31
does that document explain what "listop" precedence means?
dha I don't believe there is "listop" precedence, but List Prefix and List Infix precedence 21:32
masak it's funny, people talk about "listop precedence" as if that was a thing. I see what listops do as more of a total hijacking of the rest of the expression (in the sense of "I go first"), not a question of precedence (in the sense of "who goes first?") 21:33
dha "R List prefix print push say die map substr ... [+] [*] any Z="
masak right, or what dha said.
dha S03 says "If the reduction operator is defined separately from the infix operator, it must associate the same way as the operator used"
timotimo mhm 21:34
dha with the examples I used. Hence my comment about asssociativty
Is that ill-advised?
It looks like associativity is significant with [**] 21:35
lucasb Interesting, I didn't know that [**] would obey the right-associativity of **. I learned a thing today :)
so reduction operators are not always left fold, right?
dha Well, apparently, they respect their base operators. :-)
Or at least they are spec'd to do so. I have not tested. 21:36
colomon they evaulation their reduction according to their base operator’s precedance. 21:37
that doesn’t affect the reduction meta-operator’s precedence, which I believe is List Prefix. 21:38
so [**] A, B, C is the same as A ** B ** C — and that’s true for every infix operator, not just **
masak m: say 2 ** 3 ** 4; say [**] 2, 3, 4 21:39
camelia rakudo-moar d8ef5e: OUTPUT«2417851639229258349412352␤2417851639229258349412352␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«2417851639229258349412352␤2417851639229258349412352␤»
masak m: say (2 ** 3) ** 4
camelia rakudo-moar d8ef5e: OUTPUT«4096␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«4096␤»
colomon lovely example, masak
masak m: my ($a, $b, $c); [=] $a, $b, $c, 5; say join ", ", $a, $b, $c 21:40
camelia rakudo-moar d8ef5e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jwWWx9Gw0s␤Cannot reduce with = because list assignment operators are too fiddly␤at /tmp/jwWWx9Gw0s:1␤------> 3my ($a, $b, $c); [=]7⏏5 $a, $b, $c, 5; say join ", ", $a, $b, $␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FRztz0MklK␤Cannot reduce with = because list assignment operators are too fiddly␤at /tmp/FRztz0MklK:1␤------> 3my ($a, $b, $c); [=]7⏏5 $a, $b, $c, 5; say join ", ", $a, $b, $␤»
masak ah. too fiddly.
colomon m: sub a($a, $b) { dd $a, $b; $a * $b }; [[&a]] 1..5 21:41
camelia rakudo-moar d8ef5e: OUTPUT«$a = 1␤$b = 2␤$a = 2␤$b = 3␤$a = 6␤$b = 4␤$a = 24␤$b = 5␤»
GLRelia rakudo-moar 57b7eb: OUTPUT«$a = 1␤$b = 2␤$a = 2␤$b = 3␤$a = 6␤$b = 4␤$a = 24␤$b = 5␤»
dha colomon - I *believe* that is stated incorrectly. In this context, they evaluate their reduction according to their base operator's *associativity*, not precedence. 21:43
colomon dha++ # right
21:44 kaare_ left
masak right. 21:45
completely unrelated: anyone know if the tap water is drinkable in Granada?
dha Nope. :-)
21:45 kjs_ joined
masak dang. 21:45
dha Nope, I don't know, not Nope it isn't. 21:46
:-)
masak ah.
I'm thirsty, and buying a pineapple juice at the cafeteria downstairs didn't help.
pink_mist I am 85% sure it isn't
masak hunts around for a water boiler in his room
room has a bidet, but no water boiler. priorities fail. 21:47
TimToady masak: we've been drinking it with no ill effect
masak ok, then I will too
if the worst comes to worst, we can stomach bug together :P 21:48
timotimo noooo don't stomach-bug
i remember the last time i got that >_<
masak the tap water smells chlorinated -- which I'll take as someone having made an effort to make it drinkable 21:49
glug glug glug
TimToady if you put it into a bathtub it comes out blue, so maybe it's chloramines
masak dammit TimToady 21:50
I went to try, and nearly drenched myself
anyway, now I know how the shower works
TimToady which hotel are you in? 21:52
RabidGravy the first time I went to Spain (with my parents) in 1969 it was recommended to have a cholera jab
they've raised their game considerably since then
dalek kudo-star-daily: 43c8fba | coke++ | log/ (9 files):
today (automated commit)
21:56
masak TimToady: hotel granada center
TimToady well, we don't have water boilers either at Abba 21:58
(nor do we have a bidet, fwiw)
21:59 frobisher joined 22:00 dha left, colomon left
TimToady ow wow, I caught up on my backlog, and it's midnight, how convenient 22:00
night all &
22:01 frobisher is now known as dha
japhb o/ 22:04
22:04 zakharyas joined 22:06 kjs_ left 22:08 lucasb left
masak 'night, TimToady 22:08
22:08 TEttinger joined 22:10 Mhoram is now known as abaugher 22:15 hernanGOA left 22:18 colomon joined 22:22 skids joined 22:28 mohij left 22:30 brrt joined
masak someone in the RT queue really likes 9s. 22:31
22:32 zakharyas left 22:35 AlexDaniel left
masak 'night, #perl6 22:38
RabidGravy toodlepip
22:38 brrt left, skids left 22:39 brrt joined 22:40 rurban joined 22:41 mprelude left
raiph .tell pierrot irclog.perlgeek.de/perl6/2015-09-01#i_11155377 is wrong. One must use a `?` or `!` for an assertion, eg `<?{...}>` is an assertion -- note the `?`. (I was right that `<{...}>` inserts the ... as a subrule.) (A plain `{...}` just tells P6 to do regular code (eg the debugging `say` that I used in irclog.perlgeek.de/perl6/2 22:46
yoleaux raiph: I'll pass your message to pierrot.
raiph 015-09-01#i_11155396))
22:46 brrt left
pink_mist that was an unfortunate linebreak 22:48
22:49 muraiki joined 22:54 rindolf left 22:57 rurban left 22:59 RabidGravy left
[Coke] ships the skip notice on the august release. 23:03
23:04 tokuhirom3 joined, vendethiel left
[Coke] do we have a repo standard on whether we collapse merges or keep individual commits? 23:05
related question, anyone want to do the glr merging? 23:06
tokuhirom3 Hi, why `perl6-m -e 'use Shell::Command; Shell::Command::mkpath("/tmp/x/y/z”);` says `Could not find symbol '&mkpath'`?
23:06 simcop2387 left
b2gills
.oO( I think all merges should be 「git merge --no-ff --ff-only」, only squashing in very few circumstances )
23:08
23:10 simcop2387 joined 23:11 spider-mario left
[Coke] tokuhirom3: your quotes don't match, but that doesn't seem like that's the error you'd get. 23:12
dwarring tokuhirom3: mkpath is exported, but not 'our' scoped... 23:14
23:14 fling left
dwarring should work: use Shell::Command; mkpath("/tmp/x/y/z"); 23:14
23:20 tokuhirom3 left
dwarring reference design.perl6.org/S06.html#Globally_...ubroutines 23:22
23:30 aborazmeh joined, aborazmeh left, aborazmeh joined 23:55 aborazmeh left 23:59 aborazmeh joined, aborazmeh left, aborazmeh joined