»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
jnthn Tomorrow, will see if I can land alternations with LTM. 'night o/ 00:00
00:02 benabik joined 00:06 pmurias left 00:07 pmurias joined, raiph left 00:11 raiph joined, raiph__ joined, raiph_ joined 00:18 raiph__ left, raiph_ left, raiph left 00:20 dayangkun joined 00:21 raiph_ joined, raiph joined 00:22 raiph__ joined 00:26 xilo_ joined 00:31 pmurias left 00:52 census joined
census Hi! :) 00:52
diakopter if you ask a Perl 5 question I will kick you :) 00:53
but hi :) 00:54
census no perl 5 q!
i promise
would you like a perl 6 q?
00:56 xilo_ left 00:57 xilo_ joined
sorear sure 00:59
census will perl 6 do everything that perl 5 does but better?
and when will perl 6 be on the market?
01:09 quietfanatic joined
rjbs What does "on the market" mean? 01:14
quietfanatic There are markets it is already on, and there are markets it is not yet on. 01:16
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:17
s/to/do 01:18
rjbs It's much better at building parsers, obviously. 01:19
01:19 tokuhiro_ joined
diakopter well.. parsers for Perl 6 anyway 01:20
census you mean perl 5 is much better for parsers? 01:23
what will perl6 be much better for? 01:24
01:24 _Chillance_ joined
diakopter no, Perl 6 has grammars built-in, and its "regular expressions" are more powerful 01:24
quietfanatic We mean perl 6 is much better for parsers. 01:25
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.
and as long as you don't include compatibility with perl 5 modules in that "everything". 01:26
01:27 Chillance_ left
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
In coding time perl 6 is probably faster for most things 01:29
but there is currently a large execution time cost.
hopefully that'll be much reduced once we move over to the JVM.
diakopter JVM has a slow startup time... thousands of times slower than Perl 5 01:30
but yeah for more than subsecond-long executions of scripts, it'll be better
[than Rakudo is today] 01:31
census both time constraints are important for me
01:31 benabik left
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
01:32 benabik joined
benabik Wonder how hard it would be to duplicate scala's fsc 01:33
01:34 anuby left 01:44 anuby joined
census In all seriousness, may I please ask a perl5 question that just occurred? (I won't if it will be a bother). 01:55
rjbs No. 01:57
geekosaur pollice verso 01:58
02:00 tokuhiro_ left
benabik geekosaur: 👎? 02:00
census May I please ask an internet question? 02:01
diakopter prepares to send www.lmgtfy.com
geekosaur benabik, indeed
lue .u 👎 02:05
phenny U+1F44E (No name found)
02:06 dayangkun left, tokuhiro_ joined 02:10 colomon left 02:12 japhb_ left 02:25 hypolin joined 02:27 fgomez left
rprajapa 02:00 < benabik> geekosaur: ?? 02:32
02:01 < census> May I please ask an internet question?
02:01 * diakopter prepares to send www.lmgtfy.com
02:37 ifim joined 02:39 PacoAir left 02:40 colomon joined 02:50 fgomez joined 02:53 shinobicl joined 02:54 thou left
census yes, rprajapa? 02:56
diakopter looks like an accidental paste to me 02:58
census oh ok, thanks 03:01
03:01 shinobicl left
census i thought someone wanted to talk to me, perhaps (or maybe it was mock me . . .) 03:01
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?
labster reworking File::Compare so it can handle more than two files at a time. 03:03
census that would be very helpful!!
labster When I decide to port a Perl 5 module to P6, I ask myself, how can I make this better? 03:04
census that's a great attitude! :) 03:05
03:06 dayangkun joined
labster well, perl 6 is -Ofun -- optimized for fun! 03:06
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:09
*when I was back in college 03:10
census what type of organization were you in? a fraternity? student government?
03:11 tokuhiro_ left 03:12 araujo left
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:12
03:14 tokuhiro_ joined 03:16 xilo_ left 03:24 census left 03:32 orafu left, orafu joined 03:34 tokuhiro_ left, Targen joined 03:38 am0c joined 03:42 fgomez left 03:46 _Chillance_ left 03:56 thou joined 04:01 aindilis joined 04:03 wk left 04:09 fgomez joined 04:28 benabik left 04:29 benabik joined 04:33 kaare_ joined 04:39 aindilis left, thou left 04:40 aindilis joined 04:50 preflex left, preflex_ joined 04:51 preflex_ is now known as preflex 04:59 aindilis left 05:02 aindilis joined 05:03 benabik left 05:11 hypolin left 05:12 hypolin joined 05:19 hypolin left, rprajapa left 05:20 hypolin joined, xinming left 05:22 xinming joined 05:23 kaare_ left 05:43 pupoque joined 05:47 diakopter is now known as p6opaque 05:52 p6opaque is now known as nqp-XXX, nqp-XXX is now known as p6-opt, p6-opt is now known as diakopter 05:56 araujo joined, araujo left, araujo joined 05:59 aindilis left 06:01 aindilis joined 06:11 lustlife joined 06:12 dayangkun left
TimToady two more RC entries and we'll tie p5... 06:18
diakopter ahoy 06:19
TimToady rosettacode.org/wiki/Doubly-linked_...ion#Perl_6 06:20
06:20 jaldhar joined
felher Goooooood morning, #perl6 06:26
TimToady++ # yet another new RC-Entry
06:29 pupoque left 06:30 pupoque joined 06:36 SunilJoshi joined
sorear o/ felher 06:37
06:39 tadzik joined
felher sorear: my good morning is probably a good night to you. What time is where you are? :) 06:39
*is it
sorear 2240 06:40
felher Ah, not as late as I thought :) 06:41
tadzik good morning 06:43
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:45
felher o/ tadzik 06:46
06:53 pupoque left 06:59 dayangkun joined 07:07 b1rkh0ff left 07:11 quietfanatic left 07:15 bapa left 07:16 bapa joined 07:21 b1rkh0ff joined 07:47 quester left
TimToady and now we are tied in "popularity": rosettacode.org/wiki/Rosetta_Code/R...ity#Perl_6 07:52
sorear purty contrived definition of popularity. 07:53
TimToady hence the scare quotes :)
more a measure of OCD tendencies of the participants, I figure 07:54
TimToady -> horizontal mode 08:01
labster \o/ congrats TimToady++ 08:16
08:33 rindolf joined
dalek kudo-js: e548e3f | (Paweł Murias)++ | / (18 files):
Steal a slightly modified setting from nqp-jvm.
08:35
08:47 s1n left 08:51 s1n joined 08:52 FROGGS joined
FROGGS morning 08:52
08:53 am0c left
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
dunno if oslo is the best airport though
moritz FROGGS: which airline? norwegian? 08:55
FROGGS ya
opodo++
moritz that's kinda cool
FROGGS is is, yes 08:56
dalek kudo-js: 32cfe50 | (Paweł Murias)++ | / (4 files):
Use nqp from a submodule instead of ../nqp.
08:58
09:04 pmurias joined 09:05 SunilJoshi left
dalek kudo-js: d377ddd | (Paweł Murias)++ | run_tests:
Add passing test 57 to run_tests.
09:07
kudo-js: db0c83b | (Paweł Murias)++ | README.markdown:
Update README.
09:12
09:15 rindolf left 09:23 SunilJoshi joined 09:31 not_gerd joined
not_gerd o/ 09:31
can someone gist a Parrot Makefile resulting from --gen-parrot and not on Cygwin?
diakopter gist.github.com/diakopter/4966255 09:34
09:34 labster left 09:35 SunilJoshi left
not_gerd diakopter++ 09:35
diakopter what od you need from it
aw F 09:36
had to delete it
not_gerd diakopter: I'm looking into why building Parrot picks up the installed lib if present 09:37
09:38 ifim left
dalek kudo-js: 30ca3b7 | (Paweł Murias)++ | run (2 files):
Implement nqp::existpos,nqp::deletepos,nqp::split. Again start passing test 59.
09:40
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
^nuke 09:42
diakopter yes, a few times
it will even find it in c:\Parrot *if it's not in the PATH*
I mean, I can somewhat imagine how that could occur 09:43
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
I did not see anything like that in your Makefile
diakopter I encountered the problem when not using --gen-parrot though; forgot to mention 09:46
not_gerd: who are you on parrot-dev
not_gerd the guy who pissed off pmichaud recently ;) 09:47
not_gerd--
diakopter you're gerd but not gerd? 09:48
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
not_gerd I'll try to reproduce a build failure on Windows, but it'll probably have to wait until tomorrow 09:56
anyway, have a nice weekend 09:57
09:57 ElDiabolo joined
diakopter o/ 09:57
09:57 not_gerd left
ElDiabolo Hi. Is anybody working on some LINQ-style embedded SQL for perl6 ? 09:58
moritz ElDiabolo: I'm not aware of any
ElDiabolo moritz, 'K. Then I'll continue considering doing that ? 09:59
moritz yes 10:00
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:05
10:05 kst left
ElDiabolo Are there any docs on doing DSLs in perl6? 10:06
moritz well, that depends on what kind of DSL you want to create 10:07
the easiest is simply create subs, methods and operators with clever names
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
moritz (That's what the rubyists call DSLs) 10:08
or you can pass strings containing the DSLs, and parse them with grammars
there are plans for more advanced in-language DSL mechanisms, but they aren't implemented yet
diakopter actually.. maybe macros... 10:09
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
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:11
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.
masak good forenoon, #perl6
diakopter nwc10: I think I missed the joke about that report :) 10:13
10:18 anuby left
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).
masak ElDiabolo: no, it's not subs in C#. 10:20
ElDiabolo: it's syntactic sugar for extension methods.
(which are semantically very similar to subs, but look like methods)
diakopter they're just parsed like normal keywords and expressions 10:21
ElDiabolo masak, Yeah, thats more precise, 'K.
masak ElDiabolo: this might be of interest to you: perl6advent.wordpress.com/2012/12/2...-y-things/ 10:23
ElDiabolo masak, Maybe drop me an email to jz-2013@heute-morgen.de
masak ElDiabolo: sure. just an empty mail? 10:25
10:26 domidumont left, domidumont joined
ElDiabolo masak, Yeak, that'll do. 10:26
masak ElDiabolo: sent.
ElDiabolo masak, Visitors downstairs, got to go. 10:27
n8
10:27 ElDiabolo left
diakopter neight indeed 10:27
masak gosh, even the good-night wishes are being replaced by horsemeat. 10:29
for some reason, I imagine ElDiablo having to take care of the Visitor pattern downstairs. 10:31
"gotta add functionality through double dispatch to these things downstairs..."
no, it completely doesn't make sense, I know.
diakopter he probably uses IoC for that 10:33
or mocking
or AOP
10:34 spider-mario joined 10:35 wk joined
diakopter the asteroid that flew by sure looks like a spacecraft to me 10:37
masak aliens are smart enough not to stop by on this planet. 10:39
just as we are smart enough not to jump into a pit full of worms. 10:41
diakopter speak for yourself.. 10:43
masak ;) 10:45
wait, are you insulted qua worm or qua alien? *confused*
diakopter no I just like worms 10:49
masak *lol*
tadzik hello hello 10:50
moritz ehlo 10:52
masak tadziku! \o/
jnthn hello all o/ 10:56
pmurias jnthn: hi
tadzik oh hai
diakopter oy
tadzik so, what was happening when I was elsewhere? :) 10:58
dalek p: ba13a07 | (Paweł Murias)++ | src/core/NQPMu.pm:
Fix comment.
10:59
pmurias jnthn: if I have class Foo {has $!abc};my $foo = Foo.new(); Does $!abc get initialized and how? 11:02
jnthn pmurias: Provided it's after NQPMu is declared, yes. See auto_viv_container or so. 11:05
11:12 CharellKing joined
masak CharellKing! \o/ 11:12
CharellKing i'm online 11:13
masak yes, you are. welcome.
11:19 kivutar joined 11:22 CharellKing left 11:23 SamuraiJack joined
arnsholt o/ 11:28
masak \o 11:35
jnthn hi arnsholt
dalek p-jvm-prep: 1baa9f4 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Missing null checks.
11:58
p-jvm-prep: 5e97b8a | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/VMArrayInstance (4 files):
Implement cloning in VMArray REPR.
p-jvm-prep: 1478307 | jnthn++ | src/org/perl6/nqp/ (3 files):
Fix boolification for BOOTArray and BOOTHash.
p-jvm-prep: f8e4a32 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Initial port of alt.

Doesn't actually work yet, since NFA execution is NYI. Howver, the generated code does enough to get us to the point of hitting that.
12:04 hypolin left 12:09 kivutar left
pmurias jnthn: the reason we have auto_viv is to avoid storing never accessed values? 12:13
* auto_viv_container
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?
jnthn pmurias: I don't think so 12:17
pmurias: Otherwise I think you'll have trouble to implement isattrinited
pmurias jnthn: is it just an optimalisation or something we need to implement a piece of spec? 12:18
moritz class A { has $.x = 2 }; # at instantiation time, you need to decide whether to assign the default or not 12:19
jnthn pmurias: It's used by BUILDALL to get stuff right. 12:20
Yes, what moritz++ just said :)
pmurias so the moment something reads the attribute at BUILDALL time we assign the default? 12:27
moritz no
at BUILDALL time, we check each attribute if it has been bound already 12:28
and if not, apply the default
12:28 PacoAir joined
jnthn Well, it's more "touched" than "bound" 12:31
12:31 census joined
jnthn Typically you don't bind so much as assign. 12:31
nwc10 jnthn: diakopter observed that my previous report on nqp-jvm-prep had no jokes/puns/whatever 12:35
so, make test reports "No horsemeat found" 12:36
12:36 kivutar joined
jnthn Darn, so it's still not considered stable yet... 12:38
masak not even in the race. 12:39
census hello! :) people around on saturday? 12:42
tadzik usually, aye
census cool :) 12:43
it is quiet so i was worried 12:47
masak quiet? surely not. 12:48
and we are most certainly here.
census it seems quiet in here
jnthn Maybe by your standards :P
tadzik the less you speak the more you're able to hear"
(and I fail at [Return], again)
dalek p-jvm-prep: 87a1366 | jnthn++ | src/org/perl6/nqp/ (3 files):
Implement nqp::nfafromstatelist.
12:49
p-jvm-prep: a9ea4c9 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Stub in nfarunalt.

Does the bstack pushing, but the NFA running itself is to do.
p-jvm-prep: 49cd4f0 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Fix code-gen of alt; JAST ain't quite like POST.
moritz 252 lines spoken today, according to the clogs
census :) 12:51
jnthn reaches the point where he has to translate the NFA evaluator...
nwc10 procrastination alternatives all exhausted? 12:52
what language is it currently written in?
moritz idly ponders bringing void context analysis to the optimizer
jnthn nwc10: Well, I could go do subrules instead, but... 12:53
nwc10: It's a chunk of C code, becoming a chunk of Java code.
moritz backtracking is also hairy
or beefy
or horsey :-)
jnthn Yeah, but I did most of backtracking yesterday while drinking IPA... :) 12:54
census IPA is not that good, is it?
jnthn After I drink it, I can write the sounds of every language... 12:55
Not that good? Well, it depends on the IPA. :) I've had good and I've had bad. :)
nwc10 jnthn: prove still has no beef with the code.
(at 49cd4f0ed874967a661341bf7efbb9f94dbca26a) 12:56
jnthn Nice
I've stopped bothering to run the tests myself by now... :P
nwc10 I'm not sure if I believe you :-) 12:57
13:02 zby_home joined
jnthn walk, bbiab 13:06
GlitchMr masak, how is first blog post about p6cc contest going? 13:19
I'm impatient, I know. 13:20
moritz nqp: say(1 // 2)
p6eval nqp: OUTPUT«1␤»
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
GlitchMr: above that on the priority list, however, is the blog post celebrating today's Perl 6 anniversary. which has to go out today.
I'm starting to write it now. expect an early draft soon. 13:23
moritz expects it
GlitchMr ok then
Perl 6 anniversary...?
Well, I will surely include it in today Perl 6 changes article
moritz today, age(Perl) == 2 * age(Perl 6) 13:24
masak: correct?
GlitchMr 16 Feb 2000? 13:25
census yes, what is the answer?!? :) 13:26
moritz age in days, iirc
see yesterday's backlog
masak moritz: correct.
"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." -- modernperlbooks.com/mt/2013/02/prac...ments.html
gee, I thought chromatic had blocked the IRC logs. ;)
masak waves at chromatic 13:27
moritz maybe it leaked out anyway
13:27 zby_home left
masak maybe someone reads the logs for him? 13:27
GlitchMr Is there any reference to that particular date?
masak I apply Occam's to that suggestion.
GlitchMr I could've found July 19, 2000 as earliest date
oh, that 13:28
> Date.today - Date.new('2000-07-19') 13:32
4595
> Date.new('2000-07-19') - 4595
1987-12-20
I think I've off by one error
Perl 1, according to perlhist was 1987-Dec-18.
masak GlitchMr: Perl 6 was born on July 18, 2000. 13:34
GlitchMr: see the beginning of strangelyconsistent.org/blog/happy-...ary-perl-6
it was *announced* on July 19, 2000.
moritz r: say Date.new(2000, 07 ,18) - Date.new(1987, 12, 18) 13:35
p6eval rakudo 1e85ff: OUTPUT«4596␤»
masak but I consider the mug-throwing to be the birth of the language. it was discussed already on that day.
moritz r: say Date.today - Date.new(2000, 07 ,18)
p6eval rakudo 1e85ff: OUTPUT«4596␤»
masak (and it was decided that it would happen already on that day.)
GlitchMr Hmmm, but weren't Perl worked on before 1987-Dec-18. 13:39
This is release date of Perl 1.
But well, I guess that nobody except of Larry and his officemates didn't knew anything about Perl. 13:40
Even the fact it's being worked on.
So it could count.
moritz but we don't have any dates before the release
GlitchMr Yeah... 13:41
It's earliest known date of Perl development.
And Perl 0 date is "Classified"
jnthn is back 13:49
pmurias is back from his walk too ;)
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.
jnthn pmurias: Really?
pmurias: In the Parrot and JVM impls it is just a null check 13:51
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 13:58
masak first, make it run... 14:00
that should've had quotes around it :)
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:02
GlitchMr masak, by the way, isn't "anniversary" incorrect term? 14:03
According to dictionary definition.
Because it's not annual to begin with.
masak GlitchMr: feel free to propose a more fitting term. 14:04
jnthn pmurias: Well, we need to track this somehow... :) 14:05
GlitchMr Well, I'm really bad at English ;-).
The only term I could think of is "milestone", but I don't think it's fitting either.
masak "milestone" feels like it has more to do with what you've done than with dates. 14:06
I won't use the word "anniversary" in my post.
GlitchMr Well, ok
masak chromatic used it in his. that's up to him. :)
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:07
moritz equidieversary 14:09
masak oh, you
moritz equi = same, die = day
masak also, equus = horse :P
moritz holy cow. 14:10
masak rats.
GlitchMr I like it
14:12 SamuraiJack_ joined 14:13 SamuraiJack left 14:14 kivutar left 14:21 Psyche^ joined 14:25 Patterner left, Psyche^ is now known as Patterner 14:34 SamuraiJack_ left 14:36 SamuraiJack joined
dalek p-jvm-prep: 42bb791 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Implement NFA execution.
14:45
p-jvm-prep: b32cf39 | jnthn++ | / (2 files):
Align constants used with char classes.

This matches the enumeration used on Parrot. It eases migration, and it really doesn't matter at all what numbers we pick.
p-jvm-prep: 8d10f4c | jnthn++ | docs/ROADMAP:
Update ROADMAP; we now have LTM alternations.
14:53 perlmonkey joined
arnsholt mst++ # Being constructive 15:01
15:02 thundergnat joined
thundergnat Oh shark, zebras. :-) 15:03
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:04
masak thundergnat: it's a (known) rakudobug. 15:05
thundergnat Ah.
15:05 perlmonkey left
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:07
moritz you mean, catch exceptions only of a specific class? 15:08
CATCH { when Your::Exception::Type { handle it } }
thundergnat Yes
moritz all the other types are automatically rethrown
thundergnat Does the class need to be an 'is Exception'? 15:09
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;}
p6eval rakudo 1e85ff: OUTPUT«foo␤bar not here␤»
15:10 benabik joined
thundergnat Here I only want to catch the Method::NotFound from F 15:10
moritz thundergnat: if you throw objects that don't derive from Exception, they are automatically wrapped in X::AdHoc 15:11
so, yes
thundergnat Ok, I suspected as much but wanted to ask someone who knew more about it. Thanks 15:13
15:26 am0c joined 15:27 ggoebel_ joined
ggoebel_ jnthn++ LTM on jvm 15:28
masak .oO( LTA with TLAs )
moritz FTW! 15:31
jnthn wonders if anybody else finds it strangely right that FTW is WTF.flip 15:33
15:33 Chillance joined
moritz
.oO( strangely consistent at least )
15:34
15:38 am0c left 15:46 SunilJoshi joined
dalek p: d579a30 | (Paweł Murias)++ | t/nqp/59-nqpop.t:
Add tests for isnull for things that aren't nulls.
15:47
15:48 benabik left 16:00 census left
dalek kudo-js: fa96194 | (Paweł Murias)++ | / (2 files):
Use auto_viv_values, remove hack.
16:04
kudo-js: d6e93e6 | (Paweł Murias)++ | / (2 files):
Fix isnull.
16:12 am0c joined
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
Or am I just insane?
moritz thundergnat: define "resume"?
thundergnat r: gist.github.com/anonymous/4967456 16:21
p6eval rakudo 1e85ff: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/50c3JUvp_i:1␤------> https⏏://gist.github.com/anonymous/4967456␤ expecting any of:␤ argument list␤ postfix␤ infix or meta-infix␤ infix stopper␤ statem…
thundergnat errm.
Didn't that used to work
moritz probably before gist changed their URL schema 16:22
I'll need to fix p6eval
anyway, that return(); looks bogus
because you're not in a routine
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?
moritz you can .resume. But usually that's VERY bad idea
because most code assumes that if died, control flow there stopped
dalek kudo-js: c5a66ae | (Paweł Murias)++ | / (3 files):
Remove nqp.undef.
16:24
nwc10 jnthn: with respect to tests - still nothing to nag about.
16:25 census joined 16:27 aindilis left 16:28 aindilis joined
jnthn nwc10: Meanwhile, I just managed to fill the whole heap :) 16:38
16:40 proller left
dalek kudo-js: c24f561 | (Paweł Murias)++ | / (2 files):
Remove a hack that enabled a ctx less calling convention for some methods.
16:41
16:43 proller joined, proller left
nwc10 jnthn: oops, that was careless 16:43
dalek kudo/optimizer-void-context: a10db62 | moritz++ | src/Perl6/Optimizer.pm:
try to track void context in the optimizer

does not work yet, it seems to consider all string literals in void context. No idea why :(
16:44
p-jvm-prep: e16605f | jnthn++ | lib/QAST/JASTCompiler.nqp:
Compile subrule.

As well as calling subrules, this also handles named and positional capturing. Includes part of what is needed to backtrack into subrules also.
16:46
p-jvm-prep: c5161b6 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Implement backtracking the cursor stack.

This means backtracking over captured things works out. For example:
   say(('abc123def' ~~ /c <digit>+ (\d\w+)/).list[0].Str())
p-jvm-prep: 46abfca | jnthn++ | lib/QAST/JASTCompiler.nqp:
Make backtracking into subrules work.
p-jvm-prep: 7b663bb | jnthn++ | docs/ROADMAP:
Update ROADMAP.
moritz oh, I'm dumb.
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
16:47 proller joined
moritz jnthn++ # huge jvm progress 16:50
TimToady masak: here: gist.github.com/TimToady/4967666 16:55
16:57 xilo_ joined
TimToady r: gist.github.com/TimToady/4967666 16:58
p6eval rakudo 1e85ff: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/PZRLViIwWl:1␤------> https⏏://gist.github.com/TimToady/4967666␤ expecting any of:␤ argument list␤ postfix␤ infix or meta-infix␤ infix stopper␤ stateme…
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:…
masak submits rakudobug
17:00 xilo_ left
TimToady and yes, RatBar is an allusion to the Vorkosigan universe :) 17:01
masak \o/
dalek kudo/optimizer-void-context: f41f314 | moritz++ | src/Perl6/Optimizer.pm:
be a bit less wrong about void context detection

still does not work at all :(
17:08
moritz doesn't understand why it's not working :(( 17:16
masak TimToady: rt.perl.org/rt3/Ticket/Display.html?id=116783
&
dalek ecs: f08f878 | larry++ | S12-objects.pod:
inner classes must respect genericity
17:19
pmurias jnthn: you have been considering removing VarWithFallback? 17:27
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
(That's (a) a bit subtle (b) bending English slang a little too far, I think) 17:29
pmurias jnthn: what's a bit crazy about that it does different things for associative and positional 17:30
pmurias got confused 17:32
17:34 thundergnat left
TimToady jnthn: does that spec change seem to say approximately the right thing? 17:35
jnthn TimToady: Seems about right. Probably don't want to commit to much more detail until we have an implementation to try out. 17:41
moritz even dumber than previously thought 17:43
comparing the wrong variables == fail 17:44
arnsholt moritz: Welcome to the club. We meet every tuesday at seven =)
17:45 census left
jnthn should also attend... 17:47
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
Turns out I wasn't passing --setting=... to give it the correct one 17:48
Anyway, the better news is that with that fix it seems like grammars work.
moritz \o/
FROGGS these quotes dont seem right... 17:51
"/usr/bin/perl" -MExtUtils::Command -e mkpath "/home/froggs/dev/nqp/install/include"/parrot/4.10.0-devel""/dynpmc
that's nqp's make install 17:52
moritz doesn't look too wrong to me
geekosaur they're syntactically valid; couldnt tell you if they make sense semantically
moritz the shell strips them
$ echo "ab""c" 17:53
abc
nwc10 jnthn: does that mean some more passing tests are going in?
moritz I just hope that windows agrees :-)
FROGGS hmmmm, k 17:54
jnthn nwc10: Yeah, I should be able to get some more in today 17:55
mberends nwc seems to be champing at the bit
jnthn nwc10: Need to deal with a small library loading thingy, which shouldn't be a big deal.
mberends *nwc10
nwc10 groans 17:56
jnthn There ascot to be an end to these horse puns!
moritz \o mberends 17:57
mberends yo! 17:58
moritz $ ./perl6 -e '"foo"; say 42';
Useless use of constant string "foo" in void context
42
17:58 SamuraiJack left
moritz still has too many false positives to release it to the wild though 17:59
jnthn moritz++ # progress
dalek kudo/optimizer-void-context: 15219f7 | moritz++ | src/Perl6/Optimizer.pm:
fix logic error in void context detection

still has quite a fe false positives
18:00
moritz 18 warnings from compiling the setting
jnthn Time for some dinner, methinks. Afterwards will take a look at protoregexes and adding some tests
moritz i suspect that attribute default false warn
masak lol, I blogged! \o/ strangelyconsistent.org/blog/perl6-...ld-as-perl
moritz masak++
ok, I cheated, I didn't read it that fast 18:01
but I read an earlier draft :-)
nwc10 jvm startup times are still ugly :-( 18:02
very slow out of the gate 18:03
dalek ecs: b1c3386 | larry++ | S32-setting-library/Containers.pod:
add combinations method
18:04
18:05 uvtc joined
au nwc10: try drip, it's like PPerl.pm 18:05
github.com/flatland/drip
uvtc hi #perl6 :). If I've just built Rakudo-Parrot to use the latest SixParrot and NQP (as described at 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
moritz uvtc: usually "make clean" is enough
18:09 kst joined
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
I want it to pull the latest commits from Rakudo, SixParrot, and NQP before building again.
moritz then you need to reconfigure rakudo 18:15
with the --gen-parrot=sixparrot option it'll do the git fetch etc. for you
dalek kudo-js: d8fff30 | (Paweł Murias)++ | / (3 files):
Pass test 43. Emit more parens, setup the scope with setting.
uvtc Ok. So, then, `make clean`, then run the `perl Configure.pl ...` again and the rest.
Thanks, moritz . :) 18:17
Oh, wait. Actually,
after the `make clean`, I'd first need to do `git pull`, right?
moritz in rakudo, sure
uvtc Yes. I'm looking for a way to get the very freshed produce from the roadside stand. :)
18:17 s1n left
lue just learned about those mugs. :) 18:17
18:19 not_gerd joined
not_gerd o/ 18:19
masak \o 18:20
not_gerd moritz: Cygwin build is broken due to addition of double-quotes: gist.github.com/gerdr/4968020
see www.cmcrossroads.com/article/gnu-ma...paces-them
(GNU make doesn't understand them)
moritz wtf. I use GNU make too. 18:23
(on linux though)
not_gerd: and which build are you talking about? nqp? 18:24
pmurias I now understand why people want to dogfood the build process ;) 18:25
not_gerd moritz: nqp, yes
TimToady colomon: well, $taken_N_at_a_time seems like kind of a long parameter name :)
and .combinations is already sufficiently dehuffmanized... 18:26
dalek p: 97fd401 | moritz++ | src/QAST/ (3 files):
[QAST dumper] include a bit more info
not_gerd moritz: the cygwin build does a bit of additional copying of DLLs - possibly that's the only rule that's broken
moritz hates all platforms more crazy than linux 18:27
dukeleto o/
dalek ecs: f1d0699 | larry++ | S32-setting-library/Containers.pod:
clarify that N comes from $of, colomon++
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:28
moritz well, on linux the quoted paths don't appear on the RHS of the makefile rules 18:29
(at least in nqp)
jnthn: when compiling classes, are there any funny cross-references between QAST nodes happening? 18:31
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:32
ie, the QAST::Block has as QAST::Stmts which all sorts of declaration-y stuff 18:33
lue masak++ # good blog post
moritz oh, do I have to ignore the first statement of each block?
jnthn moritz: Each QAST::Block has two Stmts nodes. The first is just declarations. 18:34
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:34 am0c left 18:35 SunilJoshi left, SunilJoshi joined
moritz I guess for the void context analysis, it's useful to ignore the declaration-y bits entirely 18:37
masak think so. 18:40
though not in 1 + (my $d = 1)
moritz well, declaration-y bits in the QAST tree 18:41
in the tree, your example looks like my $d; 1 + ($d = 1)
and since infix:<+> is marked as "is pure", we can make that warn about "constant expresion in void context" still 18:42
dalek ecs: 6f747f3 | larry++ | S32-setting-library/Containers.pod:
talk about combinations and powerset for Set type
18:43
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:44
moritz HATES 18:45
jnthn: how does MSVC's escape spaces in paths? 18:46
18:47 am0c joined
dalek kudo/optimizer-void-context: d501814 | moritz++ | src/Perl6/Optimizer.pm:
track declaration bits in the QAST
18:48
18:48 SunilJoshi left
not_gerd moritz: I believe you need to quote on definition and on usage as interpolation via $(FOO) drops the quotes 18:49
moritz but again, that won't work with GNU make, right? 18:51
not_gerd correct
GNU make basically can't handle spaces 18:52
dalek kudo-js: 2f66aa1 | (Paweł Murias)++ | / (2 files):
Implement redo. Pass test 47.
not_gerd moritz: you need to use quotes with nmake and can use \\ escapes with GNU
\\ doesn't always work but as we're restricting ourselves to the portable subset, it should 18:53
moritz nqp: say(qq["]) 18:54
p6eval nqp: OUTPUT«"␤»
FROGGS gist.github.com/anonymous/56528571cbfe83f76cba 18:56
jnthn AFAIK, quotes with nmake, as not_gerd++ said. 18:57
dalek p-jvm-prep: f931a2b | (Paweł Murias)++ | t/qast/qast_process.t:
Remove one unused execution of a test in qast_process.t
_sri wow, today perl6 is as old as perl5 was when perl6 was announced? :o 19:00
TimToady well, the idea of perl6 is... 19:04
it takes a long time to make a set of different mistakes from Perl 5 :) 19:05
19:06 quester joined, nyuszika7h left 19:12 nyuszika7h_ joined, nyuszika7h_ is now known as nyuszika7h 19:14 mtk left
lue ooc, has there been significant discussion of P6 on PyPy? (looking at the wiki's Implementation FAQ) 19:16
japhb lue, we had a guest who pushed the idea pretty hard. 19:17
dalek p-jvm-prep: 08ce350 | jnthn++ | nqp-src/QASTNodes.nqp:
Uncomment some code, now more stuff works.
p-jvm-prep: 165f585 | jnthn++ | Makefile:
Missing flag.
p-jvm-prep: b1244fb | jnthn++ | src/org/perl6/nqp/sixmodel/ (5 files):
Deserialization of natively typed attributes.
p-jvm-prep: 3b215cd | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Get protoregexes working.

Transitive LTM seems to work out fine.
TimToady \o/
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.
TimToady just takes a champion 19:18
well, and a bit of competence...
japhb TimToady, was that directed to me?
lue Ah. I ask because the special PyPy question seems useless right now.
TimToady nope
TimToady doesn't delegate 19:19
lue (TimToady meant in general, if I read correctly.)
TimToady is so bad at delegating that he delegates the delegating to other peopple too...
japhb Indirection solves another problem!
dukeleto p6 on pypy sounds very interesting
TimToady and self-delegation usually works best in any case
19:20 am0c left
TimToady champions volunteer, they are almost never volunteered by someone else 19:20
and if they meet too much headwind, sometimes they unvolunteer 19:21
masak and become unchampions.
dukeleto Topaz Ruby is a recent implementation of Ruby on PyPy: docs.topazruby.com/en/latest/ (champion reading material)
japhb Been there, lived that.
TimToady nah, just former champions :)
_sri is pypy actually a major player in the python community now? 19:22
last time i looked it seemed nowhere near as popular as jruby is in the ruby world 19:23
japhb sri, congrats on 2.0 release. 19:24
19:25 s1n joined
_sri japhb: what 2.0? 19:25
jnthn wtf...
NMAKE : fatal error U1071: cycle in dependency tree for target '"libparrot.dll"'
When building nqp
japhb sri, is the date on this one wrong? blog.kraih.com/post/43198085334/moj...-framework
(I saw it pass by in #news)
_sri japhb: d'oh!
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
japhb heh
moritz jnthn: try to revert 1db6167740f7306a0e3acf04ccb15dfcc27c3dcb and see if it fixes stuff for you
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...
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.
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"
_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)
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
_sri those (rather interesting) STM experiments around pypy gave me the impression it was still mostly a reasearch project
nwc10 bitbucket.org/fijal/hippyvm -- still active.
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:34
so Lua, Perl and Tcl still needed
moritz what about JS?
_sri hehe, every vm needs a JS these days!
nwc10 good point.
uvtc "We got everyone but Matt Guitar Murphy and Blue Lou and we're gettin' them next." :)
_sri not too long and those JS implementations will turn into the ultimate vm benchmark 19:35
nwc10 RFC 1925, section 3. 19:36
er, section 2, subsection 3
19:39 labster joined
japhb moritz, would you mind turning on the dalek hook for perl6/perl6-most-wanted? 19:39
19:39 thou joined
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
(ie bin/drip)
labster Happy halffiversary, Perl 6! Thanks for the blog post masak++ 19:43
moritz japhb: sorry, I forgot. Will do 19:44
19:44 dvj joined
japhb moritz, no worries. :-) 19:45
dvj perl6: class a { has Str $.b = ""; method c { print $!b.comb[*-1] } }; a.new.c()
dalek rl6-most-wanted: d36031c | (Geoffrey Broadwell)++ | most-wanted/bindings.md:
Add 7zip to most-wanted bindings (labster++)
rl6-most-wanted: 392a9c0 | (Geoffrey Broadwell)++ | most-wanted/modules.md:
Text::CSV is WIP (not all tests pass yet)
rl6-most-wanted: a53a394 | (Geoffrey Broadwell)++ | most-wanted/modules.md:
Minor clarification of most-wanted modules; plus opportunity to test if dalek hook is live for perl6 org's fork of the repo
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…
..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␤␤»
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
dvj raudo: class a { has Str $.b = ""; method c { print $!b.comb[*-1] } }; a.new.c()
rakudo: class a { has Str $.b = ""; method c { print $!b.comb[*-1] } }; a.new.c()
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␤␤»
moritz r: say ()[*-1]
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␤␤»
dvj why do I get a negative index -1?
masak because the list is empty.
moritz dvj: because the * is the length of the list
but I still think the error message is wrong 19:47
r: say ()[42]
p6eval rakudo 1e85ff: OUTPUT«Nil␤»
dvj ah ok
moritz it should do the same, IMHO
dalek kudo/optimizer-void-context: 9244510 | moritz++ | src/Perl6/Optimizer.pm:
use %!worrying mechanism for string constants in void context
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:48
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.
pmurias jnthn: run_qast with a Result object containing the error code and output?
nwc10 jnthn: I'm all out of puns. All tests sucessful 19:51
pmurias nwc10: you mean all nqp-jvm test pass?
nwc10 yes 19:52
dalek p: b1258d7 | jnthn++ | tools/ (2 files):
Revert "Merge remote-tracking branch 'origin/spacey'"

This reverts commit 1db6167740f7306a0e3acf04ccb15dfcc27c3dcb, reversing changes made to c9bc4a25ba2ca57e3642dbe870da31fd1b661322.
19:55
p: 0514fec | jnthn++ | src/NQP/ (2 files):
Remove a now-unused option.
p: 1e0a374 | jnthn++ | src/NQP/Actions.pm:
Remove a redundant load.
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.
masak japhb: I'm happy about both methods... I'm just not sure yet why .combinations() has that default. 19:56
<moritz> it should do the same, IMHO
moritz: I've had the same thought once or twice.
moritz: problem is that the -1 check isn't syntactic (and can't be, I think), but happens at runtime. 19:57
dalek p: c6832d5 | jnthn++ | src/NQP/Actions.pm:
Add a way to specify a custom regex lib.

Useful for nqp-jvm while it only has the runtime part of it.
FROGGS if I have a reference to an array, what nqp::istype is that?
moritz masak: I don't understand how that argument applies here
masak: after all, .[*-1] is handled in a different code path than .[$some_integer] 19:58
masak: and an additional check the closure returning a negative number can be added in the code path for the WhateverClosure 19:59
s/check/check for/
masak moritz: oh. true. I don't know why I didn't think of that. 20:03
then I think we should definitely do it.
moritz though there might still be one difference 20:04
r: my @a; @a[2] = 42; say @a.elems
p6eval rakudo 1e85ff: OUTPUT«3␤»
lue Are set operations documented anywhere in the spec (unicode operators, methods, etc.)
dalek p-jvm-prep: 3a2ea43 | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
Stop dumping generated P6opauqe backing types.
p-jvm-prep: 71ba9d2 | jnthn++ | nqp-jvm-cc.nqp:
Load QRegexJVM by default.
p-jvm-prep: d7060da | jnthn++ | t/nqp/29-make.t:
Pass 29-make.t.
moritz what would @a[*-1] do in lvalue context?
FROGGS assing to the last element? 20:06
TimToady why would it not simply set the last element?
FROGGS s/ng/gn/
moritz if @a is empty?
what's the last element?
TimToady error
same as setting element -1
moritz ok, so the current semantics are correct? 20:07
or should it only error in lvalue context?
TimToady well, in rvalue context it should probably be returning Nil for non-existing elements (or a default if we set one)
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…
..niecza v24-23-g0520c7c: OUTPUT«Any() Any() Any() Any() Any() Any() Any() 42␤»
lue
.oO(Should say (1,2,3)[-1] return Nil or error?)
moritz lue: that's not the question
FROGGS IMO @a[*-1] should add one element too, if @a is empty
nwc10 what is the 'make' building, and which part of TFM should I be reading?
moritz nwc10: S05
lue I know, I was just wondering if ()[*-1] was to be a special case or not.
moritz nwc10: make() sets the AST component of $/ in reegxes/grammars 20:10
nwc10 ah OK
is there an index of builtins?
moritz doc.perl6.org has one, but it's woefully incomplete
nwc10 it's not possible to autogenerate this?
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
masak lue: .[-1] is always an error. and that one can be caught at parse-time. 20:12
lue Yeah. I wanted to type [*-1], but that doesn't do what it does on the empty list. 20:14
20:17 mtk joined, chromis joined
chromis hello 20:18
FROGGS o/ chromis
nwc10 jnthn: \o/ still
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?
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
nwc10 I assume that they're using the same temporary file name
and I didn't see it as worth fixing
it is a prototype, after all
jnthn moritz: QAST::Op.new( :op('null') ) # should be optimized away in void context 20:21
moritz jnthn: ok, great
jnthn moritz: You can always create one of them and re-use it :)
nwc10: Hm, I wonder which temporary file...
nwc10 oh, you want me to dig? 20:22
jnthn nwc10: Before 3a2ea4 they may have been racing to write debug output...
nwc10: Wait, are we talking about make test or make nqptest? 20:23
nwc10 Unable to open filehandle from path 'QAST2JASTOutput.output'
make test
jnthn Oh.
OK, I don't have a very good answer on that one :)
nqptest OTOH...
nwc10 forgot about make nqptest
jnthn That should work in parallel.
nwc10 not been running that
jnthn Oh, that's the interesting one :)
nwc10 oopsy
jnthn wonders if we shouldn't swap that to be make test these days...
nwc10 possibly. 20:24
it would help muppets like me
t/nqp/46-charspec.t failed because there is no ICU
all others passed
dalek kudo/optimizer-void-context: 7636b79 | moritz++ | src/Perl6/Actions.pm:
give string literal QAST nodes a Match object
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)
nicely in parallel
jnthn OK, good. 20:26
I'd have been surprised if that didn't run in parallel
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»;
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␤»
not_gerd jnthn: I just resurrected whiteknight's PackfileView work, if you want to take another look 20:28
20:29 uvtc left, domidumont left
jnthn not_gerd: What's the idea of that, exactly? 20:33
Generating PBC directly, not PIR? 20:34
not_gerd jnthn: whiteknight wanted to deprecate the EvalPMC
jnthn: that would be the final goal, but that's still ways off
jnthn Yes, I really don't want to be the person who works on that bit.
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)
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.
not_gerd the NQP side is now a bit more involved as the Parrot side contains less magic
20:37 marloshouse left, fgomez left
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.
diakopter it needs to do something about you too
jnthn It currently tangles the generic and the Parrot-specific. 20:39
And we're gonna want other backends have their specifics too.
So need to find a clean separation.
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
Hm, we could do a role per backend.
Though if we wanna support cross-comp in a good way, delegation maybe is better... 20:41
Anyway, I'll run into this soon since NQPHLL is the next library to get cross-compiling... 20:42
timotimo did the recording from masaks talk surface yet? 20:43
moritz which one? FOSDEM?
timotimo i think that's the one 20:44
are there more? :)
not_gerd jnthn: once there's a proper API, it doesn't really matter if it's based on Eval PMC or PackfileView PMC
dalek p-jvm-prep: 67c7023 | (Paweł Murias)++ | t/ (2 files):
Add a run_qast subroutine to helper which abstracts away running qast.
20:44 fgomez joined
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
FROGGS nr: my @var = <a b c>; say "a0" ~~ /@var[0]/
p6eval rakudo 1e85ff: OUTPUT«#<failed match>␤»
..niecza v24-23-g0520c7c: OUTPUT«Potential difficulties:␤ Apparent subscript will be treated as regex at /tmp/GLNRM5ROQT line 1:␤------> my @var = <a b c>; say "a0" ~~ /@var⏏[0]/␤␤「a0」␤␤»
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
pmurias: Think so...will give it a try too 20:47
pmurias give it a try = run tests?
FROGGS okay, so this test is wrong: github.com/perl6/roast/blob/master...tvar.t#L37 20:48
20:49 chromis left
FROGGS and the following too, like the tests for hash elements in regexes 20:49
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:␤------> my @var = <a b c>; say "a0" ~~ /@var⏏[0]/␤ [0] appears to be an old-school character class; please use <[0]> if you␤ mean a character class…
jnthn FROGGS: Seems so
FROGGS k 20:53
jnthn std: my $var = <a b c>; say "a0" ~~ /$var[0]/
p6eval std 7551b8f: OUTPUT«Potential difficulties:␤ Apparent subscript will be treated as regex at /tmp/eczB6j8btQ line 1:␤------> my $var = <a b c>; say "a0" ~~ /$var⏏[0]/␤ [0] appears to be an old-school character class; please use <[0]> if you␤ mean a character class…
20:53 rriley joined
FROGGS n: std %var = (a=>1, b=>2, c=>3); /%var<a>/ 20:54
p6eval niecza v24-23-g0520c7c: OUTPUT«===SORRY!===␤␤Variable %var is not predeclared at /tmp/RTWoVjgOij line 1:␤------> std ⏏%var = (a=>1, b=>2, c=>3); /%var<a>/␤␤Only $ and @ variables may be used in regexes for now at /tmp/RTWoVjgOij line 1:␤------> …
FROGGS std: %var = (a=>1, b=>2, c=>3); /%var<a>/
p6eval std 7551b8f: OUTPUT«===SORRY!===␤Variable %var is not predeclared at /tmp/QKKR3YLYRA line 1:␤------> <BOL>⏏%var = (a=>1, b=>2, c=>3); /%var<a>/␤Variable %var is not predeclared at /tmp/QKKR3YLYRA line 1:␤------> %var = (a=>1, b=>2, c=>3); /…
FROGGS std: my %var = (a=>1, b=>2, c=>3); /%var<a>/
p6eval std 7551b8f: OUTPUT«Potential difficulties:␤ Apparent subscript will be treated as regex at /tmp/lx6nhMKyst line 1:␤------> my %var = (a=>1, b=>2, c=>3); /%var⏏<a>/␤ok 00:00 46m␤»
FROGGS k 20:55
std: my %var = (a=>1, b=>2, c=>3); /$(%var<a>)/
p6eval std 7551b8f: OUTPUT«ok 00:00 46m␤»
FROGGS n: my %var = (a=>1, b=>2, c=>3); /$(%var<a>)/
p6eval niecza v24-23-g0520c7c: ( no output )
FROGGS n: my %var = (a=>1, b=>2, c=>3); say "abc" ~~ /$(%var<a>)/
p6eval niecza v24-23-g0520c7c: OUTPUT«#<failed match>␤»
FROGGS n: my %var = (a=>1, b=>2, c=>3); say "123" ~~ /$(%var<a>)/
p6eval niecza v24-23-g0520c7c: OUTPUT«「1」␤␤»
FROGGS r: my %var = (a=>1, b=>2, c=>3); say "123" ~~ /$(%var<a>)/
p6eval rakudo 1e85ff: OUTPUT«「1」␤␤»
FROGGS I'll update the tests 20:56
std: my %var = (a=>1, b=>2, c=>3); /%var/
p6eval std 7551b8f: OUTPUT«ok 00:00 46m␤»
FROGGS what should a hash within a regex do? :rxtype<seq> of its values? 20:57
20:57 rriley left 20:58 census joined
moritz it's reserved, according to S05 20:59
jnthn FROGGS: Error, I think.
moritz so yes, error
jnthn For the reason moritz said
FROGGS k, thank you both
moritz we had a very crazy spec for hashes in regexes
FROGGS now reads perlcabal.org/syn/S05.html#Variable...erpolation 21:00
moritz but that was meant as an extension mechanism that we now do with proto regexes instead
"The use of a hash variable in patterns is reserved."
masak moritz++ # posting my blog post on www.reddit.com/r/programming/commen...d_as_perl/ 21:01
21:02 ElDiabolo joined 21:03 benabik joined
GlitchMr "PHP is the future, I remember using perl upto 2004 after that I switched to PHP." 21:05
Trolls instantly appeared
moritz of course. It's reddit after all.
dalek p-jvm-prep: 264c63b | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Call method case of boolification.
21:08
p-jvm-prep: 4173f17 | jnthn++ | nqp-src/nqp-mo.pm:
Sync with latest NQPClassHOW.
p-jvm-prep: 2af05ea | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6Opaque (2 files):
P6opaque positional/associative delegate support.

Means we can now index directly into match objects.
p-jvm-prep: dc524cb | jnthn++ | t/nqp/50-regex.t:
We now pass 50-regex.t.
p-jvm-prep: bdda6bd | jnthn++ | docs/ROADMAP:
ROADMAP update.
moritz runs into conditions where Obviously Correct[tm] patches stop rakudo's setting from building 21:09
arnsholt That's always fun =) 21:10
jnthn pmurias: Seems to have worked out fine. 21:12
nwc10 jnthn: I skippeed the ICU test. All others pass. 21:15
the test that needs ICU
not_gerd hm... do 'init' subs need to be run when generating PBCs? 21:16
jnthn No 21:17
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.
timotimo so, the synopses 7 and 8, about lists and iterators, are still-wrong-don't-read-them today? 21:18
jnthn *nod*
not_gerd jnthn: I think I know how to factor HLL:Compiler so --target=pbc works 21:19
not_gerd gives it a try
ElDiabolo masak, select $_.foo, $_.bar from @table where $_.foo != 5 # just a map + grep thingy and closer to SQL than LINQ. 21:20
21:20 b1rkh0ff left
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?
timotimo r: note 'something something' 21:22
p6eval rakudo 1e85ff: OUTPUT«something something␤»
timotimo i think that's how you do it
jnthn in nqp ;)
21:22 sftp left
timotimo er, sorry >_< 21:22
jnthn I'm not sure off hand :)
We must do it somewhere.
I think it's done by grabbing the stderr handle and calling a print method on it or so
21:23 sftp joined
moritz pir::getinterp__P().stderr_handle().say("foo") 21:24
or something like that
not_gerd moritz: thanks
moritz src/HLL/Compiler.pm: pir::getinterp__P().stderr_handle().print(...) 21:25
dalek kudo/optimizer-void-context: c24440a | moritz++ | src/Perl6/Optimizer.pm:
detect Int and Num literals in void context

Does not trigger yet, probably because they have no .node info. Also replace the constant QAST node with a null op
21:27
kudo/optimizer-void-context: 89c7e57 | moritz++ | src/Perl6/ (2 files):
give numeric constant QAST nodes a .node

now Int and Num literals warn in void context
21:29 s1n left 21:30 dukeleto left, dukeleto joined 21:33 ElDiabolo left
dalek kudo/nom: 932bc53 | (Tobias Leich)++ | src/Perl6/Grammar.pm:
Apparent subscript will be treated as regex

Throw the same warning as STD does for things like
  @var[0], $var{a} and $var<a> in regexes.
21:41
p-jvm-prep: c664f92 | jnthn++ | / (2 files):
Couple of stringification/numification tweaks.

This isn't great, but should do for NQP for now at least.
21:43
p-jvm-prep: f91c444 | jnthn++ | t/nqp/3 (3 files):
3 more passing regex/grammar test files.
21:45 s1n joined, ElDiabolo joined
FROGGS n: my @arr = <a bc def>; say "abc" ~~ /@arr/ 21:50
p6eval niecza v24-23-g0520c7c: OUTPUT«「a」␤␤»
FROGGS n: my @arr = <a bc def>; say "abc" ~~ / | @arr/
p6eval niecza v24-23-g0520c7c: OUTPUT«「a」␤␤» 21:51
FROGGS n: my @arr = <a bc def>; say "abc" ~~ / |@arr/
p6eval niecza v24-23-g0520c7c: OUTPUT«「a」␤␤»
nwc10 jnthn: steady state of tests is the usual.
jnthn :) 21:53
22:04 dukeleto left
jnthn Currently at 54 passing test files. 22:04
22:04 lustlife left, dukeleto joined
dalek kudo/optimizer-void-context: f6a731c | moritz++ | src/Perl6/Optimizer.pm:
warn when inlining constant expressions in void context
22:04
eiro hello everyone
jnthn o/ eiro
moritz \o eiro
$ ./perl6 -e '42 + 23; say "foo"'
Useless use of constant expression "+" in sink context (line 1)
foo
eiro perl6 equivalent to $/ ? 22:06
jnthn moritz: Steal widen_EXPR from rakudo debugger to make it say more than just the + :)
moritz++ # void warnings
moritz jnthn: oi :-)
that's a good idea 22:07
but I'll that for tomorrow 22:08
sleep&
jnthn :)
FROGGS gnight all
jnthn o/ FROGGS
eiro: Remind me what $/ is again... :)
Oh, it's the input spearator, iirc... 22:09
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
eiro RS is 0x1e in ISO2609. 22:11
jnthn, i thought about it but it will be really memory consumming: i work with dumps of complete databases
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
Maybe I'm missing it, though.
not_gerd jnthn: 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)
also i saw a wierd function: multi method say (|) { * }
say takes an array and returns Whatever ? 22:16
jnthn Are you sure it wasn't proto?
nqp:: is a call down to a low-level primitive
eiro i check
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
so { * } means: it will return something . 22:18
jnthn The { * } means "pick whatever multi candidate is best"
eiro ok so i'll kludge with perl5
wow! impressive
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 )
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
jnthn not_gerd: My best guess is that an init block was done wrong.
Well, it's a very small Perl :) 22:22
22:24 ElDiabolo left
eiro thanks jnthn! night all 22:39
not_gerd jnthn: I've been staring at the code for a bit, and I think it *should* work 22:50
shot in the dark is a weird difference between compile() and compile_file()
I'll sleep on it and try again tomorrow 22:51
good night, #perl6
22:51 not_gerd left 22:53 s1n left 22:57 proller left
dalek rl6-roast-data: 13496e9 | coke++ | / (3 files):
today (automated commit)
23:06
jnthn I scribbled a short blog post: 6guts.wordpress.com/2013/02/17/nqp-...-dispatch/ 23:19
'night, #perl6
23:23 spider-mario left
[Coke] jnthn++ ++ ++ 23:23
23:32 nyuszika7h left 23:33 dayangkun left 23:37 nyuszika7h joined 23:43 silug left
japhb jnthn++ # Good blog post -- and of course, the work that came before it. ;-) 23:46
23:47 not_gerd joined
not_gerd is back 23:47
I figured it out and will push in a bit
dalek p/target-pbc: 2d6a387 | (Gerhard R)++ | / (4 files):
add --target=pbc to nqp

the factoring of the code isn't perfect, but it does work
23:52
not_gerd and pushed 23:53
23:54 silug joined 23:55 stevan__ joined 23:58 stevan_ left