»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:09 beppu joined 00:10 beppu left 00:11 EvanTeitelman left
TimToady well, they might be different, but they're both the same sort of Liskov violation, triggered by mixing in a null role 00:22
so you don't need to ask if it's a bug, only if it's the same bug :)
00:30 EvanTeitelman joined
japhb_ What name for the group of languages including Perl, Python, Ruby, JavaScript, PHP, etc. is most likely to be understood by *most of the users* of those languages (as opposed to how just we in the Perl community refer to this language group)? 00:32
Is "dynamic languages" sufficiently commonly used at this point? Is "scripting languages" still more likely to be understood?
Mouq "Ain't Lisp 'n ain't C" 00:37
00:47 colomon joined 01:03 EvanTeit1lman joined 01:05 EvanTeitelman left, colomon left 01:06 colomon joined
TimToady I suspect scripting languages is still the most likely to be understood 01:07
01:16 FROGGS left 01:18 FROGGS joined
Mouq :D My tiny modification to rakudo actually make'd \o/ 01:21
01:23 lue joined 01:32 FROGGS_ joined 01:35 FROGGS left 01:42 berekuk left
[Coke] Mouq++ 01:49
01:52 benabik joined
dalek rl6-roast-data: a6cf7a7 | coke++ | / (5 files):
today (automated commit)
01:55
rl6-roast-data: 3eafb81 | coke++ | cull:
update perl version for new host
01:55 berekuk joined
[Coke] hopes he fixed the thing that caused the daily runs to screw up if not attended. 01:55
rakudo.jvm is looking better.
we're back up to 99% 01:56
TimToady quick, put in more threading tests :) 02:01
02:05 berekuk left
[Coke] updated gist.github.com/coke/5879701 02:07
when did the env fix go in? 02:10
TimToady dimly recalls it being discussed a few days ago 02:11
backlogging while jetlagged is not conducive to long-term potentiation... 02:12
[Coke] saw it in backscroll somewhere, and thought it was merged in. test is still failing, though.
S02-magicals/env.rakudo.jvm 14 - ENV members persist to child processes
Mouq Oh, rakudo is part of @rakudo, not @perl6 :p no wonder I don't have permissions 02:14
[Coke] rakudo requires a committer's license agreement. 02:15
perl6 is much more open
Mouq It's cool, I'll make a pull req
02:28 FROGGS_ left 02:31 FROGGS_ joined 02:33 _jaldhar left 02:45 _jaldhar joined 02:52 FROGGS_ left 02:55 FROGGS joined 03:04 xinming left 03:08 xinming joined
Mouq What are these weird "Unable to parse expression in blockoid; couldn't find final '}'" errors in npq grammar? I promise a final '}' is there 03:16
JimmyZ Mouq: That means I miss } somewhere 03:20
s/I/you/
Mouq :p
JimmyZ Mouq: not the final
03:24 preflex left 03:25 preflex joined, ChanServ sets mode: +v preflex 03:36 colomon left
Mouq Mmm... nope. It seems to be, in this case, a problem with doing things in nqp that it doesn't understand. 03:38
And of which, nqp doesn't seem to get "$0.Str". Could someone help; I have no idea how to do it in nqp nor where to look to find out? 03:39
JimmyZ .Str is perl6, not NQP 03:41
you may want ~$0
Mouq Ahhh, duh. Sorry, I'm fresh 03:42
03:43 BenGoldberg left
Mouq .Str is a thing. I have a sorta fix for what was wrong 03:56
ingy waves 04:06
04:51 kbaker left 05:02 EvanTeit1lman left 05:05 raiph joined, abnorman left 05:06 abnorman joined
Mouq .ping 05:07
05:10 abnorman left 05:12 atroxaper joined
Mouq std: Q :fail [test] 05:12
camelia std 06636e4: OUTPUT«===SORRY!===␤Unrecognized quote modifier: fail at /tmp/ohTmfksZiU line 1:␤------> Q ⏏:fail [test]␤Check failed␤FAILED 00:00 41m␤» 05:13
Mouq std: Q :cc [test]
camelia std 06636e4: OUTPUT«ok 00:00 41m␤»
Mouq std: q :cc [test] 05:14
camelia std 06636e4: OUTPUT«===SORRY!===␤Too late for :cc at /tmp/KA6lOq9gS9 line 1:␤------> q :cc⏏ [test]␤ expecting colon pair (restricted)␤Parse failed␤FAILED 00:00 41m␤»
atroxaper r: for 5..1 -> { print "$i "; } 05:15
camelia rakudo bc0051: OUTPUT«===SORRY!=== Error while compiling /tmp/kfrpM5ivSR␤Variable '$i' is not declared␤at /tmp/kfrpM5ivSR:1␤------> for 5..1 -> { print "$i⏏ "; }␤ expecting any of:␤ postfix␤»
atroxaper r: for 5..1 -> $i { print "$i "; }
camelia rakudo bc0051: ( no output )
Mouq So... Q:cc// is allowed but not spec'ed?
r: for 5...1 -> $i { print "$i "; }
camelia rakudo bc0051: OUTPUT«5 4 3 2 1 »
atroxaper Why ?! Why 5..1 doesn't work?
Oh... Thank you! 05:16
Mouq np
'..' isn't smart enough to go backwards. '...' does whatever you want
atroxaper Is there unic way to generate sequence. I mean if i dunno start > finish or < . 05:17
raiph .oO ( .. is wise enough to not be as smart as ... ) 05:18
atroxaper You read my thougts)
raiph r: say 5 R.. 1 05:21
camelia rakudo bc0051: OUTPUT«1..5␤»
Mouq r: 1,2,3,4, ->$fac{say $fac; [*] ^$fac} ... 100 # Something's wrong here... 05:22
camelia rakudo bc0051: OUTPUT«(timeout)4␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1␤0␤1􏿽xE2􏿽x90 05:23
Mouq Oh
atroxaper ^$i mean 0, 1, ...., i-1
Mouq r: 1,2,3,4, ->$fac{say $fac; [*] 1 <<+<< ^$fac} ... 100
camelia rakudo bc0051: OUTPUT«(timeout)4␤24␤620448401733239439360000␤»
Mouq r: 1,2,3,4, ->$fac{say $fac; [*] 1 .. $fac} ... 100 05:24
Yes
camelia rakudo bc0051: OUTPUT«(timeout)4␤24␤620448401733239439360000␤»
Mouq Oh 05:25
grondilu you're doing recursive factorials. That will escalade quickly :)
Mouq r: 1,2,3,4, ->$fac{say $fac; [*] 1 .. $fac} ...^ 100
camelia rakudo bc0051: OUTPUT«(timeout)4␤24␤620448401733239439360000␤»
grondilu and i will never reach 100 05:26
Mouq Oh, I thought it would quit once it passed it
grondilu I mean it will go beyond 100 quickly but not stop there
raiph r: 1,2,3,4, ->$fac{say $fac; [*] 1 .. $fac} ...^ * > 100
camelia rakudo bc0051: OUTPUT«4␤24␤»
raiph r: 1,2,3,4, ->$fac{say $fac; [*] 1 .. $fac} ... * > 100 05:27
camelia rakudo bc0051: OUTPUT«4␤24␤»
grondilu r: say [\*] 1 .. 100;
camelia rakudo bc0051: OUTPUT«1 2 6 24 120 720 5040 40320 362880 3628800 39916800 479001600 6227020800 87178291200 1307674368000 20922789888000 355687428096000 6402373705728000 121645100408832000 2432902008176640000 51090942171709440000 1124000727777607680000 25852016738884976640000 62044840173…
atroxaper Why '1..5 Z 6..10' not equal '1...5 Z 6...10' ??
Mouq r: (1...5) Z (6...10) 05:28
camelia rakudo bc0051: ( no output )
Mouq r: say 1..5 Z 6..10 cmp (1...5) Z (6...10) 05:29
camelia rakudo bc0051: OUTPUT«===SORRY!=== Error while compiling /tmp/AEDPSiLhzk␤Operators '..' and 'cmp' are non-associative and require parenthesis␤at /tmp/AEDPSiLhzk:1␤------> say 1..5 Z 6..10 ⏏cmp (1...5) Z (6...10)␤ expecting any of:␤ postfix␤…
Mouq r: say (1..5 Z 6..10) cmp (1...5) Z (6...10)
camelia rakudo bc0051: OUTPUT«Decrease 6␤»
Mouq r: say (1..5 Z 6..10) == ((1...5) Z (6...10))
camelia rakudo bc0051: OUTPUT«True␤»
atroxaper Hm....
raiph r: say (1..5 Z 6..10) 05:30
camelia rakudo bc0051: OUTPUT«1 6 2 7 3 8 4 9 5 10␤»
grondilu r: : say (1..5 Z 6..10).perl
camelia rakudo bc0051: OUTPUT«===SORRY!=== Error while compiling /tmp/RdduY8il7Z␤Bogus statement␤at /tmp/RdduY8il7Z:1␤------> <BOL>⏏: say (1..5 Z 6..10).perl␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤»…
grondilu r: say (1..5 Z 6..10).perl
raiph r: say ((1...5) Z (6...10))
camelia rakudo bc0051: OUTPUT«((1, 6), (2, 7), (3, 8), (4, 9), (5, 10)).list␤»
rakudo bc0051: OUTPUT«1 6 2 7 3 8 4 9 5 10␤»
grondilu r: say ((1...5) Z (6...10)).perl
camelia rakudo bc0051: OUTPUT«((1, 6), (2, 7), (3, 8), (4, 9), (5, 10)).list␤»
05:30 cognominal left
atroxaper r: for 1...5 Z 6...10 -> $i, $j { say "$i : $j"; } 05:30
camelia rakudo bc0051: OUTPUT«1 : 2␤3 : 4␤5 : 6␤»
05:31 cognominal joined
grondilu r: for (1...5) Z (6...10) -> $i, $j { say "$i : $j"; } 05:31
camelia rakudo bc0051: OUTPUT«1 : 6␤2 : 7␤3 : 8␤4 : 9␤5 : 10␤»
grondilu r: for 1..5 Z 6..10 -> $i, $j { say "$i : $j"; }
camelia rakudo bc0051: OUTPUT«1 : 6␤2 : 7␤3 : 8␤4 : 9␤5 : 10␤» 05:32
raiph r: say (1..5 Z 6..10) cmp ((1...5) Z (6...10) )
camelia rakudo bc0051: OUTPUT«Same␤»
05:32 thou left
grondilu hm 05:32
raiph r: say ((1..5 Z 6..10) cmp (1...5)) Z (6...10)
camelia rakudo bc0051: OUTPUT«Decrease 6␤»
atroxaper Oh... I see. It's precedence 05:33
Mouq r: say (1 ... 5 Z 6 ... 10) cmp (1 ... (5 Z 6 ... 10))
camelia rakudo bc0051: OUTPUT«Same␤»
atroxaper Many thanks! 05:35
05:40 SamuraiJack__ joined
raiph .oO ( thanks for wat ) 05:44
05:50 Targen joined
raiph r: say (1 <<Z,>> 2).perl # works as expected 05:53
camelia rakudo bc0051: OUTPUT«((1, 2),).list␤»
raiph std: say (1 <<Z>> 2).perl 05:54
camelia std 06636e4: OUTPUT«ok 00:00 44m␤»
raiph rn: say (1 <<Z>> 2).perl
camelia rakudo bc0051: OUTPUT«===SORRY!=== Error while compiling /tmp/Mhj0rbekaP␤Missing << or >>␤at /tmp/Mhj0rbekaP:1␤------> say (1 <<Z>⏏> 2).perl␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»
..niecza v24-88-g1f87209: OUTPUT«(1, 2).list␤»
masak greetings, #perl6 05:56
Mouq o/
raiph moarnin masak
05:56 abnorman joined 05:57 fridim__ left
raiph r: say (1 <<Z>> 2).perl # pretty sure this is rakudobug; am checking rt for existing bug report 05:58
camelia rakudo bc0051: OUTPUT«===SORRY!=== Error while compiling /tmp/yD8WPGfc8u␤Missing << or >>␤at /tmp/yD8WPGfc8u:1␤------> say (1 <<Z>⏏> 2).perl # pretty sure this is rakudob␤ expecting any of:␤ postfix␤ infix stopper␤ infix or m…
raiph masak: got a hint on how to search for the above <<Z>> bug? has it already been reported? 06:00
(search in rt)
masak raiph: I think maybe the Z eats the > or the >> 06:09
try <<[Z]>>
06:10 kaleem joined
raiph r: say 1 <<[Z]>> 3 # i think i need to go to sleep <<>> AND zip? 06:11
camelia rakudo bc0051: OUTPUT«1 3␤»
masak raiph: no, not zip. 06:12
the [] merely disambiguate.
moritz std: 1 <<Z>> 2 06:14
camelia std 06636e4: OUTPUT«ok 00:00 42m␤»
raiph masak: right. i was realizing that i was too sleepy to notice that the <<>> is redundant
r: say 1 ... 2 Z 3 ... 4 06:15
camelia rakudo bc0051: OUTPUT«1 2 3␤»
raiph r: say 1 ... 2 <<Z>> 3 ... 4
camelia rakudo bc0051: OUTPUT«===SORRY!=== Error while compiling /tmp/spZcU1TpEn␤Missing << or >>␤at /tmp/spZcU1TpEn:1␤------> say 1 ... 2 <<Z>⏏> 3 ... 4␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»…
raiph r: say 1 ... 2 <<[Z]>> 3 ... 4
camelia rakudo bc0051: OUTPUT«1 2 3 2 4␤»
raiph r: say (1 ... 2 <<[Z]>> 3 ... 4).perl 06:16
camelia rakudo bc0051: OUTPUT«(1, 2, 3, 2, 4).list␤»
06:17 FROGGS left
Mouq "Could not find sub &reify_method" 06:19
raiph Mouq: can you share a one liner using camelia that produces that? 06:21
Mouq Heh, 'tr///'. Working on stuff 06:22
raiph gotchya
moritz wow 06:23
reify_method appears only twice in 'git grep reify_method' in nqp
and none of them is a declaration
so it seems like a regression in nqp somewhere
masak teaching & 06:24
dalek p: 37e13ba | moritz++ | src/how/NQPParametricRoleHOW.nqp:
fix left-over call to &reify_method

  ... which was removed in February in commit 8bf542e5fbed9bb560fa33eece4f3332d2b906d7
06:27
moritz Mouq: try again with this nqp patch :-)
Mouq ++moritz 06:29
06:42 crab2313 joined
moritz Mouq: did it do any good? 06:49
JimmyZ moritz: from the February commit, looks like you lost .clone(). 06:50
Mouq '~' I messed up building it, so.. async {make; .tell moritz now all I have to do is fix everything I messed up on my own} 06:51
moritz JimmyZ: you are right 06:54
JimmyZ: now I'm trying to reproduce Mouq++'s error, write a failing test, and then fix it for good :-) 06:55
JimmyZ great
fix it for future :P 06:56
Mouq I have no clue how to induce the error. I am guessing and stealing code left and right
moritz Mouq: I guess it has something to do with composing multi methods from roles 06:59
Mouq That sounds about right
Actually, yeah it is. 07:00
moritz nqp: role A { multi method m() { } }; class B { }; B.m
camelia nqp: OUTPUT«Method 'm' not found for invocant of class 'B'␤current instr.: '' pc 77 ((file unknown):146161447) (/tmp/Bg8g9xAwG3:1)␤»
moritz nqp: role A { multi method m() { } }; class B does A { }; B.m
camelia nqp: OUTPUT«Could not find sub &reify_method␤current instr.: '' pc 5633 (src/stage2/gen/nqp-mo.pir:2658) (src/stage2/gen/nqp-mo.nqp:589)␤»
07:00 FROGGS joined
Mouq Awww. "Missing or wrong version of dependency 'src/stage2/QRegex.nqp'" I'm such a noob 07:02
moritz Mouq: did you 'make install' nqp, and afterwards cleaned out rakudo? 07:03
and then rebuild it
that's what you have to do after changing nqp, I fear
Mouq 'k it looks to be working now 07:06
make
07:09 cognominal left
Mouq moritz++ # fix works 07:14
dalek : 2f9338f | (Tobias Leich)++ | / (2 files):
numify pack's args, and don't shift from emtpy array
07:15
07:16 yves_ left
Mouq bed & 07:17
07:20 jeff_s2 left 07:21 dmol joined
moritz nqp: role R1 { multi method m() { 0 } }; class C1 does R1 { }; say(C1.m()) 07:26
camelia nqp: OUTPUT«Could not find sub &reify_method␤current instr.: '' pc 5633 (src/stage2/gen/nqp-mo.pir:2658) (src/stage2/gen/nqp-mo.nqp:589)␤»
moritz locally that says "Method 'm' not found for invocant of class 'C1'"
and 07:27
role R1 { multi method m() { 0 } }; class C1 does R1 { proto method m($a?) {*} }; say(C1.m())
says "No applicable candidates found to dispatch to for 'm'."
07:32 sqirrel joined, jeff_s1 joined 07:34 bruges joined
dalek p: de7cd46 | moritz++ | src/how/NQPParametricRoleHOW.nqp:
try to improve multi method composition, JimmyZ++

this is just by cargo-culting from other places that look similar; so far, all my attempts to actually call multi methods provided from roles have failed
07:51
kudo/nom: 71141df | (Elizabeth Mattijsen)++ | src/Perl6/ (2 files):
Add scaffolding for COMPOSE phaser
07:57
masak it's so nice to see nqp and nom commits roll by. 08:03
moritz++ lizmat++
08:04 Targen left
lizmat morning, #perl6! 08:04
08:05 Timbus joined
lizmat yes, it is good to see them roll by 08:05
you know what's even better ? :-)
masak not teaching so that I could help? :) 08:06
moritz using the features you just implemented!
closing tickets!
masak finding bugs in the features someone just implemented!
golfing the bugs! 08:07
reporting them!
JimmyZ macros!
08:08 rindolf joined
moritz marcos! 08:08
masak sheesh people, I'm teaching... :)
08:08 cognominal joined
JimmyZ miracle~ 08:09
miracle!
lizmat :-) 08:10
masak .oO( o/ my mummy says I'm a miracle o/ ) 08:11
moritz any objections to squash-merging pull request 195 (parse tr/// and die with NYI)?
masak +1 # no objections
moritz masak: for half a second I though "says I'm a mistake" :-)
masak moritz: ouch :)
08:12 sqirrel left
lizmat fitness& 08:12
08:12 raiph left
mathw morning o/ 08:13
08:23 fhelmberger joined 08:26 sqirrel joined
GlitchMr ~/c/rakudo (nom) $ env LANG=C make install 08:33
/home/glitchmr/code/rakudo/install-jvm/bin/nqp --target=jar --output=blib/Perl6/Pod.jar --encoding=utf8 \
src/Perl6/Pod.nqp
make: *** [blib/Perl6/Pod.jar] Segmentation fault
Am I doing something incorrectly?
08:36 dakkar joined 08:37 hoelzro_ is now known as hoelzro
GlitchMr Is there any way to debug such failure? 08:37
FROGGS GlitchMr: you could try: gdb --args /home/glitchmr/code/rakudo/install-jvm/bin/nqp --target=jar --output=blib/Perl6/Pod.jar --encoding=utf8 src/Perl6/Pod.nqp 08:40
GlitchMr ok, will try if I fail again 08:41
"/home/glitchmr/code/rakudo/install-jvm/bin/nqp": not in executable format: File format not recognized 08:51
hmm, it looks a shell script
FROGGS hmmm 08:52
GlitchMr Anyway, how do I use gdb? 08:53
I've 'gdb --args java -Xmx512m -Xbootclasspath/a:/home/glitchmr/code/rakudo/install-jvm/languages/nqp/runtime/nqp-runtime.jar:/home/glitchmr/code/rakudo/install-jvm/languages/nqp/runtime/asm-4.1.jar:/home/glitchmr/code/rakudo/install-jvm/languages/nqp/runtime/jline-1.0.jar:/home/glitchmr/code/rakudo/install-jvm/languages/nqp/lib/nqp.jar -cp /home/glitchmr/code/rakudo/install-jvm/languages/nqp/lib nqp --target=jar --output=blib/Perl6/Pod.jar --encoding=ut
f8 src/Perl6/Pod.nqp'
I can use "run" to run a program, but how can I get anything useful from gdb?
FROGGS you end up in gdb's prompt?
GlitchMr yes
JimmyZ gdb can debug java? 08:54
FROGGS okay, after you 'run' it, and it segfaults, you can type: bt ful
GlitchMr ok, let me install debugging symbols for 'java'.
Because I don't think what I currently got is useful.
FROGGS JimmyZ: you would see the bt for the C land...
GlitchMr SIGSEGV is low level failure, I think. 08:56
It isn't something like NullPointerException.
08:57 berekuk joined
jnthn What version do you have? 08:59
Some older JDK 7's has an excessively buggy implementation of...something...
GlitchMr ~/c/rakudo (nom) $ java -version 09:00
java version "1.7.0_03"
OpenJDK Runtime Environment (IcedTea7 2.1.3) (7u3-2.1.3-1)
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)
09:00 brrt joined
jnthn Yes, that may just be old enough... 09:00
(to have the bug) 09:01
09:02 kivutar joined, daxim joined
GlitchMr It's the newest version of Java I've in the repository (but I have rather old packages in repository...) 09:04
09:07 pernatiy left
FROGGS I have 1.7.0_25 09:08
09:08 Rotwang joined 09:10 brrt left
moritz r: once say 42 09:27
camelia rakudo 71141d: OUTPUT«42␤»
moritz r: for ^42 { once say 42 }
camelia rakudo 71141d: OUTPUT«42␤»
jnthn r: for ^42 { say once 42 } 09:28
camelia rakudo 71141d: OUTPUT«42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤»
09:30 brrt joined, SamuraiJack joined
Mouq std: tr/// 09:32
camelia std 06636e4: OUTPUT«ok 00:00 41m␤»
Mouq Hm
09:33 crab2313 left, SamuraiJack__ left
dalek kudo/nom: 0ec828a | Mouq++ | src/Perl6/Grammar.nqp:
Parse tr///, and die with NYI error

Squashed commit of the following:
02a7fea | moritz++ | docs/announce/2013.08.md: prepare 2013.08 release announcement
09:34
09:34 dalek left, dalek joined, ChanServ sets mode: +v dalek
Mouq o /o/ o/ 09:35
jnthn Mouq++
moritz also in this push: I've updated docs/ChangeLog 09:38
but it's incomplete; please add your stuff too! :-) (for jnthn, lizmat, and maybe FROGGS)
09:43 sqirrel left 09:50 crab2313 joined 09:56 kivutar left 09:59 kivutar joined 10:00 iSlug joined 10:04 pernatiy joined
10:30 berekuk left 10:31 Rotwang left, berekuk joined 10:37 kaleem left, SamuraiJack left 10:38 Mouq left
masak moritz++ 10:41
timotimo i'm incapable of running spectests faster than 4 hours, would somebody mind doing a spectest run for me? 10:42
it's the tilde_to_strjoin branch in timo/rakudo 10:43
masak aww... I should really compose a reply to James Bowery. I feel sad for the state that thread ended up in.
I don't understand his concern yet. but it's obvious he's put a lot of thought into... something.
and it feels kinda close to things I sometimes ponder.
timotimo yes, i was disappointed, too
masak I want my answer to be something like "yeah, we like the theoretical stuff. as long as it has a practical 'body' to go with it, we generally think it's a good idea for Perl 6." 10:44
"...maybe not core, but, you know. somewhere."
timotimo disappears again
10:47 rindolf left
moritz npr: my ($a, $b) = map { my $x = $_; sub { $x } }, 1, 2; say $a eqv $b 10:47
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Cannot use value like Sub as a number␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 296 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting lin…
..rakudo aeb92d: OUTPUT«False␤»
..pugs: OUTPUT«␤»
10:48 atroxaper left
moritz rpn: say (sub () {}) eqv (sub () {}); 10:48
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Cannot use value like Sub as a number␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 296 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting lin…
..rakudo aeb92d: OUTPUT«False␤»
..pugs: OUTPUT«␤»
moritz known nieczabug?
moritz opened github.com/sorear/niecza/issues/175 10:55
10:59 kivutar left 11:00 berekuk left 11:04 colomon joined 11:06 denis_boyun joined, iSlug left 11:08 xenoterracide left 11:23 xenoterracide joined 11:29 xenoterracide left 11:30 xenoterracide joined 11:40 crab2313 left
ruoso TimToady: about CREATE, I think having a inline CREATE is an optimization that can be easily done once you know that the repr is native to the runtime and that the runtime has its own concrete implementation for it. I don't think that needs to be encoded in the API for such an optimization to be possible 11:41
11:48 berekuk joined 11:50 iSlug joined
dalek kudo/nom: c51e77b | (Tobias Leich)++ | docs/ChangeLog:
logged my changes
11:51
11:52 xenoterracide left 11:58 colomon left
grondilu aren't videos of jnthn's conferences at YAPC::EU online yet? 12:02
daxim 6guts.wordpress.com/2013/08/17/yapc...13-slides/ 12:03
12:06 SamuraiJack joined 12:10 colomon joined 12:21 pmurias joined
pmurias jnthn: how does the module loading in nqp work? 12:21
jnthn pmurias: Through ModuleLoader.nqp
12:22 xenoterracide joined
pmurias jnthn: load_module seems to take *@global_merge_target, what is this? 12:22
jnthn Either GLOBALish is passed, or not
If it has an element, it's the GLOBALish to do global merging into 12:23
If nothing is passed there, we don't need to do it (probably because we are loading it pre-compiled and so that work was already done)
uh, loading it from another module that is also pre-compiled I mean
pmurias so if no global_merge_target is passed we are only setting up the serialization contexts? 12:25
jnthn Yes 12:26
Well, can caputring the mainline context
s/can/and/
Whihc may be used to do imports
12:28 rahulruns joined 12:32 kaleem joined 12:35 kbaker joined
pmurias jnthn: Merging GLOBAL symbols failed: duplicate definition of symbol CompileTimeValue 12:36
12:36 rahulruns left
pmurias jnthn: when does something like that happen? 12:36
jnthn pmurias: When you somehow manage to load two different versions of the QASTNodes library simultaneously 12:37
pmurias jnthn: that seems to be the case 12:38
jnthn It's happened to me before. It was a confusion of running compiler vs compiling compiler 12:39
Or something
Perhaps an un-tweaked use statement if you're following the same approach I did with Moar/JVM of building all the things with a suffix 12:40
(QASTNodesMoar, QRegexMoar, etc.)
pmurias it seems to be the case of not specifing :custom-regex-lib in my dual-backends-compile-scrip
t
jnthn Oh
That'd also potentially do it :)
JimmyZ I saw it in MoarVM when I didn't pass --no-regex-lib to nqp :P 12:42
iirc
12:43 kbaker left 12:44 kbaker joined
moritz arnsholt: www.freelists.org/post/nanomsg/nano...a-released seems to be the spiritual successor to ZeroMQ, by one of the original 0MQ authors 12:56
arnsholt Yeah, I just found it on HN as well 12:58
Certainly looks interesting
JimmyZ \o/ MIT
arnsholt OTOH, one of the things I wanted to use ZMQ for was Mongrel2, which may or may not switch over. We'll see 12:59
I think timotimo was interested in ZMQ for talking to ipython as well
13:01 rindolf joined 13:02 ajr joined 13:03 ajr is now known as Guest92885
pmurias jnthn: re do imports, when does that happen? 13:07
jnthn Compile time, after module loading 13:08
It's done outside of the module loader.
Probably in NQP::World
Though EXPORTHOW is handled elsewhere, iirc.
(in NQP::Grammar)
timotimo does "interpolating strings into heredocs now dedents properly" sound worthy of a line in the changelog? 13:15
jnthn yes
timotimo yay :) 13:16
also, maybe capitalise the first letter in each line or something
13:18 denis_boyun left, PacoAir joined 13:19 iSlug left
timotimo i'm considering expanding the "tilde_to_strjoin" a bit so that consecutive $foo ~= $bar calls will become one strjoin at the point where it's first accessed 13:19
13:20 kbaker left
jnthn I'd really have rather we made infix:<~> being list assoc work properly... 13:21
...as in, I'm not likely to accept an optimizer patch that is re-writing consecutive ~ to join. I'd accept one that collapsed them into a single many-arg'd call to infix:<~> though... 13:22
(since code-gen may not always be smart enough to get that right straight off) 13:23
timotimo right, i'll just drop that branch then. 13:29
how about nqp, though? will that also just get infix:<~> with list assoc?
jnthn I suspect it can do 13:30
13:30 xilo left
timotimo oh, i should check out the status of my integer arithmetics optimization, if that can be merged or if there's still problems 13:30
13:33 EvanTeitelman joined 13:34 skids left
TimToady wow, slept in till 6:00 for a change :) 13:35
timotimo (oh god the spam) 13:37
dalek p/nqp-optimizer: 459e172 | (Timo Paulssen)++ | / (6 files):
initial draft of optimizer, inactive ATM.
p/nqp-optimizer: ba977c2 | (Timo Paulssen)++ | src/NQP/Optimizer.nqp:
working build, lots of debug output, more intelligence.
p/nqp-optimizer: 8bea225 | (Timo Paulssen)++ | src/NQP/Optimizer.nqp:
nqp-jvm doesn't like negative nums in substr
p/nqp-optimizer: e63cc6f | (Timo Paulssen)++ | src/NQP/Optimizer.nqp:
this should have been gone already.
p/nqp-optimizer: 60e9b7e | (Timo Paulssen)++ | src/NQP/Optimizer.nqp:
little improvements. actually finds symbols now.
p/nqp-optimizer: 3e45f29 | (Timo Paulssen)++ | src/NQP/Optimizer.nqp:
removed debug output
timotimo this was just a rebase, though
arnsholt timotimo: At least you didn't kill dalek by making it send too much at once =D 13:38
timotimo i have no idea how what i did is different from what other people do. perhaps they push to multiple branches at once?
arnsholt I think it's mostly a question of how many commits you push at once 13:39
jnthn Pro Tip: If you know you did too many commits, but you want karma for all of them, push them in batches using the refspec syntax (git push origin HEAD~4:master) :D 13:40
arnsholt Hehe. Good idea! =D 13:41
jnthn Of course, *I've* never done this... ;)
arnsholt Internet points are serious business!
JimmyZ You should do it, to be dalek friendly ;)
timotimo rebasing is also a karma source. 13:47
should i rebase and rewrite some of the commits to reduce the amount of noise from added and removed debug outputs? 13:51
13:51 cooper left 13:52 Guest92885 is now known as ajr_
PerlJam timotimo: I typically rebase -i to consolidate the interstitial commits like those 13:53
14:01 crab2313 joined
timotimo problematically, they are bunched up into the commits that also do "real" work ;) 14:01
actually: "real work" probably
TimToady nr: for 1...5 Z 6...10 -> $i, $j { say "$i : $j"; }
camelia rakudo c51e77: OUTPUT«1 : 2␤3 : 4␤5 : 6␤»
..niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤"..." and "Z" are non-associative and require parens at /tmp/N_Gz7uaHd3 line 1:␤------> for 1...5 Z ⏏6...10 -> $i, $j { say "$i : $j"; }␤␤"Z" and "..." are non-associative and require parens at /tmp/N_Gz7u…
TimToady niecza has the correct response here
14:04 kbaker joined 14:06 Targen joined 14:07 thou joined
TimToady huh, when I do 'make install' it fails with: Couldn't copy 'eval-client.pl' from /home/larry/nom/nqp/install: No such file or directory at tools/build/create-jvm-runner.pl line 54. 14:07
but here's the funny thing: it actually did the copy 14:08
FROGGS TimToady: try `make` instead
TimToady it just thinks it failed
I did a make first
timotimo huh. do configureJVM.pl again, then make clean all install? 14:09
TimToady is thinking something is looking at an old errno
timotimo in my experience the rakudo makefile for jvm doesn't correctly rebuild stuff if the dependencies change etc etc
lizmat sure 14:10
HEAD ?
oops, this was about timotimo's request for a spectest a few hours ago...
timotimo ah 14:11
lizmat should backlog using the website :-)
timotimo i decided to abandon that branch
jnthn timotimo: hm, I haven't seen that...
lizmat timotimo: a spectest takes about 7 mins for me
timotimo wow!
lizmat and some noise from the fans
timotimo could you do a rakudo/nom with nqp/nqp-optimizer instead? :)
lizmat sure 14:12
timotimo fitness & :)
diakopter arnsholt: do the comments mention Disruptor? 14:15
dalek p: e5f1cd4 | jnthn++ | src/how/NQPClassHOW.nqp:
Make regex trace output a little more useful.
lizmat timotimo: Method 'optimize' not found for invocant of class 'NQPMu'
timotimo: gist.github.com/lizmat/6282037 14:23
14:24 yves joined
TimToady huh, completely reconfigured/made/installed nqp/jvm, and now can't reconfig nom: jvm::runtime.jars value not available from /home/larry/nom/nqp/install/nqp --show-config. 14:25
jnthn TimToady: That looks like a leftover from an earlier install layout 14:26
TimToady: It's install/bin/nqp these days
14:27 Targen left
TimToady I copied the directory from what 'make install' said 14:27
14:27 pernatiy_ joined
jnthn This is with HEAD NQP? 14:28
Or at least, the one in NQP_REVISION...
TimToady HEAD from earlier this morning
14:28 pernatiy left
jnthn does perl ConfigureJVM.pl --with-nqp=/home/larry/nom/nqp/install/bin/nqp work? 14:29
TimToady install has no bin directory
jnthn o.O
tadzik yeah, it doesn't
jnthn huh... 14:30
[Coke] catches up with backscroll earlier than last time.
jnthn Here my install-jvm directory has just a bin and a languages at top level. 14:31
(Which is how current layout is expected to be)
14:31 cognominal left
TimToady nom has an install-jvm/bin 14:31
but nqp would be installing into nom's bin 14:32
14:32 cognominal joined
TimToady *n't 14:32
oh, I didn't do the --prefix that the README wants 14:35
TimToady always hates prefix... 14:36
tadzik ...we have --prefix? 14:37
TimToady see nom's README instructions for JVM
tadzik maybe that's why I have so much problems with it..
jnthn I thought we had a --gen-nqp now, or maybe that pull request didn't get merged yet... 14:38
[Coke] pretty sure it did.
TimToady well, the README hasn't caught up :)
[Coke] --gen-nqp for java should probably do a "git pull --rebase", aye? 14:39
since java doesn't have a particular version it's tied to yet. (or should we start tying it to a version?)
jnthn [Coke]: We tie to NQP_REVISION if you mean what NQP version... 14:40
14:42 Psyche^ left 14:44 Psyche^ joined 14:46 bluescreen10 joined 14:47 mst joined
[Coke] when did that start happening? last... 2 weeks? 14:47
TimToady hah, the README instructions don't actually work; after the prefix install, 'perl ConfigureJVM.pl' complains with install-jvm/bin/nqp is not executable; use --with-nqp or use --gen-nqp at ConfigureJVM.pl line 60. 14:48
but the nqp build put the nqp into install-jvm, not install-jvm/bin
[Coke] TimToady: updating now. 14:51
pretty sure it devolves to just
perl ConfigureJVM.pl --gen-nqp ; make
dalek kudo/nom: 467ec50 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
My additions to ChangeLog
14:52
14:52 kaleem left, notjack joined
TimToady trying that now 14:53
just a bit sad that neither ignoring the README nor reading the README worked :) 14:54
14:55 jlaire joined
dalek kudo/nom: 03457f2 | (Elizabeth Mattijsen)++ | docs/announce/2013.08.md:
Slight change to release announcement
14:56
kudo/nom: 48d8496 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
ChangeLog capitalization tweaks
14:59
15:00 skids joined
TimToady wonders if perl6/jvm should intuit --target=jar from --output=foo.jar 15:03
dalek kudo/nom: 22b0079 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
"interpolating strings into heredocs now dedents properly"
15:04 Targen joined
TimToady lizmat: if you're cutting a release, note that the README instructions for JVM are currently incorrect 15:05
lizmat moritz is cutting this month's 15:06
TimToady okay, just saw you tweaking the release announcement :)
lizmat I was just adding some of my notes, as per request earlier in the backlog
"11:38:21] <moritz> but it's incomplete; please add your stuff too! :-) (for jnthn, lizmat, and maybe FROGGS)"
if someone can tell me the right thing to put for JVM in the README, I'll put it there 15:08
TimToady perl ConfigureJVM.pl --gen-nqp 15:09
no need to dip down into the nqp directory anymore
dalek kudo/nom: a14f6cc | coke++ | README:
Update README to reflect new --gen-nqp

  TimToady++
TimToady looks good to me 15:10
[Coke] lizmat: done
15:12 bluescreen100 joined
TimToady wonders why --gen options aren't the default 15:12
I guess we're expecting a system installed nqp one of these years...
15:15 kaare_ joined, bluescreen10 left
daxim make packagers' (e.g. my) life easier by unifying the build system, separate configures/makefiles require annoying workaround patches 15:16
15:22 sqirrel joined
[Coke] I think the goal eventually is to have a single Configure.pl that optionall takes a --java or --parrot option. 15:22
daxim why option? 15:23
FROGGS what else? 15:24
daxim Configure.pl --with-java --with-parrot # and both are "on" by default
all targets must be reachable with one pass of configure/make 15:25
grondilu two builds by default?
daxim exactly
15:25 brrt left
grondilu does not seem reasonable 15:25
daxim you're wrong
TimToady and --with-moar and --with-node :)
jnthn daxim: Um, the two builds produce overlapping files... 15:26
TimToady probably by that point we're talking about yum/apt installs on all these platforms
daxim jnthn, I know. I patched that out.
TimToady, that's the goal 15:27
I need yall's support to make the jvm nqp/rakudo available as package
therefore drastically reducing the barriers to entry 15:28
TimToady but on-by-defualt is probably a bad API, since if they say --with-java they probably mean to exclude the others
[Coke] daxim; general user doesn't want two builds.
daxim nonsense
TimToady daxim: please be polite
grondilu does not want two builds
[Coke] <shrug> without data, not worth arguing. 15:29
grondilu wants to try several of them, and chose the one he'll stick to for long term. 15:30
FROGGS well, if we can get rid of overlapping files, then having all backends off by default and turn several on to build them in one pass sounds sane, no?
daxim why should they be off by default? 15:31
FROGGS daxim: because a user needs to choose
daxim why does a user need to choose?
FROGGS when I run configure for a software that is new to me, I need to choose what fits my needs 15:32
grondilu daxim: haven't you notice that a build takes time? There's no need to waste time to compile stuff the user doesn't want or need.
FROGGS daxim: maybe someone doesnt like the jvm backend, should that be the default?
TimToady longterm, a user chooses via the dependencies from other packages, so there's not a lot of benefit into overengineering the config here
s/into/from/ 15:33
FROGGS somebody might need threads, but what if only 50% of the backends offer this feature?
grondilu also, not everyone has a JDK installed on his computer.
FROGGS what if I have moarvm installed, then this might be my choice #1
TimToady that's what package managers are for
FROGGS but I can only make the choice if I got asked, otherwise I have to scroll up a gazillion pages in my terminal, because the default backend spammed the lines after perl Configure 15:34
grondilu I have a JDK, but it's OpenJDK and you guys told me it sucks compared to the Oracle's proprietary JDK
FROGGS so it should be nice and easy for end users, and possible for maintainers, since they end up with a batch file or so
daxim gosh, all that's hardly revelant. stop thinking like a developer for a while, and put yourself into the mindset of a packager.
FROGGS daxim: I'm putting myself in the position of a user 15:35
TimToady I don't think --with-all is such an onorous burden on a packager
FROGGS the packager just must know what options need to be passed, done
exactly
and I guess we will have some sort of backend<=>feature matrix in the future, and there is a decision that needs to be made (before cloning a few hundret MB of repo's) 15:38
that said, brb &
timotimo lizmat: did you configure.pl before trying to build my nqp? 15:40
lizmat Ah, no, retrying
you mean Configure.pl, right ? 15:41
15:44 FROGGS left
timotimo uh, yes 15:48
lizmat building ok so far
timotimo i added a new nqp file to the build
lizmat the one with optimize_method I presume :-)
timotimo yes :)
15:51 REPLeffect joined
lizmat spectest starting 15:54
15:56 FROGGS joined
lizmat r: my @a of Array of Hash of Int; say @a.WHAT 15:57
camelia rakudo 22b007: OUTPUT«(Array[Array[Hash[Int]]])␤»
lizmat :-)
masak \o/
lizmat++
r: my @a of Array of Hash of Int; push @a, "OH NOES"; say @a.perl 15:58
camelia rakudo 22b007: OUTPUT«Type check failed in .push; expected 'Array[Hash[Int]]' but got 'Str'␤ in block at src/gen/CORE.setting:7239␤ in method push at src/gen/CORE.setting:7222␤ in method push at src/gen/CORE.setting:1517␤ in sub push at src/gen/CORE.setting:7594␤ in block at /tmp…
masak \o/
timotimo that's great!
masak r: my @a of Array of Hash of Int; @a[0] = "OH NOES"; say @a.perl
camelia rakudo 22b007: OUTPUT«Type check failed in assignment to '@a'; expected 'Array[Hash[Int]]' but got 'Str'␤ in block at /tmp/gOXnwrPpNe:1␤␤»
masak \o/ \o/
15:59 raiph joined
masak r: my @a of Array of Hash of Int; @a[0] = (my @ of Hash of Int); say @a.perl 15:59
camelia rakudo 22b007: OUTPUT«Type check failed in assignment to '@a'; expected 'Array[Hash[Int]]' but got 'Array[Array[Hash[Int]]][Hash[Int]]'␤ in block at /tmp/RSHb6Jp_dt:1␤␤»
lizmat r: my @a of Array of Hash of Int; @a[0]=[{a=>1}]
masak er.
camelia rakudo 22b007: OUTPUT«Type check failed in assignment to '@a'; expected 'Array[Hash[Int]]' but got 'Array[Array[Hash[Int]]]'␤ in block at /tmp/IHLnxci3Bk:1␤␤»
grondilu r: my @a of Array of Hash of Int; @a[0] = { foo => 1 }; say @a.perl
camelia rakudo 22b007: OUTPUT«Type check failed in assignment to '@a'; expected 'Array[Hash[Int]]' but got 'Hash'␤ in block at /tmp/tOdu9ux9Ap:1␤␤»
masak something's... wrong.
lizmat alas, it looks like the types are set up correctly, but in fact the type check I don't think knows how to handle them 16:00
grondilu r: my @a of Array of Hash of Int; @a[0] = my % of Int = { foo => 1 }; say @a.perl
camelia rakudo 22b007: OUTPUT«Type check failed in assignment to '@a'; expected 'Array[Hash[Int]]' but got 'Hash[Int]'␤ in block at /tmp/r1octsQWZe:1␤␤»
lizmat so the .WHAT is only correct in name, not in functionality yet :-(
timotimo expected 'Array[Hash[Int]]' but got 'Array[Array[Hash[Int]]][Hash[Int]]' - what's that?
lizmat a missing COMPOSE phaser
:-)
16:01 daxim left
lizmat timotimo: spectest completed ok, no errors (others than the icu errors I always get) 16:02
last niight:Files=752, Tests=26570, 426 wallclock secs ( 8.64 usr 2.81 sys + 2892.44 cusr 267.99 csys = 3171.88 CPU) 16:03
masak timotimo: it's MADNESS, UTTER MADNESS
AAAAAAAAAA
lizmat with your patch: Files=752, Tests=26570, 428 wallclock secs ( 8.48 usr 2.71 sys + 2848.83 cusr 265.02 csys = 3125.04 CPU)
slightly less, but I would think this is well in range of noise leveles
levels
masak :)
timotimo that's 2 seconds slower :)
oh, but a couple less cpu time 16:04
lizmat wallclock is always between 415 and 435 secinds
seconds
I'll run another one for comparison
timotimo i'd like to merge that branch, since it doesn't change spectests and does give performance improvements on arithmetics in nqp. probably only contributes a bit of noise to rakudo's performance, though 16:05
TimToady r: my @a of Array of Hash of Int; say @a.WHAT.eval
camelia rakudo 22b007: OUTPUT«use of uninitialized value of type Array[Array[Hash[Int]]] in string context in block at /tmp/T9aLpKosqk:1␤␤Nil␤»
TimToady r: my @a of Array of Hash of Int; say @a.WHAT.gist.eval
camelia rakudo 22b007: OUTPUT«(Array[Array[Hash[Int]]][Array[Array[Hash[Int]]][Hash[Int]]])␤»
TimToady same issue, I suppose 16:06
lizmat yup
some cases still go wrong, like: 16:07
TimToady r: my @a of Array of Hash[Int,Int]; say @a.WHAT
camelia rakudo 22b007: OUTPUT«(Array[Array[Hash[Int,Int]]])␤»
lizmat r: my %H{Str} of Int; say %h.WHAT
camelia rakudo 22b007: OUTPUT«===SORRY!=== Error while compiling /tmp/XJf4qRPj2_␤Variable '%h' is not declared␤at /tmp/XJf4qRPj2_:1␤------> my %H{Str} of Int; say %h.WHAT⏏<EOL>␤ expecting any of:␤ method arguments␤»
TimToady case
lizmat r: my %h{Str} of Int; say %h.WHAT
camelia rakudo 22b007: OUTPUT«(Hash[Any,Str][Int])␤»
TimToady hmm
grondilu add no idea my %h{Str} of Int; could be legal syntax 16:08
*had
jnthn That looks...odd :)
Should be Hash[Int,Str], I think?
TimToady should've turned into Hash[Int,Str]
lizmat its because the PARAMETERIZE_TYPE is run before the "of" is seen
TimToady yes
jnthn ah...
lizmat this should basically be run at COMPOSE time, I think
16:08 pernatiy_ left
lizmat but we don't have a functioning COMPOSE phaser yet 16:09
TimToady r: my Int %h{Str}; say %h.WHAT
camelia rakudo a14f6c: OUTPUT«(Hash[Int,Str])␤»
lizmat nor would I know where to put one
TimToady: that's tun by PARAMETERIZE_TYPE
and correct
it's mixing the "prefix" type with "postfix" "of" type that gets things messed up in the naming
*run 16:10
TimToady r: my Int %h{Str} of Num; say %h.WHAT
camelia rakudo a14f6c: OUTPUT«(Hash[Int,Str][Num])␤»
TimToady n: my Int %h{Str} of Num; say %h.WHAT
camelia niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤Trait of not available on variables at /tmp/oiN1ddtau7 line 1:␤------> my Int %h{Str} of Num⏏; say %h.WHAT␤␤Postconstraints, and shapes on variable declarators NYI at /tmp/oiN1ddtau7 line 1:␤------> m…
lizmat I'm not sure that's legal
TimToady std: my Int %h{Str} of Num; say %h.WHAT
camelia std 06636e4: OUTPUT«===SORRY!===␤Extra 'of' type; already declared as type Int at /tmp/8Av62f6k10 line 1:␤------> my Int %h{Str} of Num⏏; say %h.WHAT␤Check failed␤FAILED 00:00 44m␤»
TimToady it's not
but rakudo doesn't catch it yet
lizmat I guess I could catch that 16:11
TimToady (std's is the correct behavior, for those watching)
lizmat r: my Any %h{Str} of Int
camelia rakudo a14f6c: ( no output )
lizmat r: my Any %h{Str} of Int; say %h.WHAT
camelia rakudo a14f6c: OUTPUT«(Hash[Any,Str][Int])␤»
lizmat not sure I can distinguish by not specified yet type or Any
16:11 colomon left
TimToady obviously it's treating it as my %h{Str} of Any of Int 16:12
(well, except the naming bits)
still think I'd rather disallow mixing prefix and postfix as std does 16:13
lizmat timotimo: Files=752, Tests=26570, 421 wallclock secs ( 8.52 usr 2.77 sys + 2844.15 cusr 265.41 csys = 3120.85 CPU)
lizmat would be in favour of that!
TimToady std: my Array of Num %h{Str}; say %h.WHAT 16:14
camelia std 06636e4: OUTPUT«ok 00:00 44m␤»
TimToady nr: my Array of Num %h{Str}; say %h.WHAT
camelia rakudo a14f6c: OUTPUT«(Hash[Array[Num],Str])␤»
..niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤Coercive declarations NYI at /tmp/cpzeur2LWn line 1:␤------> my Array of Num⏏ %h{Str}; say %h.WHAT␤␤Postconstraints, and shapes on variable declarators NYI at /tmp/cpzeur2LWn line 1:␤------> my Array …
TimToady coercive?!?
jnthn I suspect the right way to go is to somehow use trait_mod:<of> for the my Int %h case too...
lizmat an error in the error message ?
TimToady niecza must be confused about something there 16:15
maybe an over-specific summary message
16:16 berekuk left
lizmat timotimo: maybe postpone the merge until after this month's cut ? 16:16
other than that, I don't see any reason not to merge
from a rakudo point of view
TimToady anyway, looks like we're getting close on the type declarations/names, lizmat++ 16:17
lizmat :-)
16:18 kaleem joined, berekuk joined
lizmat TimToady: could you clarify where one would put a COMPOSE phaser, and where it would be hooked up to ? 16:18
or maybe jnthn ? 16:19
16:19 sqirrel left
jnthn Where's it spec'd? 16:19
dalek ecs: fac7a1a | larry++ | S02-bits.pod:
can't mix 'my Dog $x' with 'my $x of Dog'
16:22
16:22 atroxaper joined 16:23 kaleem left
TimToady you talking about the COMPOSE phaser? S04:1382 16:25
synopsebot Link: perlcabal.org/syn/S04.html#line_1382
TimToady doesn't go into great detail
masak .oO( Dog von Dog of the Noble House of Dog )
jnthn So I see... ;) 16:26
TimToady but the consensus here a day or so ago was that "when" means "after"
jnthn So,
role R { COMPOSE { say "omg I was compaus" } }; 16:27
# no output at this point
TimToady right
jnthn class C does R { BEGIN say "not yet"; }; BEGIN say "after";
# not yet\nomg I was compaus\nafter\n
?
TimToady seems right
jnthn role R2 does R { }
# no output here either as we didn't reach a class yet? 16:28
TimToady seems sane
jnthn class C does R2 { BEGIN say "not yet"; }; BEGIN say "after";
# not yet\nomg I was compaus\nafter\n
That is, they all carry until class composition time?
TimToady isn't that how roles normally do things?
jnthn Yes. :)
Just making sure we expect the same thing :)
TimToady then that's how it should still work :)
lizmat hmmm… maybe then I don't need a COMPOSE phaser 16:29
jnthn COMPOSE { say $_ } # anything interesting? :)
TimToady well, would be nice to be able to get at the newish metaobject, I suppose
lizmat but a phaser that is run when a variable is completely defined
jnthn lizmat: I don't think that's a phaser, I think that's a method on a Variable object... 16:30
lizmat timotimo: Files=752, Tests=26570, 425 wallclock secs ( 8.55 usr 2.76 sys + 2843.18 cusr 264.56 csys = 3119.05 CPU)
jnthn: right, we discussed that before
yup
jnthn TimToady: The type object of the thing that it could composed into may be a sane thing?
lizmat ok, I'll work that way
jnthn s/could/was/
16:31 ajr_ left
pmurias re all backends being built by default, wouldn't we want to package backends separately 16:31
?
lizmat daxim? 16:32
16:32 fhelmberger left
lizmat alas, daxim no longer with us :-( 16:32
mls firefox
pmurias mls: ? 16:33
mls eek, mouse slipped into wrong window
please ignore ;)
pmurias ok ;)
jnthn There's worse things to wrong-window :)
masak mls: this is why "focus follows mouse" gets you into trouble :P 16:34
mls yes, but I'm so used to it... 16:35
dalek ast: 5f956b5 | (Elizabeth Mattijsen)++ | S12-introspection/WHAT.t:
Add 2 more TODO tests for %h{Str} of Int case
TimToady in STD, the call to <.getdecl> is generally the appropriate moment to resolve the type of the thing being declared 16:36
(STD doesn't attemp to do that, of course)
*pt
16:37 wingfold joined, gdey joined, Mouq joined 16:39 colomon joined, denis_boyun joined 16:40 spider-mario joined
lizmat no "getdecl" in rakudo :-( 16:40
masak mls: maybe only do it on odd days, and try to break the habit on even days? :P 16:41
mls date 16:43
would just drive me insane
(or is that your secret goal ;) ) 16:44
masak maybe... :)
16:44 donaldh joined
mls btw, that date above should also go to another window 16:44
moritz masak: after you've had sloppy focus for a few years, it's just as dangerous to switch if off
masak mls: yes, I suspected that :) 16:46
moritz: I find that as a rule and with the right discipline, even changing habits is a learned skill.
moritz: for example, my brain has adapted wonderfully to switching between keyboard layouts in the past few years. 16:47
donaldh I'm trying to decide the best way to introduce nqp::shell($cmd, $dir, %env) as a replacement for nqp::shell($cmd)
16:47 Mouq left
donaldh Is it just to introduce a new op called nqp::shelling and then subsequently deprecate nqp::shell 16:47
shellenv even 16:48
I love autocomplete
There's a rakudo dependency on nqp::shell($cmd) so I'm trying to achieve a smooth migration.
moritz masak: mine too, as long as one type of keyboard is coupled to a certain keyboard layout 16:51
masak: and that was the problem with the macbook; its keyboard felt very similar to another laptop keyboard I had been using for years, but with a subtly different layout 16:52
masak moritz: yes, such things are problematic.
moritz donaldh: introducing a separate op would indeed be a good solution, IMHO 16:53
16:53 dakkar left
pmurias donaldh: you could make nqp::shell accept both 1 and 3 args 16:54
donaldh: and then maybe remove the support for 1 arg
donaldh pmurias: not possible. I tried two ops with the same name and only got the latter. 16:56
The core op list in QAST is keyed by op name only. So the op names exposed by nqp need to be unique. 16:59
timotimo donaldh: just today i saw how you can do that, though
donaldh timotimo: oh
timotimo ah, yes, the substr op
donaldh timotimo: ah. 17:00
timotimo i can't find it any more, though
donaldh Just read it.
timotimo ah, good :) 17:01
donaldh It's in Compiler.nqp; add substr2 and substr3 then add a substr core op that discriminates 17:02
The underlying ops still need different names.
timotimo ah, ok 17:03
donaldh Some boilerplate for a few nqp commits until rakudo catches up.
:-)
17:03 denis_boyun left, berekuk left
TimToady (brain plasticity)++ 17:04
pmurias donaldh: using two names is one way to do that, the other would be to insert the missing arguments 17:05
donaldh pmurias: how so ?
17:06 Mouq joined 17:09 denisboyun joined
dalek kudo/nom: 932bfc8 | moritz++ | README:
[README] ConfigureJVM.pl understands --gen-nqp; recommend it
17:11
moritz oh, I was outdated. [Coke]++ already fixed it 17:13
so only the other part of my commit survived the rebase
lizmat moritz: I guess we're in a moratorium for commits now ? 17:14
17:15 wingfold left, Mouq left
lizmat afk& 17:17
timotimo i'm glad to see that my fix improves the spectest time by a solid ~1.5% 17:20
that shows that the optimization's analysis phase doesn't take too long and it gives results even when things are not executed too often.
17:20 atroxaper left
timotimo er, hold on. that optimization won't even run the analysis step in the rakudo spectest, because it only operates on nqp code 17:21
pmichaud good morning, #perl6
er, good afternoon I guess
diakopter pmichaud: howdy :) 17:22
colomon o/ 17:23
donaldh moratorium for commits ? release time already?
TimToady ponders the difference between a commitee and committee 17:26
donaldh subtle
lizmat I'll take design by commitee any day 17:35
pmurias pmichaud: hi 17:38
FROGGS pmichaud: hi!
pmurias donaldh: a callback is inserted in the op table, but the way substr is implemented is propably the best for a temporary workaround
jnthn o/ pmichaud 17:40
lizmat pmichaud! 17:44
17:52 berekuk joined 17:55 Mouq joined
FROGGS jnthn: how do I check if something is a 6model object in nqp@parrot? 17:56
pmurias FROGGS: the way I was using was to treat it as 6model object + use try 17:58
FROGGS pmurias: that might work out, thank you
it does!! pmurias++ 17:59
jnthn FROGGS: Think there's a pir::what_or_null__PP op also
Which you can use with nqp::isnull or so
FROGGS the try is okay, it is just a test file :o) 18:00
lizmat jnthn: looking at the stack trace of "my $a of Int of Int', it seems like the "of" trait handling is superfluous ?
pmurias FROGGS: are you writting new nqp tests? ;)
FROGGS pmurias: no, just making the sprintf test fit for parrot
moritz lizmat: fwiw the release is on Thursday; I'm merely preparing the docs for it now 18:01
lizmat moritz: ok
moritz timotimo: the spectest suite is very unusual code in that it contains few loops, so its performance characterists aren't representative for normal programs. Still a good sign if the runtime decreases :-) 18:02
lizmat runtime actually didn't decrease above noise levels, but CPU seemed to have decreased more significanlty 18:05
I guess wallclock is more dependent on disk, and running it on an SSD helps :-) 18:06
18:08 kbaker left 18:12 Mouq left 18:13 kbaker joined 18:15 donaldh left, rindolf left 18:16 sqirrel joined 18:22 sciurius left
timotimo yes, i meant cpu time not run time 18:26
lizmat r: my $a of Array will begin {say "foo"} of Int # is having 2 non-consecutive "of"s valid syntax?
camelia rakudo 932bfc: OUTPUT«foo␤»
timotimo when's the release supposed to be cut?
lizmat Thu
so I guess we have less than 2 days to mess things up *and* repair them 18:28
18:29 colomon left
FROGGS let's go! 18:29
timotimo i'm just now thinking about putting the optimization in before the release
lizmat we would have at least 1 day of rakudo * smoke then 18:30
FROGGS lizmat: does it smoke HEAD? 18:31
lizmat afaik, yes?
timotimo it got changed, yes
FROGGS cool
lizmat now you got me doubting
FROGGS that's good
lizmat ok, cool
.oO( good thing git didn't call HEAD POT )
18:32
FROGGS *g* 18:33
18:34 sciurius joined
lizmat just as TimToady was musing whether to disallow "my Hash $a of Int' (mixing pre/postfix) 18:40
I'm inclined to disallow "my $a of Hash will begin { say "foo" } of Int" (aka, non-consecutive "of") for the same reason
anybody sees a problem with that ? 18:41
*see
jnthn Probably should be the same logic that forbids the two 18:43
Can only have one of.
lizmat well, you can have more than one, as long as they're consecutive 18:44
r: my %h of List of Hash of Int; say %h.WHAT
camelia rakudo 932bfc: OUTPUT«===SORRY!===␤Type List cannot accept type arguments␤»
lizmat r: my %h of Array of Hash of Int; say %h.WHAT 18:45
camelia rakudo 932bfc: OUTPUT«(Hash[Array[Hash[Int]]])␤»
lizmat right ?
timotimo ah, those are "nested" in that case, yeah
lizmat r: (Array[Int]).WHAT.say 18:46
camelia rakudo 932bfc: OUTPUT«(Array[Int])␤»
18:47 donaldh joined
lizmat r: (Array of Int).WHAT.say # is this a rakudobug ? 18:47
camelia rakudo 932bfc: OUTPUT«===SORRY!=== Error while compiling /tmp/eDRdwGZS0B␤Two terms in a row␤at /tmp/eDRdwGZS0B:1␤------> (Array ⏏of Int).WHAT.say # is this a rakudobug ?␤ expecting any of:␤ postfix␤ infix stopper␤ infix or met…
18:47 sqirrel left 18:48 sqirrel joined
jnthn lizmat: No, the consecutive ones parse differently. 18:49
lizmat so not a rakudobug, ok 18:50
jnthn lizmat: It's not parsed as many of's, it's parsed as of and then a Foo of Bar of Baz type name.
18:51 bruges_ joined, bruges left 18:52 Mouq joined
donaldh Can I pass a P6 hash, say, %*ENV into an nqp::op and if so, how do I iterate its contents ? 18:54
lizmat donaldh: %*ENV is special 18:56
donaldh or course it is.
lizmat see src/core/terms, line 12 and following
I'm not even sure it is VM agnostic 18:57
donaldh walks into another trap
yeah, it's proxied
I assumed it would still behave largely like a hash though. 18:58
lizmat it does to the casual user
jnthn You can't pass it straight in 'cus it's not actually a low level Hash, but a Perl 6 object pointing to one... You can nqp::getattr(%*ENV, EnumMap, '$!storage') to get access to the underlying hash.
donaldh oh, cool 18:59
Util #ps in 30m
19:01 SamuraiJack left
labster good morning, #perl6 19:06
FROGGS hi labster
labster hi FROGGS 19:07
lizmat o/ labster 19:08
labster reading through jnthn++'s slides on parallelism and concurrency. Good stuff, would have liked to have been there. 19:09
19:11 colomon joined
timotimo we're hoping to get the video recordings soon 19:12
lizmat with regards to the Rakudo & NQP Internals workshop on 14/15 September in Frankfurt 19:13
it tentatively looks like we have a venue, it is now just a matter of insurance
timotimo oh yes, i still have to make reservations. though now i have a car that i could drive there
moritz labster: the presentation was very well received 19:15
lizmat the location: goo.gl/maps/2T5j2
19:15 Mouq left
lizmat which looks to be about 700m from Frankfurt main train station 19:15
FROGGS awesome! 19:16
timotimo i kind of have no experience getting a sleeping spot :|
dalek kudo-js: a688d83 | (Pawel Murias)++ | .gitignore:
Update .gitignore.
kudo-js: 868b4bd | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
Implement \n in regexes.
kudo-js: 580829d | (Pawel Murias)++ | / (2 files):
Concrete objects should be true when treated as booleans by default.
kudo-js: 896e597 | (Pawel Murias)++ | / (6 files):
Have our own null object instead of using the builtin javascript one.

That allows calling methods on it (we do that when using it in a conditional)
lizmat as soon as the venue is really secured, I will put out a more formal announcement / invitation
moritz lizmat++
lizmat timotimo: don't worry, I guess when we find a nice hotel in the neighborhood, we can arrange accommodation quite easily
FROGGS timotimo: well, a well knows yapc sponsor ( www.booking.com/ ) might be of help :o)
lizmat indeed :-)
timotimo that's a good hint indeed 19:19
19:20 donaldh left
timotimo do i enter "JAPH" somewhere to get better prices? :P 19:20
FROGGS hehe, no idea 19:21
www.hotel-acasa.de/preise/ might be okay
labster only if your coupon code eval()'s to JAPH
timotimo :D
and has not yet been seen? :)
labster JAPHbot9000?
timotimo FROGGS: did you research which rates apply? 19:22
19:23 ajr joined
FROGGS rates? what rates? 19:23
19:23 ajr is now known as Guest62016, Guest62016 is now known as ajr_
timotimo "kleine messerate" vs "große messerate" vs "messefreie wochenenden" 19:23
FROGGS the hotel I posted is not linked via booking.com though :/ 19:24
19:24 cognominal left
FROGGS I just typed in frankfurt, and ordered by price, problem is that the heapest are like 12km away from the venue 19:24
timotimo i'd like to not sleep in a heap of people if that's possible :) 19:25
FROGGS ahh, now I see what you mean
timotimo :D
FROGGS timotimo: I'm going to call then tmw 19:26
them*
19:26 sqirrel left
timotimo tomorrow? 19:27
FROGGS yeah, to ask then what the price will be
geekosaur might be a bit late now...
timotimo OK 19:28
is there a law against sleeping in a car? :)
lizmat city ordnance might
FROGGS timotimo: it is okay if you have a roxette mc 19:29
19:30 bluescreen100 left
timotimo music cassette? 19:30
FROGGS you know what that is, right? 19:31
timotimo no 19:32
:D
just kidding. i'm not that young
lizmat actually, compact cassette is the proper name
FROGGS feels old
lizmat if I remember correctly
timotimo i don't understand what it has to do with roxette, though
FROGGS roxette was famous when mc's were too 19:33
19:33 bluescreen100 joined
lizmat
.oO( that was a funny Not The Nine O'Clock sketch, about the guy asking for a gramophone )
19:33
timotimo so ... why would i be allowed to sleep in my car if i was a bit older?
FROGGS www.youtube.com/watch?v=zN5jsPFEjg8
timotimo ah 19:34
FROGGS I hate that song
lizmat www.youtube.com/watch?v=dSINO6MKtco # gramophone
jnthn Please say this is a different song from yesterday... :P 19:35
lizmat extra funny in the days of CD's kicking the bucket :-)
jnthn ah, phew, no :)
jnthn ponders doing some Perl 6 stuff for a couple of hours, and wonders what to attack...
lizmat geting $_ to alias to the variable being declared in will foo {} blocks ? 19:36
FROGGS lizmat++ 19:37
jnthn lizmat: hmm...
lizmat could be dead simple, but I'm not seeing it yet
fwiw, I'm working on a Variable.compose method to be called after handling the traits 19:38
FROGGS in v5 it is simple, every block is some sort of loop, so you always have a signature
jnthn No, it's not dead simple.
The thing is, the phasers vary in the lifetimes... 19:39
FROGGS that block just needs to be an <sblock(1)>, no?
lizmat well, I couldn't even get will begin {} to work
jnthn *nod*
timotimo jnthn: would you like to do a bit on module loading? :|
jnthn Yeah, there's quite some special-casing there
timotimo: Module loading? 19:40
lizmat ok, more than for a few hours
FROGGS ahh, no, <pblock(1)>
lizmat postpone it until after the RaNIW
jnthn lizmat: I've been thinking about this for a bit, just didn't settle on something I liked...
19:40 jaffa4 joined
jnthn Thing is, we store phasers once inside the encloding block, but the particular variable we're interested in is associated with the activation record... 19:41
timotimo jnthn: remember my ADT module that creates new classes through the MOP and exports them with EXPORT?
where if you use those classes you get things like Error: Type check failed in assignment to '$a'; expected 'Tree' but got 'Tree'
jnthn I...don't quite remember that :) 19:42
I remember teh ADT module, not the errors
lizmat so maybe we need a phaser that gets run when a block is completed, and then set up the phasers ? 19:43
callback, really
timotimo right. gimme a sec and i'll give you the failing tests if you want them
pmurias r: print;
camelia rakudo 932bfc: ( no output )
lizmat r: say 19:44
camelia rakudo 932bfc: OUTPUT«␤»
jnthn lizmat: Maybe...mostly it's just making sure we get them invoked with the right outer scope...
lizmat ok, if you think that idea is valid, I'll try to follow that 19:45
I mean, one will block might be closing over other lexicals in the block
jnthn It feels a bit off...
lizmat ok, that is not a good sign 19:46
:-)
I'll just try to fix "my Int $a of Hash" and such first
jnthn *nod*
That should be an error, I guess? 19:47
timotimo github.com/timo/ADT/tree/EXPORT_sub - this is the branch, the test t/02* is showing the error
lizmat jnthn: yes
19:48 stevan_ joined
jnthn timotimo: From the docs, "Since rakudo doesn't yet allow the EXPORT sub of a package to return a hash of things to export," - but it does now :) 19:48
FROGGS masak: ping
jnthn oh, we're in a branch that's working on that...
:) 19:49
timotimo oh yes, the readme is out of date, thanks
19:49 nebuchadnezzar joined, abnorman left
masak FROGGS: pong 19:49
FROGGS masak: in nqp::sprintf we're dying if the directive-count doesnt match the arg count 19:50
masak: I dont like that anymore :o)
pmurias how should I run a shell command in nqp? 19:51
jnthn timotimo: Well, clone'd the repo at least... :)
FROGGS because you can a) specify the arg you want by %$3s by example, and it might be handy to just format some of the args passed
moritz pmurias: there's a pir::spawnw__IP on nqp-parrot
pmurias currently pir::spawnw__Is('node QAST2JSOutput > QAST2JSOutput.output') is used, but I don't want to implement a pir:: thing on nqp-js 19:52
moritz pmurias: then introduce an nqp:: op for it :-)
jnthn Wasn't that shell, which donaldh++ is recently tweaking?
masak FROGGS: I always knew that something like %$3s would need a different treatment. 19:54
FROGGS: but there definitely should be a count/verification of some kind.
FROGGS masak: do you have a plan about that?
19:54 zwut00 joined
FROGGS masak: yeah, feels like strict/lax mode 19:54
masak FROGGS: no, it's always strict, but the $3 things don't count in the count... kinda. 19:55
FROGGS: no specific plan, 'sides writing one test at a time.
19:55 bluescreen100 left
FROGGS masak: hmmm, so a pattern only of $n's wont work out 19:56
masak yes, I think it would...
there's an underlying rule, but I can't put my finger on it. 19:57
pmurias jnthn: thanks
FROGGS masak: btw, when commenting out these nqp::die's, it passes now the nqp@parrot and rakudo@parrot tests too
19:57 REPLeffect left
pmurias hates that people add ops to nqp without writing a test 19:57
FROGGS except one %x test, which fails on the jvm too
will fix one at next
masak something like this: there's non-$n and $n. non-$n always counts. $n only counts if it doesn't refer to something that was already touched by a non-$n. 19:59
timotimo jnthn: added two new tests and improved the readme thingie 20:00
FROGGS I was afraid you were saying that
jnthn timotimo: ok. I got the same error you mentioned. 20:01
timotimo good to know i'm not hallucinating terminal output now :) 20:02
lizmat jnthn: the case of "my %h{Str} of Int"
I'm thinking of disallowing that as well
masak hm, why?
FROGGS masak: for v5, I could just catch (and keep) these two expections... right? 20:03
lizmat the problem is that the $t in PARAMETERIZE_TYPE is not set correctly yet
20:03 donaldh joined
lizmat and I don't see a way to fix this up later when handling the "of" trait 20:03
masak FROGGS: sorry, I'm not focused enough.
FROGGS masak: np :o) 20:04
lizmat masak: my $what := self but TypedHash[$t.WHAT, c[0]];
FROGGS .oO( a c[0] would be nice now )
lizmat the $t.WHAT should be later corrected to Int rather than Any (in the case of "my %h{Str} of Int"
20:05 raiph left
jnthn lizmat: I think that we may want to consider a slightly larger re-org for this stuff. 20:05
lizmat: At the moment we're doing a PARAMETERIZE_TYPE call from Actions, or via World anyway.
lizmat yup 20:06
jnthn lizmat: I'm wondering if we should only ever do that in the Variable.compose.
lizmat but the Variable is only created if we have traits
that would not catch "my %h{Str}"
jnthn lizmat: And we translate my Int %h{Str} into tweaks to Variable.
lizmat: I know, I'm saying that we maybe want to do different when we spot we have types to set up.
What's wrong with that? 20:07
my %h{Str} of Int # should work like my Int %h{Str};
The problem is when we get
my Int %h{Str} of Num;
e.g. we need to complain when things get set twice.
lizmat ok, but currently the %h{Str} triggers the PARAMETERIZE_TYPE call *before* the "of" trait is handled 20:08
I'm not seeing how I can change the "elf but TypedHash[$t.WHAT, c[0]];" after it has been returned by PARAMETERIZE_TYPE 20:09
*self
jnthn lizmat: I'm suggesting we don't do that call until Variable.compose
lizmat but currently at least, the Variable object is only created when we have traits 20:10
# Apply any traits.
if $trait_list {
my $Variable := $*W.find_symbol(['Variable']);
so doing a "my %h{Str}" would never see a Variable object created, nor composed 20:12
*or* you're saying we would need to create such an object always ?
for *every* variable declaration ?
masak is too tired to think properly :/ 20:14
lizmat teaching will do that to you
masak yes. it's as if I taught away my soul.
at least they said "thank you" :) 20:15
lizmat those pesky little brain-sucking pupils :-)
jnthn lizmat: For every one that has type constraints on it, perhaps
lizmat: Not sure if we run into the circularity saw there... 20:16
lizmat oddly enough, the "Str" in %h{Str} is not visible in $*OFTYPE
jnthn Right, 'cus it's the key type, not the of type :)
lizmat so that's in $shape ? 20:17
jnthn iirc, yes
lizmat right, ok
timotimo .o( i should get in $shape, too )
lizmat ok, I think I can go forward now 20:18
jnthn Well, or at least sideways... :) 20:24
lizmat hehe, it's all relative 20:25
topologically the same, no?
r: my $*
camelia rakudo 932bfc: OUTPUT«===SORRY!=== Error while compiling /tmp/3TnCtz2vWK␤Two terms in a row␤at /tmp/3TnCtz2vWK:1␤------> my $*⏏<EOL>␤ expecting any of:␤ scoped declarator␤ constraint␤ postfix␤ infix stopper␤ infi…
lizmat whee!
std: my $*
camelia std 06636e4: OUTPUT«===SORRY!===␤Unsupported use of $* variable; in Perl 6 please use ^^ and $$ at /tmp/2NKdtmhzVo line 1:␤------> my $*⏏<EOL>␤Parse failed␤FAILED 00:00 41m␤»
lizmat r: say $* 20:28
camelia rakudo 932bfc: OUTPUT«===SORRY!=== Error while compiling /tmp/y1RlNh1lYN␤Non-declarative sigil is missing its name␤at /tmp/y1RlNh1lYN:1␤------> say ⏏$*␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»…
lizmat std: say $*
camelia std 06636e4: OUTPUT«===SORRY!===␤Unsupported use of $* variable; in Perl 6 please use ^^ and $$ at /tmp/vZHO0HrSw2 line 1:␤------> say $*⏏<EOL>␤Parse failed␤FAILED 00:00 42m␤»
dalek p: 04fe91c | (Tobias Leich)++ | / (2 files):
make sprintf pass under parrot backend

Also added two tests about accessing args by index.
20:29
timotimo does our nqp implementation of sprintf already power the parrot version of rakudo? 20:33
FROGGS timotimo: I'd say so
lizmat not sure
is it?
timotimo i just onder: is it being used or not? :)
FROGGS timotimo: it handles bigints for example, and there are no regressions (expect this, which is by design github.com/perl6/roast/blob/master...ay02.t#L23 ) 20:34
timotimo: rakudo@jvm uses it
and my locally hacked rakudo
lizmat yes, but afaik parakudo doesn't
I'll be gladly corrected
20:35 logie left
FROGGS lizmat: not yet, I'm working on that point 20:35
lizmat ok, so it *can*, but it doesn't yet, rigtht ?
FROGGS right 20:36
I want to get rid of one failing nqp test, and then I might pull it in
timotimo why is it by design? a hash should .ftm with just one string? 20:37
lizmat cool: one more thing to add to the ChangeLog :-)
20:37 logie joined
moritz r: (2**65).fmt: '%d' 20:40
camelia rakudo 932bfc: ( no output )
moritz r: say (2**65).fmt: '%d'
camelia rakudo 932bfc: OUTPUT«0␤»
moritz n: say (2**65).fmt: '%d' 20:41
camelia niecza v24-88-g1f87209: OUTPUT«36893488147419103232␤»
lizmat std: say $" 20:43
camelia std 06636e4: OUTPUT«===SORRY!===␤Unsupported use of $" variable; in Perl 6 please use .join() method at /tmp/hw_Gmzy3Dy line 1:␤------> say $"⏏<EOL>␤Parse failed␤FAILED 00:00 42m␤»
20:49 kaare_ left 20:50 kbaker left
pmurias hmm, implementing nqp::shell on node requires using a module from the package repository :/ 20:52
mst pmurias: you're a perl programmer. you're not allowed to be scared of modules. 20:53
20:54 raiph joined
TimToady is scared of modules... 20:54
slava TimToady: kind of weird seeing that come from you ... since, you know, CPAN! :P 20:56
mst TimToady: actually, I'm mostly only scared of the ones -you- wrote
FROGGS I'm only scared of S11 :o) 20:58
21:01 skids left
FROGGS pmurias++ # report (and awesome work) 21:02
21:03 ingy joined
timotimo ah yes, i've been looking forward to the report :) 21:04
pmurias++ :) 21:06
21:07 pernatiy joined 21:11 jaffa4 left
masak slava: TimToady was so scared of modules he needed to lock them all up in CPAN... :P 21:16
kind of like an Azkaban for modules. 21:17
FROGGS so Andreas König is a dementor? 21:18
frettled Things make sense now. 21:19
… several things in CPAN are rather demented ;) 21:20
21:20 abnorman joined
masak .oO( be a dementor in this Google Summer of Decode! ) 21:20
frettled masak: ooh! :)
I've read that weird thread about «commensurability» or wossname on P6L, which started off with a wee bit of TL;DR syndrome. Where did that come from? 21:21
masak where did what come from? 21:22
21:22 stevan_ left
frettled «Commensurability as Key» by a James Bowery on the perl6-language mailing list. 21:22
geekosaur we're attracting crackpot theorists; in some sense, we must have arrived :)
diakopter well.. 21:23
masak geekosaur: no, it's always been like that.
timotimo er, crackpot is a bit harsh, isn't it?
TimToady and it's not crackpot, really, it's just rather oddly written
masak frettled: I need to read his references to find out what point he's trying to make. but I also think there is a point in there.
geekosaur well, I admit the crackpot vibe is more from the presentation than the content
TimToady we've considered units several times in the past
masak and it deserves a more measured answer that it's gotten so far.
frettled Yes, it was the tee-ell-semicolon-dee-arrrrrrness of it I reacted to :)
masak I did units in strangelyconsistent.org/blog/6-buil...you-needed 21:24
21:25 logie left
labster method attack-with-camelia { say "flap flap RAWWR!" } # lol 21:26
frettled :)
timotimo .map({; .key => .value.elems })\ - is this kind of a wart? having to put a ; there to make sure it gets parsed as a block?
frettled I don't think units are central to his point, really.
masak timotimo: used to be. 21:27
timotimo oh, it's fixed by now?
masak frettled: no, they seem to be a demo of his central point.
frettled masak: mm
timotimo r: (:a(1), :b(2), :c(3)).map({ .key => .value.sin }).say
camelia rakudo 932bfc: OUTPUT«No such method 'key' for invocant of type 'Nil'␤ in block at /tmp/bOoU37WeVm:1␤␤»
timotimo r: {:a(1), :b(2), :c(3)}.map({ .key => .value.sin }).say
camelia rakudo 932bfc: OUTPUT«No such method 'key' for invocant of type 'Nil'␤ in block at /tmp/xMlyJ6sVYu:1␤␤» 21:28
timotimo r: (:a(1), :b(2), :c(3)).map({; .key => .value.sin }).say
frettled And to my simple mind it seems as if P6 has at least part way answered this with user-definabla types and roles, but, uhm?
camelia rakudo 932bfc: OUTPUT«"a" => 0.841470984807897e0 "b" => 0.909297426825682e0 "c" => 0.141120008059867e0␤»
masak r: say (foo => [1, 2, 3]).map({ .key => .value.elems })
camelia rakudo 932bfc: OUTPUT«No such method 'key' for invocant of type 'Nil'␤ in block at /tmp/mf9flPKksy:1␤␤»
timotimo it's trying to call .key on a $_ that would have had to have been created outside the map
masak r: say (foo => [1, 2, 3]).map({; .key => .value.elems })
camelia rakudo 932bfc: OUTPUT«"foo" => 3␤»
masak so, hm, not fixed yet. :/
timotimo ah, "used to be" doesn't necessarily mean "not any more, though"?
FROGGS r: say (foo => [1, 2, 3]).map( -> $_ { .key => .value.elems }) 21:29
camelia rakudo 932bfc: OUTPUT«"foo" => 3␤»
masak FROGGS: that's cheating :)
FROGGS masak: peow peow peow
masak ;) 21:30
TimToady rakudo is known to violate S04:1641
frettled Is there such a thing as cheating? :)
synopsebot Link: perlcabal.org/syn/S04.html#line_1641
diakopter heh synopse
21:31 logie joined
TimToady that's an interesting backformation 21:31
like a parenthese
masak that's one hypothese 21:32
moritz kinda thought rakudo implemented that
must have been a dream
timotimo ah, the implicit method calls on $_ make that interpret as a hash
TimToady which is precisely what 1641 is discussing 21:33
21:33 crab2313 left
diakopter what a crise 21:33
FROGGS .oO( that is discussing! )
frettled Good thing I only have one ire per eye. 21:34
diakopter actually that's..
irise
masak frettled: I'll show you ire.
TimToady you are the antithese of helpful
21:34 spider-mario left
masak man, all these these... 21:35
diakopter your eye might need a prothese
frettled topics of discuse?
masak .oO( would you all discuse me for a bit )
timotimo r: my $_ = :a(10); say ( .key => .value.sin ).hash # is this how i'd create a hash if i wanted to circumvent the "implicit methods on $_ make a closure"?
21:35 logie left
camelia rakudo 932bfc: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/FA0VVfAG_E:1␤ ------> my $_ ⏏= :a(10); say ( .key => .value.sin ).has␤("a" => -0.54402111088937e0).hash␤» 21:35
21:35 BenGoldberg joined
timotimo also, i wrote "make that interpret as a hash" is of course wrong; i meant to write "as a closure" 21:36
masak .oO( I am frankly outgrabed at how all y'all discuse and defrile the English languib! )
diakopter you're a slithy tove
TimToady oh, trut your shap!
labster This is starting to turn into routines of John Cleesis 21:37
masak TimToady: I wilt not stab for that kind of rudder!
21:37 logie joined
masak leebs, fraught 21:37
TimToady Bru et, Tutus? 21:38
tadzik you're making synopsebot abashed
TimToady these is not very productive...
masak .oO( hobbitse )
grondilu r: my $_ = :a(10); say { .key => .value.sin }.WHAT
camelia rakudo 932bfc: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/LAvIyESntA:1␤ ------> my $_ ⏏= :a(10); say { .key => .value.sin }.WHA␤(Hash)␤»
grondilu r: $_ = :a(10); say { .key => .value.sin }.WHAT
camelia rakudo 932bfc: OUTPUT«(Hash)␤»
labster hugme: hug synopsebot
hugme hugs synopsebot
TimToady
.oO( goatsis )
21:39
diakopter huge: hug synopsisbot
grondilu r: $_ = :a(10); say {; .key => .value.sin }.WHAT
camelia rakudo 932bfc: OUTPUT«(Block)␤»
diakopter hugme: hug synopsisbot
hugme hugs synopsisbot
tadzik synapsebot
masak fires synapsebot
FROGGS hehe 21:40
frettled This was very productive, it improved my mood, and therefore my productivity.
diakopter crosses masak
frettled masak: very nice, very nice :)
masak apparently I'm *not* too tired for very silly jokes.
masak brows, exulted
diakopter wait. we were joking?
masak diakopter: sometimes we begin without you :P
dalek kudo/nom: bda4465 | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
Added Syntax::Perl5Var exception, to be used later at your convenience
21:41
TimToady masak: one does not get too tired for silly jokes, one becomes too tired *of* silly jokes, silly!
grondilu r: say { .key => .value.sin }.WHAT
camelia rakudo 932bfc: OUTPUT«No such method 'key' for invocant of type 'Nil'␤ in block at /tmp/6x91L4qPoi:1␤␤»
frettled masak: you were not talking in diakopese. 21:42
masak TimToady: it's usually one or the other, thought.
grondilu rn: say { .key => .value.sin }.WHAT
masak though*
camelia rakudo 932bfc: OUTPUT«No such method 'key' for invocant of type 'Nil'␤ in block at /tmp/cCEBDyMn_5:1␤␤»
..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method key in type Any␤ at /tmp/K8GFZLFTP4 line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ at /home/p6…
diakopter lizmat-- # making us all look like slackeresises
grondilu rn: say {; .key => .value.sin }.WHAT
camelia rakudo 932bfc, niecza v24-88-g1f87209: OUTPUT«(Block)␤»
lizmat :-)
masak lizmat++ # for annoying diakopter with her commit rate
frettled: "diakopese" sounds like something one would eat when one gets tired of Chinese and Vietnamese. 21:43
frettled masak: yes, definitively. I hope diakopter can cook. 21:50
21:53 araujo left
masak .oO( Diakoptric Orthodox Church of Alexandria ) 21:53
21:54 araujo joined 22:02 cooper_ joined 22:04 notjack left 22:05 donaldh left 22:07 REPLeffect joined
masak 'night, #perl6 22:14
FROGGS night masak
# A fatal error has been detected by the Java Runtime Environment: 22:16
#
# SIGSEGV (0xb) at pc=0x0000000000000000, pid=7409, tid=46913064728320
ohh, must have done something wrong /o\
22:17 denisboyun left 22:21 dmol left
lizmat guess I'm still missing something essential about grammars 22:21
- | <!{ $*QSIGIL }> <.typed_panic: 'X::Syntax::SigilWithoutName'> 22:22
+ | <!{ $*QSIGIL }> {
+ $/.CURSOR.typed_panic(
+ 'X::Syntax::Perl5Var', name => ~$<variable> )
but that just gives an empty string :-(
$ perl6 -e 'say $*'
===SORRY!=== Error while compiling -e
Unsupported use of variable
this is inside token variable, maybe that's the problem ? 22:23
moritz inside token variable, $<variable> probably doesn't make sense
22:23 pecastro joined
moritz use $/ instead? 22:23
lizmat hmmm…
trying
FROGGS lizmat: that is token variable? 22:24
lizmat yes
FROGGS does it actually match <variable> somewhere?
lizmat r: say $*
camelia rakudo bda446: OUTPUT«===SORRY!=== Error while compiling /tmp/PF3ket5YSt␤Non-declarative sigil is missing its name␤at /tmp/PF3ket5YSt:1␤------> say ⏏$*␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»…
lizmat I wanted to improve that, so it was matching on $*, if that answers your qiuestion 22:25
the above exception is X::Syntax::SigilWithoutName
FROGGS no, you want to pass ~$<variable>, but you never match a <variable> somewhere 22:26
lizmat it *is* inside the token, yes
so how do I get what matched so far ?
moritz $/
lizmat ok, build almost complete 22:27
moritz or rather ~$/
lizmat yes, got that :-)
FROGGS that wont work 22:28
lizmat $ perl6 -e 'say $*'
===SORRY!=== Error while compiling -e
Unsupported use of $ variable
getting closer
FROGGS at the point you throw the exception you matched the sigil, and you failed to match a variable name
you might can try to use $/.orig and $/.from 22:29
and $/.pos 22:30
lizmat ok, will try
moritz or maybe simply match whatever you want to be reported 22:31
lizmat ?
moritz right now the error is thrown after a negative look-ahead, which means it hasn't consumed the character
lizmat right, so I want the non-consumed character(s) 22:32
moritz so maybe just writing <!{ $*QSIGIL }> . { block that dies } # if it's always just one more character
moritz tries to sleep again
lizmat gnight moritz!
dalek p: 7a00808 | (Tobias Leich)++ | src/HLL/sprintf.nqp:
ugly hack to render floats right, but it works
22:37
FROGGS .tell colomon Only one nqp::sprintf / Hash.fmt issue left: github.com/perl6/roast/blob/master...ay02.t#L23 22:41
22:45 skids joined 22:48 pmurias left 22:49 census joined
lizmat grr, I just realize that all of the Perl5Var exception stuff is already in the grammar 22:54
but it apparently never matches
because the exception for missing name is thrown first 22:57
23:04 PacoAir left 23:07 logie left 23:08 abnorman left, logie joined
lizmat $ perl6 -e '$" =1' 23:09
===SORRY!=== Error while compiling -e
Unsupported use of $" variable; in Perl 6 please use .join() method
r: $"=1
camelia rakudo bda446: OUTPUT«===SORRY!=== Error while compiling /tmp/EdhCU8eDCG␤Non-declarative sigil is missing its name␤at /tmp/EdhCU8eDCG:1␤------> <BOL>⏏$"=1␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-pref…
23:10 raiph left
lizmat if I can get this to work reliably, it would mean I could rip out the "special_variable" token out of the grammar, about 200 lines out of 4000+, about 5% ? 23:11
TimToady, jnthn: would it make sense to reduce the grammar in that way, moving the burden of reporting/lookup to the Exception class ? 23:12
will check backlog tomorrow, sleep now&
23:13 logie left 23:16 abnorman joined 23:19 logie joined 23:26 xilo joined 23:27 thou left
jnthn 'night, #perl6 23:28
23:51 abnorman left 23:52 abnorman joined 23:55 raiph joined