»ö« 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 diakopter++ 00:04
00:09 s1n joined, s1n left
dalek p-jvm-prep: 2de6909 | jnthn++ | nqp-jvm-cc.nqp:
Sketch a frontend.

Doesn't do anything useful yet, since it can't handle the stuff that NQP puts into every QAST tree it makes. Once that stuff is sorted out, this should enable us to start to cross-compile/run snippts of NQP on the JVM.
00:09
p-jvm-prep: c3b1376 | jnthn++ | docs/ROADMAP:
Remove completed.
jnthn 'night, #perl6
japhb o/ 00:10
tadzik o/
00:21 stevan_ joined 00:22 stevan_ left 00:23 cognominal left 00:29 cognominal joined 00:30 Celelibi left 00:34 thou joined 00:41 aindilis joined
colomon rn: say Int === Real 00:59
p6eval rakudo c3f565, niecza v24-17-gd343a2a: OUTPUT«False␤»
colomon rn: say Int === Nil
p6eval rakudo c3f565: OUTPUT«False␤»
..niecza v24-17-gd343a2a: OUTPUT«Unhandled exception: No value for parameter '$r' in 'infix:<===>'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<===> @ 1) ␤ at /tmp/CuEdkqkzIX line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3) ␤ at /home/p6e…
colomon rn: say Nil.perl 01:02
p6eval rakudo c3f565, niecza v24-17-gd343a2a: OUTPUT«Nil␤»
timotimo maybe niecza has something like :D in there? 01:03
colomon try.t is doing blah === Nil, any objections to my changing that to blah.perl eq "Nil"
?
timotimo in the signature of infix:<===> i meant
colomon timotimo: it doesn't, I already checked. :)
rn: say 1 + Nil
p6eval niecza v24-17-gd343a2a: OUTPUT«1␤» 01:04
..rakudo c3f565: OUTPUT«use of uninitialized value of type Nil in numeric context in block at /tmp/h8ZkdQ0IVp:1␤␤1␤»
01:04 bitonic left
colomon rn: say Nil.WHICH 01:04
p6eval rakudo c3f565: OUTPUT«Nil␤»
..niecza v24-17-gd343a2a: OUTPUT«Nil[A414780]␤»
colomon rn: say Int == Nil 01:06
p6eval rakudo c3f565: OUTPUT«use of uninitialized value of type Int in numeric context in block at /tmp/KMq53smHNH:1␤␤use of uninitialized value of type Nil in numeric context in block at /tmp/KMq53smHNH:1␤␤True␤»
..niecza v24-17-gd343a2a: OUTPUT«True␤»
colomon though I admit I don't understand why Niecza doesn't work here.
01:15 Celelibi joined
colomon rn: say infix:<===>(Int, Nil) 01:16
p6eval rakudo c3f565: OUTPUT«False␤»
..niecza v24-17-gd343a2a: OUTPUT«Unhandled exception: No value for parameter '$r' in 'infix:<===>'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<===> @ 1) ␤ at /tmp/jYxCoRL7W9 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3) ␤ at /home/p6e…
colomon rn: say infix:<===>(Nil, Nil)
p6eval niecza v24-17-gd343a2a: OUTPUT«Unhandled exception: No value for parameter '$l' in 'infix:<===>'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<===> @ 1) ␤ at /tmp/ytmMeisID2 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3) ␤ at /home/p6e…
..rakudo c3f565: OUTPUT«True␤»
colomon hurmph. don't understand how rakudo works. don't understand why niecza doesn't. 01:17
01:17 PacoAir left
dalek ast: a03dd1a | (Solomon Foster)++ | / (7 files):
Fudge for Niecza.
01:37
02:13 FROGGS_ joined 02:16 FROGGS left 02:26 slayer101_ joined
_sri wishes TimToady would return to perl5 for a bit and turn things around before everything goes up in flames speakerdeck.com/stevan_little/perl...a-dead-end 02:32
timotimo opens the git repo. sees no t/ folder. closes it again 02:41
may be ready in 30 years.
slayer101_ perl6 is available right? 02:55
02:57 slayer101_ left 02:58 slayer101_ joined, slayer101_ left, slayer101_ joined
tadzik whoa 03:13
timotimo: actually, there's src/test 03:15
it seems to be scala's way of doing things
03:19 cognominal left 03:27 countley joined 03:40 Pleiades` left 03:41 rxrxrx joined 03:43 rxrxrx left 03:46 Pleiades` joined 04:01 MikeFair_ left 04:02 MikeFair_ joined 04:03 juiko joined
xenoterracide _sri ok I think I hate stevan right now 04:07
too much timtowtdi.. too much fragmentation 04:08
_sri stevan is right though, perl5-porters is in a terrible state, volunteers working on cool features get totally destroyed 04:10
xenoterracide _sri yeah I agree with the state of perl5, and even perl6
but I'm not sure that perhaps trying to port nqp to a better vm wouldn't be a better use of time 04:11
_sri i don't agree about the premise of the new language though, it is bound to fail, like stevan said himself, perl6 is the future, you can't get people excited for an interim language 04:12
xenoterracide I feel like some people are simply constantly restarting the same damn things and abandoning the old.. Moose -> Moo -> mo (oh for the love of $)(*@#)
_sri then again, perl6 is changing too much, perl5 too little, maybe there is a need for a language in between 04:13
xenoterracide perl6 might slow down if we could get it to a useable state 04:14
just my thought
_sri i would port all my code to perl6 in a heartbeat if it was anywhere near production ready, but realistically, stevan is not too far off with his 10 years 04:15
xenoterracide _sri do you think it'd be another 10 years if all the people complaining actually started working on it? 04:17
_sri not everyone is a language designer
once at least the primitives are there we can talk 04:18
xenoterracide that's true... I guess I'm not thinking about language design as much as making useful shit so people can do work... and perhaps porting nqp to a decent vm (since I keep hearing parrot sucks, 3rd hand info though)
I guess I don't really know what's really going on with most of this 04:20
xenoterracide also wonders why niecza isn't just nqp ported to the CLR, seriously fragmentation everywhere 04:22
I just feel like I could name 10 people going 10 different ways so it's going to take 10 years because they're all going there own way. obviously adding people ! = faster in all cases, but perhaps it could. I am probably completely wrong 04:26
flussence I tried making useful stuff. Having to fix other people's modules to get there is fine with me. Fighting bugs that it turns out don't exist, for weeks/months, because the *runtime* is broken is not fun. 04:28
xenoterracide flussence yeah, I understand, and I understand not everyone can do it. but it seems those that can are all interested in working on competing ones 04:30
xenoterracide wonders if perl 6 could be reduced to an achievable goal 04:31
so that some of it's features could be deferred until 6.2 and 6.4 04:32
04:32 preflex left, preflex_ joined, preflex_ is now known as preflex
flussence One thing worries me: panda was broken due to bugs in rakudo for most of the advent calendar and up until about a week ago. During that time I can count the number of new people I saw complaining about it on one hand. That's maybe four people taking an active interest in the language. The silent majority just see it's broken and uninstall it. 04:36
TimToady I see the pessimists are out in force tonight :)
skids thinks the fact that development has proceeded in the face of such pessimism for so long is reason for optimism :-) 04:38
xenoterracide flussence yeah I've been rather burned out for the last ~1-2 months, so I stopped coding on personal time
skids++ 04:42
04:43 am0c joined
TimToady Of course, just because the naysayers are wrong doesn't necessarily mean that the yeahsayers are right. :) 04:48
Usually everyone turns out to be wrong. :)
_sri wants to be an optimist :(
skids Initially I was discouraged that things "as basic" as concurrency and native types were NYI. I just had to adjust to the fact that under a different paradigm, these things are not so "basic"
04:48 slayer101_ left
xenoterracide I prefer to think of myself as a realist. unfortunately I don't talk about the positives because I don't see them as needing fixing 04:48
TimToady I prefer to think of myself as the unreasonable man upon whom all progress depends. :) 04:49
xenoterracide on the positive note I am in #perl6 talking about perl6 having written some very basic perl6 code, wishing I could write perl6 for work. So something is write about it, because I'm not in #python #node or #ruby 04:50
TimToady well, there is that :) 04:51
TimToady can't help being optimistic even when depressed :) 04:54
flussence I'm very good at waiting, if nothing else 04:59
skids A true pessimist/considers their predictions/as optimistic 05:07
xenoterracide keeps thinking that the most worthwhile thing would be too build cpan6 (and not whatever Overmeer was thinking ), with a jenkins ci system
skids notices you can't paste into a github gist. WTH?!? 05:12
05:13 countley left
grondilu watches the presentation "perl is a dead end" 05:13
flussence skids: they seem to expect you to use ctrl+c/v style pasting now 05:14
I've just stopped using it entirely 05:15
.oO( I'm sure they'd know about it through their bug tracker... if they had one. )
05:22
skids gist.github.com/4522473 05:33
05:35 am0c left 05:48 Pleiades` left
lue The fact that nqp can be ported to the JVM makes me optimistic (even though, on my system, Parrot < JVM ≪ AMD64 in terms of speed (IIRC, haven't used JVM in a while)) 05:50
05:53 werwerwer joined 05:54 Pleiades` joined 06:00 juiko left 06:06 kaare_ joined
moritz \o 07:00
07:01 quester joined 07:07 Chillance joined 07:09 sundar left 07:13 sundar joined 07:14 Pleiades` left 07:16 sundar left, sundar joined 07:18 Pleiades` joined 07:19 sundar left 07:37 Pleiades` left 07:39 Pleiades` joined
diakopter moritz: o/ 08:08
08:09 SamuraiJack joined
quester r: macro postfix:<!> ($n) { quasi { [*] 1..{{{$n}}} }; }; for 3..5 { say $_! }; 08:13
p6eval rakudo c3f565: OUTPUT«6␤24␤120␤» 08:14
quester r: macro postfix:<!> ($n) { quasi { [*] 1..{{{$n}}} }; }; say $_! for 3..5;
p6eval rakudo c3f565: OUTPUT«use of uninitialized variable $max of type Any in numeric context␤1␤use of uninitialized variable $max of type Any in numeric context␤1␤use of uninitialized variable $max of type Any in numeric context␤1␤»
quester idly wonders who this $max guy is and why he doesn't like macros... 08:15
grondilu I'm not sure macros can be implemented as operators yet
sorear why are you using a macro for this anyway 08:16
a sub would work just as well
grondilu rn: sub postfix:<!> { [*] 1 .. $^n } ; say 6!
p6eval rakudo c3f565, niecza v24-17-gd343a2a: OUTPUT«720␤»
quester True, I was playing with macros and not trying to do anything really useful. It's just that I'm... puzzled... by the fact that that the macro works in "for 3..5 { say $_! };" and fails in "say $_! for 3..5;". 08:18
grondilu weird indeed
quester Defining it as an operator (or sub if you think of it that way) works both ways. 08:19
grondilu rn: sub postfix:<!> { [*] 1 .. $^n } ; say $_! for 3..5; 08:20
p6eval rakudo c3f565, niecza v24-17-gd343a2a: OUTPUT«6␤24␤120␤»
08:20 Pleiades` left
grondilu rn: macro postfix:<!> { "foo" } ; say $_! for 3..5; 08:20
p6eval niecza v24-17-gd343a2a: OUTPUT«===SORRY!===␤␤Action method macro_def not yet implemented at /tmp/e7VKKmOhep line 1:␤------> macro postfix:<!> { "foo" } ⏏; say $_! for 3..5;␤␤Action method routine_declarator:macro not yet implemented at /tmp/e7VKKmOhe…
..rakudo c3f565: OUTPUT«===SORRY!===␤Too many positional parameters passed; got 1 but expected 0␤at /tmp/vPkDA16w6J:1␤------> ␤»
grondilu rn: macro postfix:<!> { quasi { "foo" } } ; say $_! for 3..5; 08:21
p6eval rakudo c3f565: OUTPUT«===SORRY!===␤Too many positional parameters passed; got 1 but expected 0␤at /tmp/IM3NDCGFWv:1␤------> ␤»
..niecza v24-17-gd343a2a: OUTPUT«===SORRY!===␤␤Action method quasiquibble not yet implemented at /tmp/_B5uH03hbZ line 1:␤------> macro postfix:<!> { quasi { "foo" }⏏ } ; say $_! for 3..5;␤␤Action method quote:quasi not yet implemented at /tmp/_B5uH03hb…
grondilu rn: macro postfix:<!>($) { quasi { "foo" } } ; say $_! for 3..5;
p6eval niecza v24-17-gd343a2a: OUTPUT«===SORRY!===␤␤Action method quasiquibble not yet implemented at /tmp/p0RSqquNyI line 1:␤------> macro postfix:<!>($) { quasi { "foo" }⏏ } ; say $_! for 3..5;␤␤Action method quote:quasi not yet implemented at /tmp/p0RSqq…
..rakudo c3f565: OUTPUT«foo␤foo␤foo␤»
grondilu rn: macro postfix:<!>($n) { quasi { $n+1 } } ; say $_! for 3..5; 08:22
p6eval niecza v24-17-gd343a2a: OUTPUT«===SORRY!===␤␤Action method quasiquibble not yet implemented at /tmp/w9qhdjb0WB line 1:␤------> macro postfix:<!>($n) { quasi { $n+1 }⏏ } ; say $_! for 3..5;␤␤Action method quote:quasi not yet implemented at /tmp/w9qhdj…
..rakudo c3f565: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤␤current instr.: 'Numeric' pc 147844 (src/gen/CORE.setting.pir:67331) (src/gen/CORE.setting:844)␤called from Sub 'infix:<+>' pc 54603 (src/gen/CORE.setting.pir:25394) (src/gen/CORE.setting:28…
grondilu stops spamming the channel now 08:23
quester rn: macro postfix:<!>($n) { quasi { {{{$n}}}+1 } } ; say $_! for 3..5;
p6eval niecza v24-17-gd343a2a: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1295 (warn @ 5) ␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 266 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/boot/…
..rakudo c3f565: OUTPUT«use of uninitialized variable $_ of type Any in numeric context␤1␤use of uninitialized variable $_ of type Any in numeric context␤1␤use of uninitialized variable $_ of type Any in numeric context␤1␤»
quester rn: macro postfix:<!>($n) { quasi { {{{$n}}}+1 } } ; for 3..5 {say $_!}; 08:24
p6eval rakudo c3f565: OUTPUT«4␤5␤6␤»
..niecza v24-17-gd343a2a: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1295 (warn @ 5) ␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 266 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/boot/…
quester agrees that this is enough spam, but idly wonders if this is a rakudo bug 08:26
08:26 Pleiades` joined 08:32 FROGGS_ is now known as FROGGS
FROGGS r: say "a" ~~ /<[abc]-[\W]>/ # trying to fix this these days 08:33
p6eval rakudo c3f565: OUTPUT«「a」␤␤»
FROGGS r: say "a" ~~ /<[abc]-[\w]>/ # trying to fix this these days
p6eval rakudo c3f565: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unrecognized subtype 'zerowidth' in QAST::Regex cclass␤»
FROGGS n: say "a" ~~ /<[abc]-[\w]>/ # check
p6eval niecza v24-17-gd343a2a: OUTPUT«Match()␤»
FROGGS n: say "a" ~~ /<[abc]-[\W]>/ # check 08:34
p6eval niecza v24-17-gd343a2a: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
FROGGS r: say "a" ~~ /<[abc]-[\D]>/ # wrong too
p6eval rakudo c3f565: OUTPUT«「a」␤␤»
FROGGS n: say "a" ~~ /<[abc]-[\D]>/ # check
p6eval niecza v24-17-gd343a2a: OUTPUT«Match()␤»
FROGGS niecza++
dalek pan style="color: #395be5">perl6-examples: 1ea55bc | (L. Grondin)++ | rosalind/aspc-grondilu.pl:
style
08:48
09:06 thou left 09:08 crazedpsyc joined 09:19 bitonic joined 09:24 quester left 09:30 PacoAir joined 09:39 PacoAir left 09:46 Patterner left 09:48 Psyche^ joined, Psyche^ is now known as Patterner
jnthn FROGGS: That'll be an issue somewhere inside src/QRegex/P6Regex/Actions.pm (in the NQP repo) 10:06
10:34 snearch joined
masak good forenoon, #perl6 10:44
FROGGS jnthn: I'm already there ;o)
but thanks anyway # guiding new ppl is important 10:45
and well appreciated
jnthn It's setting zerowidth on a cclass. It probably should not do taht ;)
Since subtype says what type of char to match :)
masak quester: yes, that looks like a rakudobug. 10:46
masak submits
FROGGS I've added int .zerotype to QAST::Regex, so there are no compiling issues, but /<[abc]-[\w]>/ still matches "a"
jnthn No, we don't need to add anything to fix this. 10:47
Just need to fix cclass_elem or so
Adding something to QAST to fix a bug will be the wrong answer in 99% of cases :)
10:48 am0c joined
FROGGS hmmm, okay 10:48
masak grondilu, quester: if you're wanting to spam the channel a bit less next time, don't keep using 'rn' when testing macros and Niecza doesn't even implement them. ;) 10:49
jnthn FROGGS: I think the problem is maybe where the zerowidth is being set in assertion:sym<[> 10:52
10:52 rindolf joined, spider-mario joined
nwc10 when I see 'rn' I think of en.wikipedia.org/wiki/Rn_%28newsreader%29 (even though I never used it) 10:52
masak nr: say "What do you think about when you see 'nr'?" # :) 10:53
p6eval rakudo c3f565, niecza v24-17-gd343a2a: OUTPUT«What do you think about when you see 'nr'?␤»
nwc10 OK, so is it possible to write a line that acts as a quine? 10:54
nwc10 isn't proposing to play that one
actually, also, not proposing that as an invitation to everyone to spam the channel
jnthn r: say 'a' ~~ /<[\w]-[a]>/ 10:55
p6eval rakudo c3f565: OUTPUT«#<failed match>␤»
jnthn r: say 'b' ~~ /<[\w]-[a]>/ 10:56
p6eval rakudo c3f565: OUTPUT«「b」␤␤»
jnthn r: say 'b' ~~ /<[\w]-[\d]>/
p6eval rakudo c3f565: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unrecognized subtype 'zerowidth' in QAST::Regex cclass␤»
sorear n: say $?ORIG
p6eval niecza v24-17-gd343a2a: OUTPUT«say $?ORIG␤»
jnthn r: say 'b' ~~ /<[\w]+[\d]>/
p6eval rakudo c3f565: OUTPUT«「b」␤␤»
jnthn r: say 'b' ~~ /<[\w]+[-]>/
p6eval rakudo c3f565: OUTPUT«「b」␤␤»
jnthn r: say '-' ~~ /<[\w]+[-]>/
p6eval rakudo c3f565: OUTPUT«「-」␤␤»
tadzik hello #perl6
masak nwc10: it's been done. 10:57
nwc10: I'll find the relevant backlog for you.
tadzik! \o/
tadzik masak! \o/
jnthn r: say 'b' ~~ /<[\w]-[\dz]>/
p6eval rakudo c3f565: OUTPUT«「b」␤␤»
tadzik what a day
jnthn r: say '1' ~~ /<[\w]-[\dz]>/
p6eval rakudo c3f565: OUTPUT«「1」␤␤»
jnthn r: say 'z' ~~ /<[\w]-[\dz]>/
p6eval rakudo c3f565: OUTPUT«「z」␤␤»
jnthn Hah! That's wrong.
hi tadzik 10:58
masak nwc10: irclog.perlgeek.de/perl6/2012-12-03#i_6208750 irclog.perlgeek.de/perl6/2012-12-03#i_6208799
jnthn FROGGS: Untested, but gist.github.com/4523527 may do it 11:00
nwc10 thanks 11:01
masak oh, but I misattributed the discovery, which was due to TimToady++: irclog.perlgeek.de/perl6/2012-12-03#i_6208783 11:04
11:06 PacoAir joined
FROGGS jnthn: will test it 11:10
11:11 PacoAir left
au std: OUTPUT«===SORRY!===␤Undeclared name:␤ 'OUTPUT' used at line 1␤Check failed␤FAILED 00:00 41m␤» 11:12
p6eval std 7deb9d7: OUTPUT«===SORRY!===␤Undeclared name:␤ 'OUTPUT' used at line 1␤Check failed␤FAILED 00:00 41m␤»
masak ;)
that one's been done before too, but usually through the 'ok' variant.
au yeah, that was obvious :) 11:13
masak std: print 'OUTPUT«ok 00:00 41m␤»'
p6eval std 7deb9d7: OUTPUT«ok 00:00 42m␤»
masak dang :)
au lol
masak std: print 'OUTPUT«ok 00:00 42m␤»'
p6eval std 7deb9d7: OUTPUT«ok 00:00 42m␤»
au although, it's not a quine, as it has no print. 11:14
masak troo
au #pedantry
tadzik well
std: OUTPUT«ok 00:00 41m␤»
p6eval std 7deb9d7: OUTPUT«===SORRY!===␤Undeclared name:␤ 'OUTPUT' used at line 1␤Check failed␤FAILED 00:00 41m␤»
tadzik shakes fist
masak still need the quotes.
std: 'OUTPUT«ok 00:00 42m␤»'
p6eval std 7deb9d7: OUTPUT«ok 00:00 41m␤»
masak dang :)
std: 'OUTPUT«ok 00:00 41m␤»' 11:15
p6eval std 7deb9d7: OUTPUT«ok 00:00 41m␤»
masak apparently, 'print' takes one extra megabyte to parse.
au or maybe, in an one-in-a-million chance, it just takes an extra byte to parse. 11:16
tadzik well, it can't be worse than GNU grep *snicker*
11:22 araujo joined, araujo left, araujo joined 11:27 Pleiades` left 11:32 Pleiades` joined 11:42 PacoAir joined, PacoAir left 11:43 PacoAir joined 11:47 MayDaniel joined 12:10 tokuhiro_ joined 12:13 Pleiades` left 12:15 Pleiades` joined 12:18 SamuraiJack_ joined, SamuraiJack_ left 12:20 SamuraiJack left 12:33 SunilJoshi joined 12:37 Targen left 12:38 tokuhiro_ left
dalek p: 49e0360 | jnthn++ | src/NQP/Actions.pm:
Toss commented out code.
12:47
p: dae5553 | jnthn++ | src/NQP/Actions.pm:
Start removing a seemingly now-unrequired hack.

Exactly what this was solving seems lost in the mists of time; no NQP tests fail upon removing it, nor do any Rakudo ones. Tossing it gets rid of some odd code and some QAST::VM usages.
p: 2a53485 | jnthn++ | src/stage0/ (9 files):
Update bootstrap to allow full hack removal.
p: dd550fc | jnthn++ | src/ModuleLoader.pm:
Finish removing set_mainline_module.
masak right. having good test coverage means never having to say you're sorry. just toss untested code; obviously it wasn't important enough to merit a test :) 12:48
jnthn I think it could well have been working around a problem that no longer exists. 12:49
masak ah. 12:50
moritz in such cases I usually use git blame to find the commits where it was installed
and look at its commit message
masak yes, but this time it was "lost in the mists of time" :P 12:51
which I took to mean un-git-blameable.
moritz the code was last touched in the PAST -> QAST switchover 12:52
but seems to have existed previously too 12:53
so yes, not easy to git-blame
ie, would take more effort
12:53 rindolf left
masak does that mean that the history spans several repositories? 12:54
moritz no
masak or just that you have to blame, checkout, blame, checkout... ?
moritz yes
masak I do that now and then.
nwc10 tends to like the gitweb interface to blame
masak I don't consider that as "lost in the mists of time", fwiw :P 12:55
jnthn You can probably uncover it with enough effort :)
masak .oO( "If I have seen far, it's becuse I can use git blame on other things than HEAD" )
moritz "history became legend, legend became myth"
jnthn I was biased 'cus I wanted to kill the stupid code though :P 12:56
masak .oO( "If I have seen far, it's becuse I have been standing on the shoulders of other commits" )
jnthn++ # kills stupid code
jnthn the stupid code-killer! oh wait.
moritz masak: fwiw you can do git blame <revision> <file> 12:57
no need to checkout
masak oh, even better.
jnthn feels happy calling it stupid 'cus he wrote it in the first place ;)
Now to try and make NQP less insane in the MAIN... 12:58
moritz commit 105839b24b014cc76e813e551e73f9c53a16d2af
masak jnthn: well, no-one is as stupid as oneself enough time-units ago.
moritz++ # archaeologist
moritz github.com/perl6/nqp/commit/105839...c53a16d2af
jnthn Um. 12:59
12:59 SunilJoshi left
jnthn Well, that already doesn't work today for other reasons, so... :) 13:00
masak seems I was involved somehow also :P
jnthn The correcter way to fix that is to structure it like Rakudo
masak this issue: github.com/perl6/nqp/issues/9
huh, I never did start toying around with language extensions like I wanted back then... :/ 13:01
so much to do, so little time...
jnthn masak: These days there's little reason to toy around with them in NQP when you can do what perl6-debug does and do them on full-blown Perl 6 :)
masak hm, maybe. 13:02
I think I meant syntactical extensions, though. sublanguages.
FROGGS jnthn: btw, after patching the P6Regex/Actions.nqp it get stuck on compiling NQPP5QRegex.pm 13:03
I see that it calls .add_edge in NFA at the end, but I dont see why it hangs
jnthn FROGGS: Hmm 13:06
13:09 SunilJoshi joined 13:30 tokuhiro_ joined
dalek p: b276aab | jnthn++ | src/NQP/Actions.pm:
Handle main using CompUnit :main(...).

This feature was in QAST pretty much from the start, but NQP never adopted it, since it could get away with Parrot auto-invoking the first sub as the mainline. That's not very portable, though, so now NQP uses :main(...) properly.
13:36
13:37 SunilJoshi left 14:03 SunilJoshi joined 14:04 not_gerd joined
not_gerd hello, #perl6 14:04
r: /<![\s]> ./ 14:05
p6eval rakudo c3f565: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unrecognized subtype 'zerowidth' in QAST::Regex cclass␤»
FROGGS r: /<-[\s]> ./
p6eval rakudo c3f565: ( no output )
FROGGS hmmm
r: /<![\S]> ./ 14:06
p6eval rakudo c3f565: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unrecognized subtype 'zerowidth' in QAST::Regex cclass␤»
14:13 _jaldhar joined 14:25 erkan left 14:26 _jaldhar left
not_gerd r: (grammar { token TOP { <print> } }).parse("").say 14:27
p6eval rakudo c3f565: OUTPUT«<anon><-1693268129>Can not get attribute '$!pos' declared in class 'Cursor' with this object␤ in regex TOP at /tmp/477bz1xPZF:1␤ in method parse at src/gen/CORE.setting:10624␤ in block at /tmp/477bz1xPZF:1␤␤»
14:27 marloshouse left 14:28 _jaldhar joined
dalek p-jvm-prep: 73e6c6e | jnthn++ | t/qast_variable.t:
Add test for dynamic scoped lookup/binding.
14:29
p-jvm-prep: 52cf4ce | jnthn++ | lib/QAST/JASTCompiler.nqp:
Fix bug that could lead to lack of wanting.
p-jvm-prep: aa48e53 | jnthn++ | / (2 files):
Implement contextual variable lookup and binding.
p-jvm-prep: 6da3aa6 | jnthn++ | src/org/perl6/nqp/runtime/StaticCodeInfo.java:
Add missing null checks.
not_gerd sent bug report for the 2nd error 14:34
14:36 marloshouse joined
not_gerd ENOAUTOREPLY - something wrong with the bug tracker? 14:39
14:39 erkan joined, erkan left, erkan joined
dalek p-jvm-prep: 5e37b80 | jnthn++ | t/qast_6model.t:
Add test for isnull/isnull_s.
14:42
p-jvm-prep: eed37bf | jnthn++ | / (2 files):
Implement isnull/isnull_s.
p-jvm-prep: c471c4e | jnthn++ | docs/ (2 files):
ROADMAP and LHF updates.
14:43 SunilJoshi left, SunilJoshi1 joined 14:52 fgomez left 14:53 not_gerd left 14:54 consus joined 14:55 not_gerd joined
not_gerd bye, #perl6 14:56
14:57 not_gerd left
dalek p-jvm-prep: fbf9671 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Move misplaced code.
15:06
p-jvm-prep: 5e79517 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Fall back to generic box/unbox.
p-jvm-prep: a127b46 | jnthn++ | lib/QAST/JASTCompiler.nqp:
QAST::VM handling.
p-jvm-prep: 4bcdfeb | jnthn++ | / (3 files):
Implement/test nqp::can(...).

To the extent we implement method dispatch, anyway.
15:10 consus left, consus joined 15:13 rindolf joined, SunilJoshi joined 15:14 SunilJoshi1 left 15:16 SunilJoshi left 15:19 SunilJoshi joined 15:24 consus left 15:25 consus joined
masak time to do some more sprintf hacking :) 15:27
does nqp allow you to initialize a hash when you declare it? I find nothing in 18-associative.t to suggest it does. 15:37
15:37 SunilJoshi1 joined, SunilJoshi left
jnthn my %h := nqp::hash('key', 'value', 'key', 'value'); 15:37
masak ooh. 15:38
thank you.
moritz nqp: my @a := nqp::list('a', 'b', 'c); say(@a) 15:43
p6eval nqp: OUTPUT«Confused at line 2, near "my @a := n"␤current instr.: 'panic' pc 13231 (src/stage2/gen/NQPHLL.pir:4687) (src/stage2/gen/NQPHLL.pm:328)␤»
moritz nqp: my @a := nqp::list('a', 'b', 'c'); say(@a)
p6eval nqp: OUTPUT«3␤»
15:44 spider-mario left
masak nqp: my @a := nqp::list('a', 'b', 'c'); say(@a[2]) 15:49
p6eval nqp: OUTPUT«c␤»
15:50 b1rkh0ff joined
dalek p-jvm-prep: f7b919c | jnthn++ | lib/QAST/JASTCompiler.nqp:
Support parameters being bound into lexicals.

Somehow, got this far with them just going into locals!
15:50
p-jvm-prep: 93693b2 | jnthn++ | t/qast_arguments.t:
Test for parameters bound into lexicals also.
p-jvm-prep: 79ffc64 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Add a way to disable SC compilation for now.
p-jvm-prep: d7ddb25 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Do something sensible with :load in CompUnit.

As much as we can do until we actually support some kind of module loading, anyway.
p-jvm-prep: 0b67cd7 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Better error for unhandled node types.
15:51 QK joined 15:52 QK left, consus left
masak what's a nice nqp version of %h.exists($elem) ? 15:57
15:57 b1rkh0ff left, b1rkh0ff joined
masak toys with the idea of iterating through the hash, looking for the right key, loaded-uzi-style 16:00
Ultali r: sub test() {return "hi";} say test(); 16:01
p6eval rakudo c3f565: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/4DpGXL469f:1␤------> sub test() {return "hi";} ⏏say test();␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ statement …
Ultali r: sub test() {return "hi";}; say test();
p6eval rakudo c3f565: OUTPUT«hi␤»
masak ah, nqp::defined(%h<elem>)
it works, because I don't store any undefined values in %h
Ultali what's up with that extra semicolon? 16:02
jnthn nqp::existskey(%h, 'elem')
masak ah, gracias.
Ultali: it's not "extra". it separates two statements.
jnthn Ultali: A } is only a statement terminator if it's the last thing (modulo whitespace) on a line. 16:03
masak Ultali: Perl 5 has taught you bad habits. time to unlearn.
Ultali it's not just perl5 though... I only noticed because I was doing perl6 -e 'blah..'
it makes the -e kind of lame
masak no, it's not just Perl 5. that's true. 16:04
but I disgree about it making -e lame.
Ultali well it means I have to write more semicolons
masak it makes the language much more consistent.
yes.
moritz but if you are into golfing, you'll love meta operators :-) 16:05
masak and in general, Perl 6 requires you to write a bit more than Perl 5 to make one-liners.
jnthn you already wrote one semicolon more than you needed :)
masak oh, that too.
jnthn r: sub test() {return "hi"}; say test();
p6eval rakudo c3f565: OUTPUT«hi␤»
jnthn :)
Ultali jnthn: yeah thats because I was playing with how many I needed :)
masak and those two pairs of parens are totally unnecessary.
Ultali pasted the max semicolons version
masak r: sub test {return "hi"}; say test 16:06
p6eval rakudo c3f565: OUTPUT«hi␤»
flussence r: say { 'hi' }.()
p6eval rakudo c3f565: OUTPUT«hi␤»
masak and why are you doing an explicit return?
Ultali if I was trying to be minimal say "hi"
masak Ultali: point being, if you want golfing, semicolons weren't your biggest concern ;) 16:07
Ultali yeah I know, its just something I noticed
and wondered if it was part of the spec
masak it is.
Ultali k k
masak see S02.
Ultali frankly its a good idea, semicolon magic in javascript has bitten me more than once
masak yes, but the semicolon magic in JavaScript is especially bonkers. 16:10
it's disturbed in a way you can only achieve if you try to be helpful as a language designer, but don't know how. 16:11
dalek p-jvm-prep: e3cf74b | jnthn++ | lib/QAST/JASTCompiler.nqp:
Fix a code-gen thinko.
p-jvm-prep: cd6695e | jnthn++ | / (2 files):
A couple of fixes to nqp-jvm-cc frontend.

Can be run as:
   nqp nqp-jvm-cc.nqp --setting=NULL -e "nqp::say('omg jvm!')"
It cross-compiles the NQP code to JVM bytecode, then runs the class file that is produced. Note, no setting or MOP yet, so it won't do much at all.
masak \o/ 16:12
jnthn++
tadzik oh oh 16:13
masak I know, I know, oh oh oh!
16:13 SamuraiJack joined
tadzik :D 16:13
I met an Imperial Unit today in a shopping mall, with a couple of stormtroopers, a jawa and an an officer 16:15
They denied being a historical reenactment group. I find their lack of faith disturbing
masak heh. 16:17
?eval sprintf "%10%" 16:20
(locally, gives ' %')
r: say sprintf "%10%"
p6eval rakudo c3f565: OUTPUT«'%' is not valid in sprintf format sequence '%10%'␤ in sub sprintf at src/gen/CORE.setting:2414␤ in block at /tmp/TQgr3KaM4Z:1␤␤» 16:21
masak n: say sprintf "%10%"
p6eval niecza v24-17-gd343a2a: OUTPUT«%␤»
masak sorear: likely a Nieczabug.
16:21 SamuraiJack_ joined
masak if someone feels so inclined, I'd be happy to learn what C does with '%10%' :) 16:21
16:22 SamuraiJack left
masak is aiming for a Ph.D. in sprintf 16:22
16:24 SamuraiJack_ left
flussence rn: say sprintf '%2$s %1$s', 'a', 'b' 16:24
p6eval niecza v24-17-gd343a2a: OUTPUT«b a␤»
..rakudo c3f565: OUTPUT«'$' is not valid in sprintf format sequence '%2$'␤ in sub sprintf at src/gen/CORE.setting:2414␤ in block at /tmp/ylmrNnNq8H:1␤␤»
flussence eval say sprintf '%2$s %1$s', 'a', 'b'
eval: say sprintf '%2$s %1$s', 'a', 'b'
16:24 SamuraiJack joined
flussence no p5bot? 16:24
masak apparently not. 16:26
(yes, I intend to do %2$s et al. I'm not in a big hurry to do so. there's more fun fruit to pick before that) :) 16:27
masak peruses 'perldoc -f sprintf' and 'man 3 sprintf' 16:28
16:29 lincolnthree joined
nwc10 surely an nqp-jvm bot would be more interesting than a p5bot. I've got /usr/bin/perl already :-) 16:31
tadzik the nqp-jvm frontend doesn't quite work for me 16:32
"load_bytecode" couldn't find file 'helper.pbc'
jnthn tadzik: make helper.pbc :)
nwc10 I hit that. I suspect that the makefile targets are not quite right
tadzik I'm disappointed in the lack of 'make cake' ;P
nwc10 I can't figure out what CLASSPATH should be on my mac
jnthn yeah, was about to fix that, then got distrcated by a code-gen bug :)
tadzik now To compile on the JVM backend, QAST::VM must have an alternative 'jvm'
jnthn tadzik: you need bleeding edge NQP also 16:33
tadzik oh, update time :) Ok, thanks
16:35 SamuraiJack_ joined, SamuraiJack left 16:47 lincolnthree left 16:48 am0c left
moritz if anybody is looking for a low-hanging fruit and wants to write a few lines of Perl 6 code: write a test for rt.perl.org/rt3/Ticket/Display.html?id=114202 17:04
17:07 SunilJoshi1 left
diakopter jnthn: test 6 of qast_variable.t NoSuchMethodError: org.perl6.nqp.runtime.Ops.getdynlex(Ljava/lang/String;Lorg/perl6/nqp/runtime/ThreadContext;)Lorg/perl6/nqp/sixmodel/SixModelObject; 17:07
17:08 SunilJoshi joined
jnthn diakopter: Sounds like some out-of-date .class file 17:08
17:08 xy joined 17:09 xy left
diakopter why wouldn't the makefile fix that 17:09
jnthn diakopter: Because the makefile doesn't yet compile the Java bits
diakopter so.. how to fix :) 17:11
jnthn Open Eclipse, and hope it does the right thing? ;) 17:12
diakopter oh yeahs
dalek p-jvm-prep: 92d7fa2 | jnthn++ | lib/QAST/JASTCompiler.nqp:
A couple of statements code-gen fixes.
17:13
p-jvm-prep: e785da0 | jnthn++ | Makefile:
Should compile helper.pbc by default.
p-jvm-prep: a1cb50f | jnthn++ | lib/QAST/JASTCompiler.nqp:
Fix busted void handling.
diakopter yeah, had to hit F5
timotimo moritz: seems like rt.perl.org is down at the moment :| 17:25
moritz timotimo: the bug was over-sharing of anon variables in the same scope 17:28
r: my @ = 1, 2, 3; say my @ 17:29
p6eval rakudo c3f565: OUTPUT«␤»
moritz that used to produce 1 2 3
masak oh ouch. 17:31
masak .oO( highlander anonymous variables :P )
timotimo does that example code already provide a good test case? 17:35
masak yes. 17:36
oho, I think I found Perl 5's implementation of sprintf: github.com/mirrors/perl/blob/3041a...v.c#L10244
timotimo in that case, i can totally do that right now :)
masak might come in handy.
rnp: say 11391 - 10244 17:38
p6eval rakudo c3f565, niecza v24-17-gd343a2a, pugs: OUTPUT«1147␤»
masak 1kLOC. not so bad given what it does.
nwc10 masak: oh, I wasn't aware that you didn't know where it was. I could have told you easily :-)
or :-(
masak nwc10: no no, let the new kid figure it out by himself ;) 17:39
(but thanks. I'll keep that in mind.)
nwc10 jnthn: firstly, I seem to need to do s/import com.sun.org.apache.bcel.internal.Constants/import org.apache.bcel.Constants/ to get stuff to compile 17:40
timotimo builds a fresh rakudo first
nwc10 for reasons I don't understand, this at the top level seems to build stuff:
gcj -C -I src -I 3rdparty/bcel/bcel-5.2.jar src/org/perl6/nqp/jast2bc/JASTToJVMBytecode.java
masak Rule #1 of sublanguage design: a space makes your term look like *two* visual pills, not one.
(I'm looking at you, '% d') 17:41
nwc10 secondly, this seems to get *close* to running the tests
CLASSPATH=`pwd`/src:`pwd`/3rdparty/bcel/bcel-5.2.jar:. make test
jnthn nwc10: The test runner invokes the JVM with -cp already
nwc10 oh, bother. I meant, that gcj invocaiton above, and this too: gcj -C -I src -I 3rdparty/bcel/bcel-5.2.jar src/org/perl6/nqp/jast2bc/JASTToJVMBytecode.java 17:42
but I get errors Exception in thread "main" java.lang.NoClassDefFoundError: RunTest
OK. make test has that error too 17:43
(without the CLASSPATH bodge)
jnthn Hm.
nwc10 please note that I do not know what I am doing here
17:43 stevan_ joined
jnthn nqp t/jast.t gives that error also? 17:44
nwc10: oooh...
nwc10 yes, snap
jnthn nwc10: t/helper.nqp hardcodes the name javac as the compiler it looks for 17:45
nwc10 (this is on x86_64 debian. I don't seem to have a working gjc on my mac)
er, gcj
if I don't have a working Java, that's even better. Harder to be pwned. 17:46
masak rn: say sprintf '<%*s>', 6, "a"
p6eval rakudo c3f565: OUTPUT«< a>␤»
..niecza v24-17-gd343a2a: OUTPUT«Unhandled exception: invalid format specifier␤ at /home/p6eval/niecza/lib/CORE.setting line 1301 (sprintf @ 4) ␤ at /tmp/c3g1_apnzJ line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.s…
tadzik there's RunTest.java somewhere
masak rakudo++
sorear: would you like me to collect sprintf bugs into an issue?
nwc10 tadzik: but there isn't a JASTTest, that it needs 17:47
tadzik oh, I see 17:48
jnthn need to done some dinner stuff, back in a bit 17:49
*do
nwc10 enjoy
not sure when I'll be gone, and after that, when I'll be back
masak nothing is certain. 17:50
masak .oO( "sprintf. You will never find a more wretched hive of exceptions and special cases. We must be cautious." ) 17:57
nwc10 yes. that roughly sums it up 17:59
18:00 snearch_ joined
masak and yet, this feels like a smaller and more contained project than pack/unpack, which I never really got anywhere with. 18:01
perhaps after I finish sprintf I'll have a second look at pack/unpack. 18:02
18:12 marloshouse left 18:16 marloshouse joined 18:18 SunilJoshi left 18:22 Su-Shee joined
Su-Shee good evening everyone.. 18:22
tadzik hey Su-Shee 18:24
18:25 b1rkh0ff left
masak Su-Shee! \o/ 18:25
Su-Shee everybody seen the nice "perl is a dead end" talk already? :) that was funny. 18:29
tadzik seen the slides, yeah
aloha the slides, yeah was last seen in 15718 days 18 hours ago .
tadzik go home aloha. You're drunk
Su-Shee the slides I meant, yes. 18:30
tadzik actually, I'm most interested in why isn't p5-mop happening
I'm not in position to buy stevan_++ a beer tho :)
Su-Shee tadzik: I just love a good rant and a friendly kick :)
dalek ast: b905097 | (Timo Paulssen)++ | S04-declarations/my.t:
a small test for RT #114202: oversharing my @; %
18:31
18:38 b1rkh0ff joined 18:49 rindolf left 18:58 snearch_ left, spider-mario joined 19:18 ilogger2 joined, ChanServ sets mode: +v ilogger2
tadzik ah, I see 19:25
stevan_: what is it, ooc? 19:27
stevan_ occ? 19:28
tadzik out of curiosity
as in: I'm probably not able to help anyway :)
stevan_ tadzik: you will have to ask doy or rafl 19:29
tadzik ok 19:30
Su-Shee stevan_: how was the resonance in live about your talk? 19:31
tadzik I regret not seing the faces of the audience when you revealed scala
watching the slides I was like "oh, yeah, not this, not that, just say already that it's going to be C...... oh." 19:32
Su-Shee well so far I've read mostly a bunch of tired "meh, won't work anyways" comments here and there (set aside vti and sawyerx :) 19:34
colomon quick summary for those of us unable to read the slides at the moment? 19:37
diakopter Perl 5 has problems; Perl 6 is the future; I'm reimplementing Perl 5 and improving it 19:38
colomon reimplementing Perl 5 in scala?
tadzik aye
github.com/stevan/moe
colomon awesome
tadzik real AST, concurrency, and SUBROUTINE SIGNATURES damnit
or so I hope:)
Su-Shee just click through the slides, they're pretty funny, too :) 19:42
well at least on my scale of techie humor..
colomon I don't know why, but CHrome has been an absolute pig on my machine the last couple of days -- routine 100% CPU utilization, etc. So I'm running without any sort of browser at all at the moment so the machine runs fast enough for me to try to work. 19:43
$work, I mean.
stevan_ Su-Shee: the audience responded pretty well actually 19:44
tadzik: Scala was met with a meh
but they can try and write it in Java if they want
my opinion on C is that it is premature optimization now
Su-Shee \o/ Jerl! ;)
doy it also misses the point
stevan_ this is an experiment
this is Pugs for Perl 5
this is not Parrot for Perl 5 19:45
colomon stevan_++ # Pugs5
doy having the base implementation in c misses out on the entire opportunity to move off of the single backend sort of vm
Su-Shee stevan_: you made that pretty clear in the slides..
stevan_ yeah though I am not sure that has been communicated outwards effectively 19:46
stevan_ really needs to write an F.A.Q.
Su-Shee well I read some motivating butt kicking in it too, but that might just be me. what's the english word.. envigorating?
invigorating. 19:47
masak aww, stevan_ just quit. 19:50
I just finished his slide deck and I wanted to karma him so much.
ah well, not too late, I guess.
doy yeah, he just left for his flight
masak do I karma 'stevan' or 'stevan_'? :) 19:51
karma stevan
aloha stevan has karma of 2.
masak karma stevan_
aloha stevan_ has karma of 1.
masak stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++ stevan++
karma stevan
aloha stevan has karma of 3.
masak heh.
diakopter :)
colomon stevan++
since I karma'd the wrong one earlier 19:52
nwc10 phenny: tell jnthn ~/bin/javac as a shell script to invoke gcj plus first hunk of this gets t/jast.t passing. All others fail. Error is "Could not find the main class: QAST2JASTOutput. Program will exit." strace reveals that QAST2JASTOutput.class is being opened and read. 19:53
phenny nwc10: I'll pass that on when jnthn is around.
timotimo r: use Test; is (my &), Any;
p6eval rakudo c3f565: OUTPUT«use of uninitialized value of type Any in string context in sub is at lib/Test.pm:81␤␤use of uninitialized value of type Any in string context in sub is at lib/Test.pm:81␤␤ok 1 - ␤»
timotimo how do i best get rid of this error?
Su-Shee masak: so I take it you like the idea? ;)
timotimo r: use Test; ok (my &) == Any;
p6eval rakudo c3f565: OUTPUT«use of uninitialized variable anon of type Any in numeric context in block at /tmp/jlV6YOQ6IR:1␤␤use of uninitialized value of type Any in numeric context in block at /tmp/jlV6YOQ6IR:1␤␤ok 1 - ␤»
timotimo r: use Test; ok (my &) eqv Any; 19:54
p6eval rakudo c3f565: OUTPUT«ok 1 - ␤»
timotimo is that a good way to do it?
masak Su-Shee: this idea has been floating around for at least two years in discussions and stuff. I'm glad someone is doing something about it. if anyone has a chance of success, it's stevan++. 19:55
colomon what's the big picture on what he's trying to do? 19:56
masak Su-Shee: in my mind, it had gotten the label "Perl 5 and a half", because it is a cleanup of Perl 5 that aims to get closer to Perl 6.
colomon: reimplementation of Perl 5.
colomon: but with sanity. 19:57
colomon masak: understood that, but just to be an implementation of Perl 5? or is there a larger plan?
masak it's not clear to me that any implementation of Perl 6 will ever be able to talk to perl (the Perl 5 runtime) very successfully. there is a much larger chance of Perl 6 and Perl 5-and-a-half interoperating. 19:58
colomon yeah, I was just wondering if Niecza and scala on .net could work together...
masak you'll have to ask sorear about that. 19:59
colomon sorry, I meant p5.5 on scala on .net. :)
masak heh, I read you that way :) 20:00
colomon I'm pretty sure niecza can work with anything on .net in theory.
_sri scala does seem a lot less annoying than java 20:03
doy i keep hearing good things about it
colomon had a remarkably positive response to hearing it mentioned in this context, dunno why. 20:05
masak $dayjob wants me to give courses in it. which means that there is interest.
Su-Shee I see it quite a bit in startup jobs.. 20:11
masak yeah. 20:14
Su-Shee masak: how does "perl" in general look in sweden, btw? 20:15
jnthn nwc10: Does javap produce anything sensible on that file? That is, does it actually contain stuff? 20:16
phenny jnthn: 19:52Z <nwc10> tell jnthn ~/bin/javac as a shell script to invoke gcj plus first hunk of this gets t/jast.t passing. All others fail. Error is "Could not find the main class: QAST2JASTOutput. Program will exit." strace reveals that QAST2JASTOutput.class is being opened and read.
masak Su-Shee: .pm groups are quite inactive. the only live one I know of is Stockholm.pm, really. a handful of big companies still use Perl. I've been teaching it some in the past year. 20:17
Su-Shee masak: and job-wise?
masak Su-Shee: so, not dead but not impressively alive either.
Su-Shee: I've been doing consulting work with Perl. there are openings for this, especially because good Perl developers seem few and far between. 20:18
Su-Shee masak: I'm always a little taken aback by us/uk postings about "perl is alive and kicking" in terms of jobs and cpan growth..
masak: yes, because many abandoned it and are doing something else...
masak right.
Su-Shee masak: set aside my last job I haven't done perl in years before..
masak I've been doing Perl in most of my jobs. 20:21
but it might be because I like it, and had free-enough hands to choose my tools. 20:22
Su-Shee masak: in private I used it a lot and then I wanted a perl job again, but sadly it usally means "cleaning up horrible perl code" and not "doing shiny new things in a shiny startup with interesting ideas" 20:23
masak I've been in both sorts of job. they are very different. 20:25
but I suspect I have a higher tolerance for cleaning up legacy code than most do. 20:26
I enjoy writing tests after the fact. :)
Su-Shee oh I don't mind it per se, but it's not really a thing to showcase your language..
I like cleaning up in general, because it's so satisfying afterwards ;)
doy the trick is to find people willing to pay you for cleaning up code 20:28
moritz no, the trick is to find people willing to let you write new code
much more fun :-)
colomon :)
colomon would be happy if people would stop finding bugs in his old code for six months or so... 20:29
doy that depends a huge amount on what the existing code looks like
(:
Su-Shee I don't mind fixing bugs, too :)
moritz depends on the bugs :-) 20:30
an application at $work has its own custom (and horrible, I might add) error handling module
colomon Su-Shee: I don't mind fixing sane bugs.
moritz and on newish perls it complains that goto into a construct is deprecated 20:31
that will be so much "fun" to fix
20:31 MayDaniel joined
colomon The bug I'm looking at right now was first reported back in, oh, August or so. Only every reported by one customer. (At least it's completely reproducible with his data.) 20:33
Su-Shee colomon: I gues it's a streak of classical housewife and maid in me - cleaning up after the guys... ;)
20:33 bluescreen10 joined
colomon Rakudo got noticeable optimizations months ago attempting to get one of the programs I wrote to analyze the data that doesn't work running. 20:33
Never actually worked for this file, alas.
The big problem here is the incredibly awful STEP standard for CAD. 20:34
masak Su-Shee: I got a sudden impulse to ask you not to be so sexist... :P
moritz (the error handling system consists of "return problem($string)", and &problem stores the error message somewhere, and returns undef; then you have to call report_error($numeric_flags) to actually spit them out)
20:35 stevan_ joined
masak stevan_++! \o/ 20:35
stevan_ masak: ahoy
20:35 slayer101_ joined
Su-Shee masak: haha, you realize that reality still says I'm not even really joking? ;) 20:35
20:36 Targen joined
moritz reality is sexist too, occasionally 20:37
masak reality has a clearly sexist bias.
Su-Shee "occasionally.." :)
masak stevan_: sir, I approve of you wholeheartedly tonight. I will buy you at least one beer next time we meet. :) 20:38
stevan_: best of luck on your admittedly insane venture. :D
stevan_ masak: thank you :)
masak and don't listen to the people saying Scala was a bad choice. Scala is alright. 20:39
it even has a bit of that Perl 6 feel to it.
Su-Shee "that Perl 6 feel".. aha :) 20:41
nwc10 jnthn: 2512 bytes, file says that it's compiled Java class data, version 49.3
jnthn nwc10: That's...really odd. 20:42
nwc10: (that it doesn't load...the file seems legit)
stevan_ masak: yes, thats how i feel about it too 20:48
I remember looking at it a lot with Audrey back in the Pugs days
there is even a Class::MOP test that implements scala style traits
masak stevan_: I'm very glad someone is investigating the "clean up Perl 5" road.
stevan_ masak: I just got sick of talking to people about this (and I have been talking to people about this for YEARS!) 20:49
masak aye.
stevan_++
nwc10 jnthn: other think that makes little sense is this: 20:52
nqp nqp-jvm-cc.nqp --setting=NULL -e "nqp::say('omg jvm')"
To compile on the JVM backend, QAST::VM must have an alternative 'jvm'
current instr.: 'as_jast' pc 45158 (QASTJASTCompiler.pir:15069) (lib/QAST/JASTCompiler.nqp:2003)
...
whereas `nqp t/jast.t` works. 20:53
jnthn nwc10: That just means your NQP is too old
nwc10 it's the *same* NQP
colomon jnthn++ # improved rakudo error messages (at least, I think that was him)
Su-Shee explain a laysperson how difficult it is to write a perl in <whatever> language if it's "just" about writing the same language with some improvements?
aloha positive: nothing; negative: nothing; overall: 0.
nwc10 oh, crap, hanon 20:55
jnthn nwc10: Yes, but the changes that went into NQP today to make the QAST trees it produces be suitable for turning into JVM code are needed by the cross-compiler, but not by the stuff t/jast.t does (which isn't using NQP as a frontend, just to drive tests)
nwc10 aha
moritz Su-Shee: suppose you have a hospital where the staff has 25 years of experience running it. Now you fire all people at once. How difficult can it be to achieve the previous performance, plus some improvements?
Su-Shee: same for reimplementing perl :-)
colomon is debugging by adding printfs to his C++ code, then writing a p6 script to analyze the output from the printfs. ;) 20:58
Su-Shee moritz: well as you're hiring new people who actually already worked in other hospitals - probably comparatively seemless.. also it's a bad example because I know how emegencies etc work, I worked in one for two years. :)
masak could we just disconnect aloha? she's drunk, as tadzik pointed out.
Su-Shee moritz: seamless.
moritz Su-Shee: ok. The better analogy is probably building an entire new hospital 20:59
20:59 MayDaniel left
moritz from ground, and with just one or two persons 20:59
20:59 slayer101_ left
Su-Shee moritz: no, stop the metaphor, it really doesn't work :) 20:59
stevan_ burning the entire hospital to the ground, then reassembling it from the ashes 21:00
Su-Shee moritz: ok, then compare it to the other rubies and pythons.. they're all new complete implementations on another stack, if I remember correctly.. they came to life pretty fast and gotten stable?
stevan_ and no photographic record to work from
moritz Su-Shee: always depends on the complexity of the building and prcoesses (languages/compilers) you're trying to build 21:02
Su-Shee moritz: I'm deliberately not using schemes and lisps and smalltalks as an example.
moritz some aren't too hard to do, some are more like Elbphilharmonie or BER
Su-Shee moritz: yes, moritz, I figured as much ;) 21:03
nwc10 jnthn: OK. yes. PEBCAK. If I rebuild nqp as master (d'oh! - how many times did you have to say that) 21:06
then nqp nqp-jvm-cc.nqp --setting=NULL -e "nqp::say('omg jvm')" 21:07
goes boom like the tests:
oh.
moritz stevan_: one piece of advice from Perl 6 land: don't call it "Perl" if it's not backwards compatible to Perl 5 :-)
it's way too late to change the name of Perl 6, but many people wish it hadn't been called Perl 21:08
nwc10 it does after I fix it to add `src` to the classpath
moritz or call it "<mumble> Perl", so people can just call it "<mumble>" eventually :-) 21:09
jnthn nwc10: bin should be in classpath, not src
nwc10 what goes in bin?
masak moritz++ # "<mumble> Perl" advice
jnthn nwc10: The results of compiling the stuff in src
masak that's worked very well with Rakudo Perl. 21:10
nwc10 aha.
jnthn nwc10: Where did gcj put the .class it made?
nwc10 gcj was dumping foo.class as a file next to foo.java
jnthn Ah
nwc10 aye. aha
Su-Shee name it after what language is used to implement it.. Jerl, Scerl, Lerl, Cerl.. ;)
nwc10 I told you that I don't know what I am doing :-)
stevan_ moritz: thats why it is called Moe
jnthn nwc10: Did you get all the things in src?
moritz stevan_: oh right :-)
nwc10 I believe so
jnthn nwc10: Oh, oculd it be that the class path is missing .
?
Maybe it's not looking in the current directory...which is where the file is. 21:11
stevan_ jnthn: just a warning, doy and I will be picking your brain a lot :)
moritz do steal from 6model :-)
colomon is wondering if the CAMERA_IMAGE objects are messing up his STEP translator.
stevan_ moritz: we will be stealing from p5-mop, whcih stole from 6model,... so yeah 21:12
21:12 aindilis joined
nwc10 jnthn: it's something like that. Seem to have it running 21:13
going to try to work back to the mininmal needed edits
OK. It says 3All tests successful. 21:15
jnthn In green, even!
moritz
.oO( Green IT: all tests pass! )
21:16
jnthn ffs
masak time to write more tests.
jnthn my $dayjob got me a new printer.
I'm too stupid to install the cartridges.
Really, how the heck do they go in...
nwc10 with a hammer? Oh, you mean, go in *and work*? :-)
moritz there's usually a manual coming with the printer
masak this is why you buy a printer with cartridges already in them.
and when they run dry, you throw the printer away and buy a new one. 21:17
moritz speaking of green IT -- that is not! 21:18
jnthn moritz: Yes, the manual tells me all about the printers built in web server (wtf...) but not how to stick the ink in :P 21:19
nwc10 jnthn: OK. So, if I `ln -s src bin`, I can remove all the hacks, apart from the s/import com.sun.org.apache.bcel.internal.Constants/import org.apache.bcel.Constants/
and the other hack of a ~/bin/javac 21:20
moritz jnthn: well, ipp (the printing-over-IP protocal) basically runs over HTTP
so a web server in there isn't quite surprising
nwc10 $ nqp nqp-jvm-cc.nqp --setting=NULL -e "nqp::say('This is shorter than Hello World written in Java. Yay')"
This is shorter than Hello World written in Java. Yay
colomon completely off topic, but look at my current debugging assistant: plus.google.com/105195123179018346...kC5Sv5qYmM 21:24
jnthn $ nqp nqp-jvm-cc.nqp --setting=NULL -e "my $a := -> { nqp::say('And it has closures') }; $a()" 21:25
And it has closures
\o/
nwc10 No registered operation handler for 'associative_bind'
colomon \o/
nwc10 your nqp is from the future?
oh. no.
arnsholt Probably =D
nwc10 your shell is Win32
jnthn nwc10: Closures already work :) 21:26
(in what's checked in)
nwc10 yes. does for me when I transpose " and '
jnthn associative_bind...hm, hashes need some work I guess :)
nwc10 jnthn++ # creating even more inefficient ways to print hello world
strace recorded 11471 system calls for the hello world 21:27
jnthn nwc10: Well, given that doing so invokes the JVM twice... :)
lue Does "To compile on the JVM backend, QAST::VM must have an alternative 'jvm'" mean I need to enable icedtea support somewhere? 21:32
jnthn lue: No, it means your NQP needs updating to latest 21:33
lue Ah. Makes sense (but that would require updating rakudo as well, which I'm going to wait to do) 21:34
colomon lue! \o/ 21:36
lue o/
21:37 stevan_ left
nwc10 gah. Lexical lookup by name NYI 21:39
you evil evil person. You've made something that tempts me to hack on it. Bad jnthn. No cookie^Wbeer 21:40
:-)
jnthn oh, that task is in the LHF file too :) 21:42
nwc10 jnthn++ # a frontend, making it possible to feed it programs, not just syntax trees 21:47
jnthn It's darn distracting though. :) 21:48
jnthn has an almost fully commented out nqp-mo.pm that he's now started to move through
nwc10 sleep is for the weak :-) 21:49
jnthn OK, OK, I'll at least do attribute scope in QAST::Var :P 21:50
lue hopes the future JVM nqp (and therefore JVM rakudo) is at least a little faster than Parrot on his machine 21:53
masak lue! \o/ 21:54
lue o/
21:56 pmurias joined
masak 'night, #perl6 21:58
lue g'knight masak o/ 22:00
dalek kudo-js: 8fbe88e | (Paweł Murias)++ | runtime.js:
Deserialize knowhows and knowhow attributes.
22:02
kudo-js: d36e172 | (Paweł Murias)++ | run (2 files):
Deserialize non flattend P6opaque attributs, pass test 28.
kudo-js: 4529261 | (Paweł Murias)++ | run_tests:
Add more passing tests to run_tests.
kudo-js: 08974cd | (Paweł Murias)++ | src/QAST/Compiler/JavaScript.nqp:
Delete no longer used serialization code.
kudo-js: 0b0b138 | (Paweł Murias)++ | src/QAST/Compiler/JavaScript.nqp:
Remove more unused code.
kudo-js: 213c59d | (Paweł Murias)++ | / (5 files):
Add NQPCapture and NQPMatch, pass test 29.
kudo-js: 582dc79 | (Paweł Murias)++ | src/ (2 files):
set grammar in EXPORTHOW
kudo-js: dc040b5 | (Paweł Murias)++ | run_tests:
Add passing tests to run_tests.
p-jvm-prep: c073be5 | jnthn++ | t/qast_6model.t:
Tests for QAST::Var with attribute scope.
22:09
p-jvm-prep: fcbe1f0 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Implement QAST::Var attribute scope.
22:10 slayer101_ joined 22:13 xinming_ joined 22:15 slayer101_ left 22:24 cognominal joined
dalek p: 4344610 | jnthn++ | src/QAST/Operations.nqp:
Add nqp::decont; maps to pir::nqp_decontainerize.
22:29
p: 12e4c66 | jnthn++ | src/stage0/ (9 files):
Update bootstrap.
p: 33a8ea0 | jnthn++ | src/NQP/Actions.pm:
Switch some QAST::VM uses to new nqp::decont.
22:30 spider-mario joined
Ayiko rn: CATCH { default { say 'ok' } }; die 'BAD'; # no CATCH in mainline? 22:31
p6eval rakudo c3f565: OUTPUT«BAD␤ in block at /tmp/qgNmSyJuaj:1␤␤»
..niecza v24-17-gd343a2a: OUTPUT«ok␤»
jnthn Ayiko: Apparently not... 22:32
Ayiko: Probably should be.
tadzik r: { CATCH { default { say 'ok' } }; die 'BAD'; } 22:37
p6eval rakudo c3f565: OUTPUT«ok␤»
tadzik odd, I thought YOU_ARE_HERE is blockified somewhat
dalek p-jvm-prep: c5db4ec | jnthn++ | / (2 files):
Implement iscont, stub decont.
22:40
p-jvm-prep: 91924a7 | jnthn++ | docs/ROADMAP:
Remove completed item.
p-jvm-prep: 5c3611d | jnthn++ | lib/QAST/JASTCompiler.nqp:
Label uniqueness fix.
22:43 slayer101_ joined
dalek p: 26d8805 | jnthn++ | src/how/NQPCurriedRoleHOW.pm:
One more pir => nqp in nqp-mo.
22:57
jnthn 'night, #perl6 23:07
tadzik good knight
23:08 cognominal left
pmurias jnthn: 'night 23:09
23:13 cognominal joined 23:16 cognominal left 23:30 noam_ joined 23:36 pmurias left 23:38 Khisanth joined 23:47 benabik joined 23:59 slayer101_ left