Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-02-16

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:00 jnthn Tomorrow, will see if I can land alternations with LTM. 'night o/
00:02 benabik joined #perl6
00:07 pmurias joined #perl6
00:11 raiph joined #perl6
00:11 raiph__ joined #perl6
00:11 raiph_ joined #perl6
00:20 dayangkun joined #perl6
00:21 raiph_ joined #perl6
00:21 raiph joined #perl6
00:22 raiph__ joined #perl6
00:26 xilo_ joined #perl6
00:52 census joined #perl6
00:52 census Hi! :)
00:53 diakopter if you ask a Perl 5 question I will kick you :)
00:54 diakopter but hi :)
00:54 census no perl 5 q!
00:54 census i promise
00:54 census would you like a perl 6 q?
00:57 xilo_ joined #perl6
00:59 sorear sure
00:59 census will perl 6 do everything that perl 5 does but better?
00:59 census and when will perl 6 be on the market?
01:09 quietfanatic joined #perl6
01:14 rjbs What does "on the market" mean?
01:16 quietfanatic There are markets it is already on, and there are markets it is not yet on.
01:17 quietfanatic As for the first question, given the sheer number of things both perls do, the odds are high that there is at least one that perl 6 does not to better at than perl 5.
01:18 quietfanatic s/to/do
01:19 rjbs It's much better at building parsers, obviously.
01:19 tokuhiro_ joined #perl6
01:20 diakopter well.. parsers for Perl 6 anyway
01:23 census you mean perl 5 is much better for parsers?
01:24 census what will perl6 be much better for?
01:24 _Chillance_ joined #perl6
01:24 diakopter no, Perl 6 has grammars built-in, and its "regular expressions" are more powerful
01:25 quietfanatic We mean perl 6 is much better for parsers.
01:25 quietfanatic As far as my experience goes, perl 6 is better for almost everything, as long as you don't care about doing anything particularly fast.
01:26 quietfanatic and as long as you don't include compatibility with perl 5 modules in that "everything".
01:28 census you mean fast in coding time (like how long it will take to write the code) or execution time (how long it will take to run the code)
01:28 quietfanatic Execution time
01:29 quietfanatic In coding time perl 6 is probably faster for most things
01:29 quietfanatic but there is currently a large execution time cost.
01:29 quietfanatic hopefully that'll be much reduced once we move over to the JVM.
01:30 diakopter JVM has a slow startup time... thousands of times slower than Perl 5
01:30 diakopter but yeah for more than subsecond-long executions of scripts, it'll be better
01:31 diakopter [than Rakudo is today]
01:31 census both time constraints are important for me
01:32 census i often scrape a whole lot.  plus, i'm a bad programmer so i could use all the coding time on my side that i can get.
01:32 benabik joined #perl6
01:33 benabik Wonder how hard it would be to duplicate scala's fsc
01:44 anuby joined #perl6
01:55 census In all seriousness, may I please ask a perl5 question that just occurred?  (I won't if it will be a bother).
01:57 rjbs No.
01:58 * geekosaur pollice verso
02:00 benabik geekosaur: ?????
02:01 census May I please ask an internet question?
02:01 * diakopter prepares to send www.lmgtfy.com
02:01 geekosaur benabik, indeed
02:05 lue .u ????
02:05 phenny U+1F44E (No name found)
02:06 tokuhiro_ joined #perl6
02:25 hypolin joined #perl6
02:32 rprajapa 02:00 < benabik> geekosaur: ??
02:32 rprajapa 02:01 < census> May I please ask an internet question?
02:32 rprajapa 02:01  * diakopter prepares to send www.lmgtfy.com
02:37 ifim joined #perl6
02:40 colomon joined #perl6
02:50 fgomez joined #perl6
02:53 shinobicl joined #perl6
02:56 census yes, rprajapa?
02:58 diakopter looks like an accidental paste to me
03:01 census oh ok, thanks
03:01 census i thought someone wanted to talk to me, perhaps (or maybe it was mock me . . .)
03:02 labster I'll talk to you.  It's pretty quiet in here around this time of day.
03:02 census :)  what are you up to?
03:03 labster reworking File::Compare so it can handle more than two files at a time.
03:03 census that would be very helpful!!
03:04 labster When I decide to port a Perl 5 module to P6, I ask myself, how can I make this better?
03:05 census that's a great attitude! :)
03:06 dayangkun joined #perl6
03:06 labster well, perl 6 is -Ofun -- optimized for fun!
03:09 labster Though I think my own attitude on that comes from reviewing bylaws for organizations I was in back in college, and deciding to I wanted to rewrite them to make more sense.  Bylaws are just natural language algorithms, so it's a similar feeling.
03:10 labster *when I was back in college
03:10 census what type of organization were you in?  a fraternity?  student government?
03:12 labster Student government.  Several of them, mostly at UC Davis.  (but let's not get too far off topic, so PM these type of questions)
03:14 tokuhiro_ joined #perl6
03:32 orafu joined #perl6
03:34 Targen joined #perl6
03:38 am0c joined #perl6
03:56 thou joined #perl6
04:01 aindilis joined #perl6
04:09 fgomez joined #perl6
04:29 benabik joined #perl6
04:33 kaare_ joined #perl6
04:40 aindilis joined #perl6
04:50 preflex_ joined #perl6
05:02 aindilis joined #perl6
05:12 hypolin joined #perl6
05:20 hypolin joined #perl6
05:22 xinming joined #perl6
05:43 pupoque joined #perl6
05:56 araujo joined #perl6
05:56 araujo joined #perl6
06:01 aindilis joined #perl6
06:11 lustlife joined #perl6
06:18 TimToady two more RC entries and we'll tie p5...
06:18 diakopter ahoy
06:20 TimToady http://rosettacode.org/wiki/Doubly-linked_list/Definition#Perl_6
06:20 jaldhar joined #perl6
06:26 felher Goooooood morning, #perl6
06:26 felher TimToady++ # yet another new RC-Entry
06:30 pupoque joined #perl6
06:36 SunilJoshi joined #perl6
06:37 sorear o/ felher
06:39 tadzik joined #perl6
06:39 felher sorear: my good morning is probably a good night to you. What time is where you are? :)
06:39 felher *is it
06:40 sorear 2240
06:41 felher Ah, not as late as I thought :)
06:43 tadzik good morning
06:45 swarley argh, just set up a google code repo for nqp-go since it simplifies the build process. I hate to have two repos though.
06:46 felher o/ tadzik
06:59 dayangkun joined #perl6
07:16 bapa joined #perl6
07:21 b1rkh0ff joined #perl6
07:47 quester left #perl6
07:52 TimToady and now we are tied in "popularity": http://rosettacode.org/wiki/Rosetta_Code/Rank_languages_by_popularity#Perl_6
07:53 sorear purty contrived definition of popularity.
07:53 TimToady hence the scare quotes :)
07:54 TimToady more a measure of OCD tendencies of the participants, I figure
08:01 * TimToady -> horizontal mode
08:16 labster \o/ congrats TimToady++
08:33 rindolf joined #perl6
08:35 dalek rakudo-js: e548e3f | (Paweł Murias)++ | / (18 files):
08:35 dalek rakudo-js: Steal a slightly modified setting from nqp-jvm.
08:35 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/e548e3f173
08:51 s1n joined #perl6
08:52 FROGGS joined #perl6
08:52 FROGGS morning
08:54 FROGGS moritz: btw, it is just 262€ to fly to oslo and back for my family (2parents, 1 child, 1 baby (without a seat))... so it might be an option too, we have no other plans for a holiday yet
08:54 FROGGS dunno if oslo is the best airport though
08:55 moritz FROGGS: which airline? norwegian?
08:55 FROGGS ya
08:55 FROGGS opodo++
08:55 moritz that's kinda cool
08:56 FROGGS is is, yes
08:58 dalek rakudo-js: 32cfe50 | (Paweł Murias)++ | / (4 files):
08:58 dalek rakudo-js: Use nqp from a submodule instead of ../nqp.
08:58 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/32cfe50946
09:04 pmurias joined #perl6
09:07 dalek rakudo-js: d377ddd | (Paweł Murias)++ | run_tests:
09:07 dalek rakudo-js: Add passing test 57 to run_tests.
09:07 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/d377ddd6f5
09:12 dalek rakudo-js: db0c83b | (Paweł Murias)++ | README.markdown:
09:12 dalek rakudo-js: Update README.
09:12 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/db0c83bafc
09:23 SunilJoshi joined #perl6
09:31 not_gerd joined #perl6
09:31 not_gerd o/
09:31 not_gerd can someone gist a Parrot Makefile resulting from --gen-parrot and not on Cygwin?
09:34 diakopter https://gist.github.com/diakopter/4966255
09:34 labster left #perl6
09:35 not_gerd diakopter++
09:35 diakopter what od you need from it
09:36 diakopter aw F
09:36 diakopter had to delete it
09:37 not_gerd diakopter: I'm looking into why building Parrot picks up the installed lib if present
09:40 dalek rakudo-js: 30ca3b7 | (Paweł Murias)++ | run (2 files):
09:40 dalek rakudo-js: Implement nqp::existpos,nqp::deletepos,nqp::split. Again start passing test 59.
09:40 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/30ca3b712e
09:41 not_gerd diakopter: ooc, did you ever need to nume you Parrot install because the build of a new version would fail otherwise?
09:41 not_gerd ^nuke
09:42 diakopter yes, a few times
09:42 diakopter it will even find it in c:\Parrot *if it's not in the PATH*
09:43 diakopter I mean, I can somewhat imagine how that could occur
09:45 not_gerd on Cygwin, there's on obvious bug - /usr/local/lib is always added to LINKFLAGS even that's not your prefix
09:45 not_gerd I did not see anything like that in your Makefile
09:46 diakopter I encountered the problem when not using --gen-parrot though; forgot to mention
09:46 diakopter not_gerd: who are you on parrot-dev
09:47 not_gerd the guy who pissed off pmichaud recently ;)
09:47 not_gerd not_gerd--
09:48 diakopter you're gerd but not gerd?
09:49 diakopter oh and, join the club
09:49 not_gerd diakopter: I was gerd when I first joined #parrot, but was mistaken for Gerd Pokorra
09:55 domidumont joined #perl6
09:56 not_gerd I'll try to reproduce a build failure on Windows, but it'll probably have to wait until tomorrow
09:57 not_gerd anyway, have a nice weekend
09:57 ElDiabolo joined #perl6
09:57 diakopter o/
09:57 not_gerd left #perl6
09:58 ElDiabolo Hi. Is anybody working on some LINQ-style embedded SQL for perl6 ?
09:58 moritz ElDiabolo: I'm not aware of any
09:59 ElDiabolo moritz, 'K. Then I'll continue considering doing that ?
10:00 moritz yes
10:05 ElDiabolo Few people seem to get the point with LINQ by now. Talking to the database with LINQ is OK, but does not buy you much since to the database you can talk SQL anyway. With LINNQ the whole app layer starts talking SQL. Its like some super map/grep with well know semantics (SQLish).
10:06 ElDiabolo Are there any docs on doing DSLs in perl6?
10:07 moritz well, that depends on what kind of DSL you want to create
10:07 moritz the easiest is simply create subs, methods and operators with clever names
10:07 diakopter there are tools to add operators at parse time, but I'm imagining with difficulty implementing LINQ-like syntax parsing integrated with Perl 6 parsing
10:08 moritz (That's what the rubyists call DSLs)
10:08 moritz or you can pass strings containing the DSLs, and parse them with grammars
10:08 moritz there are plans for more advanced in-language DSL mechanisms, but they aren't implemented yet
10:09 diakopter actually.. maybe macros...
10:10 moritz diakopter: well, in terms of syntax, you can't achieve more with the currently implemented macros than you can with normal subs
10:10 diakopter oh
10:11 masak ElDiabolo: hi. I'm interested in joining your effort about LINQ in Perl 6. I'm not aware of any docs on DSLs, but I know a fair bit about them.
10:12 masak ElDiabolo: I'm happy to let you steer the boat. the reason I'm interested is that I think I see the point of LINQ, and I want to learn more about it, preferably while helping realize it in Perl 6.
10:12 nwc10 jnthn: All tests successful.
10:12 masak good forenoon, #perl6
10:13 diakopter nwc10: I think I missed the joke about that report :)
10:19 masak TimToady, jnthn: could either of you golf an example of expected/actual behavior of a class nested in a generic role? then I can rakudobug it.
10:19 ElDiabolo moritz, The rubyish DSL way is what MS has done with linq, I think. that explains the odd order (from .. in .. select).
10:20 masak ElDiabolo: no, it's not subs in C#.
10:20 masak ElDiabolo: it's syntactic sugar for extension methods.
10:20 masak (which are semantically very similar to subs, but look like methods)
10:21 diakopter they're just parsed like normal keywords and expressions
10:21 ElDiabolo masak, Yeah, thats more precise, 'K.
10:23 masak ElDiabolo: this might be of interest to you: http://perl6advent.wordpress.com/2012/12/20/day-20-dynamic-variables-and-dsl-y-things/
10:23 ElDiabolo masak, Maybe drop me an email to jz-2013@heute-morgen.de
10:25 masak ElDiabolo: sure. just an empty mail?
10:26 domidumont joined #perl6
10:26 ElDiabolo masak, Yeak, that'll do.
10:26 masak ElDiabolo: sent.
10:27 ElDiabolo masak, Visitors downstairs, got to go.
10:27 ElDiabolo n8
10:27 diakopter neight indeed
10:29 masak gosh, even the good-night wishes are being replaced by horsemeat.
10:31 masak for some reason, I imagine ElDiablo having to take care of the Visitor pattern downstairs.
10:31 masak "gotta add functionality through double dispatch to these things downstairs..."
10:31 masak no, it completely doesn't make sense, I know.
10:33 diakopter he probably uses IoC for that
10:33 diakopter or mocking
10:33 diakopter or AOP
10:34 spider-mario joined #perl6
10:35 wk joined #perl6
10:37 diakopter the asteroid that flew by sure looks like a spacecraft to me
10:39 masak aliens are smart enough not to stop by on this planet.
10:41 masak just as we are smart enough not to jump into a pit full of worms.
10:43 diakopter speak for yourself..
10:45 masak ;)
10:45 masak wait, are you insulted qua worm or qua alien? *confused*
10:49 diakopter no I just like worms
10:49 masak *lol*
10:50 tadzik hello hello
10:52 moritz ehlo
10:52 masak tadziku! \o/
10:56 jnthn hello all o/
10:56 pmurias jnthn: hi
10:56 tadzik oh hai
10:56 diakopter oy
10:58 tadzik so, what was happening when I was elsewhere? :)
10:59 dalek nqp: ba13a07 | (Paweł Murias)++ | src/core/NQPMu.pm:
10:59 dalek nqp: Fix comment.
10:59 dalek nqp: review: https://github.com/perl6/nqp/commit/ba13a0756b
11:02 pmurias jnthn: if I have class Foo {has $!abc};my $foo = Foo.new(); Does $!abc get initialized and how?
11:05 jnthn pmurias: Provided it's after NQPMu is declared, yes. See auto_viv_container or so.
11:12 CharellKing joined #perl6
11:12 masak CharellKing! \o/
11:13 CharellKing i'm online
11:13 masak yes, you are. welcome.
11:19 kivutar joined #perl6
11:23 SamuraiJack joined #perl6
11:28 arnsholt o/
11:35 masak \o
11:35 jnthn hi arnsholt
11:58 dalek nqp-jvm-prep: 1baa9f4 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
11:58 dalek nqp-jvm-prep: Missing null checks.
11:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/1baa9f414b
11:58 dalek nqp-jvm-prep: 5e97b8a | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/VMArrayInstance (4 files):
11:58 dalek nqp-jvm-prep: Implement cloning in VMArray REPR.
11:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/5e97b8a891
11:58 dalek nqp-jvm-prep: 1478307 | jnthn++ | src/org/perl6/nqp/ (3 files):
11:58 dalek nqp-jvm-prep: Fix boolification for BOOTArray and BOOTHash.
11:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/1478307676
11:58 dalek nqp-jvm-prep: f8e4a32 | jnthn++ | lib/QAST/JASTCompiler.nqp:
11:58 dalek nqp-jvm-prep: Initial port of alt.
11:58 dalek nqp-jvm-prep:
11:58 dalek nqp-jvm-prep: Doesn't actually work yet, since NFA execution is NYI. Howver, the
11:58 dalek nqp-jvm-prep: generated code does enough to get us to the point of hitting that.
11:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/f8e4a320c9
12:13 pmurias jnthn: the reason we have auto_viv is to avoid storing never accessed values?
12:13 pmurias * auto_viv_container
12:15 arnsholt I think the container is used to put auto-created objects in a container
12:15 pmurias jnthn: can I just auto_viv them all at object creation time?
12:17 jnthn pmurias: I don't think so
12:17 jnthn pmurias: Otherwise I think you'll have trouble to implement isattrinited
12:18 pmurias jnthn: is it just an optimalisation or something we need to implement a piece of spec?
12:19 moritz class A { has $.x = 2 }; # at instantiation time, you need to decide whether to assign the default or not
12:20 jnthn pmurias: It's used by BUILDALL to get stuff right.
12:20 jnthn Yes, what moritz++ just said :)
12:27 pmurias so the moment something reads the attribute at BUILDALL time we assign the default?
12:27 moritz no
12:28 moritz at BUILDALL time, we check each attribute if it has been bound already
12:28 moritz and if not, apply the default
12:28 PacoAir joined #perl6
12:31 jnthn Well, it's more "touched" than "bound"
12:31 census joined #perl6
12:31 jnthn Typically you don't bind so much as assign.
12:35 nwc10 jnthn: diakopter observed that my previous report on nqp-jvm-prep had no jokes/puns/whatever
12:36 nwc10 so, make test reports "No horsemeat found"
12:36 kivutar joined #perl6
12:38 jnthn Darn, so it's still not considered stable yet...
12:39 masak not even in the race.
12:42 census hello! :)  people around on saturday?
12:42 tadzik usually, aye
12:43 census cool :)
12:47 census it is quiet so i was worried
12:48 masak quiet? surely not.
12:48 masak and we are most certainly here.
12:48 census it seems quiet in here
12:48 jnthn Maybe by your standards :P
12:48 tadzik the less you speak the more you're able to hear"
12:48 tadzik (and I fail at [Return], again)
12:49 dalek nqp-jvm-prep: 87a1366 | jnthn++ | src/org/perl6/nqp/ (3 files):
12:49 dalek nqp-jvm-prep: Implement nqp::nfafromstatelist.
12:49 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/87a13664a7
12:49 dalek nqp-jvm-prep: a9ea4c9 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
12:49 dalek nqp-jvm-prep: Stub in nfarunalt.
12:49 dalek nqp-jvm-prep:
12:49 dalek nqp-jvm-prep: Does the bstack pushing, but the NFA running itself is to do.
12:49 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/a9ea4c9ce8
12:49 dalek nqp-jvm-prep: 49cd4f0 | jnthn++ | lib/QAST/JASTCompiler.nqp:
12:49 dalek nqp-jvm-prep: Fix code-gen of alt; JAST ain't quite like POST.
12:49 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/49cd4f0ed8
12:49 moritz 252 lines spoken today, according to the clogs
12:51 census :)
12:51 * jnthn reaches the point where he has to translate the NFA evaluator...
12:52 nwc10 procrastination alternatives all exhausted?
12:52 nwc10 what language is it currently written in?
12:52 * moritz idly ponders bringing void context analysis to the optimizer
12:53 jnthn nwc10: Well, I could go do subrules instead, but...
12:53 jnthn nwc10: It's a chunk of C code, becoming a chunk of Java code.
12:53 moritz backtracking is also hairy
12:53 moritz or beefy
12:53 moritz or horsey :-)
12:54 jnthn Yeah, but I did most of backtracking yesterday while drinking IPA... :)
12:54 census IPA is not that good, is it?
12:54 jnthn After I drink it, I can write the sounds of every language...
12:55 jnthn Not that good? Well, it depends on the IPA. :) I've had good and I've had bad. :)
12:55 nwc10 jnthn: prove still has no beef with the code.
12:56 nwc10 (at 49cd4f0ed874967a661341bf7efbb9f94dbca26a)
12:56 jnthn Nice
12:56 jnthn I've stopped bothering to run the tests myself by now... :P
12:57 nwc10 I'm not sure if I believe you :-)
13:02 zby_home joined #perl6
13:06 jnthn walk, bbiab
13:19 GlitchMr masak, how is first blog post about p6cc contest going?
13:20 GlitchMr I'm impatient, I know.
13:20 moritz nqp: say(1 // 2)
13:20 p6eval nqp: OUTPUT«1␤»
13:22 masak GlitchMr: it's coming along fine. I plan to spend tuits on the reviews today. maybe I'll have time to draft the blog post, too.
13:22 masak GlitchMr: above that on the priority list, however, is the blog post celebrating today's Perl 6 anniversary. which has to go out today.
13:23 masak I'm starting to write it now. expect an early draft soon.
13:23 * moritz expects it
13:23 GlitchMr ok then
13:23 GlitchMr Perl 6 anniversary...?
13:23 GlitchMr Well, I will surely include it in today Perl 6 changes article
13:24 moritz today, age(Perl) == 2 * age(Perl 6)
13:24 moritz masak: correct?
13:25 GlitchMr 16 Feb 2000?
13:26 census yes, what is the answer?!? :)
13:26 moritz age in days, iirc
13:26 moritz see yesterday's backlog
13:26 masak moritz: correct.
13:26 masak "Tomorrow—16 February 2013—is apparently an auspicious anniversary. Tomorrow, the Perl 6 effort is as old as Perl 5 was when Perl 6 was announced." -- http://modernperlbooks.com/mt/2013/02/practical-questions-about-marketing-announcements.html
13:26 masak gee, I thought chromatic had blocked the IRC logs. ;)
13:27 * masak waves at chromatic
13:27 moritz maybe it leaked out anyway
13:27 masak maybe someone reads the logs for him?
13:27 GlitchMr Is there any reference to that particular date?
13:27 masak I apply Occam's to that suggestion.
13:27 GlitchMr I could've found July 19, 2000 as earliest date
13:28 GlitchMr oh, that
13:32 GlitchMr > Date.today - Date.new('2000-07-19')
13:32 GlitchMr 4595
13:32 GlitchMr > Date.new('2000-07-19') - 4595
13:32 GlitchMr 1987-12-20
13:32 GlitchMr I think I've off by one error
13:32 GlitchMr Perl 1, according to perlhist was 1987-Dec-18.
13:34 masak GlitchMr: Perl 6 was born on July 18, 2000.
13:34 masak GlitchMr: see the beginning of http://strangelyconsistent.org/blog/happy-10th-anniversary-perl-6
13:34 masak it was *announced* on July 19, 2000.
13:35 moritz r: say Date.new(2000, 07 ,18) - Date.new(1987, 12, 18)
13:35 p6eval rakudo 1e85ff: OUTPUT«4596␤»
13:35 masak but I consider the mug-throwing to be the birth of the language. it was discussed already on that day.
13:35 moritz r: say Date.today - Date.new(2000, 07 ,18)
13:35 p6eval rakudo 1e85ff: OUTPUT«4596␤»
13:35 masak (and it was decided that it would happen already on that day.)
13:39 GlitchMr Hmmm, but weren't Perl worked on before 1987-Dec-18.
13:39 GlitchMr This is release date of Perl 1.
13:40 GlitchMr But well, I guess that nobody except of Larry and his officemates didn't knew anything about Perl.
13:40 GlitchMr Even the fact it's being worked on.
13:40 GlitchMr So it could count.
13:40 moritz but we don't have any dates before the release
13:41 GlitchMr Yeah...
13:41 GlitchMr It's earliest known date of Perl development.
13:41 GlitchMr And Perl 0 date is "Classified"
13:49 * jnthn is back
13:49 * pmurias is back from his walk too ;)
13:50 pmurias jnthn: re auto_viv_container I can implement that without much problem but it will introduce a lot of overhead for each time we access an attribute
13:50 masak GlitchMr: 1987-12-18 is the official date. it's the one people celebrate as an anniversary.
13:50 jnthn pmurias: Really?
13:51 jnthn pmurias: In the Parrot and JVM impls it is just a null check
13:58 pmurias a javascript attribute access is just 3 machine instructions on V8 (with an inline cache hit) so the extra checking is significant, but I guess I should think about micro optimalisations once a lot more things are working
14:00 masak first, make it run...
14:00 masak that should've had quotes around it :)
14:02 pmurias masak: that's what I'm doing, but every time I do something (horribly) inefficent I try to think of a way to avoid doing that in the future ;)
14:03 GlitchMr masak, by the way, isn't "anniversary" incorrect term?
14:03 GlitchMr According to dictionary definition.
14:03 GlitchMr Because it's not annual to begin with.
14:04 masak GlitchMr: feel free to propose a more fitting term.
14:05 jnthn pmurias: Well, we need to track this somehow... :)
14:05 GlitchMr Well, I'm really bad at English ;-).
14:05 GlitchMr The only term I could think of is "milestone", but I don't think it's fitting either.
14:06 masak "milestone" feels like it has more to do with what you've done than with dates.
14:06 masak I won't use the word "anniversary" in my post.
14:06 GlitchMr Well, ok
14:06 masak chromatic used it in his. that's up to him. :)
14:07 masak I have been using it a few times today in the backlog. I agree it's not a good description, but it's the closest one I have so far.
14:09 moritz equidieversary
14:09 masak oh, you
14:09 moritz equi = same, die = day
14:09 masak also, equus = horse :P
14:10 moritz holy cow.
14:10 masak rats.
14:10 GlitchMr I like it
14:12 SamuraiJack_ joined #perl6
14:21 Psyche^ joined #perl6
14:36 SamuraiJack joined #perl6
14:45 dalek nqp-jvm-prep: 42bb791 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
14:45 dalek nqp-jvm-prep: Implement NFA execution.
14:45 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/42bb791ea8
14:45 dalek nqp-jvm-prep: b32cf39 | jnthn++ | / (2 files):
14:45 dalek nqp-jvm-prep: Align constants used with char classes.
14:45 dalek nqp-jvm-prep:
14:45 dalek nqp-jvm-prep: This matches the enumeration used on Parrot. It eases migration, and
14:45 dalek nqp-jvm-prep: it really doesn't matter at all what numbers we pick.
14:45 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/b32cf394bf
14:45 dalek nqp-jvm-prep: 8d10f4c | jnthn++ | docs/ROADMAP:
14:45 dalek nqp-jvm-prep: Update ROADMAP; we now have LTM alternations.
14:45 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/8d10f4c48c
14:53 perlmonkey joined #perl6
15:01 arnsholt mst++ # Being constructive
15:02 thundergnat joined #perl6
15:03 thundergnat Oh shark, zebras. :-)
15:04 thundergnat Is it a bug in Rakudo or a bug in my expectations that a CATCH in mainline code doesn't seem to work without an explicit enclosing block?
15:05 masak thundergnat: it's a (known) rakudobug.
15:05 thundergnat Ah.
15:07 thundergnat Is there an easy way to override exceptions for a specific class or do I need to capture them generally and filter by class?
15:08 moritz you mean, catch exceptions only of a specific class?
15:08 moritz CATCH { when Your::Exception::Type { handle it } }
15:08 thundergnat Yes
15:08 moritz all the other types are automatically rethrown
15:09 thundergnat Does the class need to be an 'is Exception'?
15:09 thundergnat r: class F { method foo {say 'foo'}}; {CATCH {when X::Method::NotFound { say $_.method ~ ' not here' }; default { die $! }}; my $d = F.new; $d.foo; $d.bar;}
15:09 p6eval rakudo 1e85ff: OUTPUT«foo␤bar not here␤»
15:10 benabik joined #perl6
15:10 thundergnat Here I only want to catch the Method::NotFound from F
15:11 moritz thundergnat: if you throw objects that don't derive from Exception, they are automatically wrapped in X::AdHoc
15:11 moritz so, yes
15:13 thundergnat Ok, I suspected as much but wanted to ask someone who knew more about it. Thanks
15:26 am0c joined #perl6
15:27 ggoebel_ joined #perl6
15:28 ggoebel_ jnthn++ LTM on jvm
15:28 * masak .oO( LTA with TLAs )
15:31 moritz FTW!
15:33 * jnthn wonders if anybody else finds it strangely right that FTW is WTF.flip
15:33 Chillance joined #perl6
15:34 moritz .oO( strangely consistent at least )
15:46 SunilJoshi joined #perl6
15:47 dalek nqp: d579a30 | (Paweł Murias)++ | t/nqp/59-nqpop.t:
15:47 dalek nqp: Add tests for isnull for things that aren't nulls.
15:47 dalek nqp: review: https://github.com/perl6/nqp/commit/d579a30b4b
16:04 dalek rakudo-js: fa96194 | (Paweł Murias)++ | / (2 files):
16:04 dalek rakudo-js: Use auto_viv_values, remove hack.
16:04 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/fa9619450c
16:04 dalek rakudo-js: d6e93e6 | (Paweł Murias)++ | / (2 files):
16:04 dalek rakudo-js: Fix isnull.
16:04 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/d6e93e6517
16:12 am0c joined #perl6
16:20 thundergnat How do you resume from a handled exception that isn't in a try block? S04 kind of glosses over it and all the S04 exceptions tests in roast seem to have an explicit try.
16:20 thundergnat Or am I just insane?
16:20 moritz thundergnat: define "resume"?
16:21 thundergnat r: https://gist.github.com/anonymous/4967456
16:21 p6eval rakudo 1e85ff: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/50c3JUvp_i:1â�¤------> [32mhttps[33mâ��[31m://gist.github.com/anonymous/4967456[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix or meta-infixâ�¤        infix stopperâ�¤        statem…
16:21 thundergnat errm.
16:21 thundergnat Didn't that used to work
16:21 moritz probably before gist changed their URL schema
16:22 moritz I'll need to fix p6eval
16:22 moritz anyway, that return(); looks bogus
16:22 moritz because you're not in a routine
16:23 moritz anyway, control flow continues after the block inside which the CATCH was
16:23 thundergnat Ok. But is there some other way to return execution to where the exception was thrown?
16:23 moritz you can .resume. But usually that's VERY bad idea
16:23 moritz because most code assumes that if died, control flow there stopped
16:24 dalek rakudo-js: c5a66ae | (Paweł Murias)++ | / (3 files):
16:24 dalek rakudo-js: Remove nqp.undef.
16:24 dalek rakudo-js: Add test 44 to run_tests, fix return value of try catching an exception, fix istype.
16:24 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/c5a66aecea
16:24 nwc10 jnthn: with respect to tests - still nothing to nag about.
16:25 census joined #perl6
16:28 aindilis joined #perl6
16:38 jnthn nwc10: Meanwhile, I just managed to fill the whole heap :)
16:41 dalek rakudo-js: c24f561 | (Paweł Murias)++ | / (2 files):
16:41 dalek rakudo-js: Remove a hack that enabled a ctx less calling convention for some methods.
16:41 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/c24f561087
16:43 proller joined #perl6
16:43 nwc10 jnthn: oops, that was careless
16:44 dalek rakudo/optimizer-void-context: a10db62 | moritz++ | src/Perl6/Optimizer.pm:
16:44 dalek rakudo/optimizer-void-context: try to track void context in the optimizer
16:44 dalek rakudo/optimizer-void-context:
16:44 dalek rakudo/optimizer-void-context: does not work yet, it seems to consider all string literals in void context.
16:44 dalek rakudo/optimizer-void-context: No idea why :(
16:44 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/a10db62a91
16:46 dalek nqp-jvm-prep: e16605f | jnthn++ | lib/QAST/JASTCompiler.nqp:
16:46 dalek nqp-jvm-prep: Compile subrule.
16:46 dalek nqp-jvm-prep:
16:46 dalek nqp-jvm-prep: As well as calling subrules, this also handles named and positional
16:46 dalek nqp-jvm-prep: capturing. Includes part of what is needed to backtrack into subrules
16:46 dalek nqp-jvm-prep: also.
16:46 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/e16605fcd5
16:46 dalek nqp-jvm-prep: c5161b6 | jnthn++ | lib/QAST/JASTCompiler.nqp:
16:46 dalek nqp-jvm-prep: Implement backtracking the cursor stack.
16:46 dalek nqp-jvm-prep:
16:46 dalek nqp-jvm-prep: This means backtracking over captured things works out. For example:
16:46 dalek nqp-jvm-prep:
16:46 dalek nqp-jvm-prep:     say(('abc123def' ~~ /c <digit>+ (\d\w+)/).list[0].Str())
16:46 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/c5161b686f
16:46 dalek nqp-jvm-prep: 46abfca | jnthn++ | lib/QAST/JASTCompiler.nqp:
16:46 dalek nqp-jvm-prep: Make backtracking into subrules work.
16:46 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/46abfca103
16:46 dalek nqp-jvm-prep: 7b663bb | jnthn++ | docs/ROADMAP:
16:46 dalek nqp-jvm-prep: Update ROADMAP.
16:46 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/7b663bbd5b
16:46 moritz oh, I'm dumb.
16:47 jnthn nwc10: Yeah, I wrote something that needed backtracking into subrules, before I'd finished the logic for that. And it turns out I'd left it unfinished in a way that just built up an enormous cursor stack :)
16:47 proller joined #perl6
16:50 moritz jnthn++ # huge jvm progress
16:55 TimToady masak: here: https://gist.github.com/TimToady/4967666
16:56 xilo_ joined #perl6
16:58 TimToady r: https://gist.github.com/TimToady/4967666
16:58 p6eval rakudo 1e85ff: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/PZRLViIwWl:1â�¤------> [32mhttps[33mâ��[31m://gist.github.com/TimToady/4967666[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix or meta-infixâ�¤        infix stopperâ�¤        stateme…
17:00 masak r: role Foo[::T] { has T $.p = T }; role Bar[::T] { my class Fooey does Foo[T] {}; submethod BUILD { Fooey.new } }; class RatBar does Bar[Rat] {}; RatBar.new
17:00 p6eval rakudo 1e85ff: OUTPUT«Cannot type check against type variable T␤  in any type_check at src/gen/Metamodel.pm:299␤  in block  at src/gen/CORE.setting:797␤  in method BUILDALL at src/gen/CORE.setting:752␤  in method bless at src/gen/CORE.setting:742␤  in method new at src/gen/CORE.setting:…
17:00 * masak submits rakudobug
17:01 TimToady and yes, RatBar is an allusion to the Vorkosigan universe :)
17:01 masak \o/
17:08 dalek rakudo/optimizer-void-context: f41f314 | moritz++ | src/Perl6/Optimizer.pm:
17:08 dalek rakudo/optimizer-void-context: be a bit less wrong about void context detection
17:08 dalek rakudo/optimizer-void-context:
17:08 dalek rakudo/optimizer-void-context: still does not work at all :(
17:08 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/f41f31418c
17:16 * moritz doesn't understand why it's not working :((
17:16 masak TimToady: https://rt.perl.org/rt3/Ticket/Display.html?id=116783
17:16 masak &
17:19 dalek specs: f08f878 | larry++ | S12-objects.pod:
17:19 dalek specs: inner classes must respect genericity
17:19 dalek specs: review: https://github.com/perl6/specs/commit/f08f87886d
17:27 pmurias jnthn: you have been considering removing VarWithFallback?
17:28 jnthn pmurias: Pm and I pondered shuffling default value responsibility off into aggregates to cover a bunch of the cases, if not all of them. But that's not likely to happen in the short term. Medium term perhaps...
17:28 nwc10 jnthn: the tests are still pat
17:29 nwc10 (That's (a) a bit subtle (b) bending English slang a little too far, I think)
17:30 pmurias jnthn: what's a bit crazy about that it does different things for associative and positional
17:32 * pmurias got confused
17:34 thundergnat left #perl6
17:35 TimToady jnthn: does that spec change seem to say approximately the right thing?
17:41 jnthn TimToady: Seems about right. Probably don't want to commit to much more detail until we have an implementation to try out.
17:43 * moritz even dumber than previously thought
17:44 moritz comparing the wrong variables == fail
17:44 arnsholt moritz: Welcome to the club. We meet every tuesday at seven =)
17:47 * jnthn should also attend...
17:47 jnthn Just spent half an hour looking for why on earth a spurious reference to the NQP on Parrot setting was making it into the SC dependencies list
17:48 jnthn Turns out I wasn't passing --setting=... to give it the correct one
17:48 jnthn Anyway, the better news is that with that fix it seems like grammars work.
17:48 moritz \o/
17:51 FROGGS these quotes dont seem right...
17:51 FROGGS "/usr/bin/perl" -MExtUtils::Command -e mkpath                     "/home/froggs/dev/nqp/install/include"/parrot/4.10.0-devel""/dynpmc
17:52 FROGGS that's nqp's make install
17:52 moritz doesn't look too wrong to me
17:52 geekosaur they're syntactically valid; couldnt tell you if they make sense semantically
17:52 moritz the shell strips them
17:53 moritz $ echo "ab""c"
17:53 moritz abc
17:53 nwc10 jnthn: does that mean some more passing tests are going in?
17:53 moritz I just hope that windows agrees :-)
17:54 FROGGS hmmmm, k
17:55 jnthn nwc10: Yeah, I should be able to get some more in today
17:55 mberends nwc seems to be champing at the bit
17:55 jnthn nwc10: Need to deal with a small library loading thingy, which shouldn't be a big deal.
17:55 mberends *nwc10
17:56 * nwc10 groans
17:56 jnthn There ascot to be an end to these horse puns!
17:57 moritz \o mberends
17:58 mberends yo!
17:58 moritz $ ./perl6 -e '"foo"; say 42';
17:58 moritz Useless use of constant string "foo" in void context
17:58 moritz 42
17:59 moritz still has too many false positives to release it to the wild though
17:59 jnthn moritz++ # progress
17:59 dalek rakudo/optimizer-void-context: 15219f7 | moritz++ | src/Perl6/Optimizer.pm:
17:59 dalek rakudo/optimizer-void-context: fix logic error in void context detection
17:59 dalek rakudo/optimizer-void-context:
17:59 dalek rakudo/optimizer-void-context: still has quite a fe false positives
17:59 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/15219f77ae
18:00 moritz 18 warnings from compiling the setting
18:00 jnthn Time for some dinner, methinks. Afterwards will take a look at protoregexes and adding some tests
18:00 moritz i suspect that attribute default false warn
18:00 masak lol, I blogged! \o/ http://strangelyconsistent.org/blog/perl6-is-now-half-as-old-as-perl
18:00 moritz masak++
18:01 moritz ok, I cheated, I didn't read it that fast
18:01 moritz but I read an earlier draft :-)
18:02 nwc10 jvm startup times are still ugly :-(
18:02 nwc10 very slow out of the gate
18:04 dalek specs: b1c3386 | larry++ | S32-setting-library/Containers.pod:
18:04 dalek specs: add combinations method
18:04 dalek specs: review: https://github.com/perl6/specs/commit/b1c33865fd
18:05 uvtc joined #perl6
18:05 au nwc10: try drip, it's like PPerl.pm
18:05 au https://github.com/flatland/drip
18:08 uvtc hi #perl6 :). If I've just built Rakudo-Parrot to use the latest SixParrot and NQP (as described at http://wiki.perl6.org/Rakudo-Parrot ), and time passes and I want to refresh SixParrot and NQP, do I use `make clean`, `make realclean`, or `make distclean`?
18:08 colomon TimToady: did you mean $N instead of $of?  Right now you talk about N and $of -- I presume they're the same, but that should probably be more explicit
18:08 moritz uvtc: usually "make clean" is enough
18:09 kst joined #perl6
18:14 uvtc moritz: Thanks. Updated those wiki notes. And I'm going through a `make clean` then `make`, but it doesn't look like it's grabbing any latest changes from github...
18:14 uvtc I want it to pull the latest commits from Rakudo, SixParrot, and NQP before building again.
18:15 moritz then you need to reconfigure rakudo
18:15 moritz with the --gen-parrot=sixparrot option it'll do the git fetch etc. for you
18:15 dalek rakudo-js: d8fff30 | (Paweł Murias)++ | / (3 files):
18:15 dalek rakudo-js: Pass test 43. Emit more parens, setup the scope with setting.
18:15 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/d8fff3033c
18:15 uvtc Ok. So, then, `make clean`, then run the `perl Configure.pl ...` again and the rest.
18:16 uvtc Thanks, moritz . :)
18:16 uvtc Oh, wait. Actually,
18:16 uvtc after the `make clean`, I'd first need to do `git pull`, right?
18:17 moritz in rakudo, sure
18:17 uvtc Yes. I'm looking for a way to get the very freshed produce from the roadside stand. :)
18:17 * lue just learned about those mugs. :)
18:19 not_gerd joined #perl6
18:19 not_gerd o/
18:20 masak \o
18:20 not_gerd moritz: Cygwin build is broken due to addition of double-quotes: https://gist.github.com/gerdr/4968020
18:20 not_gerd see http://www.cmcrossroads.com/article/gnu-make-meets-file-names-spaces-them
18:20 not_gerd (GNU make doesn't understand them)
18:23 moritz wtf. I use GNU make too.
18:23 moritz (on linux though)
18:24 moritz not_gerd: and which build are you talking about? nqp?
18:25 pmurias I now understand why people want to dogfood the build process ;)
18:25 not_gerd moritz: nqp, yes
18:25 TimToady colomon: well, $taken_N_at_a_time seems like kind of a long parameter name :)
18:26 TimToady and .combinations is already sufficiently dehuffmanized...
18:26 dalek nqp: 97fd401 | moritz++ | src/QAST/ (3 files):
18:26 dalek nqp: [QAST dumper] include a bit more info
18:26 dalek nqp: review: https://github.com/perl6/nqp/commit/97fd401ee9
18:26 not_gerd moritz: the cygwin build does a bit of additional copying of DLLs - possibly that's the only rule that's broken
18:27 * moritz hates all platforms more crazy than linux
18:27 dukeleto o/
18:27 dalek specs: f1d0699 | larry++ | S32-setting-library/Containers.pod:
18:27 dalek specs: clarify that N comes from $of, colomon++
18:27 dalek specs: review: https://github.com/perl6/specs/commit/f1d0699164
18:28 not_gerd the problem should also appear on linux - it's just that you need a certain rule to trigger it because if you only hand off the paths to the shell, it'll work fine
18:29 moritz well, on linux the quoted paths don't appear on the RHS of the makefile rules
18:29 moritz (at least in nqp)
18:31 moritz jnthn: when compiling classes, are there any funny cross-references between QAST nodes happening?
18:32 moritz because when looking at the qast tree for   class A { has $.x = "foo"; ... }  it looks to me like "foo" is indeed compiled in void context
18:33 moritz ie, the QAST::Block has as QAST::Stmts which all sorts of declaration-y stuff
18:33 lue masak++ # good blog post
18:33 moritz oh, do I have to ignore the first statement of each block?
18:34 jnthn moritz: Each QAST::Block has two Stmts nodes. The first is just declarations.
18:34 jnthn I don't know that there's anything funny going on...I think there's a attr_init_closure sub that constructs the attribute initialization closure
18:35 SunilJoshi joined #perl6
18:37 moritz I guess for the void context analysis, it's useful to ignore the declaration-y bits entirely
18:40 masak think so.
18:40 masak though not in 1 + (my $d = 1)
18:41 moritz well, declaration-y bits in the QAST tree
18:41 moritz in the tree, your example looks like   my $d; 1 + ($d = 1)
18:42 moritz and since infix:<+> is marked as "is pure", we can make that warn about "constant expresion in void context" still
18:43 dalek specs: 6f747f3 | larry++ | S32-setting-library/Containers.pod:
18:43 dalek specs: talk about combinations and powerset for Set type
18:43 dalek specs: review: https://github.com/perl6/specs/commit/6f747f3ec4
18:44 moritz not_gerd: urks. It looks like what I need to do is introduce a new syntax for escaped interpolation in the Makefile templates
18:45 * moritz HATES
18:46 moritz jnthn: how does MSVC's escape spaces in paths?
18:47 am0c joined #perl6
18:47 dalek rakudo/optimizer-void-context: d501814 | moritz++ | src/Perl6/Optimizer.pm:
18:47 dalek rakudo/optimizer-void-context: track declaration bits in the QAST
18:48 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/d501814e27
18:49 not_gerd moritz: I believe you need to quote on definition and on usage as interpolation via $(FOO) drops the quotes
18:51 moritz but again, that won't work with GNU make, right?
18:51 not_gerd correct
18:52 not_gerd GNU make basically can't handle spaces
18:52 dalek rakudo-js: 2f66aa1 | (Paweł Murias)++ | / (2 files):
18:52 dalek rakudo-js: Implement redo. Pass test 47.
18:52 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/2f66aa1172
18:52 not_gerd moritz: you need to use quotes with nmake and can use \\ escapes with GNU
18:53 not_gerd \\ doesn't always work but as we're restricting ourselves to the portable subset, it should
18:54 moritz nqp: say(qq["])
18:54 p6eval nqp: OUTPUT«"␤»
18:56 FROGGS https://gist.github.com/anonymous/56528571cbfe83f76cba
18:57 jnthn AFAIK, quotes with nmake, as not_gerd++ said.
18:57 dalek nqp-jvm-prep: f931a2b | (Paweł Murias)++ | t/qast/qast_process.t:
18:57 dalek nqp-jvm-prep: Remove one unused execution of a test in qast_process.t
18:57 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/f931a2bf2f
19:00 _sri wow, today perl6 is as old as perl5 was when perl6 was announced? :o
19:04 TimToady well, the idea of perl6 is...
19:05 TimToady it takes a long time to make a set of different mistakes from Perl 5 :)
19:06 quester joined #perl6
19:12 nyuszika7h_ joined #perl6
19:16 lue ooc, has there been significant discussion of P6 on PyPy? (looking at the wiki's Implementation FAQ)
19:17 japhb lue, we had a guest who pushed the idea pretty hard.
19:17 dalek nqp-jvm-prep: 08ce350 | jnthn++ | nqp-src/QASTNodes.nqp:
19:17 dalek nqp-jvm-prep: Uncomment some code, now more stuff works.
19:17 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/08ce350b22
19:17 dalek nqp-jvm-prep: 165f585 | jnthn++ | Makefile:
19:17 dalek nqp-jvm-prep: Missing flag.
19:17 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/165f585dbc
19:17 dalek nqp-jvm-prep: b1244fb | jnthn++ | src/org/perl6/nqp/sixmodel/ (5 files):
19:17 dalek nqp-jvm-prep: Deserialization of natively typed attributes.
19:17 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/b1244fb3c0
19:17 dalek nqp-jvm-prep: 3b215cd | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
19:17 dalek nqp-jvm-prep: Get protoregexes working.
19:17 dalek nqp-jvm-prep:
19:17 dalek nqp-jvm-prep: Transitive LTM seems to work out fine.
19:17 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/3b215cdb12
19:17 TimToady \o/
19:17 japhb Unfortunately, the conversation evolved in rather the wrong direction -- why we *shouldn't* be doing anything else, rather than how we *could* do a PyPy port.
19:18 TimToady just takes a champion
19:18 TimToady well, and a bit of competence...
19:18 japhb TimToady, was that directed to me?
19:18 lue Ah. I ask because the special PyPy question seems useless right now.
19:18 TimToady nope
19:19 * TimToady doesn't delegate
19:19 lue (TimToady meant in general, if I read correctly.)
19:19 * TimToady is so bad at delegating that he delegates the delegating to other peopple too...
19:19 japhb Indirection solves another problem!
19:19 dukeleto p6 on pypy sounds very interesting
19:19 TimToady and self-delegation usually works best in any case
19:20 TimToady champions volunteer, they are almost never volunteered by someone else
19:21 TimToady and if they meet too much headwind, sometimes they unvolunteer
19:21 masak and become unchampions.
19:21 dukeleto Topaz Ruby is a recent implementation of Ruby on PyPy: http://docs.topazruby.com/en/latest/ (champion reading material)
19:21 japhb Been there, lived that.
19:21 TimToady nah, just former champions :)
19:22 _sri is pypy actually a major player in the python community now?
19:23 _sri last time i looked it seemed nowhere near as popular as jruby is in the ruby world
19:24 japhb sri, congrats on 2.0 release.
19:25 s1n joined #perl6
19:25 _sri japhb: what 2.0?
19:25 jnthn wtf...
19:25 jnthn NMAKE : fatal error U1071: cycle in dependency tree for target '"libparrot.dll"'
19:25 jnthn When building nqp
19:25 japhb sri, is the date on this one wrong?  http://blog.kraih.com/post/43198085334/mojolicious-2-0-released-perl-real-time-web-framework
19:25 japhb (I saw it pass by in #news)
19:25 _sri japhb: d'oh!
19:26 dukeleto _sri: yes, many big players are starting to use PyPy now, because it is so fast
19:26 _sri japhb: posterous is shutting down, new blog provider messed up the dates
19:26 japhb heh
19:26 moritz jnthn: try to revert 1db6167740f7306a0e3acf04ccb15dfcc27c3dcb and see if it fixes stuff for you
19:26 uvtc _sri: I think there's interest in PyPy in the Python world, and there's some funding going into porting it to Python 3...
19:27 moritz jnthn: if yes, push the revert; I just learned from not_gerd++ that the approach isn't general enough anyway
19:27 uvtc _sri: David Beazley gave an interesting keynote fairly recently about CPython and PyPy.
19:30 jnthn hm, doing git revert on a merge commit is entertaining...
19:30 nwc10 dukeleto: oh, interesting. I wasn't actually aware of anyone saying "we use PyPy"
19:31 _sri dukeleto: yea, i'm not aware of anyone either yet
19:31 nwc10 I *thought* I'd watche the video of a Pycon keynote where someone (Dave Beazely?) asked the audience who runs PyPy in production? and the rough show of hands was zero. (At least that was the impression I got. The camera didn't pan, IIRC)
19:32 nwc10 am I wrong? I'm curious
19:32 moritz there are occasional blog posts about pypy in performance testing or production; but it doesn't seem to be the norm
19:32 _sri those (rather interesting) STM experiments around pypy gave me the impression it was still mostly a reasearch project
19:32 nwc10 https://bitbucket.org/fijal/hippyvm -- still active.
19:33 moritz but that's just my outsider's impression
19:33 nwc10 I guess they want Rakudo, as they have Python, Ruby and PHP
19:33 nwc10 so Lua, Perl and Tcl still needed
19:33 moritz what about JS?
19:34 _sri hehe, every vm needs a JS these days!
19:34 nwc10 good point.
19:34 uvtc "We got everyone but Matt Guitar Murphy and Blue Lou and we're gettin' them next." :)
19:35 _sri not too long and those JS implementations will turn into the ultimate vm benchmark
19:36 nwc10 RFC 1925, section 3.
19:36 nwc10 er, section 2, subsection 3
19:39 labster joined #perl6
19:39 japhb moritz, would you mind turning on the dalek hook for perl6/perl6-most-wanted?
19:39 thou joined #perl6
19:40 nwc10 au: I'm really not sure that I'm comfortable with a shell script that contains code to download more stuff at runtime.
19:40 nwc10 (ie bin/drip)
19:43 labster Happy halffiversary, Perl 6!  Thanks for the blog post masak++
19:44 moritz japhb: sorry, I forgot. Will do
19:44 dvj joined #perl6
19:45 japhb moritz, no worries.  :-)
19:45 dvj perl6: class a { has Str $.b = ""; method c { print $!b.comb[*-1] } }; a.new.c()
19:45 dalek perl6-most-wanted: d36031c | (Geoffrey Broadwell)++ | most-wanted/bindings.md:
19:45 dalek perl6-most-wanted: Add 7zip to most-wanted bindings (labster++)
19:45 dalek perl6-most-wanted: review: https://github.com/perl6/perl6-most-wanted/commit/d36031c168
19:45 dalek perl6-most-wanted: 392a9c0 | (Geoffrey Broadwell)++ | most-wanted/modules.md:
19:45 dalek perl6-most-wanted: Text::CSV is WIP (not all tests pass yet)
19:45 dalek perl6-most-wanted: review: https://github.com/perl6/perl6-most-wanted/commit/392a9c0889
19:45 dalek perl6-most-wanted: a53a394 | (Geoffrey Broadwell)++ | most-wanted/modules.md:
19:45 p6eval niecza v24-23-g0520c7c: OUTPUT«Use of uninitialized value in string context␤  at /home/p6eval/niecza/lib/CORE.setting line 1290 (warn @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 266 (Mu.Str @ 15) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.settin…
19:45 p6eval ..rakudo 1e85ff: OUTPUT«Cannot use negative index -1 on List␤  in method Str at src/gen/CORE.setting:10515␤  in method print at src/gen/CORE.setting:7785␤  in sub print at src/gen/CORE.setting:7595␤  in method c at /tmp/W6lWVu8TjM:1␤  in block  at /tmp/W6lWVu8TjM:1␤␤»
19:45 dalek perl6-most-wanted: Minor clarification of most-wanted modules; plus opportunity to test if dalek hook is live for perl6 org's fork of the repo
19:45 dalek perl6-most-wanted: review: https://github.com/perl6/perl6-most-wanted/commit/a53a394d94
19:46 japhb Among other valuable things, I find dalek does a good job of helping my gamify my coding time, so I find it's been quite valuable to me.  :-)
19:46 moritz huh, looks like a rakudobug to me
19:46 dvj raudo: class a { has Str $.b = ""; method c { print $!b.comb[*-1] } }; a.new.c()
19:46 dvj rakudo: class a { has Str $.b = ""; method c { print $!b.comb[*-1] } }; a.new.c()
19:46 p6eval rakudo 1e85ff: OUTPUT«Cannot use negative index -1 on List␤  in method Str at src/gen/CORE.setting:10515␤  in method print at src/gen/CORE.setting:7785␤  in sub print at src/gen/CORE.setting:7595␤  in method c at /tmp/lFZhcTn9CJ:1␤  in block  at /tmp/lFZhcTn9CJ:1␤␤»
19:46 moritz r: say ()[*-1]
19:46 p6eval rakudo 1e85ff: OUTPUT«Cannot use negative index -1 on List␤  in method gist at src/gen/CORE.setting:10516␤  in sub say at src/gen/CORE.setting:7601␤  in block  at /tmp/ZHcgHYoMJt:1␤␤»
19:46 dvj why do I get a negative index -1?
19:46 masak because the list is empty.
19:46 moritz dvj: because the * is the length of the list
19:47 moritz but I still think the error message is wrong
19:47 moritz r: say ()[42]
19:47 p6eval rakudo 1e85ff: OUTPUT«Nil␤»
19:47 dvj ah ok
19:47 moritz it should do the same, IMHO
19:47 dalek rakudo/optimizer-void-context: 9244510 | moritz++ | src/Perl6/Optimizer.pm:
19:47 dalek rakudo/optimizer-void-context: use %!worrying mechanism for string constants in void context
19:47 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/9244510d3c
19:48 pmurias jnthn: do you have any idea's for a portable run QAST API? (so that I can run t/qast_process.t) on nqp-js?
19:50 masak TimToady: would .combinations() have behaved as .powerset() if the default range were 0..+self ?
19:50 jnthn pmurias: Not really got any ideas for that off hand.
19:50 pmurias jnthn: run_qast with a Result object containing the error code and output?
19:51 nwc10 jnthn: I'm all out of puns. All tests sucessful
19:51 pmurias nwc10: you mean all nqp-jvm test pass?
19:52 nwc10 yes
19:55 dalek nqp: b1258d7 | jnthn++ | tools/ (2 files):
19:55 dalek nqp: Revert "Merge remote-tracking branch 'origin/spacey'"
19:55 dalek nqp:
19:55 dalek nqp: This reverts commit 1db6167740f7306a0e3acf04ccb15dfcc27c3dcb, reversing
19:55 dalek nqp: changes made to c9bc4a25ba2ca57e3642dbe870da31fd1b661322.
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/b1258d7c12
19:55 dalek nqp: 0514fec | jnthn++ | src/NQP/ (2 files):
19:55 dalek nqp: Remove a now-unused option.
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/0514fec9f2
19:55 dalek nqp: 1e0a374 | jnthn++ | src/NQP/Actions.pm:
19:55 dalek nqp: Remove a redundant load.
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/1e0a374c0a
19:55 japhb masak: It is useful to have easy ways to get both variants (with and without null set), methinks.  Though that's not a +1 for the current factoring, maybe just mildly positive.
19:56 masak japhb: I'm happy about both methods... I'm just not sure yet why .combinations() has that default.
19:56 masak <moritz> it should do the same, IMHO
19:56 masak moritz: I've had the same thought once or twice.
19:57 masak moritz: problem is that the -1 check isn't syntactic (and can't be, I think), but happens at runtime.
19:57 dalek nqp: c6832d5 | jnthn++ | src/NQP/Actions.pm:
19:57 dalek nqp: Add a way to specify a custom regex lib.
19:57 dalek nqp:
19:57 dalek nqp: Useful for nqp-jvm while it only has the runtime part of it.
19:57 dalek nqp: review: https://github.com/perl6/nqp/commit/c6832d5b63
19:57 FROGGS if I have a reference to an array, what nqp::istype is that?
19:57 moritz masak: I don't understand how that argument applies here
19:58 moritz masak: after all, .[*-1] is handled in a different code path than .[$some_integer]
19:59 moritz masak: and an additional check the closure returning a negative number can be added in the code path for the WhateverClosure
19:59 moritz s/check/check for/
20:03 masak moritz: oh. true. I don't know why I didn't think of that.
20:03 masak then I think we should definitely do it.
20:04 moritz though there might still be one difference
20:04 moritz r: my @a; @a[2] = 42; say @a.elems
20:04 p6eval rakudo 1e85ff: OUTPUT«3␤»
20:04 lue Are set operations documented anywhere in the spec (unicode operators, methods, etc.)
20:04 dalek nqp-jvm-prep: 3a2ea43 | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
20:04 dalek nqp-jvm-prep: Stop dumping generated P6opauqe backing types.
20:04 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/3a2ea4334c
20:04 dalek nqp-jvm-prep: 71ba9d2 | jnthn++ | nqp-jvm-cc.nqp:
20:04 dalek nqp-jvm-prep: Load QRegexJVM by default.
20:04 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/71ba9d2ef7
20:04 dalek nqp-jvm-prep: d7060da | jnthn++ | t/nqp/29-make.t:
20:04 dalek nqp-jvm-prep: Pass 29-make.t.
20:04 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/d7060daab5
20:04 moritz what would @a[*-1] do in lvalue context?
20:06 FROGGS assing to the last element?
20:06 TimToady why would it not simply set the last element?
20:06 FROGGS s/ng/gn/
20:06 moritz if @a is empty?
20:06 moritz what's the last element?
20:06 TimToady error
20:06 TimToady same as setting element -1
20:07 moritz ok, so the current semantics are correct?
20:07 moritz or should it only error in lvalue context?
20:07 TimToady well, in rvalue context it should probably be returning Nil for non-existing elements (or a default if we set one)
20:08 FROGGS nr: my @a; @a[7] = 42; say @a
20:09 p6eval rakudo 1e85ff: OUTPUT«use of uninitialized value of type Any in string context  in block  at /tmp/N4qCA0KQKD:1␤␤use of uninitialized value of type Any in string context  in block  at /tmp/N4qCA0KQKD:1␤␤use of uninitialized value of type Any in string context  in block  at /tmp/N4qCA0KQK…
20:09 p6eval ..niecza v24-23-g0520c7c: OUTPUT«Any() Any() Any() Any() Any() Any() Any() 42␤»
20:09 lue .oO(Should say (1,2,3)[-1] return Nil or error?)
20:09 moritz lue: that's not the question
20:09 FROGGS IMO @a[*-1] should add one element too, if @a is empty
20:09 nwc10 what is the 'make' building, and which part of TFM should I be reading?
20:09 moritz nwc10: S05
20:09 lue I know, I was just wondering if ()[*-1] was to be a special case or not.
20:10 moritz nwc10: make() sets the AST component of $/ in reegxes/grammars
20:10 nwc10 ah OK
20:10 nwc10 is there an index of builtins?
20:10 moritz doc.perl6.org has one, but it's woefully incomplete
20:10 nwc10 it's not possible to autogenerate this?
20:11 nwc10 I guess, "yes, if the Pod were annotated with suitable tags. Which it isn't"
20:11 moritz or if the pod for doc.perl6.org were complete
20:12 masak lue: .[-1] is always an error. and that one can be caught at parse-time.
20:14 lue Yeah. I wanted to type [*-1], but that doesn't do what it does on the empty list.
20:17 mtk joined #perl6
20:17 chromis joined #perl6
20:18 chromis hello
20:18 FROGGS o/ chromis
20:18 nwc10 jnthn: \o/ still
20:19 jnthn nwc10: Yeah, working on seeing if I can get us some more tests. :)
20:19 moritz jnthn: what's an efficient way to insert a noop into the QAST tree?
20:20 nwc10 jnthn: I have just discovered that they don't run in parallel.
20:20 moritz I thought about QAST::VM(:pirop<noop>), but that might take as much memory as the stuff I want to optimize out
20:20 nwc10 I assume that they're using the same temporary file name
20:20 nwc10 and I didn't see it as worth fixing
20:20 nwc10 it is a prototype, after all
20:21 jnthn moritz: QAST::Op.new( :op('null') ) # should be optimized away in void context
20:21 moritz jnthn: ok, great
20:21 jnthn moritz: You can always create one of them and re-use it :)
20:21 jnthn nwc10: Hm, I wonder which temporary file...
20:22 nwc10 oh, you want me to dig?
20:22 jnthn nwc10: Before 3a2ea4 they may have been racing to write debug output...
20:23 jnthn nwc10: Wait, are we talking about make test or make nqptest?
20:23 nwc10 Unable to open filehandle from path 'QAST2JASTOutput.output'
20:23 nwc10 make test
20:23 jnthn Oh.
20:23 jnthn OK, I don't have a very good answer on that one :)
20:23 jnthn nqptest OTOH...
20:23 * nwc10 forgot about make nqptest
20:23 jnthn That should work in parallel.
20:23 nwc10 not been running that
20:23 jnthn Oh, that's the interesting one :)
20:23 nwc10 oopsy
20:23 * jnthn wonders if we shouldn't swap that to be make test these days...
20:24 nwc10 possibly.
20:24 nwc10 it would help muppets like me
20:24 nwc10 t/nqp/46-charspec.t failed because there is no ICU
20:24 nwc10 all others passed
20:25 dalek rakudo/optimizer-void-context: 7636b79 | moritz++ | src/Perl6/Actions.pm:
20:25 dalek rakudo/optimizer-void-context: give string literal QAST nodes a Match object
20:25 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/7636b7925a
20:25 nwc10 Files=50, Tests=444, 25 wallclock secs ( 0.24 usr  0.09 sys + 148.03 cusr 34.06 csys = 182.42 CPU)
20:25 nwc10 nicely in parallel
20:26 jnthn OK, good.
20:26 jnthn I'd have been surprised if that didn't run in parallel
20:27 dalek Heuristic branch merge: pushed 1000 commits to nqp/PackfileView by gerdr
20:27 quester rn: say 'in single quotes: \x58', ", in double quotes: \x58, in single quote-words: ", <\x58>, ", in double-quote-words: ", «\x58»;
20:27 p6eval rakudo 1e85ff, niecza v24-23-g0520c7c: OUTPUT«in single quotes: \x58, in double quotes: X, in single quote-words: \x58, in double-quote-words: X␤»
20:28 not_gerd jnthn: I just resurrected whiteknight's PackfileView work, if you want to take another look
20:29 uvtc left #perl6
20:33 jnthn not_gerd: What's the idea of that, exactly?
20:34 jnthn Generating PBC directly, not PIR?
20:34 not_gerd jnthn: whiteknight wanted to deprecate the EvalPMC
20:34 not_gerd jnthn: that would be the final goal, but that's still ways off
20:34 jnthn Yes, I really don't want to be the person who works on that bit.
20:35 jnthn It's about the opposite of -Ofun.
20:35 not_gerd jnthn: I'm going to look into adding --target=pbc to nqp (just the frontend change)
20:36 not_gerd the current Parrot frontend written in winxed uses the packfile api, so I looked into updating NQP to that as well
20:36 jnthn OK, that could be worthwhile.
20:36 not_gerd the NQP side is now a bit more involved as the Parrot side contains less magic
20:38 not_gerd one could do the frontend change on top of the old system as well, so that's not really a deciding factor
20:38 jnthn I need to do something about HLL::Compiler soon anyways.
20:38 diakopter it needs to do something about you too
20:39 jnthn It currently tangles the generic and the Parrot-specific.
20:39 jnthn And we're gonna want other backends have their specifics too.
20:39 jnthn So need to find a clean separation.
20:40 jnthn It makes sense there's a "produce bytecode" hook, and that can do whatever is needed on the Parrot side, and similar for JVM side.
20:40 jnthn Hm, we could do a role per backend.
20:41 jnthn Though if we wanna support cross-comp in a good way, delegation maybe is better...
20:42 jnthn Anyway, I'll run into this soon since NQPHLL is the next library to get cross-compiling...
20:43 timotimo did the recording from masaks talk surface yet?
20:43 moritz which one? FOSDEM?
20:43 timotimo i think that's the one
20:43 timotimo are there more? :)
20:44 not_gerd jnthn: once there's a proper API, it doesn't really matter if it's based on Eval PMC or PackfileView PMC
20:44 dalek nqp-jvm-prep: 67c7023 | (Paweł Murias)++ | t/ (2 files):
20:44 dalek nqp-jvm-prep: Add a run_qast subroutine to helper which abstracts away running qast.
20:44 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/67c7023638
20:44 fgomez joined #perl6
20:44 pmurias jnthn: ^^ looks sane?
20:44 not_gerd my vote would go to moving to PackfileView under the assumption that whiteknight++ knew what he was doing
20:44 FROGGS nr: my @var = <a b c>; say "a0" ~~ /@var[0]/
20:44 p6eval rakudo 1e85ff: OUTPUT«#<failed match>␤»
20:44 p6eval ..niecza v24-23-g0520c7c: OUTPUT«Potential difficulties:â�¤  Apparent subscript will be treated as regex at /tmp/GLNRM5ROQT line 1:â�¤------> [32mmy @var = <a b c>; say "a0" ~~ /@var[33mâ��[31m[0]/[0mâ�¤â�¤ï½¢a0ï½£â�¤â�¤Â»
20:45 FROGGS TimToady: should the [0] be treated as a cclass?
20:46 jnthn FROGGS: I think we should give the warning that STD/niecza do
20:47 jnthn pmurias: Think so...will give it a try too
20:47 pmurias give it a try = run tests?
20:48 FROGGS okay, so this test is wrong: https://github.com/perl6/roast/blob/master/S05-metasyntax/litvar.t#L37
20:49 FROGGS and the following too, like the tests for hash elements in regexes
20:52 jnthn std: my @var = <a b c>; say "a0" ~~ /@var[0]/
20:52 p6eval std 7551b8f: OUTPUT«Potential difficulties:â�¤  Apparent subscript will be treated as regex at /tmp/a2t76sjCrc line 1:â�¤------> [32mmy @var = <a b c>; say "a0" ~~ /@var[33mâ��[31m[0]/[0mâ�¤  [0] appears to be an old-school character class; please use <[0]> if youâ�¤    mean a character class…
20:52 jnthn FROGGS: Seems so
20:53 FROGGS k
20:53 jnthn std: my $var = <a b c>; say "a0" ~~ /$var[0]/
20:53 p6eval std 7551b8f: OUTPUT«Potential difficulties:â�¤  Apparent subscript will be treated as regex at /tmp/eczB6j8btQ line 1:â�¤------> [32mmy $var = <a b c>; say "a0" ~~ /$var[33mâ��[31m[0]/[0mâ�¤  [0] appears to be an old-school character class; please use <[0]> if youâ�¤    mean a character class…
20:53 rriley joined #perl6
20:54 FROGGS n: std %var = (a=>1, b=>2, c=>3); /%var<a>/
20:54 p6eval niecza v24-23-g0520c7c: OUTPUT«[31m===[0mSORRY![31m===[0m��Variable %var is not predeclared at /tmp/RTWoVjgOij line 1:�------> [32mstd [33m�[31m%var = (a=>1, b=>2, c=>3); /%var<a>/[0m��Only $ and @ variables may be used in regexes for now at /tmp/RTWoVjgOij line 1:�------> [32m…
20:54 FROGGS std: %var = (a=>1, b=>2, c=>3); /%var<a>/
20:54 p6eval std 7551b8f: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable %var is not predeclared at /tmp/QKKR3YLYRA line 1:�------> [32m<BOL>[33m�[31m%var = (a=>1, b=>2, c=>3); /%var<a>/[0m�Variable %var is not predeclared at /tmp/QKKR3YLYRA line 1:�------> [32m%var = (a=>1, b=>2, c=>3); /[33m…
20:54 FROGGS std: my %var = (a=>1, b=>2, c=>3); /%var<a>/
20:54 p6eval std 7551b8f: OUTPUT«Potential difficulties:â�¤  Apparent subscript will be treated as regex at /tmp/lx6nhMKyst line 1:â�¤------> [32mmy %var = (a=>1, b=>2, c=>3); /%var[33mâ��[31m<a>/[0mâ�¤ok 00:00 46mâ�¤Â»
20:55 FROGGS k
20:55 FROGGS std: my %var = (a=>1, b=>2, c=>3); /$(%var<a>)/
20:55 p6eval std 7551b8f: OUTPUT«ok 00:00 46m␤»
20:55 FROGGS n: my %var = (a=>1, b=>2, c=>3); /$(%var<a>)/
20:55 p6eval niecza v24-23-g0520c7c:  ( no output )
20:55 FROGGS n: my %var = (a=>1, b=>2, c=>3); say "abc" ~~ /$(%var<a>)/
20:55 p6eval niecza v24-23-g0520c7c: OUTPUT«#<failed match>␤»
20:55 FROGGS n: my %var = (a=>1, b=>2, c=>3); say "123" ~~ /$(%var<a>)/
20:55 p6eval niecza v24-23-g0520c7c: OUTPUT«「1」␤␤»
20:55 FROGGS r: my %var = (a=>1, b=>2, c=>3); say "123" ~~ /$(%var<a>)/
20:55 p6eval rakudo 1e85ff: OUTPUT«「1」␤␤»
20:56 FROGGS I'll update the tests
20:56 FROGGS std: my %var = (a=>1, b=>2, c=>3); /%var/
20:56 p6eval std 7551b8f: OUTPUT«ok 00:00 46m␤»
20:57 FROGGS what should a hash within a regex do? :rxtype<seq> of its values?
20:58 census joined #perl6
20:59 moritz it's reserved, according to S05
20:59 jnthn FROGGS: Error, I think.
20:59 moritz so yes, error
20:59 jnthn For the reason moritz said
20:59 FROGGS k, thank you both
20:59 moritz we had a very crazy spec for hashes in regexes
21:00 * FROGGS now reads http://perlcabal.org/syn/S05.html#Variable_%28non-%29interpolation
21:00 moritz but that was meant as an extension mechanism that we now do with proto regexes instead
21:00 moritz "The use of a hash variable in patterns is reserved."
21:01 masak moritz++ # posting my blog post on http://www.reddit.com/r/programming/comments/18nfst/perl_6_is_now_half_as_old_as_perl/
21:02 ElDiabolo joined #perl6
21:03 benabik joined #perl6
21:05 GlitchMr "PHP is the future, I remember using perl upto 2004 after that I switched to PHP."
21:05 GlitchMr Trolls instantly appeared
21:05 moritz of course. It's reddit after all.
21:08 dalek nqp-jvm-prep: 264c63b | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
21:08 dalek nqp-jvm-prep: Call method case of boolification.
21:08 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/264c63bf64
21:08 dalek nqp-jvm-prep: 4173f17 | jnthn++ | nqp-src/nqp-mo.pm:
21:08 dalek nqp-jvm-prep: Sync with latest NQPClassHOW.
21:08 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/4173f1743d
21:08 dalek nqp-jvm-prep: 2af05ea | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6Opaque (2 files):
21:08 dalek nqp-jvm-prep: P6opaque positional/associative delegate support.
21:08 dalek nqp-jvm-prep:
21:08 dalek nqp-jvm-prep: Means we can now index directly into match objects.
21:08 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/2af05eaf79
21:08 dalek nqp-jvm-prep: dc524cb | jnthn++ | t/nqp/50-regex.t:
21:08 dalek nqp-jvm-prep: We now pass 50-regex.t.
21:08 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/dc524cb522
21:08 dalek nqp-jvm-prep: bdda6bd | jnthn++ | docs/ROADMAP:
21:08 dalek nqp-jvm-prep: ROADMAP update.
21:08 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/bdda6bde5a
21:09 * moritz runs into conditions where Obviously Correct[tm] patches stop rakudo's setting from building
21:10 arnsholt That's always fun =)
21:12 jnthn pmurias: Seems to have worked out fine.
21:15 nwc10 jnthn: I skippeed the ICU test. All others pass.
21:15 nwc10 the test that needs ICU
21:16 not_gerd hm... do 'init' subs need to be run when generating PBCs?
21:17 jnthn No
21:17 jnthn I think there is (was?) a feature called emit_pbc where things ran while emitting PBC. I dunno if it still exists, and we sure don't use it.
21:18 timotimo so, the synopses 7 and 8, about lists and iterators, are still-wrong-don't-read-them today?
21:18 jnthn *nod*
21:19 not_gerd jnthn: I think I know how to factor HLL:Compiler so --target=pbc works
21:19 * not_gerd gives it a try
21:20 ElDiabolo masak,  select $_.foo, $_.bar from @table  where $_.foo != 5              # just a map + grep thingy and closer to SQL than LINQ.
21:21 ElDiabolo masak, Just wondering if we should go for LINQ or embedded SQL.
21:21 not_gerd how do I output debug stuff to STDERR from nqp?
21:22 timotimo r: note 'something something'
21:22 p6eval rakudo 1e85ff: OUTPUT«something something␤»
21:22 timotimo i think that's how you do it
21:22 jnthn in nqp ;)
21:22 timotimo er, sorry >_<
21:22 jnthn I'm not sure off hand :)
21:22 jnthn We must do it somewhere.
21:22 jnthn I think it's done by grabbing the stderr handle and calling a print method on it or so
21:23 sftp joined #perl6
21:24 moritz pir::getinterp__P().stderr_handle().say("foo")
21:24 moritz or something like that
21:24 not_gerd moritz: thanks
21:25 moritz src/HLL/Compiler.pm:        pir::getinterp__P().stderr_handle().print(...)
21:27 dalek rakudo/optimizer-void-context: c24440a | moritz++ | src/Perl6/Optimizer.pm:
21:27 dalek rakudo/optimizer-void-context: detect Int and Num literals in void context
21:27 dalek rakudo/optimizer-void-context:
21:27 dalek rakudo/optimizer-void-context: Does not trigger yet, probably because they have no .node info.
21:27 dalek rakudo/optimizer-void-context: Also replace the constant QAST node with a null op
21:27 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/c24440a636
21:27 dalek rakudo/optimizer-void-context: 89c7e57 | moritz++ | src/Perl6/ (2 files):
21:27 dalek rakudo/optimizer-void-context: give numeric constant QAST nodes a .node
21:27 dalek rakudo/optimizer-void-context:
21:27 dalek rakudo/optimizer-void-context: now Int and Num literals warn in void context
21:27 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/89c7e570bc
21:30 dukeleto joined #perl6
21:41 dalek rakudo/nom: 932bc53 | (Tobias Leich)++ | src/Perl6/Grammar.pm:
21:41 dalek rakudo/nom: Apparent subscript will be treated as regex
21:41 dalek rakudo/nom:
21:41 dalek rakudo/nom: Throw the same warning as STD does for things like
21:41 dalek rakudo/nom: @var[0], $var{a} and $var<a> in regexes.
21:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/932bc53183
21:43 dalek nqp-jvm-prep: c664f92 | jnthn++ | / (2 files):
21:43 dalek nqp-jvm-prep: Couple of stringification/numification tweaks.
21:43 dalek nqp-jvm-prep:
21:43 dalek nqp-jvm-prep: This isn't great, but should do for NQP for now at least.
21:43 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/c664f923f9
21:43 dalek nqp-jvm-prep: f91c444 | jnthn++ | t/nqp/3 (3 files):
21:43 dalek nqp-jvm-prep: 3 more passing regex/grammar test files.
21:43 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/f91c4446e3
21:45 s1n joined #perl6
21:45 ElDiabolo joined #perl6
21:50 FROGGS n: my @arr = <a bc def>; say "abc" ~~ /@arr/
21:50 p6eval niecza v24-23-g0520c7c: OUTPUT«「a」␤␤»
21:50 FROGGS n: my @arr = <a bc def>; say "abc" ~~ / | @arr/
21:51 p6eval niecza v24-23-g0520c7c: OUTPUT«「a」␤␤»
21:51 FROGGS n: my @arr = <a bc def>; say "abc" ~~ / |@arr/
21:51 p6eval niecza v24-23-g0520c7c: OUTPUT«「a」␤␤»
21:51 nwc10 jnthn: steady state of tests is the usual.
21:53 jnthn :)
22:04 jnthn Currently at 54 passing test files.
22:04 dukeleto joined #perl6
22:04 dalek rakudo/optimizer-void-context: f6a731c | moritz++ | src/Perl6/Optimizer.pm:
22:04 dalek rakudo/optimizer-void-context: warn when inlining constant expressions in void context
22:04 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/f6a731c2f2
22:05 eiro hello everyone
22:05 jnthn o/ eiro
22:05 moritz \o eiro
22:05 moritz $ ./perl6 -e '42 + 23; say "foo"'
22:05 moritz Useless use of constant expression "+" in sink context (line 1)
22:05 moritz foo
22:06 eiro perl6 equivalent to $/ ?
22:06 jnthn moritz: Steal widen_EXPR from rakudo debugger to make it say more than just the + :)
22:06 jnthn moritz++ # void warnings
22:06 moritz jnthn: oi :-)
22:07 moritz that's a good idea
22:08 moritz but I'll that for tomorrow
22:08 moritz sleep&
22:08 jnthn :)
22:08 FROGGS gnight all
22:08 jnthn o/ FROGGS
22:08 jnthn eiro: Remind me what $/ is again... :)
22:09 jnthn Oh, it's the input spearator, iirc...
22:10 eiro EOL, right.
22:10 jnthn Not sure about that...I know that for the idiom of undefining it to read the whole file, we just have slurp
22:11 eiro RS is 0x1e in ISO2609.
22:11 eiro jnthn, i thought about it but it will be really memory consumming: i work with dumps of complete databases
22:13 eiro jnthn, i'll split the file in multiple parts with perl5 if there is no solution for the moment
22:13 jnthn Yeah, I've just looked through IO.pm and we don't seem to have anything provided there
22:13 jnthn Maybe I'm missing it, though.
22:15 not_gerd jnthn: https://gist.github.com/gerdr/4968963
22:15 eiro i explored IO.pm too but i have to admit i'm confused. for example: i don't understand what nqp::bind_attr is (it seems to be undocumented)
22:15 eiro also i saw a wierd function: multi method say (|) { * }
22:16 eiro say takes an array and returns Whatever ?
22:16 jnthn Are you sure it wasn't proto?
22:16 jnthn nqp:: is a call down to a low-level primitive
22:16 eiro i check
22:17 jnthn Looking tat the spec it seems it defines an input-line-separator, which we don't have yet
22:17 eiro jnthn, my fault: it is a proto
22:18 eiro so { * } means: it will return something .
22:18 jnthn The { * } means "pick whatever multi candidate is best"
22:18 eiro ok so i'll kludge with perl5
22:18 eiro wow! impressive
22:20 jnthn While that's a boring proto, it is possible to write protos where you do soemthing before/after then go to the applicable candidate.
22:20 eiro last thing: is there a way to use a regex against a fh and forget the already parsed stuff ? (the idea is to read record by record with a grammar )
22:21 jnthn not_gerd: I just tried it with --target=pir and then turning that into PBC and it seems to work.
22:21 eiro i start to learn nqp as well as perl6: at FOSDEM, i saw masak reading the source and finding interesting infos. + it's quiet perl programmer friendle
22:21 jnthn not_gerd: My best guess is that an init block was done wrong.
22:22 jnthn Well, it's a very small Perl :)
22:39 eiro thanks jnthn! night all
22:50 not_gerd jnthn: I've been staring at the code for a bit, and I think it *should* work
22:50 not_gerd shot in the dark is a weird difference between compile() and compile_file()
22:51 not_gerd I'll sleep on it and try again tomorrow
22:51 not_gerd good night, #perl6
22:51 not_gerd left #perl6
23:06 dalek perl6-roast-data: 13496e9 | coke++ | / (3 files):
23:06 dalek perl6-roast-data: today (automated commit)
23:06 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/13496e9148
23:19 jnthn I scribbled a short blog post: http://6guts.wordpress.com/2013/02/17/nqp-on-jvm-gets-grammars-multiple-dispatch/
23:19 jnthn 'night, #perl6
23:23 [Coke] jnthn++ ++ ++
23:37 nyuszika7h joined #perl6
23:46 japhb jnthn++ # Good blog post -- and of course, the work that came before it.  ;-)
23:47 not_gerd joined #perl6
23:47 * not_gerd is back
23:47 not_gerd I figured it out and will push in a bit
23:52 dalek nqp/target-pbc: 2d6a387 | (Gerhard R)++ | / (4 files):
23:52 dalek nqp/target-pbc: add --target=pbc to nqp
23:52 dalek nqp/target-pbc:
23:52 dalek nqp/target-pbc: the factoring of the code isn't perfect, but it does work
23:52 dalek nqp/target-pbc: review: https://github.com/perl6/nqp/commit/2d6a3872e2
23:53 not_gerd and pushed
23:54 silug joined #perl6
23:55 stevan__ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo