Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-03-21

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 countley joined #perl6
00:13 countley joined #perl6
00:17 nsharrok joined #perl6
00:20 countley joined #perl6
00:20 cognominal joined #perl6
00:29 cogno joined #perl6
00:29 adu_ joined #perl6
00:41 lustlife joined #perl6
00:59 am0c joined #perl6
01:11 orafu joined #perl6
01:13 hypolin joined #perl6
01:23 cognominal joined #perl6
01:27 cogno joined #perl6
01:45 lustlife joined #perl6
02:11 xinming joined #perl6
02:48 uasi joined #perl6
03:10 OuLouFu joined #perl6
03:24 census joined #perl6
03:45 baest joined #perl6
04:28 colomon joined #perl6
04:28 census joined #perl6
04:37 dayangkun joined #perl6
04:39 preflex_ joined #perl6
04:46 kivutar joined #perl6
04:54 daniel-s joined #perl6
05:00 rindolf joined #perl6
05:09 raiph joined #perl6
05:11 diakopter .
05:12 diakopter r: | | ||| | |   || |  || | | || || | ||| | |   | | || |||| || ||     || || ||| ||| ||e
05:12 p6eval rakudo 8fea53: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (lines 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
05:13 diakopter std: try | | ||| | |   || |  || | | || || | ||| | |   | | || |||| || ||     || || ||| ||| ||e
05:13 p6eval std 86b102f: OUTPUT«ok 00:00 42m␤»
05:14 diakopter that's the secret way to break into the compiler - it interprets that as binary and writes it to executable memory and jumps there.
05:15 TimToady r: ||[]
05:15 p6eval rakudo 8fea53: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (lines 1, 1, 1, 1)␤»
05:15 TimToady r: |[]
05:15 p6eval rakudo 8fea53: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (lines 1, 1)␤»
05:15 TimToady r: say |[]
05:15 p6eval rakudo 8fea53: OUTPUT«␤»
05:17 Heather joined #perl6
05:17 Heather hi
05:17 Heather nqp must be build with -j1 ?
05:18 diakopter did you try it higher?
05:18 diakopter [curious]
05:19 Heather no
05:20 Heather diakopter DrEeevil tested
05:20 DrEeevil it might work in newer versions, when I restricted that a while ago (~1 year I think) it lead to spurious failures
05:32 census_ joined #perl6
05:36 Heather DrEeevil just reg ex https://github.com/Heather/ecosystem/blob/master/META.list
05:36 census joined #perl6
05:36 * Heather wrong chat
06:02 Heather so...
06:02 Heather let start with: How to read text file on http?
06:03 Heather get?
06:04 Heather r: my $text = get 'http://example.com';
06:04 p6eval rakudo 8fea53: OUTPUT«No such method 'get' for invocant of type 'Str'␤  in sub get at src/gen/CORE.setting:7983␤  in block  at /tmp/a6em_RAPGf:1␤␤»
06:07 uasi joined #perl6
06:08 Heather p5eval: get 'http://example.com';
06:08 SamuraiJack joined #perl6
06:08 p5eval Heather: ERROR: syntax error at (eval 7) line 1, near "get 'http://example.com'"
06:08 Heather maybe it should be run wget ? ....
06:28 Jimmy_ joined #perl6
06:29 Jimmy_ Heather: https://github.com/cosimo/perl6-lwp-simple
06:37 moritz star: use LWP::Simple; say LWP::Simple.get('http://perl6.org').substr(0, 20)
06:37 p6eval star 2013.02: OUTPUT«<?xml version="1.0" ␤»
06:38 moritz star: use LWP::Simple; say LWP::Simple.get('http://perl6.org').comb(rx{ '<title>' .*? '</title>' })
06:38 p6eval star 2013.02: OUTPUT«<title>Perl 6</title>␤»
06:38 Heather cool
07:12 vaelxon joined #perl6
07:25 kaleem joined #perl6
07:34 rindolf joined #perl6
07:37 drbean joined #perl6
07:40 drbean joined #perl6
07:40 hoelzro pmichaud: I did not...
07:40 hoelzro (wrt nqp_const.pir installation)
07:49 FROGGS joined #perl6
07:49 domidumont joined #perl6
07:51 rindolf joined #perl6
07:55 domidumont joined #perl6
08:14 Guest85728 joined #perl6
08:37 moritz I love the new built-in pdf viewer in firefox, but "an unknown error occured while printing" is LTA
08:41 LoRe lighter than air?
08:41 moritz LTA = Less Than Awesome
08:41 LoRe :)
08:43 FROGGS moritz: ya, that thing is cool, but it has problems with transparency… but that's the only issue I've seen so far
08:44 moritz oh, and the gnome printing dialog can't count
08:45 moritz when I combine two pages per sheet and double-sided printing, it puts 4 logical pages both on the back and the front of each page
08:46 LoRe and some fonts are rendering very strange, ie the headlines in this menu: http://www.franziskanerinder-au.de/speisekarten/Speisekarte.pdf
08:46 daxim joined #perl6
08:48 FROGGS ohh ya, that's kerning, right?
08:48 kresike joined #perl6
08:48 kresike hello all you happy and/or unhappy perl6 people
08:48 FROGGS hi kresike
08:48 kresike FROGGS, o/
08:49 kresike is there anyone here that is both happy and unhappy ?
08:50 dalek rakudo/tmp_highfive: cfb72f2 | (Tobias Leich)++ | src/Perl6/ (3 files):
08:50 dalek rakudo/tmp_highfive: cleanup and attempt to support switching to v5 and back
08:50 dalek rakudo/tmp_highfive: review: https://github.com/rakudo/rakudo/commit/cfb72f289d
08:50 FROGGS kresike: I'm not
08:50 FROGGS pretty happy atm
08:52 kresike FROGGS, yes, but I'm looking for people that are happy and unhappy at the same time, possibly wrt perl6
08:53 FROGGS kresike: so you'll change your greeting line if nobody answers?
08:53 tadzik hello any(<happy unhappy>) perl 6 people? :)
08:54 kresike I'll remove the and, as it makes little sense
08:55 FROGGS tadzik++
08:55 kresike One could say that he is happy that perl6 exists, but unhappy that it hasn't had a complete implementation yet
08:55 FROGGS :o)
08:55 kresike tadzik, ☺
08:56 kresike but that is happy or unhappy
08:56 tadzik it can be and, but then you won't notice
08:57 tadzik r: say any(3, 5) > 1
08:57 p6eval rakudo 8fea53: OUTPUT«any(True, True)␤»
08:57 tadzik oh hm
08:57 tadzik r: say so any(3, 5) > 1
08:57 p6eval rakudo 8fea53: OUTPUT«True␤»
08:57 tadzik r: say so any(3, 0) > 1
08:57 p6eval rakudo 8fea53: OUTPUT«True␤»
08:57 Heather pdf in firefox -> always crash :D
08:58 FROGGS Heather: never crashed here :o)
08:58 Heather FROGGS I don't beleave ^__^ they paid you
08:58 kresike tadzik, how so ?
08:59 tadzik any(all(@pdf) ~~ Crash, none(@pdf) ~~ Crash)
08:59 Liz joined #perl6
08:59 tadzik kresike: how so what? :)
08:59 kresike tadzik, how can any be and ?
09:05 tadzik I don't understand the question :)
09:05 tadzik r: all(1, 1) == any(1, 0)
09:05 p6eval rakudo 8fea53:  ( no output )
09:05 tadzik r: say so all(1, 1) == any(1, 0)
09:05 p6eval rakudo 8fea53: OUTPUT«True␤»
09:07 kresike tadzik, you said any(<happy unhappy>) perl6 people
09:07 kresike I think that means happy or unhappy
09:08 kresike <tadzik> it can be and, but then you won't notice
09:08 kresike how so ?
09:09 tadzik ah
09:09 tadzik well, you'll get the True value regardless of whether it's any of them, or both
09:10 tadzik like with (False || True)
09:10 tadzik that'll give you true, and the same with (True || True)
09:10 tadzik if that sounds confusing, then it's probably the fact that it's early in the morning, I'm thinking slowly and coffee doesn't seem to help :)
09:10 kresike but that means OR !
09:10 tadzik yes
09:11 tadzik okay, nevermind :)
09:11 kresike Or my logic teacher was way off :)
09:11 tadzik haha, no, you're right
09:11 tadzik it's just my twisted thinking maybe :)
09:11 tadzik me and my Schrodinger's logic
09:12 Heather so when you say hello anybody you say hello to some random person :D
09:12 kresike Heather, I'm using multicast not anycast :)
09:13 Heather kresike you just using it wrong
09:13 Heather kresike when you say hello you define the rule people will use to authorize
09:13 Heather kresike with that rule all = any
09:14 kresike Heather, I think we're way off topic here :)
09:14 Heather ahm... could be
09:14 fhelmberger joined #perl6
09:15 Heather can somebody share me korean kssn? :P
09:15 * Heather ... worst try I used to get it
09:28 jnthn morning, #perl6 o/
09:29 tadzik hello jnthn
09:30 FROGGS morning jnthn
09:30 acheche left #perl6
09:33 lizmat morning all
09:33 FROGGS morning lizmat
09:38 moritz \o *
09:39 nwc10 what's with this error from making Rakudo?
09:39 nwc10 /home/nicholas/Perl/rakudo/install/bin/parrot  -o blib/Perl6/ModuleLoader.pbc src/gen/perl6-moduleloader.pir
09:40 nwc10 error:imcc:No such file or directory 'nqp_const.pir' in file 'src/gen/perl6-moduleloader.pir' line 1
09:40 nwc10 make: *** [blib/Perl6/ModuleLoader.pbc] Error 1
09:40 jnthn urgh
09:40 jnthn That hoelzro's patch didn't add the file to those installed like pmichaud said it needed to... :/
09:42 Heather can LWP Simple work with https ?
09:43 moritz I don't think so
09:43 Heather moritz sad... is ther mirrored ecosystem list?
09:43 Heather or should I run wget on it...
09:44 wk joined #perl6
09:44 moritz Heather: I don't know if it's mirrored anywhere
09:44 Heather maybe git cherry pick this file ...
09:44 moritz Heather: you could add something to the modules.perl6.org rebuilding script that takes care of mirroring
09:45 moritz git cherry-pick works with commits, not files
09:45 jnthn nwc10: https://gist.github.com/jnthn/654e80453444f77ff306/raw/ad7ec9e25287d0267915d790b368f782c7e701a8/gistfile1.txt may fix it
09:46 Heather wait... I think I can just check how panda do it...
09:47 sqirrel joined #perl6
09:47 moritz it probably shells out
09:48 tadzik fetching META.list?
09:48 Heather oh...
09:48 Heather http://feather.perl6.nl:3000/projects.json
09:48 tadzik yes
09:48 Heather yes
09:49 Heather tadzik though I need that ecosystem module...
09:49 tadzik hum?
09:49 Heather maybe I can use it from installed panda...
09:49 tadzik what do you want, to generate this file>?
09:49 tadzik I have a script which does that
09:50 tadzik not that it's rocket science
09:50 Heather tadzik I need to get all project names with git urls versions and deps
09:50 tadzik you have that in that file, yes
09:51 Heather tadzik now I need parse it
09:55 moritz use JSON::Tiny; my $d = from-json slurp 'projects.json'
09:55 Grrrr joined #perl6
10:01 nwc10 jnthn: strace suggests that parrot is looking for that file in .../include/ not .../library:
10:01 nwc10 stat("/home/nicholas/Perl/rakudo/install/lib/parrot/5.1.0-devel/include/nqp_const.pir", 0x7fff36800410) = -1 ENOENT (No such file or directory)
10:02 nwc10 it looks for a .pbc in the same directory
10:07 jnthn nwc10: Oh. strace++...
10:07 jnthn Take two: https://gist.github.com/jnthn/654e80453444f77ff306/raw/8f373ece96093c05ee51e5ad681036cfd6448409/gistfile1.txt
10:08 dalek rakudo/tmp_highfive: 7fdfc62 | (Tobias Leich)++ | src/Perl6/P5 (2 files):
10:08 dalek rakudo/tmp_highfive: say(1 + 2.5) works
10:08 dalek rakudo/tmp_highfive: review: https://github.com/rakudo/rakudo/commit/7fdfc62483
10:08 masak good antenoon, #perl6
10:08 tadzik hi masak
10:09 masak today's autopun spotting: https://twitter.com/codepo8/status/314552333059112960
10:09 FROGGS hehe
10:10 jnthn :)_
10:10 jnthn o/ masak
10:10 masak \o
10:10 jnthn masak. Making "I didn't really get here in time for morning" sound classy. :P
10:14 mtk joined #perl6
10:15 hoelzro jnthn: yeah, sorry; I missed that message
10:16 Heather perl is very very ultra much more readable then rust ...
10:16 Heather *than
10:20 * masak senses through the Twitter that something having to do with feminism is happening over at PyCon
10:20 Heather masak ping
10:20 masak pong :)
10:20 tadzik I wish it had nothing to do with feminism, actually
10:21 masak so does Su-Shee, it seems, on Twitter.
10:21 tadzik things like this make people not take real problems seriously
10:21 masak I haven't yet found out what the core issue was.
10:21 Heather ++
10:21 tadzik and the whole thing being ridiculously immature
10:21 masak the funny thing about Twitter: you get the reactions first, and the backstory later.
10:22 Heather masak I've got a question
10:22 tadzik tl;dr: two guys privately tell a penis joke to one another; a woman feels enraged, takes a picture and whines on twitter. Guy gets fired
10:22 tadzik masak: hehe, true that
10:22 masak Heather: then I implore you to ask it.
10:22 masak tadzik: oh, that sounds a bit sad. :(
10:22 Heather masak can I get %*CUSTOM_LIB in bash?
10:23 Heather perl6 <site home> in bash
10:23 masak Heather: I dunno. I'm an old-skooler. I know about, and use PERL6LIB. :)
10:23 masak Heather: I'm dimly aware that there's something new-and-fancy called %*CUSTOM_LIB. but I know nothing more :)
10:23 tadzik well, I wouldn't want to work for a company that fires people for telling jokes to their friends
10:24 tadzik whatever those jokes would be
10:24 masak right.
10:24 moritz Heather: SITE=$(perl6 -e 'say %*CUSTOM_LIB<site>')
10:25 masak moritz++
10:25 Heather -_-'
10:25 Heather I'LL TRY
10:25 tadzik As a result of her tweets, PyCon staff talked to her, identified the men, and escorted them out of the room
10:25 tadzik holy batman
10:26 tadzik ok, I'll not pollute the safe Perl 6 space with those bollocks anymore
10:26 masak Heather: by the way, it's way cool to see you being active, using Perl 6 in various ways. ;)
10:26 masak Heather: we're always looking for new people to lure in^W^Whelp getting started.
10:27 GlitchMr https://www.xkcd.com/1188/
10:27 GlitchMr I wonder how that would look in Perl 6.
10:27 GlitchMr ... actually, I guess I should try implementing it
10:28 masak tadzik: well, it happens with other serious issues too, like racism: (1) people clamor for recognition about the problem, (2) solution gets institutionalized, (3) solution gets overapplied, draconian, and useless.
10:30 tadzik yeah
10:31 moritz there's also this issue that when some crime is prominent on the media, politicians cry for higher punishments for that crime
10:31 moritz and now they are totally thrown out of proportion, in relation to punishments for crimes of related severity
10:33 masak it's the syllogism of politics: 1. We must do something. 2. This is something. 3. Therefore, we must do this.
10:35 FROGGS 4. And we must this in a way ppl recognize we do much about it.
10:36 GlitchMr rn: https://gist.github.com/GlitchMr/5212121
10:37 p6eval rakudo 8fea53: OUTPUT«(timeout)»
10:37 p6eval ..niecza v24-35-g5c06e28:  ( no output )
10:37 GlitchMr Actually, I don't need explicit try { } block here
10:38 GlitchMr Does https://gist.github.com/GlitchMr/5212121 look like Perl 6 code?
10:38 moritz GlitchMr: but you need a default { } block inside CATCH
10:38 masak yes, this PyCon incident sends chills down my spine. and now I'm done talking about it, too.
10:38 moritz otherwise it rethrows, because no clause caught the exception
10:39 GlitchMr Seems to be an infinite loop in Rakudo
10:40 GlitchMr std: https://gist.github.com/GlitchMr/5212121
10:40 GlitchMr Exactly what it should be
10:40 p6eval std 86b102f: OUTPUT«ok 00:00 40m␤»
10:40 GlitchMr Do I have old Niecza version of something because it doesn't recognize "is Exception"?
10:40 * moritz wonders if CATCH without 'when' or 'default' should warn
10:40 moritz n: say Exception
10:41 p6eval niecza v24-35-g5c06e28: OUTPUT«[31m===[0mSORRY![31m===[0m��Undeclared name:�        'Exception' used at line 1��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) �  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) �  at /h…
10:41 moritz GlitchMr: seems that current niecza doesn't have that type either
10:41 jnthn .oO( Unhandled Exception indeed... )
10:41 GlitchMr I've tried porting https://www.xkcd.com/1188/ to Perl 6
10:42 Woodi joined #perl6
10:42 Woodi o/
10:42 GlitchMr Hi, Woodi
10:43 Woodi spring coming :)
10:43 GlitchMr I still have snow
10:43 jnthn Fresh snow fell here yesterday
10:44 * FROGGS .oO( one cup of hot snow per day )
10:44 moritz this morning it was snowing a bit, but it's too warm for it to stay
10:44 jnthn Spring doesn't seem to be in a hurry to come this year :)
10:44 Woodi I am sure spring is unavoidable...
10:45 moritz as German politicians would say, it's "alternativlos"
10:46 moritz which means "there's no alternative to it"
10:46 moritz and of course when people say that, I can immediately think of alternatives
10:46 GlitchMr https://perl6advent.wordpress.com/2011/12/16/where-have-all-the-references-gone/#comment-1312
10:46 GlitchMr Why I cannot do that?
10:46 GlitchMr It says that $@a is invalid hard reference syntax.
10:47 GlitchMr $@b*
10:47 GlitchMr $(@b) is still fine.
10:47 moritz r: my (@a, @b); push @a, $@b
10:47 GlitchMr std: my @a; $@a
10:47 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Invalid hard reference syntax�at /tmp/HQ5YxLkbi_:1�------> [32mmy (@a, @b); push @a, $[33m�[31m@b[0m�    expecting any of:�        postfix�        infix stopper�        infix or meta-infix�        prefix or term�        prefix or …
10:47 p6eval std 86b102f: OUTPUT«ok 00:00 42m␤»
10:47 moritz just a rakudo limitation
10:47 GlitchMr I guess it still wasn't ported to Rakudo and Niecza
10:48 moritz n: my (@a, @b); push @a, $@b
10:48 p6eval niecza v24-35-g5c06e28: OUTPUT«[31m===[0mSORRY![31m===[0m��Invalid hard reference syntax at /tmp/ydqKRLemOI line 1:�------> [32mmy (@a, @b); push @a, $[33m�[31m@b[0m��Parse failed��»
10:48 jnthn It used to be invalid in std too.
10:48 moritz aye
10:58 dalek nqp: 653ba0c | jnthn++ | tools/build/Makefile.in:
10:58 dalek nqp: Install nqp_const.pir.
10:58 dalek nqp: review: https://github.com/perl6/nqp/commit/653ba0cb2d
10:58 jnthn nwc10: The "take two" of that patch worked for me so I pushedit
10:59 nwc10 I'm still having fun. The patch as-was didn't apply (whitespace)
10:59 jnthn huh...
10:59 jnthn Well, try it with the one I just pash :)
10:59 nwc10 I am
10:59 nwc10 (as of about 5 seconds ago)
10:59 jnthn Thanks :)
11:01 * Heather wants JIT
11:01 tadzik JIT, or mere speed? :Y)
11:02 Heather tadzik more speed :)
11:02 Heather tadzik but JIT should be the way
11:02 Heather isn't it
11:02 nwc10 JVM has JIT. And this file is not yet empty: https://github.com/jnthn/nqp-jvm-prep/blob/master/docs/LHF.md
11:03 nwc10 more pragmatically, is there a file of "bits of Rakudo that need porting from PIR or C to NQP" ?
11:03 nwc10 but, also, writing Perl 6 code generally is helpful
11:03 nwc10 and perservering after finding bugs and deficiencies
11:03 nwc10 I can't spell
11:04 tadzik also, if you have a server with supreme firepower, that'd be great :)
11:04 jnthn in the LHF file, note that donaldh++ has done much of the ground work for "invokedynamic code gen". But the other two are certainly welcome still todo.
11:04 tadzik (module smoketesting on various rakudo releases)
11:05 tadzik feather is (was) doing that to some extend, though
11:06 Heather #panda https://github.com/Heather/gentoo-perl6/commit/3eb9ebb19430b1af5b9cf5bbc1361b1f17656e47
11:06 cibs joined #perl6
11:07 jnthn nwc10: The trouble is that it's not really porting so much as designing abstractions. The handful of places we need to do that are hard for *me* to work out, which I suspect means they're not LHF.
11:08 nwc10 interesting. thanks
11:08 nwc10 yes. it's like *I* find the perl 5 internals hard.
11:09 jnthn nwc10: The key places that need work are container stuff (which Pm is thinking about lots too at this point), Rakudo/NQP boundary handling, signature binding, and gather/take.
11:10 jnthn One thing I suspect, if I get the initial bits in place, I may be able to delegate somewhat easily is the big integer stuff.
11:16 mtk joined #perl6
11:33 nwc10 jnthn: Result: PASS
11:37 jnthn yay
11:52 woosley1 joined #perl6
12:09 pmichaud good morning, #perl6, briefly
12:11 masak pmichaud, briefly! \o/
12:11 jnthn gm, pm o/
12:17 JimmyZ_ joined #perl6
12:18 * Heather finally setup emacs mode fine
12:19 pmichaud ugh, why is there both a PARROT_LIB_DIR and a PARROT_LIBRARY_DIR and they mean different things?  :-/
12:20 jnthn pmichaud: I wondered that.
12:20 Heather r: my $x; { }
12:20 p6eval rakudo 8fea53:  ( no output )
12:20 jnthn pmichaud: But mostly wanted to unbust the build...
12:20 jnthn (Should be $dayjobbing today, I guess. :))
12:21 Heather r: my $x; { 5 }; say $x
12:21 p6eval rakudo 8fea53: OUTPUT«(Any)␤»
12:21 pmichaud sure, unbust the build is important.  It just looks weird to have "lib/include" in a path.
12:21 pmichaud not to mention "lib/library"
12:21 Heather r: my $x; { $x = 5 }; say $x
12:21 p6eval rakudo 8fea53: OUTPUT«5␤»
12:21 Heather ...
12:21 Heather o_O
12:22 pmichaud afk, carpool
12:22 tadzik Heather: why would that surprise you
12:22 jnthn Heather: A block written directly where a statement would go is a bear block and just runs
12:23 jnthn Uh, bare, not bear!
12:23 tadzik bear block!
12:23 Heather >_<
12:24 jnthn It still serves as a new lexical scope, however.
12:25 masak shown here.
12:25 masak r: my $x = 42; { my $x = 5 }; say $x
12:25 p6eval rakudo 8fea53: OUTPUT«42␤»
12:25 Heather r: my $x = { 5 }; say $x
12:25 p6eval rakudo 8fea53: OUTPUT«Block.new()␤»
12:26 Heather r: my $x = { return 5 }; say $x
12:26 p6eval rakudo 8fea53: OUTPUT«Block.new()␤»
12:26 [Coke] r: sub prefix:<we>($){}; so say we all
12:26 p6eval rakudo 8fea53: OUTPUT«all()␤»
12:26 masak Heather: that's not a bear block.
12:26 masak [Coke]: :P
12:27 Heather r: my $x => { return 5 }; say $x
12:27 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Preceding context expects a term, but found infix > instead�at /tmp/1bLhpC6Ug4:1�------> [32mmy $x =>[33m�[31m { return 5 }; say $x[0m�»
12:27 Heather r: my $x = fn => { return 5 }; say $x
12:27 p6eval rakudo 8fea53: OUTPUT«"fn" => Block.new()␤»
12:28 jnthn .oO( And that's a pear... )
12:28 jnthn Heather: I think the syntax you're looking for is -> { ... }
12:28 jnthn Which is a lambda
12:29 jnthn -> $x { } # lambda taking an arg
12:29 masak r: my $foo = -> $x { say "OH LOL $x }; $foo(42)
12:29 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Unable to parse expression in double quotes; couldn't find final '"'�at /tmp/dWqHRYu4Ic:1�------> [32mfoo = -> $x { say "OH LOL $x }; $foo(42)[33m�[31m<EOL>[0m�    expecting any of:�        postfix�»
12:29 masak r: my $foo = -> $x { say "OH LOL $x" }; $foo(42)
12:29 p6eval rakudo 8fea53: OUTPUT«OH LOL 42␤»
12:29 Heather masak !!!
12:29 Heather r: my $foo = ->  { say "OH LOL" }; $foo(42)
12:30 p6eval rakudo 8fea53: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤  in block  at /tmp/zXYYgK8u7F:1␤␤»
12:30 Heather ...
12:30 Heather masak I don't need args
12:30 masak then don't pass them :)
12:30 masak r: my $foo = ->  { say "OH LOL" }; $foo()
12:30 p6eval rakudo 8fea53: OUTPUT«OH LOL␤»
12:30 masak r: my $foo = { say "OH LOL" }; $foo()
12:30 p6eval rakudo 8fea53: OUTPUT«OH LOL␤»
12:31 Heather ...
12:31 masak r: my $foo = { say "OH LOL" }; say "look, not called yet!"; $foo()
12:31 p6eval rakudo 8fea53: OUTPUT«look, not called yet!␤OH LOL␤»
12:31 Heather no.....
12:31 tadzik . o O ( cuteness overload )
12:32 masak Heather: typing '...' into the channel seems to be a habit of people of a Russian persuation. please don't do that -- it's highly frustrating for those of us who like words.
12:32 Heather r: my $x = { return "OH LOL" }(); say $x
12:32 p6eval rakudo 8fea53:  ( no output )
12:32 Heather r: my $x = ({ return "OH LOL" }()); say $x
12:32 p6eval rakudo 8fea53:  ( no output )
12:33 jnthn masak: ...
12:33 masak jnthn: !!!
12:33 Heather r: my $x = (-> { return "OH LOL" }()); say $x
12:33 jnthn :D
12:33 p6eval rakudo 8fea53:  ( no output )
12:34 Heather masak it's my personal habit, I like ...
12:34 jnthn Note that return is associated with a routine, not a block
12:34 Heather r: my $x = (->  return "OH LOL")(); say $x
12:34 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Invalid typename 'return' in parameter declaration.�at /tmp/6OxDTvFtw1:1�------> [32mmy $x = (->  return[33m�[31m "OH LOL")(); say $x[0m�»
12:34 masak Heather: my point is that it's short for "oh, I didn't expect X" or "I kinda expect Y there". but '...' communicates neither X nor Y, and leaves the reader to try to guess your intent.
12:35 masak ...which is harder than you may think. :)
12:35 masak r: my $x = (sub { return 42 })(); say $x
12:35 p6eval rakudo 8fea53: OUTPUT«42␤»
12:35 * [Coke] thinks masak needs to let some sends go
12:35 * jnthn always thought it was short for "wtf" but expressed as a regex that would match it :P
12:35 Heather masak sometimes (mostly) it's just emotion
12:36 Heather masak no sub, I want lambda
12:36 masak Heather: you can have lambda or return, but not both.
12:36 masak Heather: the lambda version of 'return' is called 'leave'.
12:36 moritz fwiw leave() is specced to return values from a block
12:36 Heather ml: let x = z = 5; z
12:36 moritz but afaict it's not implemented
12:37 masak rn: my $x = my $z = 5; say $z
12:37 p6eval niecza v24-35-g5c06e28: OUTPUT«Potential difficulties:�  $x is declared but not used at /tmp/4gK9z9mHwd line 1:�------> [32mmy [33m�[31m$x = my $z = 5; say $z[0m��5�»
12:37 p6eval ..rakudo 8fea53: OUTPUT«5␤»
12:37 jnthn r: sub foo() { my $x = -> { say 'here'; return 42; } }; $x(); say 'not here'; }; foo()
12:37 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable '$x' is not declared�at /tmp/N3KdRFkZAO:1�------> [32m = -> { say 'here'; return 42; } }; $x()[33m�[31m; say 'not here'; }; foo()[0m�    expecting any of:�        postfix�        argument list�»
12:37 pmichaud back again
12:37 jnthn oops
12:37 jnthn r: sub foo() { my $x = -> { say 'here'; return 42; }; $x(); say 'not here'; }; foo()
12:37 masak I don't like Niecza's "Potential difficulties" warning on unused variables :(
12:37 p6eval rakudo 8fea53: OUTPUT«here␤»
12:37 moritz masak: me neither
12:37 masak it's too common to have those during development, in intermediate stages.
12:37 masak I vote for its removal.
12:38 masak or we explicitly start talking about warnings on two levels: "development" and "production" or some such.
12:38 Heather r: my $x = my $z = 5; say $z
12:38 p6eval rakudo 8fea53: OUTPUT«5␤»
12:38 masak or maybe "hack" and "commit".
12:38 jnthn Heather: Above is example of how return is related to the enclosing sub, not enclosing block.
12:38 Heather r: my $x = my $z = 5; return $z
12:38 p6eval rakudo 8fea53:  ( no output )
12:38 Heather r: my $x = my $z = 5; return $z; say $x
12:38 p6eval rakudo 8fea53:  ( no output )
12:39 Heather r: my $x = {my $z = 5; return $z;} say $x
12:39 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/sP8VFiSMmh:1�------> [32mmy $x = {my $z = 5; return $z;} [33m�[31msay $x[0m�    expecting any of:�        postfix�        statement end�        statement modifier�        statement modifier loop�        Ã¢â‚¬Â¦
12:39 Heather r: my $x = {my $z = 5; return $z;}; say $x
12:39 p6eval rakudo 8fea53: OUTPUT«Block.new()␤»
12:39 Heather though I was starting with it
12:39 census joined #perl6
12:40 Heather r: my $x =-> {my $z = 5; return $z;}; say $x
12:40 p6eval rakudo 8fea53: OUTPUT«Block.new()␤»
12:41 Heather r: my $x =->-> {my $z = 5; return $z;}; say $x
12:41 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Malformed parameter�at /tmp/4qErM0jdZD:1�------> [32mmy $x =->[33m�[31m-> {my $z = 5; return $z;}; say $x[0m�    expecting any of:�        scoped declarator�        constraint�        prefix or term�        prefix or meta-prefix� …
12:43 Heather r: my $x ==> {return 5}; say $x
12:43 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Preceding context expects a term, but found infix => instead�at /tmp/RpObezJ2dZ:1�------> [32mmy $x ==>[33m�[31m {return 5}; say $x[0m�»
12:45 JimmyZ r: my $x <== {return 5}; say $x
12:45 p6eval rakudo 8fea53: OUTPUT«␤»
12:45 Heather JimmyZ <== ?
12:46 JimmyZ r: say my $x <== {return 5};
12:46 p6eval rakudo 8fea53: OUTPUT«(Any)Block.new()␤»
12:46 JimmyZ r: say {return 5};
12:46 p6eval rakudo 8fea53: OUTPUT«Block.new()␤»
12:47 JimmyZ r: say my $x
12:47 p6eval rakudo 8fea53: OUTPUT«(Any)␤»
12:47 jnthn Heather: ==> and <== are feed operators, though using them with scalars is a bit curious
12:47 Heather r: say ({return 5})();
12:47 p6eval rakudo 8fea53:  ( no output )
12:47 jnthn Heather: They let you write stuff as a pipeline
12:48 jnthn r: my @a = 1..100; @a ==> grep(*.is-prime) ==> map(2 * *) ==> say
12:48 p6eval rakudo 8fea53: OUTPUT«4 6 10 14 22 26 34 38 46 58 62 74 82 86 94 106 118 122 134 142 146 158 166 178 194␤»
12:49 Heather r: my $x <== { say 1; return 5}; say $x
12:49 p6eval rakudo 8fea53: OUTPUT«␤»
12:49 Heather r: my $x <== { say 1; return 5}; say $x()
12:49 p6eval rakudo 8fea53: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Array'␤  in block  at /tmp/pwcKUmTrz7:1␤␤»
12:49 jnthn I...have no idea what that just did :)
12:49 jnthn std: my $x <== { say 1; return 5}; say $x
12:49 p6eval std 86b102f: OUTPUT«ok 00:00 44m␤»
12:49 jnthn But apparently it's valid syntax...
12:50 * pmichaud looks around for wormholes.
12:51 Heather r: my $x <-= {return 5}; say $x
12:51 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Preceding context expects a term, but found infix -= instead�at /tmp/PfIoJtnDuz:1�------> [32mmy $x <-=[33m�[31m {return 5}; say $x[0m�»
12:52 Heather r: my $x <== {return 5}; say $x.WHAT
12:52 p6eval rakudo 8fea53: OUTPUT«(Array)␤»
12:52 Heather r: my $x <== {return 5}; say $x[0]
12:52 p6eval rakudo 8fea53: OUTPUT«Block.new()␤»
12:52 Heather r: my $x <== {return 5}; say $x[0]()
12:52 p6eval rakudo 8fea53:  ( no output )
12:52 Heather O_O
12:52 Heather r: my $x <== { say 1; return 5}; say $x[0]()
12:52 p6eval rakudo 8fea53: OUTPUT«1␤»
12:53 Heather -_-'
12:53 Heather jnthn why array?
12:53 jnthn Heather: As I tried to show you, you can't use return to return a value from a simple closure/block. It's for returning from the currently enclosing sub.
12:53 jnthn r: my $x <== { say 1; 5}; say $x[0]()
12:53 p6eval rakudo 8fea53: OUTPUT«1␤5␤»
12:54 Heather r: my $x <== { say 1; return 5}; say $x[1]()
12:54 p6eval rakudo 8fea53: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤  in block  at /tmp/nanerF2QHa:1␤␤»
12:54 [Coke] I don't dislike the unused vars enough warnings enough to lobby for their removal from niecza. seems harsh.
12:54 jnthn Heather: Array because if a variable is the target of a feed operator, it pushes the results onto it. The first push vivifies an Array there.
12:54 Heather I see so it's now what I expect
12:54 jnthn Heather: The idea of the ==> and <== is that you have a list of things that you pipe through a series of operations, getting a list of things out at the end.
12:54 Heather r: my $x = { say 1; return 5}; say $x()
12:54 p6eval rakudo 8fea53: OUTPUT«1␤»
12:55 jnthn I that example I think you are returning from the program as a whole. We should probably complain about that.
12:55 pmichaud is the unused var message something that can be controlled via lexical pragma?
12:55 Heather ok... I keep this try for tomorrow
12:55 Heather see you
12:55 masak o/
12:56 jnthn пока )
12:56 pmichaud if yes, then just put that lexical pragma into the p6eval setting (a la RESTRICTED)
12:58 JimmyZ r: my $x = -> { return 5 }; say $x()
12:58 p6eval rakudo 8fea53:  ( no output )
12:58 JimmyZ can't use return here?
12:59 moritz JimmyZ: we've had the discussion in the backlog already
13:01 * JimmyZ couldn't understand it
13:01 [Coke] (and I thought we were trying to be stricter; the unused warnings seem like a logical extension of this to me)
13:02 JimmyZ I meant jnthn++'s discussion
13:02 moritz [Coke]: in theory I agree. But in practise they are just annoying
13:02 moritz JimmyZ: then I don't understand why you ask again what has already been answered
13:03 [Coke] moritz: I think not understanding something is a good reason to ask about it again.
13:03 jnthn JimmyZ: The most important bit of the backlog was this line:
13:03 jnthn r: sub foo() { my $x = -> { say 'here'; return 42; } }; $x(); say 'not here'; }; foo()
13:03 p6eval rakudo 8fea53: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable '$x' is not declared�at /tmp/Vi2BZFQFi3:1�------> [32m = -> { say 'here'; return 42; } }; $x()[33m�[31m; say 'not here'; }; foo()[0m�    expecting any of:�        postfix�        argument list�»
13:03 jnthn darn
13:03 JimmyZ moritz: I can't understand the answer, since I'm not good at english enough ;)
13:03 jnthn r: sub foo() { my $x = -> { say 'here'; return 42; }; $x(); say 'not here'; }; foo()
13:03 p6eval rakudo 8fea53: OUTPUT«here␤»
13:04 jnthn JimmyZ: Notice how the "return" is returning from the sub foo, not from the pointy block.
13:04 pmichaud JimmyZ: 'return' only works inside of a Routine, such as a 'sub' or a 'method'.  A pointy block is not a sub or method.
13:04 jnthn r: sub foo() { my $x = -> { say 'here'; return 42; }; $x(); say 'not here'; }; say foo() # maybe also helps
13:04 p6eval rakudo 8fea53: OUTPUT«here␤42␤»
13:04 pmichaud r:  my $x = sub { return 5 };   say $x();
13:04 p6eval rakudo 8fea53: OUTPUT«5␤»
13:04 arnsholt joined #perl6
13:06 JimmyZ oh, I thought it works in the pointy block
13:07 pmichaud you can have a 'return' in a pointy block, if the pointy block is in a sub.  In that case, the 'return' returns from the outer sub, not the pointy block.
13:07 pmichaud but pointy blocks never use 'return'
13:10 JimmyZ thanks, the second example is very great
13:10 JimmyZ with pmichaud++'s explanation
13:14 rindolf joined #perl6
13:16 bluescreen10 joined #perl6
13:22 brrt joined #perl6
13:41 PacoAir joined #perl6
13:48 jokar joined #perl6
13:52 dayangkun joined #perl6
13:52 jokar left #perl6
13:57 jaldhar joined #perl6
13:59 masak I just saw the ADT email on p6l. I feel quite well-equipped to answer that one. but it may be a few hours before I have a slot to do so.
14:00 pmichaud masak +1
14:00 masak (basically, I think Perl 6 is quite well-posed to actually get ADTs at some point. but they wouldn't be really useful unless they had sufficient support in the compiler.)
14:00 masak that is, much of it can be provided by a module. maybe not all of it.
14:00 Celelibi joined #perl6
14:01 pmichaud I'm guessing the meaning of "abstract data type" has changed since I was in college, then.  :)
14:02 jnthn masak: Is the "support in the compiler" mostly about type-related things?
14:02 masak jnthn: yeah.
14:02 masak an ADT would be its own thing, much like an enum type.
14:03 jnthn masak: The MOP stuff lets you override type checking.
14:03 jnthn Dunno how far that gets you :)
14:03 jnthn But it already covers classes/roles/enums/subsets etc. :)
14:03 masak it sure helps.
14:03 skids joined #perl6
14:04 masak the help from the compiler I'm thinking of is "SORRY, this given statement doesn't cover all constructors, plz fix"
14:04 masak pmichaud: data Tree a = Branch (Tree a) (Tree a) | Leaf a
14:04 masak pmichaud: that's an ADT.
14:05 jnthn masak: That actually (not joking :)) sounds like something you could do with a macro :)
14:05 masak jnthn: :)
14:05 masak jnthn: how do you mean?
14:05 pmichaud masak: yeah, when I was in college, "abstract data type" meant "any data type you could implement that wasn't part of the core language"
14:05 masak 'Tree' is the type, 'Branch' and 'Leaf' are the two constructors with two parameters and one parameter, respectively.
14:05 jnthn pmichaud: I think this is about the Haskell/ML meaning of it.
14:05 masak pmichaud: yeah. this is a narrower definition.
14:06 masak the nice thing, of course, is that you then use the constructors both for value construction and for value destructuring.
14:06 masak in theory, we have enough puzzle pieces in place to do destructuring with given/when.
14:06 drbean joined #perl6
14:06 masak I'd like to put together a nice reply showing that.
14:06 Celelibi joined #perl6
14:07 jnthn masak: I'm not quite sure exactly how to formulate it but it feels like if you had a pair of macros, one for the overall constructs and another for each of the deconstructors, provied the other one can see what's on the inside...you may be good.
14:07 masak (but I'd need more presence of mind than the current $work load affords me)
14:07 masak jnthn: interesting.
14:07 jnthn Oh, or maybe you can make it drop out of given/when :)
14:08 masak that part I'm not sure about.
14:08 jnthn Well, what you kinda want is a way to catch falling out of the given without having hit a when?
14:08 masak but it seems to me that smartmatching basically already does destructuring.
14:08 masak jnthn: no, definitely should be a compile-time thing.
14:08 jnthn ah
14:08 masak jnthn: answering the question "do we cover all the cases?"
14:09 jnthn Then you need to use something compile time, which is meta-programming or macros or something similar :)
14:09 masak and yes, I know that a general 'given' is basically Turing-complete. I'm talking about a much simpler kind. most of the 'given' statements on ADTs will be really simple, I think.
14:23 Psyche^ joined #perl6
14:26 SmokeMac_ joined #perl6
14:26 masak here, I put together a proof-of-concept: https://gist.github.com/masak/5213423
14:26 masak it doesn't quite get the type parameter 'a' in there.
14:27 masak but the ease with which this bit gets us a lot of nice things makes me hopeful.
14:27 masak maybe parameterized roles can step in there instead of subtypes, and get us the parameterized type, too.
14:30 SmokeMachine joined #perl6
14:31 timotimo masak: isn't using hashes for that ridiculously overheady?
14:32 timotimo also, i was very confused to read "perl6 can do AST!" and thought "it had abstract syntax trees for ages!" ;)
14:32 timotimo (but then of course i realised that this refers to algebraic subtypes)
14:33 timotimo hm, seems to me it should have said "algebraic data types" instead? but what do i know!
14:33 moritz timotimo: yes, I thought so too
14:33 moritz an "abstract data type" is just a type that you can't make objects of
14:34 timotimo oh
14:34 timotimo did i say abstract there?
14:35 moritz timotimo: you didn't; Philippe did
14:35 moritz (on p6l)
14:35 timotimo ah. yes, i don't read that. i wonder if i should?
14:35 masak timotimo: oops. ADT. :)
14:35 xilo joined #perl6
14:35 masak gist fixed. :)
14:36 SmokeMac_ joined #perl6
14:38 timotimo hm, it's mostly github commit mails
14:39 moritz yes; used to be much higher traffic
14:39 timotimo at least they are not being discussed, because it would be easy to miss those discussions unless you are on the list and github already has a commit discussion function already
14:39 moritz but also high noise-to-signal ration
14:39 moritz *ratio
14:40 moritz I just realize that the normal defintion is "signal to noise" and not "noise to signal", because a signal of 0 would make it undefined
14:40 moritz whereas a noise of zero simply doesn't occur :-)
14:41 PacoAir joined #perl6
14:42 masak :P
14:42 jnthn :)
14:42 masak sure a noise of zero occurs. just not in engineering contexts.
14:43 sqirrel joined #perl6
14:43 masak here is another version, for those of you who don't like hashes: https://gist.github.com/masak/5213563
14:43 masak either take on ADTs has its own pros and cons. neither can be said to get it quite right, especially syntactically.
14:44 masak but it's an interesting thought experiment.
14:44 masak especially thinking about what we can do to make it easier to talk about sum types and ADTs.
14:44 felher Oeh, we are speaking of _Algebraic_ Data Types, right? Not Abstract Data Types?
14:44 masak that's the one!
14:45 masak yeah, my terminology is mussed up. sorry.
14:45 masak algebraic data types.
14:45 timotimo masak: how do you feel about building macros to create algebraic data types?
14:45 masak I'm all for it.
14:46 timotimo should i try?
14:46 masak yes, please.
14:46 timotimo okay, i'll have to experiment a bit, i suppose
14:46 timotimo it should serve as a so-so benchmark for how easy it is to get macros, i suppose :)
14:46 brrt left #perl6
14:46 timotimo hm, the first stumbling block: how do i do a repetition in a macro?
14:46 felher Uhh, algebraic data types via macros. How exciting :)
14:47 moritz timotimo: just like outside a macro
14:47 timotimo that's not what i meant :)
14:47 timotimo i mean something like quasi { class {{{ $classname }}} { has $.{{{ $names[0] }}}; has $.{{{ $names[1] }}}; ... } <- this kind of repetition
14:48 * felher would really like to read backlog and join the discussion, but he has to do $work :/
14:48 felher bye folks.
14:48 masak o/
14:48 timotimo viel erfolg, felher :)
14:49 masak timotimo: you way overestimate where you can put unquotes in a quasi block. :) you're not the first.
14:49 timotimo hehe.
14:49 timotimo so, can i somehow use a metaclass to create a class in code without macros?
14:50 jnthn Sure
14:50 timotimo is that somewhere in the specs already?
14:50 masak that's what the compiler does, after all :)
14:50 masak I know it's in some on jnthn++'s talks...
14:50 jnthn Maybe but you may have an easier time following the example in one of my talks.
14:50 timotimo haha
14:50 timotimo yeah, sure. what's the title?
14:51 jnthn it's http://jnthn.net/papers/2012-gpw-meta-programming.pdf
14:52 timotimo aaw, no recording?
14:52 jnthn No, sadly not
14:52 jnthn I gave it at a couple of places but I don't think either did recording.
14:52 timotimo okular claims i've already skipped through the slides before
14:53 timotimo don't know if i actually paid enough attention
14:54 jnthn The section you'll find interesting here is the bit where I take a bunch of JSON and construct classes based on it.
14:54 timotimo oh, that seems deceptively easy
14:54 timotimo yes, i've just reached it
14:54 masak jnthn talks. they make things deceptively easy :)
14:55 timotimo masak: will macros be 'enhanced' to accept unquotes in more places or was my usage just way too optimistic?
14:55 jnthn masak: Well, making things complex would be too easy... :P
14:55 timotimo hah, with an "is parsed" macro i could even make it syntactically compatible to haskell data definitions :D
14:56 moritz quick, implement "is parsed" macros :-)
14:57 jnthn Well, I did to ParseShared refactor already that was a pre-req for them... :)
14:58 masak timotimo: it could go either way. TimToady has been mumbling about an unquotes refactor, which would expand the power of unquotes a bit. but we only got to the conceptual problems of those, not to an actual solutions. :)
14:58 masak solution*
14:59 timotimo right. so for something like my example, maybe an unhygienic/text macro would be more suitable
14:59 masak possibly.
14:59 masak which we don't implement yet.
14:59 masak Pugs does. :)
14:59 jnthn Note that text macros are easier than is parsed in a sense.
15:00 moritz I thought it was the other way round :-)
15:00 masak (note that "unhygienic" and "text" are distinct, but intersecting, types of macros)
15:00 moritz with "is parsed" you "just" have to hand control over to another regex, and then back to the current slang after that
15:01 moritz but with macros that return text, you have to modify the current source code, which is a Str, which is immutable
15:01 masak right.
15:01 masak moritz++
15:01 masak those two are basically orthogonal.
15:01 jnthn It's not quite that bad. :)
15:01 TimToady and, in fact, sometimes you would like to combine them
15:01 masak aye.
15:01 jnthn Because $!target lives in ParseShared
15:02 jnthn And so you just need to update that...in theory. In practice, things further up may have the thing cached in a register. That's the tricker part I guess...
15:03 masak what if you apply a textual macro, update $!target, and then backtrack over the macro application?
15:03 * masak wanted to end that sentence with "!!!?!?", but refrained :)
15:03 TimToady you basically need a stack of strings
15:03 TimToady you always parse the top of the stack, and when you hit the end, pop
15:03 masak oh, so backtracking over macros is part of the plan. gotcha.
15:04 TimToady yes, textual macros require reparse
15:04 masak looking forward to playing around with them, as soon as we find the suc^Whero who implements them! :D
15:04 TimToady otoh they don't require you to tell them what state they are at the end
15:04 * jnthn runs and hides :)
15:05 masak because you get that from the parser that reparsed them?
15:05 TimToady nod
15:05 * FROGGS .oO( you need a bag of string, a paperclip and a chewing gum... )
15:05 masak wow, that is so awesome.
15:05 FROGGS *strings
15:05 FROGGS -.-
15:05 TimToady whereas handing back a "preparsed" AST the parse has to be told what that means
15:05 masak *nod*
15:05 jnthn FROGGS: That sounds more like instructions for making a bong. Which may be a prereq for this... :P
15:05 TimToady which is why syntactic categories get involved
15:06 FROGGS hehe
15:06 masak jnthn: *lol*
15:06 * FROGGS was thinking of mcgyver
15:06 moritz and now we get into syntactic category theory :-)
15:06 pmurias joined #perl6
15:06 TimToady I got enough grief for naming p5's lexer "toke.c"
15:06 masak TimToady: at some point we should have a deep talk about syntactic categories, spec refactors, and funny-looking Unicode sigils. :)
15:06 masak maybe not today, though.
15:06 am0c joined #perl6
15:07 SamuraiJack joined #perl6
15:07 pmurias FROGGS: have you seen https://github.com/fglock/Perlito/tree/master/t5/01-perlito?
15:07 TimToady well, I'm pretty much guaranteed to be stupider next week, so maybe you should attack then :)
15:07 masak TimToady: when I read toke.c, I can't help but think that the name isn't all that bad a description. :P
15:07 FROGGS pmurias: I see it right now...
15:07 masak TimToady: noted. let's aim for next week. :)
15:07 FROGGS pmurias: looks like an awesome testsuite for me :o)
15:08 masak funny thing with talking about macros with other communities: the first phase of the discussion is bound to be "oh, so *that's* what you guys mean by terms X, Y and Z. that explains why your factoring looks so bizzarre to me."
15:13 masak this has happened so far when I've been interacting with the Scala community, and with the Scheme community.
15:13 masak our approach looks strange-ish to them, and vice versa.
15:14 masak but the Scheme guys have some insight which I need to grok going forward. it seems important for hygiene.
15:14 moritz .oO( consistently strange )
15:14 masak :P
15:14 timotimo https://gist.github.com/timo/5c8544ec4e8166041e86 - seems good so far?
15:15 SmokeMachine joined #perl6
15:15 masak timotimo: it seems to me that use of parens is a bit foreign to Perl.
15:15 masak and you could get rid of a lot of them by using commas instead.
15:16 timotimo "haskell compatible synatx", but yeah, good point.
15:16 masak something like 'adt Tree = Tree, Tree | Str'
15:16 timotimo yeah
15:16 masak and 'adt Tree[A] = Tree[A], Tree[A] | A'
15:16 timotimo the % modifier for regexes makes me so happy right now
15:17 masak feels easier on the eye.
15:17 masak yeah, % rocks :)
15:17 timotimo it rocks so hard!
15:17 timotimo hard like i suppose a neutron star would feel
15:18 timotimo will we ever find out what the hardness number of neutron stars is? :D
15:19 masak not to mention the rockness number.
15:19 timotimo this is strange. why are both parts of the alternation called 0? is that just "the first of 1 parts inside the alternation"?
15:20 * timotimo donates more dots
15:20 moritz in (a)|(b), both parens produce matches in $0
15:21 moritz since they can't both match at same time, why would they occupy different capture numbers?
15:21 TimToady if you want different behaviors, you should probably be using named captures instead anyway
15:21 timotimo oh, that's not what i meant. i should clean up my code and show it
15:21 timotimo i actually have a rule called "alternation", which isn't helpful :D
15:21 TimToady Who's on first?
15:21 masak yes, that's confusing levels. :)
15:23 timotimo hm. suggest a good name for the part after the = with the | in between for the type definition?
15:23 timotimo "definers"? :)
15:24 TimToady masak: otoh, if you wait till next week, I might have a morphine-induced visit to Xanadu, and come back with a completely different design for Perl 6 :)
15:24 woosley1 left #perl6
15:25 TimToady timotimo: the union?
15:25 timotimo tee hee
15:25 timotimo || <.die("the union went on strike")>
15:25 masak TimToady: doesn't sound like such an unusual week. :P
15:25 * masak hides
15:26 masak I meant the redesign, not the morphine-induced visits to Xanadu... :)
15:26 TimToady yes, would just as soon do without the morphine; makes me itch
15:26 colomon "In Xanadu did TimToady / A stately parser-dome decree / Where Mu, the sacred river, ran / Through classes measureless to man / Done to a sunless C"
15:26 colomon *Down
15:27 masak no, leave "Done" in there :)
15:27 masak makes me feel better
15:27 TimToady parser-DOM maybe :)
15:27 colomon maybe it was a Freudian slip.
15:29 timotimo hm. what's the simplest way to force whitespace matches "between" matches of subrules?
15:30 timotimo something like params => ï½¢a, b ï½£  from a rule like [ <ident> { @.typevars.push($0) }]* % ','
15:30 timotimo i get ident => "a" and ident => "b" just fine. maybe i should just let it rest, because it'll work
15:32 arlinius joined #perl6
15:35 masak timotimo: another thing to think about is whether we wouldn't want to call out type parameters explicitly, because we do in other places.
15:35 masak timotimo: something like 'adt Tree[::A] = Tree[A], Tree[A] | A'
15:35 masak calling it out the first time is probably enough.
15:35 masak it's a kind of declaration.
15:36 masak a nice aspect of that is that it doesn't have to be a type. so you can do other things as well.
15:36 timotimo yes, i was just thinking about that
15:37 timotimo there's still some confusion for me. things like naming. if i have Tree, Tree, i'll have to translate that somehow into perl6. would i just have those as an array/tuple?
15:37 timotimo doesn't feel right to me
15:37 timotimo neither does $.Tree1 $.Tree2 and $.A
15:37 masak see my two examples.
15:37 timotimo so maybe something like adt Tree[::A] = Left=Tree[A], Right=Tree[A] | Cargo=A
15:37 masak you should be able to translate straight down to my second one, the one with classes.
15:38 * timotimo looks again
15:38 masak timotimo: I think conceptually, it's a tuple, so they are unnamed. they get nice names during destructuring.
15:38 timotimo oh, i totally forgot how those adts actually work in haskell
15:38 timotimo i forgot about how you specify the name of the deconstructor
15:39 masak just like you specify the constructor.
15:39 masak that's the nice thing.
15:39 timotimo as always, it's best to know what you actually want to accomplish before trying to do anything
15:39 timotimo yes. that part was completely missing for half my examples
15:40 masak having the name of the constructor in the adt declaration is *much* more important than naming the parameters.
15:40 masak because those are what you then smartmatch/deconstruct on.
15:41 timotimo yes
15:41 timotimo i think i know where i thoughto'd
15:41 grondilu joined #perl6
15:42 masak hm, maybe 'data' is a nicer keyword for all this than 'adt'... :)
15:42 grondilu rn: $_ = "ffffooooo"; s:g/(.)+/$0.join()/; .say
15:42 p6eval rakudo 8fea53, niecza v24-35-g5c06e28: OUTPUT«ffffooooo␤»
15:42 timotimo yes. just like they did in haskell :)
15:42 * grondilu was expecting(hoping) for "fo"
15:43 timotimo grondilu: not sure how you get to that?
15:43 timotimo rn: $_ = "ffffooooo"; s:g/(.)+/$0.uniq.join()/; .say
15:43 p6eval niecza v24-35-g5c06e28: OUTPUT«fo␤»
15:43 p6eval ..rakudo 8fea53: OUTPUT«ffffooooo␤»
15:43 jnthn grondilu: $0 refers to the array of captured things
15:43 timotimo oh, whoops! :D
15:44 masak why does rakudo get that one wrong?
15:44 grondilu jnthn: oh, makes sense.
15:44 timotimo rn: $_ = "ffffooooo"; s:g/(.)+/$0.perl.say/; .say
15:44 p6eval rakudo 8fea53, niecza v24-35-g5c06e28: OUTPUT«f f f f o o o o o.perl.say␤»
15:44 jnthn masak: It may be right.
15:44 jnthn masak: Rakudo does === semantics in uniq, as per spec.
15:44 masak either Niecza or Rakudo gets it wrong.
15:44 timotimo er, that's not what i meant to do. i guess i need ()?
15:44 jnthn masak: iirc, Niecza does not.
15:44 timotimo rn: $_ = "ffffooooo"; s:g/(.)+/$0.perl().say()/; .say
15:44 p6eval niecza v24-35-g5c06e28: OUTPUT«(#<match from(0) to(1) text(f) pos([].list) named({}.hash)>, #<match from(1) to(2) text(f) pos([].list) named({}.hash)>, #<match from(2) to(3) text(f) pos([].list) named({}.hash)>, #<match from(3) to(4) text(f) pos([].list) named({}.hash)>, #<match from(4)…
15:44 p6eval ..rakudo 8fea53: OUTPUT«(Match.new(orig => "ffffooooo", from => 0, to => 1, ast => Any, list => ().list, hash => EnumMap.new()), Match.new(orig => "ffffooooo", from => 1, to => 2, ast => Any, list => ().list, hash => EnumMap.new()), Match.new(orig => "ffffooooo", from => 2, to => 3, ast =…
15:44 jnthn masak: So it's probably doing "do they stringify the same"
15:45 masak jnthn: but === semantics for matches has eq semantics, surely?
15:45 masak in that case, why do the strings repeat?
15:45 timotimo masak: this should be correct, right? Tree[::A] = Branch Tree A, Tree A | Leaf A
15:45 jnthn masak: Are two matches that have a different structure but match the same string ===-equivalent?
15:46 timotimo oh, actually not.
15:46 jnthn masak: It's not obvious (to me) that we want === on Match objects to mean that. I'm fine if we go that way, just saying it may not be the whole picture.
15:46 timotimo Tree[::A] = Branch Tree[A], Tree[A] | Leaf A should be correct, though
15:47 masak jnthn: *nod*
15:47 kaare_ joined #perl6
15:47 masak timotimo: that looks nice :)
15:47 timotimo now if only it would parse :D
15:47 jnthn grondilu: If you want the first thing matched, $0[0] is probably enough.
15:48 timotimo oh. '[' ~ ']' .* will also require [] if .* matches "", so that would be the problem.
15:49 masak .+, then :)
15:51 timotimo https://gist.github.com/timo/5c8544ec4e8166041e86 - this is my current version. is the @.typevars thing a good idea to put there?
15:52 masak timotimo: looks cool. :)
15:53 timotimo so, do i do macro create_adt is parsed /<hs_adt>/?
15:54 masak yes, but 'is parsed' is NYI.
15:54 timotimo ... d'oh :)
15:54 timotimo do you already have a rough idea when you'll tackle that?
15:57 timotimo is there such a thing as parametric classes? or only parametric roles?
15:57 masak hey, I'm the AST macro guy.
15:57 masak you must have me confused with the textual macro guy.
15:57 timotimo hehe, ok
15:58 masak only parametric roles.
15:58 timotimo so if create_adt takes the definition as a string, it'll actually have to return a sub that creates instantiations of the roles or something like that?
16:00 cogno joined #perl6
16:05 masak well, I kinda liked your idea of creating classes on-the-fly using macros and the MOP.
16:05 masak you could actually get pretty far doing that with the current macro system in Rakudo...
16:05 timotimo i liked it, too and i still want to do it. but i don't yet see how to tackle type parameters in there
16:06 masak ... you just don't get to use 'is parsed'. sorry. :/
16:06 masak yeah, type parameters are an interesting problem there.
16:06 masak I'll think a bit about it.
16:06 timotimo cool :)
16:06 masak you've definitely helped sharpen my thoughts on this.
16:06 timotimo i think i'll do some AFK thinking for a few minutes
16:06 masak if I find some solution involving macros, I'll definitely include it in my email response to the guy.
16:06 zby_home_ joined #perl6
16:06 jnthn Can you describe the type parameters issue succinctly?
16:07 * jnthn can't look at the whole ADT thing but may be able to help on that piece
16:07 timotimo jnthn: i want to have a sub where you put in a declaration like "Either[::A, ::B] = Left A | Right B" and you get classes Either, Left and Right out that you can use together kind of like you would in haskell
16:07 cogno joined #perl6
16:07 timotimo (later it would be cool to have it as an "is parsed" macro, so you can actually write something like "data Either[..] = ..."
16:08 timotimo but that's not the issue right now)
16:10 moritz well, you can't easily do that with a sub
16:10 moritz because you need to modify the caller's lexpad to install the names
16:10 moritz or at least put them into GLOBAL at compile time
16:10 moritz and at runtime that's too late
16:11 jnthn moritz: ooc, what is the timing of the EXPORT sub being run when you use a module?
16:11 timotimo i was going to use the "package EXPORT::DEFAULT" thing and BEGIN blocks like suggested in jnthns talk slides
16:11 jnthn moritz: Does it get run, and then we look at EXPORT:: package to pull in symbols?
16:11 timotimo but yeah, i see why that wouldn't work if you use that package like a package
16:11 moritz jnthn: after the 'use' statement has been parsed, and before the next line is being parsed, iirc
16:12 timotimo as in use ADT; adt("Either = ...")
16:12 jnthn moritz: Yes, I meant a little more fine-grained. Do we still import any symbols at all in the "call EXPORT" mode?
16:12 timotimo maybe it'd have to return a package or something?
16:12 moritz jnthn: I don't think so
16:12 SamuraiJack_ joined #perl6
16:13 jnthn moritz: OK. I guess what I'm really wondering is what the API is for the EXPORT sub to actually specify what should get installed :)
16:13 moritz jnthn: there's none yet
16:13 jnthn Ah. OK
16:13 jnthn 'cus if there was you could write
16:13 moritz basically EXPORT subs were a quick hack to get 'use lib ...;' working :-)
16:13 jnthn use ADT (...some expression to specify it here);
16:13 timotimo jnthn: oh, that's a good point!
16:13 jnthn And it would build the requires things in the module's EXPORT and hand them back :)
16:14 jnthn where "hand them back" means "specify them for installation" :)
16:14 moritz maybe EXPORT should just return a hash
16:14 moritz or list of Pairs or so
16:14 jnthn Something that works like a hash feels fine to me
16:14 jnthn Particularly 'cus then you could instead return a Stash :)
16:15 FROGGS what is :s in '<sym> :s <xblock>' ?
16:15 moritz that was in the back of my mind too
16:15 timotimo how does the EXPORT thing work? do i put a sub EXPORT into my package and it'll be called by the use statement?
16:15 moritz FROGGS: it enables sigspace
16:15 jnthn sub EXPORT() { $*OS ~~ /Win32/ ?? WindowsThings !! OtherThings }
16:15 moritz (ie whitespace implicitly calls the <.ws> routine)
16:15 kresike bye folks
16:15 FROGGS moritz: thanks
16:15 moritz timotimo: yes. Take a look at lib/lib.pm6 in rakudo
16:16 moritz currently you have to put EXPORT after the module though
16:16 timotimo and that's just a barely working hack at the moment?
16:16 moritz so    file A.pm: module A { ... }; our sub EXPORT(*@args) { }
16:16 timotimo barely working == just enough to make this code work?
16:16 moritz timotimo: correct
16:16 cogno joined #perl6
16:17 timotimo right.
16:17 moritz that would be an interesting thing to expand though
16:17 moritz and not too much black magic required
16:17 timotimo interesting ... how complex is this issue?
16:17 timotimo are the specs clear yet, except for the return thing mentioned above?
16:18 moritz no, there's not much specs
16:18 moritz but just implementing the "EXPORT returns a hash, and the caller installs the pairs into the lexpad" would be very useful
16:19 gdey joined #perl6
16:19 moritz src/Perl6/Grammar.pm line 1244
16:19 timotimo i would have to work on EXPORTHOW?
16:19 timotimo oh, in the grammar
16:19 timotimo all right then
16:19 jnthn No EXPORTHOW seems unrelated to this.
16:20 roland_ joined #perl6
16:20 timotimo i suppose everything i'll have to know to make the installation of symbols work is in this do_import method already?
16:20 moritz timotimo: not quite (more)
16:21 moritz timotimo: Perl6::World has a 'method import', which does all the hard work
16:21 moritz method import($/, $package, $source_package_name) {
16:21 timotimo ah, right, i see that now.
16:21 moritz you'd just have to modify it to accept a hash of things to import, rather than $package
16:22 timotimo i suppose do_import is the only caller of the import method?
16:22 moritz method import also does   my %stash := $package.WHO;   and then works on %stash
16:22 moritz timotimo: correct
16:22 timotimo seems like a doable thing
16:22 moritz so you to change the caller locations to do   $*W.import($/, $package.WHO, ...) instead of $*W.import($/, $package)
16:22 timotimo so i'll pretty much just have to move the .WHO out of import and into do_import for most cases
16:22 moritz yes, plus one other bit
16:23 moritz you have to make sure that Perl 6 types and NQP types aren't conflated
16:23 moritz ie sub EXPORT will return a Perl 6 hash
16:23 timotimo nqp::decont will do it for me, right?
16:23 moritz but ig might be that $*W.import wants an NQP hash (I'm not quite sure here)
16:23 moritz no
16:24 moritz you'll need to access the $!storage attribute from EnumMap (which is a parten class of Hash)
16:24 moritz *parent
16:24 timotimo OK, i'll investigate that later. first i'll have to errands. perhaps i'll commute to my hackspace to work, too :)
16:36 dalek rakudo/tmp_highfive: 2db8483 | (Tobias Leich)++ | src/Perl6/ (3 files):
16:36 dalek rakudo/tmp_highfive: if/unless-conditions ok
16:36 dalek rakudo/tmp_highfive: review: https://github.com/rakudo/rakudo/commit/2db84835b2
16:43 dalek rakudo/tmp_highfive: 0633b5a | (Tobias Leich)++ | src/Perl6/P5Grammar.pm:
16:43 dalek rakudo/tmp_highfive: changed last accourance of pblock to sblock, so that else-blocks are fine now
16:43 dalek rakudo/tmp_highfive: review: https://github.com/rakudo/rakudo/commit/0633b5a315
16:45 * masak sent a reply to Philippe on p6l
16:46 SunilJoshi joined #perl6
16:50 dalek rakudo/tmp_highfive: 8956de4 | (Tobias Leich)++ | src/Perl6/P5Grammar.pm:
16:50 dalek rakudo/tmp_highfive: remove required whitespace to allow proper elsif-blocks
16:50 dalek rakudo/tmp_highfive: review: https://github.com/rakudo/rakudo/commit/8956de4544
16:55 census My deepest apologies if this post is improper.  Does anybody know any alternatives to TOR?
16:58 dwoldrich joined #perl6
16:58 TimToady PENGUIN?
16:58 TimToady BAIN?
16:59 masak census: you might get fuller answers if you ask where they actually do such stuff. :)
16:59 census and which IRC channel would that be?  I did not know there is a TOR channel.  I tried /msg alis list *TOR*
16:59 masak census: freenode tells me there's a #tor channel at irc.oftc.net
17:01 census is that the same thing as /join #tor here?  I just did that and wound up at ##nortor. Or is that the xchat -> #perl-help.  I tried #tor in x-chat and did not find a room
17:02 sftp_ joined #perl6
17:05 SmokeMachine joined #perl6
17:08 masak census: you need to /join #tor on the correct server, which is irc.oftc.net
17:08 masak census: each server has its own set of channels.
17:13 census masak: can i do that in xchat?  should I Pm you?  I don't want to upset anybody here.
17:13 masak I'm pretty sure you can do that in xchat. but I don't know more, sorry. you can probably find xchat documentation easily if you look.
17:21 cogno joined #perl6
17:23 census masak: thanks!  I figured out the xchat thing
17:24 SunilJoshi joined #perl6
17:25 cognominal joined #perl6
17:29 masak census++
17:32 masak the other day I stumbled over these nice slides by GvR: https://www.dropbox.com/s/xknbe58zcvjhzhv/PyCon2013.pptx
17:32 masak I think people interested in async and threading and event loops will want to read that one.
17:43 cog_ joined #perl6
17:44 jnthn beer, dinner &
17:45 timotimo hm, i meant to commute, but instead i watched jnthns talk "exploring perl6 through its modules", which i enjoyed quite a bit
17:45 timotimo so i don't really regret procrastinating :P
17:47 PacoAir joined #perl6
17:48 domidumont joined #perl6
17:50 Chillance joined #perl6
17:53 FROGGS[mobile] joined #perl6
18:01 masak beer, dinner &
18:05 timotimo .o(is beer the key to successful perl6 development? or maybe dinner?)
18:05 moritz both, I thikn
18:05 moritz timotimo: are you still planning to look into the &EXPORT stuff?
18:06 moritz if not, I might take a look now
18:06 timotimo yes, i would like to do it
18:12 FROGGS[mobile] I wish I had beer
18:12 timotimo i don't actually like beer very much :|
18:13 * moritz neither
18:13 FROGGS[mobile] I drink beer like ten times a year
18:13 moritz but I've seen it as an essential ingredient in jnthn's hacking habits :-)
18:14 FROGGS[mobile] it is like chocolate for me... there are days when you need it
18:14 raiph moritz: do you have any of the web log part of your p6 ilbot working?
18:15 moritz raiph: I have a script working that records all the data that _ilbot collects, but it doesn't yet write them into a database
18:15 sorear food is a necessary component in the operation of the masak.
18:16 raiph food is kinda necessary for me too
18:18 SunilJoshi joined #perl6
18:20 moritz oh, one part of the data acquisition is missing
18:20 moritz I need today's date, but in UTC, not localtime
18:21 FROGGS[mobile] what about UGT? *g*
18:21 cog_ joined #perl6
18:22 FROGGS[mobile] everytime somebody says morning, the time get set to 8 o'clock
18:23 moritz ... in every time zone
18:24 timotimo universal good time?
18:25 geekosaur "greeting"
18:26 timotimo ah, right
18:26 FROGGS[mobile] timotimo: since when is 8 o'clock good??
18:27 timotimo i was wondering that same thing!
18:28 spider-mario joined #perl6
18:28 timotimo moritz: is {if return_value_of_export_sub { do imports }} sensible? or should i check that it's actually a hash and discard every other kind of value?
18:28 timotimo because use lib 'foo/bar' returns the @*INC 'accidentally' :)
18:41 SmokeMachine joined #perl6
18:41 moritz timotimo: just fix lib/lib.pm6 to return an empty list or hash
18:42 pmichaud or Nil
18:42 timotimo i added "return;", so i suppose that returns Nil?
18:42 moritz and if it's not ~~ Hash, coerce to Hash maybe
18:42 moritz or maybe not
18:42 * moritz has no idea
18:42 timotimo i think i'm doing this wrong, i tried to nqp::getattr(%result, EnumMap, '$!storage'), was that wrong?
18:43 pmichaud depends on what you do with it.
18:43 timotimo Can not get attribute '$!storage' declared in class 'NQPMu' with this object  -  not sure where the NQPMu comes from
18:43 pmichaud sounds like %result isn't bound.
18:44 timotimo interesting. i did that inside if %result { ... }
18:44 * timotimo recompiles just to be sure
18:44 pmichaud either that, or it needs to be decontainerized first.
18:44 timotimo that may actually be the case
18:44 moritz it likely needs to
18:44 pmichaud but probably not that, since hashes aren't yet held in containers.
18:44 moritz well, I'd store the result from EXPORT in a scalar container
18:45 moritz because it's not a NQP hash
18:45 moritz so storing it in a hash at nqp level would be confusing, IMHO
18:45 pmichaud could be, yes.
18:45 timotimo good point
18:46 pmichaud I'm afk again, car repair :-(
18:46 moritz https://github.com/moritz/ilbot6
18:48 timotimo okay, saying the thing i have in there as the result before decontainerisation gives me a stringification of the hash i returned from the method, so that partially works
18:49 timotimo but i get the NQPMu error again, same as before
18:51 timotimo oh, but this time i actually nqp::decont it before passing it to getattr
18:52 timotimo perhaps i have to $*W.find_symbol(['EnumMap']) instead?
18:52 timotimo that could make sense, because it comes from the core setting
18:54 moritz yes, you need to do that
19:05 timotimo hum. Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op bind: Error while compiling op call: Null PMC access in find_method('handle')
19:05 timotimo i'm not sure how i can trace that to the location it originated from
19:06 timotimo the traceback points to as_post from QAST.nqp from stage 2 :|
19:08 moritz it means something wrong was inserted into the QAST tree
19:08 moritz it's hard to be more specific :(
19:09 timotimo tips on how to track it down?
19:10 moritz it seems to come from src/QAST/Compiler.nqp line 348
19:11 moritz huh, weird
19:11 moritz debug by coment out potentially offensive statements :(
19:11 SmokeMac_ joined #perl6
19:14 cog_ joined #perl6
19:15 anocelot joined #perl6
19:15 cogno joined #perl6
19:16 cognominal joined #perl6
19:17 timotimo hmm.
19:18 FROGGS joined #perl6
19:21 timotimo oh, weeeird, i was looking at the completely wrong piece of code
19:23 timotimo so perhaps the thing i imported was on the wrong layer of ... stuff
19:23 timotimo moritz: seems like it's time for you to take over :|
19:25 timotimo https://github.com/timo/rakudo/tree/EXPORT_hash  -  have a look. here's also a test file for lib/ and a test file to run
19:25 timotimo https://gist.github.com/timo/08d612edbe561366caf8
19:26 timotimo the code in the .t file causes that error. i suppose the yoink sub is somehow getting munged along the way
19:31 FROGGS say { use v5; if( 0 ) { 42 } elsif( 21 ) { 7 } }() # gives '7' locally
19:32 sorear you have a use v5?  and it makes if( work ?
19:32 sorear amazing.  who do I ++
19:33 FROGGS :o)
19:33 FROGGS sorear: see https://github.com/rakudo/rakudo/tree/tmp_highfive
19:33 timotimo i am amused by the name of the branch
19:34 FROGGS timotimo: well, after the 'categorically-better' branch I had to call it somehow cool
19:35 sorear FROGGS++
19:35 FROGGS it is tmp because it is just an experiment, but if it tends to go in the right direction I'll clean it up, and create proper commits
19:35 FROGGS sorear: thanks
19:36 timotimo seems pretty cool, although i don't have very interest in perl5. it's obviously nice to have! :)
19:36 timotimo more than nice
19:36 timotimo twice as nice!
19:36 moritz timotimo: I'm taking a look now
19:38 moritz r: say {}.WHAT
19:38 p6eval rakudo 8fea53: OUTPUT«(Hash)␤»
19:39 FROGGS timotimo: I'm doing it so one is able to use pure perl 5 modules, and I hope the number of supported modules is big
19:40 pmurias jnthn: can I move the parrot specific nqp test to t/parrot?
19:42 cog_ joined #perl6
19:42 moritz timotimo: you don't even have an EXPORT sub in there, do you?
19:43 cogno joined #perl6
19:43 cognominal joined #perl6
19:43 timotimo hold on, i don't?
19:43 timotimo i copypasted the wrong thing, sorry
19:43 moritz https://gist.github.com/timo/08d612edbe561366caf8  I don't see any sub EXPORT
19:44 timotimo gist updated
19:45 moritz http://perlpunks.de/paste/show/514b6372.1a50.2f3
19:45 moritz is that consistent with your observations?
19:46 timotimo huh. hold on.
19:47 timotimo indeed. this surprises me.
19:48 timotimo if i write return ( Flurb => Frob ).hash instead, i get the other weirdness
19:51 moritz ok
19:51 moritz the difference is a container
19:51 moritz so there's nqp::p6decont missing
19:52 moritz timotimo: want to give me commit access to your fork?
19:52 timotimo mhm. i had it in there at one point, but i got an error so i tried to shotgun-debug it away
19:52 timotimo sure can
19:52 timotimo there you go
19:52 moritz Error while compiling op p6decont: No registered operation handler for 'p6decont'
19:53 moritz ok, can't use nqp::p6decont in Grammar.pm
19:54 timotimo actually i wrote nqp::decont, so maybe *that* was the mistake?
19:55 moritz maybe
19:55 timotimo it seems like both of those exist, though. interesting.
19:55 moritz I'm trying wth the pir equivalent
19:56 moritz that's a ugly, but it'll go away once jnthn++ unifies decont and p6decont
19:57 timotimo sounds okay
19:57 moritz ... except that it doesn't work :(
19:57 timotimo maybe our assumptions are wrong?
20:04 moritz timotimo: I've managed to run it without errors now
20:04 moritz I've mostly removed debugging statements :-)
20:06 timotimo did you push it yet?
20:06 timotimo i don't see it
20:06 moritz no
20:06 moritz I accidentally triggered a recompile while trying to test it again
20:06 moritz so, you need to have a bit more patience :-)
20:07 timotimo sure, no problem
20:07 timotimo i'm thankful for your help. i wouldn't have been able to come up with PIR code by myself
20:08 moritz I'm not using PIR code right now
20:08 moritz I've reverted that part, because it didn't work
20:09 moritz I guess the ops in questions aren't loaded yet, or I simply did something wrong
20:10 timotimo oh, ok
20:10 moritz ok, this is what I get
20:10 moritz the import happens without error
20:10 moritz but when using the symbol, I get some trouble
20:11 moritz make -j4 && ./perl6 -I. -e 'use Frob <foo>; say ::.keys'
20:11 moritz <debug output>
20:11 moritz !UNIT_MARKER GLOBALish EXPORT $?PACKAGE ::?PACKAGE $_ $/ $! Flurb $=pod
20:11 moritz it imported symbol Flurb
20:11 timotimo yes, that's what i had at the end, too
20:12 moritz and when I use ::<Flurb>, the symbol is intact
20:13 timotimo oh, yes it is
20:13 moritz so, partial success
20:13 timotimo so it's some internal error that's happening to show up here? something about import that i didn't understand properly?
20:14 moritz well, somehow the symbol works fine in the runtime lexpad, but not in the copiler's symbol table
20:17 abdullah joined #perl6
20:17 abdullah wow there's a lot of people here
20:17 timotimo maybe something going wrong with the %to_install in world?
20:18 timotimo or perhaps the $_.key from the hash would have to be unboxed before putting it into the import method?
20:20 moritz no, $!storage is a parrot hash, and thus has parrot Strings in them
20:22 timotimo OK
20:23 moritz \o/
20:23 moritz $ cat Frob.pm6
20:23 moritz my class Frob {  method Str() { 'I am frobbed' }
20:23 moritz };
20:23 moritz sub EXPORT(|) { ( Flurb => Frob, '&exportedsub' => sub () { say 42 } ).hash
20:23 moritz }
20:23 moritz ./perl6 -I. -e 'use Frob <foo>; exportedsub()'
20:23 moritz 42
20:23 moritz so I've managed to export a sub and call it without any indirection
20:24 * moritz pushes
20:24 timotimo oh yay!
20:26 census joined #perl6
20:26 timotimo i'll run spectests with that, i guess
20:26 timotimo do you think it's ready to be merged after that? or is there something important missing?
20:27 timotimo (more removal of debug cruft)
20:30 moritz well, it shouldn't cause internal errors when exporting and referencing non-subs
20:30 thou joined #perl6
20:31 rindolf joined #perl6
20:31 timotimo oh, is that what caused the problem?
20:31 moritz yes
20:31 moritz your example exported ints
20:31 moritz mine a type
20:31 timotimo right. okay that's not cool.
20:43 * moritz notices he doesn't know anymore how imports and exports work
20:43 moritz $ ./perl6 -e 'my module A { my class B is export { } }; import A; say B'
20:43 moritz (B)
20:43 moritz ok, that works
20:43 moritz but where did it find the symbol B to import?
20:44 moritz $ ./perl6 -e 'my module A { my class B is export { } };  say A.WHO.perl'
20:44 moritz ("EXPORT" => EXPORT).hash
20:44 ggoebel_ joined #perl6
20:44 moritz ah, I need to got to EXPORT.WHO
20:45 moritz ./perl6 -e 'my module A { my class B is export { } };  say A.WHO<EXPORT>.WHO<DEFAULT>.WHO.keys'
20:45 moritz B
20:45 moritz that's where I finally found it
20:45 moritz :-)
20:46 ggoebel_ is it possible to build rakudo on win64 with icu?
20:47 timotimo moritz: i do not understand :D
20:48 moritz timotimo: I was trying to reconstruct how the export tags work
20:48 moritz because importing by tags work
20:48 moritz so I want to know what the difference is
20:48 moritz r: my module A { my class B is export { } };  say A.WHO<EXPORT>.WHO<DEFAULT>.WHO.WHAT
20:49 p6eval rakudo 8fea53: OUTPUT«(Stash)␤»
20:51 cog_ joined #perl6
20:52 timotimo oh, hm
20:52 moritz r: say Stash ~~ Hash
20:52 p6eval rakudo 8fea53: OUTPUT«True␤»
20:56 timotimo hm. maybe the thing that gets installed has to be wrapped in some way?
20:56 timotimo i have no idea how to make this work :(
20:57 timotimo i was looking forward to doing this when someone claimed it wasn't too complicated and i enjoy being mentioned in the release announcements, but this is quite a bit out of my reach :|
20:59 araujo joined #perl6
20:59 araujo joined #perl6
21:05 timotimo i guess i'll divert my efforts to trying to figure out the best way to create those algebraic datatypes classes/roles/whatever it will end up being
21:06 arnsholt I'm reading a Steve Yegge blog post, and came across this little gem: "And Perl 6 probably won't ever run on the JVM." =D
21:06 arnsholt A post from 2007, mind
21:06 baest_ joined #perl6
21:06 _sri haha
21:09 timotimo hah, it's amusing in hindsight
21:09 timotimo so, will one of us celebratorily hold the first version of rakudo on the jvm up to his nose, maybe burnt to one of those old timey cd-roms, or perhaps a floppy disk?
21:10 _sri a mountain of floppy disks
21:10 timotimo you don't have to pack the java vm along with it
21:16 sorear will still take more than one
21:17 diakopter you're a mountain of floppies
21:20 ggoebel_ any hints on compiling rakudo on windows 8 x64 with vc++ 11 (vs2012) and icu?
21:20 ggoebel_ parrot doesn't seem to autodetect icu on windows.
21:21 moritz I think it just looks for an icu-config executable
21:21 timotimo okay, we could hold up a zipdisk to his nose, though
21:21 moritz is that in %PATH%?
21:21 ggoebel_ does rakudo pass along --icushared and --icuheaders to parrot if provided?
21:21 ggoebel_ and is there a specific version of icu I should be trying to use?
21:23 ggoebel_ when I try icu v51... I wind up with the error unresolved external symbols... _u_charFromName_51
21:23 ggoebel_ etc
21:24 ggoebel_ I don't think icu on windows supplies an icu-config.exe
21:24 ggoebel_ nope
21:25 * masak is back
21:25 FROGGS ggoebel_: a batch file perhaps?
21:25 timotimo hello masak
21:25 timotimo if you didn't read backlog yet, moritz and me tried making sub EXPORT return a hash and have that imported properly, but we failed ... except for classes it seems
21:25 moritz masak: how's the t2 review coming along?
21:26 moritz *nag*
21:26 moritz exporting routines works
21:26 ggoebel_ FROGGS: nope. if I use the binary distro or compile from source, I wind up with a bin64 directory... with a bunch of exe's and dll's but no icu-config.*
21:26 moritz exporting classes doesn't
21:26 ggoebel_ which is why I tried --icushared and --ichheaders (per parrot docs)
21:27 timotimo ah, routines and not classes, ok
21:27 ggoebel_ anyone other than jnthn run rakudo on win?
21:27 masak moritz: it's coming along slower than I thought. and it's not the priority for tonight.
21:27 timotimo and also ... integers don't work and probably a host of other things won't work?
21:27 masak moritz: I just remembered that it's Rakudo release night.
21:27 timotimo oh!
21:27 timotimo so no EXPORT hash returning in 2012.03 rakudo :(
21:27 masak so, I suggest... we cut a release of Rakudo, the compiler :)
21:28 ggoebel_ moritz: yes, the .../icu/bin64 is in the %PATH%
21:28 * moritz hands masak a sledge scalpel
21:28 masak timotimo: don't worry, there's another release next month.
21:28 moritz ggoebel_: then I have no idea, sorry
21:29 ggoebel_ s'ok
21:30 masak moritz: there's a weekend coming up. I hope to focus on t2 then.
21:30 masak thanks for nagging. it helps. :)
21:36 imarcusthis joined #perl6
21:38 moritz .oO( nag nag nagging on heaven's doors )
21:38 timotimo is masak's apartment/house that amazing? :)
21:39 * moritz has never been there :(
21:41 * masak hands moritz unconditional rights to come crash at his place whenever :)
21:41 masak I have the square metrage, that's for sure.
21:42 moritz masak: tusend takk. Now I just need to arrange the travel somehow :-)
21:43 masak yeah, no international portal technology yet.
21:44 masak also, #perl6, what's up with not signing up for April release manager?
21:44 masak don't make me scowl at you. you know neither of us would like that. ;)
21:46 moritz let's try that in a more positive way
21:46 moritz hey, who wants to do tha Rakudo compiler release in April?
21:46 moritz fame and glory awaits you. All you have to do is follow the rather simple instructions in the release guide
21:46 moritz and of course you need a machine on which can test and build rakudo. But you should already have that.
21:47 * masak .oO( preferably a computing machine )
21:47 moritz if you have a coffee machine on which you can build rakudo, that's fine too
21:47 vaelxon oh, oh, me!  just one question though...what's a compiler and how does it relate to raccoons?
21:48 masak they're basically the same.
21:48 vaelxon so by release...you mean back into the forest?
21:48 sivoais joined #perl6
21:48 autumn joined #perl6
21:48 masak yeah. we tag the raccoon, and then we release it in its natural habitat.
21:49 masak all tests pass here. najs.
21:49 masak I've decided to call this month's compiler release 'Singapore'.
21:49 masak because it's a nice place and I don't have a better idea.
21:51 timotimo so, any ideas how to make those algebraic datatypes useful at compiletime to give errors like "you didn't cover every case of this type!"? ;)
21:52 masak that's the 1e6 USD question.
21:52 moritz 1) turn rakudo into a Haskell compiler 2) profit
21:53 masak I for one think we can have our cake and not eat monads.
21:53 * moritz should really bake some monad cake
21:54 timotimo well, we don't have to go quite as far, though?
21:54 moritz but now: time for bed
21:54 timotimo good night, moritz!
21:54 moritz \~
21:55 sorear masak: are you sure it's not 1e6 AUD or CAD?
21:55 masak sleep well, moritz. dream of monad cakes.
21:55 timotimo .o(it can be done with a macro!)
21:55 masak timotimo: I have a feeling it can, yes.
21:56 masak sorear: could also be https://en.wikipedia.org/wiki/Dollar_(disambiguation)
21:56 sorear masak: a basic 23 tree: date Tree t = Leaf t | Branch (Tree t) (Tree t) (Maybe (Tree t))
21:56 sorear masak: type level integers: data Z; data S x
21:57 sorear masak: tree example in GADT syntax:  data Tree t where Leaf :: t -> Tree t ; Branch :: Tree t -> Tree t -> Maybe (Tree t) -> Tree t
21:58 sorear masak: my favorite example of an actually somewhat useful GADT:  data Tree level t where Leaf :: t -> Tree Z t ; Branch :: Tree l t -> Tree l t -> Maybe (Tree l t) -> Tree (S l) t
21:58 sorear enforce balancedness at the type level.  algorithms which break balancedness won't type check.
21:59 masak huh.
22:01 * FROGGS thinks he is in the wrong channel
22:01 masak FROGGS: no, this is today's topic :)
22:02 dalek rakudo/nom: 0dd091c | masak++ | docs/announce/2013.03.md:
22:02 dalek rakudo/nom: [docs/announce/2013.03.md] pick release name
22:02 dalek rakudo/nom:
22:02 dalek rakudo/nom: Release, I dub thee Singapore.
22:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0dd091cc1d
22:02 dalek rakudo/nom: 1a96430 | masak++ | docs/announce/2013.03.md:
22:02 dalek rakudo/nom: [announce/2013.03.md] some formatting
22:02 dalek rakudo/nom:
22:02 dalek rakudo/nom: Indenting the text that way won't work. It means
22:02 dalek rakudo/nom: <pre> formatting in Markdown. Not what we want.
22:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1a9643051d
22:02 FROGGS masak: ya, it is just that I dont understand a word
22:03 masak FROGGS: did you see the discussion from earlier today?
22:03 masak FROGGS: specifically, my two gists.
22:03 FROGGS no
22:04 masak wow, stuff sure happened this month.
22:04 pmurias re GADT adding all those crazy types to a dynamicly typed language seems a bit strange ;)
22:04 masak pmurias: yeah.
22:04 masak that was my thought as well.
22:04 masak ADTs I can see, but not GADTs.
22:05 masak FROGGS: http://irclog.perlgeek.de/perl6/2013-03-21#i_6613207 http://irclog.perlgeek.de/perl6/2013-03-21#i_6613334
22:05 sorear perl 6 is not a dynamically typed language, though
22:05 sorear GADTs might be compatible with gradual typing
22:05 pmichaud well, TMTOWTDI means that you should be able to create a B&D language too.  :-)
22:05 sorear if gradual typing can be made to work at all
22:06 sorear have we figured out yet how to make gradual typing and multiple inheritance coexist?
22:06 pmichaud masak: eta to release, ooc?
22:06 masak sorear: what's the problem there?
22:07 masak pmichaud: I'm in release mode now. we're talking ~1 h.
22:07 pmichaud I was thinking of applying moritz's sink patch
22:07 sorear masak: gradual typing in general assumes that a Str can never also be an Int
22:07 masak pmichaud: go right ahead.
22:07 sorear my Str $x; my Int $y = $x
22:07 pmichaud I just need to spectest it also.
22:07 sorear gradual typing wants to fail that at compile time
22:08 masak sorear: I see the problem.
22:08 masak pmichaud: take your time. I'll get us ready in the meantime.
22:09 pmichaud compiling and spectesting it now.
22:09 pmurias is the gradual typing part of Perl 6 specced or is the approach "add type constraints and maybe the compiler will find some errors at compile type"
22:09 pmurias ?
22:11 pmichaud actually.... never mind, I think I won't apply the patch yet.
22:12 masak pmichaud: ok, so release first and patch later?
22:12 pmichaud yeah.   IMO,   $list.sink  should still be eager.
22:12 pmichaud it's only the implicit sinks that shouldn't sink a scalar.
22:13 masak oh well. it's in RT.
22:13 pmichaud right.
22:14 pmichaud and the bug has already existed for a couple of months.
22:15 * jnthn back
22:15 pmichaud jnthn: o/
22:16 * pmichaud spectests the patch anyway, just to see what happens.
22:18 * jnthn views Perl 6 as gradually typed rather than dynamically typed these days, fwiw.
22:18 jnthn The MI issue is ugly.
22:18 xilo joined #perl6
22:19 * jnthn waves hands and happily lets people get on with writing type constraints and getting the errors they hoped for at compile time. :)
22:20 ggoebel_ jnthn: is it possible to compile rakudo on parrot on win64 with icu?
22:20 jnthn ggoebel_: In theory. In practice, I haven't tried it in a long time. Last time I tried I failed to figure out the required Configure options.
22:20 ggoebel_ okay... thx
22:21 jnthn ggoebel_: Once upon a time I spent a lot of time getting Parrot/ICU working together on Windows. Then they kicked ICU out of the reop and lost all that. I don't ahve the motivation to figure it out again.
22:21 dalek rakudo/nom: 48a2c26 | masak++ | docs/announce/2013.03.md:
22:21 dalek rakudo/nom: [announce/2013.03.md] exerpt of changelog added
22:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/48a2c260d2
22:22 masak Couldn't replace leap-second-dates at tools/update-tai-utc.pl line 29.
22:22 masak ISTR tadzik got this error last month, too.
22:25 timotimo masak: feel like changing q{Helpful error if you write "else if" instead of "elsif"} into q{Helpful error if you write "else if" or "elif" instead of "elsif"}?
22:26 pmichaud In https://github.com/rakudo/rakudo/commit/c4083c42f2e63, why do we have checks with both :op<defined> and :op<isconcrete> ?
22:27 pmichaud i.e., why check both?  (I've slightly forgotten how :op<defined> differs from :op<isconcrete>, I think)
22:27 masak timotimo: ok.
22:28 jnthn pmichaud: isconcrete is always the low level "is this a type object" thing
22:28 pmichaud yeah, got that one.  :)
22:28 masak why does this replacement fail? https://github.com/rakudo/rakudo/blob/nom/tools/update-tai-utc.pl#L29
22:28 jnthn pmichaud: defined relates to the Parrot v-table defined, and maps to the HLL idea of defined.
22:28 timotimo the pythonist in me is pleased :P
22:28 pmichaud jnthn: so, the isconcrete is just intended as a hotpath shortcut?
22:28 masak I'm curious to know why update-tai-utc.pl fails nowadays.
22:28 jnthn pmichaud: Well, they're different questions
22:29 jnthn pmichaud: Wait, are we talking about sink here?
22:29 pmichaud yes.
22:29 jnthn Ah. Then in that case yes, checking isconcrete is *very* cheap
22:29 pmichaud and we assume we'll never have a defined type object :)
22:29 jnthn dihwidt :P
22:30 dalek rakudo/nom: e2ce160 | masak++ | docs/ (2 files):
22:30 dalek rakudo/nom: [docs] should be "elsif" or "elif"
22:30 dalek rakudo/nom:
22:30 dalek rakudo/nom: We handle both. timotimo++
22:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e2ce160b73
22:31 jnthn I hope that meant "else if" or "elif"
22:31 jnthn elsif is the valid one :P
22:32 masak oh dang.
22:32 masak 'git commit --amen...' oh dang :)
22:32 jnthn PUSH --FORCE!
22:32 jnthn :P
22:32 masak but yes, the patch does the right thing.
22:32 jnthn :)
22:32 jnthn Yes, I noticed that. :)
22:33 huf ah, just enough to confuse any wandering nuns
22:33 arnsholt Nuns?
22:34 huf yes, for hysterical raisins, things like this are done to mislead wandering nuns.
22:34 masak I'm not a wandering nun, and even I'm confused.
22:35 huf maybe you are, and just *very* confused.
22:35 vaelxon I thought that was how #perl6 was supposed to make you feel...
22:35 dalek rakudo/nom: 7ed6a50 | masak++ | docs/announce/2013.03.md:
22:35 dalek rakudo/nom: [announce/2013.03.md] these are the contributors
22:35 dalek rakudo/nom:
22:35 dalek rakudo/nom: A fine bunch.
22:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7ed6a50c23
22:35 huf (btw, no idea about the origin of the phrase with the nuns, i've tried to find it multiple times but always failed)
22:35 masak vaelxon: no, confusion is strictly a secondary effect.
22:36 masak huf: the original source has probably been lost due to wandering nuns.
22:36 huf masak: most likely.
22:36 huf it's stored in a nun-indexable location
22:36 masak *groan*
22:36 pmichaud actually, the moritz patch in the RT ticket doesn't seem to resolve the original problem.
22:37 masak huh.
22:37 masak I hold moritz patches to a higher standard than that... :)
22:37 pmichaud :)
22:37 pmichaud > my $c = [[1], [2], [3]].map({$_}); $c.unshift(47); say $c;
22:37 pmichaud 47
22:37 masak :(
22:38 pmichaud the reason is that currently   $c.unshift(47) returns the bare list, not $c
22:38 timotimo "git commit --amen" is an amusing thing in its own right, i find
22:38 timotimo it's like --sign-off
22:38 timotimo git can-i-get-an-amen?
22:38 pmichaud so the result is the same as  $c.unshift(47).sink()   and the invocant passed to .sink is the C<self> (de-containerized) coming back from unshift.
22:39 dalek rakudo/nom: 337f9e9 | masak++ | docs/release_guide.pod:
22:39 dalek rakudo/nom: [docs/release_guide.pod] move current release north
22:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/337f9e9e17
22:39 pmichaud so, we can update .unshift and friends to keep the container, or we can figure out a different approach.
22:40 dalek roast: b43c99f | pmichaud++ | S04-statements/sink.t:
22:40 dalek roast: Add S04-statements/sink.t as a place to hold sink tests, starting with RT #117235.
22:40 dalek roast: review: https://github.com/perl6/roast/commit/b43c99fed6
22:41 dalek nqp: bbe55b4 | masak++ | docs/release_guide.pod:
22:41 dalek nqp: [docs/release_guide.pod] formatting fix
22:41 dalek nqp: review: https://github.com/perl6/nqp/commit/bbe55b4036
22:42 masak the Parrot release, by the rules of nqp's release guide, does not need to be bumped from 4.10
22:43 pmichaud yeah, no bump this month.
22:43 pmichaud and there's not a 5.2 out yet anyway, afaik
22:43 masak right.
22:43 dalek nqp: 48de0ee | masak++ | VERSION:
22:43 dalek nqp: bump VERSION to 2013.03
22:43 dalek nqp: review: https://github.com/perl6/nqp/commit/48de0ee29b
22:45 masak https://github.com/perl6/nqp/blob/master/docs/release_guide.pod still contains instructions about "Github's download area". that's wrong now and needs to change.
22:45 masak pmichaud: how is uploading done these days?
22:45 pmichaud scp to rakudo@rakudo.org:www/downloads/rakudo
22:46 pmichaud see item #15 in the release guide.  :)
22:47 pmichaud er, in the *rakudo* release guide.
22:47 masak yeah, it's correct in the Rakudo release guide.
22:47 masak not in the NQP one.
22:47 pmichaud that detail might be missing from the nqp release guide :/
22:47 masak (which temporally happens before the Rakudo one)
22:47 pmichaud you patch or me?
22:47 masak I can do it.
22:47 pmichaud masak++
22:47 masak but first I need to figure out how to log in to rakudo.org... :)
22:48 masak was it with an ssh key?
22:48 pmichaud it's normally by ssh key, yes.
22:48 masak yeah, found it.
22:48 masak ...and I'm in. nice :)
22:50 pmichaud dinnertime here -- bbl
22:50 dalek nqp: 434dfc3 | masak++ | docs/release_guide.pod:
22:50 dalek nqp: [docs/release_guide.pod] fix upload instructions
22:50 dalek nqp: review: https://github.com/perl6/nqp/commit/434dfc36bb
22:51 vaelxon is there any kind of socket support in any current perl 6 implementation?
22:51 Liz joined #perl6
22:52 pmichaud vaelxon: Rakudo has some socket support --   IO::Socket and IO::Socket::INET
22:52 vaelxon pmichaud: thanks, I'll go check it out
22:52 timotimo rakudo is getting zeromq support, too!
22:53 timotimo it's in the early stages and currently on a tiny bit of a hiatus, though
22:53 timotimo but it's not terribly hard to contribute i've found out
22:54 vaelxon haven't heard of it, but the wikipedia article suggests I should learn more about it
22:55 kurahaupo joined #perl6
22:55 timotimo it may be interesting or absolutely wrong for your use case
22:55 timotimo it can only connect to other zeromq sockets, for instance, but it makes rather complicated network topologies more comfortable to handle
22:56 vaelxon use case is a server streaming bidirectionally to and from any number of javascript clients over websockets
22:57 sorear then you're in trouble, because there's no select() IIRC
22:57 sorear (is this still right?)
22:57 timotimo sorear: why is it hard to just plop select in there?
22:58 sorear some combination of portability and tuits
22:58 timotimo i should feel bad for only caring about linux, i think.
22:59 pmichaud I wonder if (1) Sockets should be added to the features page
22:59 pmichaud (2) if the features page should have links to the relevant p6doc pages
23:01 vaelxon yes, yes, please!  I have a dozen questions about specifics just like this..."does rakudo do X usably yet?"
23:01 arnsholt Sounds like a good idea to me
23:01 dalek rakudo/nom: e5349c0 | masak++ | tools/build/NQP_REVISION:
23:01 dalek rakudo/nom: [release] bump VERSION
23:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e5349c0ad1
23:01 dalek rakudo/nom: 0ca6e54 | masak++ | docs/release_guide.pod:
23:01 dalek rakudo/nom: [docs/release_guide.pod] fix small thinko
23:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0ca6e5444e
23:07 vaelxon does this work?: https://github.com/tadzik/IO-Select/
23:07 census joined #perl6
23:09 timotimo the parrot version mentioned there is from Wed Aug 24 22:23:15 2011
23:09 vaelxon that's a "no", then?
23:09 timotimo so ... either this still works because it just introduced something that never needed to be touched again or it bitrotted
23:09 timotimo i say: try it and see, i suppose
23:09 timotimo it comes with tests
23:09 LlamaRider joined #perl6
23:10 preflex_ joined #perl6
23:10 Util joined #perl6
23:10 pmichaud I don't think that IO-Select was ever merged into the parrot master.
23:10 pmichaud I could be wrong about that, though.
23:10 timotimo hm. which git command will let me check that? cherry?
23:12 pmichaud masak: 0ca6e5444e looks wrong to me
23:12 pmichaud you may have over thinkoed your thinko
23:14 * masak takes a second look
23:14 pmichaud step 9 is committing VERSION, not NQP_REVISION
23:14 dalek rakudo/nom: 6d7c9cc | masak++ | docs/release_guide.pod:
23:14 dalek rakudo/nom: Revert "[docs/release_guide.pod] fix small thinko"
23:14 dalek rakudo/nom:
23:14 dalek rakudo/nom: This reverts commit 0ca6e5444e732c7c3ba458bf396859d907b01bff.
23:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6d7c9cc61c
23:15 masak yeah. was probably just reading it bleary-eyed :)
23:15 masak pmichaud++
23:18 DarthGandalf joined #perl6
23:18 colomon joined #perl6
23:31 cognominal joined #perl6
23:32 timotimo binary-eyed :)
23:34 * masak 's eyes are using two's complement binary
23:35 cogno joined #perl6
23:35 cog joined #perl6
23:37 masak ladies and gentlebots.
23:37 masak we have a release.
23:37 masak tarballs uploaded. tags pushed. p6c email sent. Wikipedia article updated.
23:37 * masak celebrates with a glass of water o/
23:38 colomon \o/
23:40 lizmat hear hear!
23:40 jnthn \o/
23:40 jnthn masak++
23:42 pmichaud masak++
23:43 pmichaud btw, I claim the march star release
23:43 * pmichaud makes it so in the actual file.
23:44 pmichaud oh, I guess we don't put planned releases into that file.
23:44 masak no, don't think so
23:45 pmichaud anyway, I intend to work on the march release early next week
23:45 pmichaud (weekend is a little crowded)
23:46 pmichaud afk again, walk

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo