»ö« 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.
00:00 spider-mario left 00:05 Psyche^ joined 00:09 Patterner left, Psyche^ is now known as Patterner 00:16 erkan left 00:19 erkan joined, erkan left, erkan joined 00:30 aindilis` left 00:31 aindilis` joined 00:48 bbkr left 00:51 PacoAir left 00:52 bbkr joined 00:57 erkan left 01:13 lichtkind joined
lichtkind any advent calendar people here? 01:14
01:15 twinshadow left
popl lichtkind: There are, but I don't know if they are here. 01:16
lichtkind that doesnt help now
popl If you address someone specifically they may come a-runnin'.
01:17 bowtie left
popl lichtkind: Was that a "answer the question I meant to ask, not the question I did ask" question? 01:17
I'm horrible at those.
dalek rl6-bench: 68e8f37 | (Geoffrey Broadwell)++ | TODO:
Clarify a Rakudo commit test TODO
01:19
lichtkind yes i just wanted see a yes im here
popl: its allright 01:34
01:51 lichtkind left 02:07 FROGGS__ joined
colomon I'm here 02:09
oh, but lichtkind isn't.
02:10 FROGGS_ left 02:20 lichtkind joined
lichtkind r: say "123.234.345.456" ~~ m:g/(\d+)/ 02:21
p6eval rakudo cf2761: OUTPUT«False␤»
lichtkind why?
there are digits
diakopter . is a digit?
oh
lichtkind so i am right :)
r: say "123.234.345.456" ~~ m:g/(\d)+/ 02:22
p6eval rakudo cf2761: OUTPUT«False␤»
diakopter r: say "123.234.345.456" ~~ m/(\d+)/
p6eval rakudo cf2761: OUTPUT«「123」␤ 0 => 「123」␤␤»
diakopter why do you need the :g ?
lichtkind yeah but global should be true either
i need it for the calendar article 02:23
it looks like a bug and i wanted report it
02:32 Rotwang left, lichtkind_ joined 02:33 fgomez joined, lichtkind_ left 02:34 lichtkind_ joined, lichtkind left, lichtkind_ is now known as lichtkind, araujo left
colomon nr: say "123.234.345.456" ~~ m:g/(\d)+/ 02:44
p6eval rakudo cf2761: OUTPUT«False␤»
..niecza v24-12-g8e50362: OUTPUT«===SORRY!===␤␤Regex modifier g not yet implemented at /tmp/7egEAf_TD8 line 1:␤------> say "123.234.345.456" ~~ m:g⏏/(\d)+/␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (di…
02:44 bpalmer left
colomon wouldn't something like 02:44
nr: say "123.234.345.456".comb(/\d+/)
p6eval rakudo cf2761, niecza v24-12-g8e50362: OUTPUT«123 234 345 456␤»
colomon be simpler and actually work? 02:45
lichtkind great idea
but still :g thing is a bog or?
bug
diakopter I think it's a class 4 bog 02:46
lichtkind what is class 4?
diakopter not quite as big as a class 5
lichtkind omg bureaucracy is everywhere 02:47
i have to kill myself
diakopter ... it was a joke
lichtkind mine too :)
02:53 deGirl joined
deGirl hhhhhhhhhh 02:53
diakopter ?
sorear welcome to #perl6, diakopter 02:54
welcome to #perl6, deGirl
02:54 deGirl left
diakopter :) 02:54
03:01 awwaiid left
timotimo that phaser blogpost opened my eyes to a few really great use cases, thanks jnthn! 03:02
lichtkind dalek: tell moritz dunno if its a bug but "123.234.345.456" ~~ m/\d+/; also fills $/ 03:11
tell moritz dunno if its a bug but "123.234.345.456" ~~ m/\d+/; also fills $/
03:12 Chillance left 03:44 telex left 03:46 telex joined
lue lichtkind: you want phenny, not dalek. 03:58
lichtkind ah theanks
phenny: tell moritz dunno if its a bug but "123.234.345.456" ~~ m/\d+/; also fills $/ on rakudo
phenny lichtkind: I'll pass that on when moritz is around. 03:59
04:05 Targen left, Targen joined 04:37 fgomez left 04:46 _jaldhar_ left 04:55 _jaldhar_ joined 04:57 lichtkind left 05:05 aindilis` left 05:06 aindilis` joined 05:17 skids joined 05:18 telex left 05:27 telex joined
TimToady masak: in t4, "cubes on integer coordinates" does not imply unit cubes, which seems to be what you're assuming in the tests. you can even have integer-cornered cubes where the faces aren't lined up with the axes. which would be an interestinger problem... 06:11
your tests seem to assume that if you know one corner, you know all the rest
but you dint say that 06:12
another unclear thing: suppose a solitary cube has a "roof" that only allows water to fall on one edge; does the cube produce its own waterfall only on that one edge, or does it produce waterfalls on all its edges? that is, can an edge collect water for an entire cube's upper face? 06:22
lue On the "aligned with axes" uncertainty, I would assume/hope no-one would go through the trouble of trigonometry unless told to. 06:23
TimToady it ought to be specified anyhoo 06:24
lue nodnod
TimToady but even if aligned, one could have different sized cubes
and then the definitions are ambiguous a different way
suppose you have a 3x3x3 cube with a small cube touching the middle of one face on the side 06:25
the "watertight" rule only applies to shared edges, not an edge shared with a face
06:25 araujo joined
TimToady (which can't arise if we only have unit cubes, of course) 06:25
06:25 araujo left, araujo joined
TimToady and, of course, if they are not just unit cubes, one might have to calculate intersections of cubes that might overlap :) 06:27
lue My interpretation of t4 has been perfectly-aligned unit cubes whose centers (.5mx.5mx.5m into the cube) are on the specified coordinates.
(aligned referring to the alignment between cube faces and axes planes)
TimToady well, or a consistently picked corner
lue
.oO(how much water would need to be collected in a well for that well's floor to be pushed down enough to let the water escape?)
06:31
TimToady one could also misinterpret the problem as rooting all the cubes at 0,0,0 with the opposite corner specified as x,y,z, though that is admittedly a stretch
lue also, colliding faces 06:32
Here's another (very stretched) thing: where does the rain come from? "up" is just a word in this universe. 06:34
sorear lue: imagine an infinite Newtonian spacetime where the gravitational potential is just "gy" 06:36
this is a valid free-space solution to the Poisson-equation form
"The unit cubes are made out of open-cell foam. Water drains through them." 06:37
lue one thing I was curious about when reading t4 (although it doesn't affect the solution): is the waterfall a normal thin "strip" of water, or is it a 1mx1mxNm stream? 06:40
sorear a stream. 06:52
masak TimToady: yes, I probably shoulda said "unit cubes" somewhere. they are definitely 1x1x1, which becomes evident when one sees the base tests, if not before. 07:10
TimToady: waterfalls don't just hit a corner of the cube, it hits the entire face. that's what the "chute" wording in the description is getting at. 07:11
masak has breakfast, after which he will be trying to get back home to Sweden
lue: from description.md: 'The positive `y` coordinate means "up".' 07:15
lue masak: I was being particularly onerous at point. The point was "who's to say water comes from the 'up' direction in this universe?" 07:16
sorear masak is to say that 07:22
japhb lue: While it is fun to consider twisted gravity, I think up is by convention that direction from which things fall. :-) 07:36
.oO( Remember, the enemy's gate is down."
s/"/ )/
07:45 SamuraiJack joined 08:04 arlinius joined
lue night #perl6 o/ 08:05
08:13 GlitchMr joined 08:49 fgomez joined 08:54 popl left 09:00 kaare_ joined
tadzik good morning #perl6 09:08
GlitchMr I've done everything except for t3... now to think about t3. This could be difficult. 09:12
09:23 erkan joined, erkan left, erkan joined 09:30 spider-mario joined
sorear good morning tadzik 09:32
09:47 Saaraa joined 09:50 Saaraa left
moritz \o 09:59
phenny moritz: 03:58Z <lichtkind> tell moritz dunno if its a bug but "123.234.345.456" ~~ m/\d+/; also fills $/ on rakudo
moritz phenny: tell lichtkind not a bug
phenny moritz: I'll pass that on when lichtkind is around.
10:08 wamba joined 10:21 PacoAir joined
jnthn morning o/ 10:25
eternaleye Okay, t3 is definitely my favorite of these. ix.io/3F0 10:30
Mainly because a single word in the description was the key to my implementation. 10:31
Also, always optimal.
The only unfortunate thing is that gather/take seems to dominate my time (c.f. --profile) 10:32
As in '80% of my runtime is attributed to eager' 10:34
I suspect gather { take gather { take } } still has some optimization headroom. 10:35
Either that or it needs some work on getting blamed for things it didn't do in --profile
jnthn eternaleye: Be careful of inclusive/exclusive there. 10:36
eternaleye: eager will look expensive inclusive because it does all of the work inside of it.
eternaleye jnthn: Mm, true, lemme check my settings
jnthn my @a = map { expensive stuff }, @blah; # the map just returns something lazy, and the mostly-eager list assignment calls eager and then the work happens, iirc. 10:37
eternaleye Hm, it may well be inclusive - I can't find a setting for switching in kcachegrind 10:38
jnthn In my kcachegrind there's an incl and self column
eternaleye Ah, I see. Thanks! 10:39
Mm, there we go.
10:40 grondilu joined
eternaleye Okay, cool - looking at that, it basically comes down to 'Well, this line is the O in O(n^2)' 10:41
grondilu rn: my $x = [ * + 1, * *2 ]; say $x[]»(1);
p6eval niecza v24-12-g8e50362: OUTPUT«2 2␤»
..rakudo cf2761: OUTPUT«Too many positional parameters passed; got 3 but expected 2␤ in sub METAOP_HYPER_POSTFIX at src/gen/CORE.setting:12578␤ in block at /tmp/zGmfSBZGQG:1␤␤»
grondilu rn: my $x = [ * + 1, * *2 ]; say $x[]».(1);
p6eval rakudo cf2761, niecza v24-12-g8e50362: OUTPUT«2 2␤»
jnthn grondilu: hm, I think I'd have expected those two to behave the same way... 10:42
grondilu so would I have
eternaleye perl6: my $foo = ( 1, 2 ).map: [ * ]; $foo.perl.say
p6eval rakudo cf2761: OUTPUT«No such method 'count' for invocant of type 'Array'␤ in method reify at src/gen/CORE.setting:5474␤ in method reify at src/gen/CORE.setting:5397␤ in method gimme at src/gen/CORE.setting:5775␤ in method perl at src/gen/CORE.setting:5994␤ in block at /tmp/ciq0TL…
..niecza v24-12-g8e50362: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Array␤ at <unknown> line 0 (KERNEL map @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 363 (Any.map @ 4) ␤ at /tmp/XZJC0hNHj8 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/l…
eternaleye ^^^ Is this intentional, or should this generate a pair of single-elem arrays? 10:43
jnthn map expects a block 10:44
eternaleye The Whatever seems to think it's in a subscript, when it's actually a placeholder
jnthn No, you can't use the whatever as a placeholder there
eternaleye jnthn: Yes, but you can also do (1, 2).map *+1
jnthn Yes, because + is an operator
eternaleye jnthn: Ah
jnthn [...] is a term that constructs an array
eternaleye Didn't realize that didn't apply to circumfix:<[ ]>
jnthn No, it doesn't 10:45
eternaleye Alright, thanks
jnthn So { [$_] } will work, for example
eternaleye Yep, that's what I've been doing
jnthn r: say (1..10).map(*.Array.item).perl 10:46
p6eval rakudo cf2761: OUTPUT«([1], [2], [3], [4], [5], [6], [7], [8], [9], [10]).list␤»
eternaleye (I just like the whatever-placeholder notation's concise nature)
jnthn There is *that* but...it's not in any way concise ;)
eternaleye :(
Incidentally, I'm finding [X] to be a bit of a pain at times. 10:48
jnthn If you just want to single-list-itemize a bunch of things maybe .tree helps.
eternaleye It's rather hard to predict what it flattens before crossing in a Lol situation.
I eventually had to unroll it into a for loop manually 10:49
jnthn r: my @a = 1,2,3; my @b = 4,5,6; say [X] @a, @b 10:50
p6eval rakudo cf2761: OUTPUT«1 2 3 4 5 6␤»
jnthn r: my @a = 1,2,3; my @b = 4,5,6; say [X] @a.item, @b.item
p6eval rakudo cf2761: OUTPUT«1 4 1 5 1 6 2 4 2 5 2 6 3 4 3 5 3 6␤»
jnthn It should be an item/flattening distinction
You can always force itemization with .item (or $(...)) 10:51
back in a bit
eternaleye rakudo: my @foo = ( [1, 2, 3 ], [ 'a', 'b', 'c' ] ); ( [X] @foo ).perl.say 10:52
p6eval rakudo cf2761: OUTPUT«((1, "a"), (1, "b"), (1, "c"), (2, "a"), (2, "b"), (2, "c"), (3, "a"), (3, "b"), (3, "c")).list␤»
eternaleye Aaaaah
It's the after-flattening that's biting me, not before
rakudo: my @foo = ( [1, 2, 3 ], [ 'a', 'b', 'c' ] ); ( [X] @foo ).tree.perl.say 10:53
p6eval rakudo cf2761: OUTPUT«([1, "a"], [1, "b"], [1, "c"], [2, "a"], [2, "b"], [2, "c"], [3, "a"], [3, "b"], [3, "c"]).list␤»
eternaleye Bingo
FROGGS__ hi there 11:02
11:02 FROGGS__ is now known as FROGGS 11:06 Su-Shee_ joined, Su-Shee left, Su-Shee_ is now known as Su-Shee
eternaleye Whoo, and that saves me 6 lines on t1! 11:06
11:07 bowtie joined
jnthn back 11:16
eternaleye: nice :)
eternaleye jnthn: Yep, and I'm working on fine-tuning my grammar actions to save lines too.
(First time using action objects) 11:17
jnthn Remember you can even pass an anon class for the actions if you only use them in one place. ;) 11:21
(JSON::Path does that, though for scoping rather than line saving)
dalek kudo/stdier: 3b71c87 | jnthn++ | src/Perl6/ (2 files):
Switch a couple of panic calls to worry.

Again, doesn't behave differently yet.
11:27
eternaleye jnthn: Nope, I'm using a has %.smullyans to track who's spoken of whom ( to catch those referenced-but-not-speaking like the tests call for ) 11:29
So I reuse the actions per-line
Mm, though...
jnthn ah, ok :)
eternaleye I wrote it as a per-line grammar when I thought the lines would be in argv, so making it whole-document might be a good idea... 11:30
Not a huge change anyway
FROGGS karma jnthn 11:38
aloha jnthn has karma of 2869.
FROGGS hehe, nice
11:46 ggoebel_ joined 11:48 ggoebel_ left 11:55 awwaiid joined
GlitchMr gist.github.com/4306619 12:03
So close, yet so far
Something is wrong with my problem detector when going down
12:09 sbox joined
GlitchMr gist.github.com/4306685 12:09
Closer, but still so far :-(
t3 is annoying 12:10
I'm sure something is wrong with problem detector. Perhaps one-by-one bug.
off-by-one*
Woodi japhb: you saw that one ? xkcd.com/241/ 12:11
hallo today :)
anyone thinked about putting 'restricted' into Parrot C code ? 12:12
sbox hi people 12:16
has anyone run into a "Failed to load libpcre" when running the Configure.pl script? 12:17
FROGGS no
^-- sbox 12:18
jnthn Not heard that one before. Does it cause Configure to fail overall? 12:19
GlitchMr pcre is used for Perl 5 compatible regular expressions. Except I don't think that Perl 6 actually uses PCRE.
Even in :P5 mode
sbox yeh. It dies with "Command failed (status 512): gmake install-dev"
FROGGS sbox: is your perl executable working at all? test with: perl -e 'print 1'
GlitchMr Perl doesn't use PCRE 12:20
jnthn GlitchMr: Right, I think it's Parrot's Configure
sbox: What command are you running?
sbox perl Configure.pl --gen-parrot
jnthn If it's the Rakudo Configure.pl, then try also adding
yeah, OK, try adding:
--parrot-option=--without-pcre
Surprised that's needed, but hopefully it fixes it.
sbox thanks. Trying now. 12:21
GlitchMr Lack of PCRE could cause problems in certain Parrot languages, but it shouldn't cause problems with NQP or Perl 6.
I think that pcre is deprecated, so it should be safe - github.com/parrot/parrot/issues/637 12:23
sbox is my understanding that PCRE is used by non-perl languages to get perl-esque regex support correct?
jnthn sbox: Yeah. Parrot - the VM Rakudo Perl 6 compiler targets - provides it for other languages that want it. Rakudo just has its own regex implementation, however. Even for :P5 (Perl 5 mode). 12:24
GlitchMr PCRE? Not really. I don't think that many programming languages use it.
I think that PHP uses it and R programming language. Anything else?
I think that WebKit was using PCRE once, but it doesn't anymore. 12:25
Patterner wild guess: /usr/lib/libpcre.so is a linker script (iirc that was problem with my gentoo) 12:32
jnthn heh...linker scripts, the things that also screw up NativeCall 12:33
What a great idea they must be. :) 12:34
sbox Patterner: can you elaborate please. (I happen to also be running gentoo) 12:36
12:38 birdwindupbird joined
FROGGS sbox: a .so (shared object) usually is a binary file, a library. but then someone invented these linker scripts, which should locate the real library and thus must be handled differently 12:38
GlitchMr gist.github.com/4306824
t3 :-)
FROGGS not all build tools can handle them
12:41 not_gerd joined
not_gerd hello, #perl6 12:41
FROGGS hi not_gerd
not_gerd re linker scripts: Ruby-FFI and GHC had the same problem
github.com/ffi/ffi/pull/117 www.haskell.org/pipermail/cvs-ghc/2...51569.html 12:42
someone should probably add that to dyncall
12:45 pmurias joined
sbox adding "-parrot-option=--without-pcre" stopped the error, but now I get a new error 12:46
gist.github.com/4306854
I was unclear on what exactly the error was from the printout.
GlitchMr Now for t4... if I think about it, the predictable rules look like those in Minecraft. 12:49
not_gerd sbox: did you run a parallel make? 12:52
sou might need to build NQP (specifically, dyncall) with a single job
^you
jnthn not_gerd: Does dyncall have problems with parallel make?
sbox do you mean "-jx" where x > 1?
not_gerd sbox: yes 12:53
sbox yes
not_gerd jnthn: it used to on cygwin - no idea if it still does: I just use a single job for building NQP out of habit
not_gerd tries it
buildsys/gmake/targets.gmake:79: recipe for target `dyncall' failed 12:54
pmurias sbox: do the problems persist without a using parallel make? 12:55
sbox trying -j1 now 12:56
13:02 noggle joined
dalek kudo/stdier: 5d659ff | jnthn++ | src/Perl6/Actions.pm:
Fix method name thinko.
13:06
kudo/stdier: 93a1240 | jnthn++ | src/core/Exception.pm:
Add X::Comp::Group.

It's used for when the compilation can produce multiple issues. With this we'll be able to present those the parser can survive together, rather than having the user have to get them one by one. Also will do the rendering of warnings.
kudo/stdier: a5b78f7 | jnthn++ | src/Perl6/ (2 files):
Proper handling of sorry and worry.

Makes worry just report the potential difficulties (so redeclaration of a variable is just a warning now, as STD has it), and sorry keeps going and just collects together the errors up to a limit, then gives them at the end or when there's a panic. Slightly different factoring to STD since we have typed exceptions, but produces the same kind of output.
jnthn phenny: tell moritz stdier now gets sorry/worry much more correct and introduces the X::Comp::Group we discussed. Review welcome, as is help triaging the few test regressions. :) 13:07
phenny jnthn: I'll pass that on when moritz is around.
13:13 Rotwang joined 13:14 spider-mario_ joined, MayDaniel joined, spider-mario left
GlitchMr ok, now I'm going to test my entries in niecza and send them to masak's contest. 13:22
not_gerd has sent an email to the dyncall devs about supporting fake dynamic libs 13:23
pmurias there's a new masak's contest? 13:27
GlitchMr Yes
pmurias: strangelyconsistent.org/blog/the-20...ng-contest
Unhandled exception: Unable to resolve method push in type Any 13:28
That could be fun
Unhandled exception: Unable to resolve method tree in type List 13:29
Now it could be really fun
.list appears to work only in Rakudo
.tree*
Regex modifier g not yet implemented 13:31
Fun. Making my entries working in Niecza could be fun
my %dict = 'dict'.IO.lines.classify: { +m:g:i/ <[aeiouy]>+ / }; 13:32
Any idea how to fix it?
I only need number of matches, nothing else
not_gerd GlitchMr: +.comb(...) perhaps? 13:35
GlitchMr Seems to work 13:36
Now I've problem about .lines being in IO class. 13:37
not being in IO class*
jnthn GlitchMr: Note that if you find it hard to make a solution that works in both, multiple solution submissions for a problem are allowed. (Or they don't have to work on all implementations; I think a bunch submitted last year didn't work on both, for example.) 13:39
eternaleye GlitchMr: running t3 with 9876543210 is cool - and depending on your algorithm it might be a good test of worst-case performance
GlitchMr The 'any' listop may not be called without arguments (please use () or whitespace to clarify) 13:40
Interesting error message
std: any;
p6eval std a8bc48f: OUTPUT«===SORRY!===␤The 'any' listop may not be called without arguments (please use () or whitespace to clarify) at /tmp/yPSI6fkSfm line 1:␤------> any⏏;␤Check failed␤FAILED 00:00 41m␤»
GlitchMr Good to know
eternaleye GlitchMr: I don't even have Niecza (mono itself is having build errors, so I can't even try installing niecza), so I'm only testing on Rakudo 13:41
GlitchMr: Besides, the rules text is: Both Rakudo and Niecza are appropriate platforms for developing solutions for the contest, and we're flexible as to under which version/release you've written your code.
GlitchMr Stack overflow: IP: 0x40696a86
That could be fun
eternaleye Which implies either acceptable, neither required
not_gerd GlitchMr: open('dict').lines should work (but probably leaks a file handle until program termination) 13:43
13:43 birdwindupbird left
not_gerd bye, #perl6 13:50
13:50 not_gerd left 13:51 swanstomp left
sbox perl6 compiled :) thanks for the help 13:52
GlitchMr ok, I've sent my solutions to masak. This was fun contest. 13:53
gist.github.com/4307562 14:01
BINARY!
14:06 sbox left
eternaleye Hey, is $*IN.lines eager? I just decided to feed my t3 entry a full list of all permutations just for kicks on STDIN, but it seems to wait until EOF to start iterating. 14:07
Since the docs say for $*IN.lines ought to be lazy, and is the recommended method of looping over input...
jnthn Think it's meant to be, but I think it was a bit off somewhere 14:08
I think pmichaud++ was looking into that last time he had tuits. 14:09
eternaleye I'm completely confident it's meant to be (synopses and various other docs all agree, and my memory back a few years does as well)
jnthn Or maybe it was some other laziness issue...
I know there's some places where MapIter may not be as lazy as it should be.
eternaleye On the other hand, I found a cool idiom for 'Take arguments from the commandline, but if none are given read them from STDIN' - MAIN( *@foo ) { @foo := $*IN.lines unless +@foo; ... } 14:11
( which I just realized implies it's for @array that isn't lazy ) 14:12
Mm, no, since binding wouldn't flatten it anyway. It's container-level. 14:14
14:19 hoelzro|away is now known as hoelzro
dalek kudo-js: fdbeaec | (Paweł Murias)++ | run_tests:
turn a list of tests into a test range
14:39
kudo-js: 0503334 | (Paweł Murias)++ | src/QAST/Compiler/JavaScript.nqp:
[nqp] refactor the handling of signatures
kudo-js: a83455a | (Paweł Murias)++ | src/QAST/Compiler/JavaScript.nqp:
[nqp] params are added in as_js
kudo-js: bed1be7 | (Paweł Murias)++ | src/QAST/Compiler/JavaScript.nqp:
refactor the way declarations are moved to the top
kudo-js: 624f0de | (Paweł Murias)++ | / (2 files):
[nqp] pass test 48, handle lexotic better
14:45 rindolf joined 14:51 hyy joined, hyy is now known as xinming 14:55 lichtkind joined 15:03 wamba left 15:04 stevan_ left 15:05 stevan_ joined 15:12 wamba joined 15:16 asdssq231 joined 15:26 swanstomp joined
jnthn std: foo; if 1 { foo; sub foo() { } } 15:27
p6eval std a8bc48f: OUTPUT«ok 00:00 44m␤»
jnthn TimToady: Seems %*MYSTERY handling ain't quite right
15:28 sbox joined, asdssq231 left
timotimo is there a way in the perlbug rt to say "i'm only ever interested in the perl6 queue"? especially in the "rt at a glance" page? when i sort by queue, i get no results at all instead of all perl6 first, then all perl5 ones 15:32
grondilu masak: line 36 in github.com/masak/p6cc2012/blame/ma...base-test, shouldn't you write 'No solution' instead of 'No solutions'? I know it's not important but it's nagging me. 15:39
15:45 benabik joined 15:48 sbox left 15:49 stevan_ left
timotimo i'm trying to write up a test for rt.perl.org/rt3/Ticket/Display.html?id=81974 that is sensible. when i do my $fail = try { .say for (0, {last if $^a==$^b; (1..5).pick} ... *) }; i get an X::AdHoc for "not enough positional arguments". should I create a new typed exception for positional argument count mismatch, throw it for this error message and test for it to be returned? 15:50
(otherwise, this bug seems semi-fixed)
which it seems like moritz++ already noticed in may
alternatively, i could check is try { ... } ~~ X::AdHoc, but that doesn't seem right to me. 15:51
er, probably better to check against Exception (is that X::Exception?)
FROGGS no, just Exception 15:52
checking against X::AdHoc isnt ideal because you dont know what exception it is
timotimo so in what way does it check that the error message is helpful?
jnthn It'd be nice to have a typed exception here
FROGGS so, creating a new typed one and checking for that should be the right 15:53
jnthn But it means twiddling C code to make it construct/throw one.
timotimo i didn't compile an old enough rakudo, but it would seem i would have gotten an Exception there, too.
what, C code?
i didn't sign up for that! ;)
jnthn timotimo: Yes, becasue the signature binder is written in C :)
FROGGS hehe
jnthn It's one of the few small parts that are :)
timotimo well, if there's example code for constructing and throwing exceptions, i guess i could somehow do it 15:54
dalek kudo/stdier: 2ac61b5 | jnthn++ | src/Perl6/ (2 files):
Start recording mystery symbols.

Factored in a similar way to %*MYSTERY in STD. However, it keyed just on name. This isn't quite enough, as it fails to distinguish the same names in different scopes, meaning mysteries can be resolved wrongly. To avoid this, we'll try keying on name and scope ID in Rakudo, so we collect together obvious dupes, but hopefully can get righter results.
Information not used for anything just yet.
jnthn timotimo: I think moritz and I had the idea of punting the real construction to Perl 6, and just having a special hash of handlers somewhere that we just invoke with arguments.
timotimo okay, that's way too internalsy for me at this point. 15:55
jnthn Not sure there's any good examples yet, as a result...
Yeah, there's nothing I can really point you at and say "copy this" yet.
timotimo i'll look at another bug then :) 15:56
not like there aren't enough old bugs
rt.perl.org/rt3/Ticket/Display.html?id=81058 - this one got even worse, now i get a null PMC access error :D
jnthn huh? 15:57
r: class A is A {}; say A.new 15:58
p6eval rakudo cf2761: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<is>'; none of these signatures match:␤:(Mu:U $child, Mu:U $parent)␤:(Attribute:D $attr, :rw(:$rw)!)␤:(Attribute:D $attr, :readonly(:$readonly)!)␤:(Attribute:D $attr, :box_target(:$box_target)!)␤:(Routine:D $r, …
jnthn r: class A { also is A; }; say A.new 15:59
p6eval rakudo cf2761: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 89215 (src/gen/CORE.setting.pir:42832) (src/gen/CORE.setting:9270)␤called from Sub 'compute_mro' pc 7898 (src/gen/perl6-metamodel.pir:3866) (src/gen/Metamodel.pm:755)␤called from Sub 'mro' pc 923…
jnthn Whee
timotimo oh? in that case i must have a broken perl6 interpreter locally?
jnthn That'd be odd
Oh
I can reproduce the NPMCA...but only at the REPL
timotimo ... or that :) 16:00
jnthn mebbe I can do something about that error...but wanna get this mystery work done first 16:01
moritz \o
phenny moritz: 13:07Z <jnthn> tell moritz stdier now gets sorry/worry much more correct and introduces the X::Comp::Group we discussed. Review welcome, as is help triaging the few test regressions. :)
16:02 stevan_ joined, Chillance joined
moritz I guess I'll teach throws_like to look into X::Comp::Group objects 16:02
jnthn moritz: +1. There are thankfully few failures, but I suspect they may increase when we start worrying about unused variables.
Not sure if I get that in this side of the release or not. 16:03
timotimo htop 16:04
... nope, not in the irc chat! :D
moritz jnthn: I think X::Comp::Group should do X::Comp 16:05
16:05 anuby_h joined
jnthn moritz: I pondered it then felt it was wrong because X::Comp implies a bunch of properties 16:06
moritz hm, or maybe not
jnthn moritz: And we don't set them.
I can sorta see why we want it for the label 16:07
16:07 anuby_h left
jnthn But we don't have the various attrs 16:07
Since it's not really an exception so much as a container of them...
moritz maybe in the long run, it needs to be split into two roles
jnthn Yeah, I pondered that, but it wasn't immediately obvious how that'd work.
Mostly from a naming point of view.
moritz same here 16:08
I'd say we go along as it is right now
jnthn wfm
moritz and maybe in time the right solution becomes obvious
hoelzro I updated my advent post for tomorrow if anyone wants to review it 16:14
masak good evening, #perl6. 16:15
jnthn welcome back, masak 16:16
hoelzro o/
jnthn moritz: I'm working on mystery at the moment. I'm thinking of adding a typed exception that captures the various problems. Or would you prefer we have multiple of them? 16:17
moritz: It categories them into post-declared types, undeclared probably-types (upper case first char) and undeclared probably-routines. 16:18
moritz jnthn: sounds like one or more subclasses from X::Undeclared 16:23
but I don't have a good feeling whether one or more should be there 16:24
jnthn Yeah 16:27
std: foo
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:00 41m␤»
jnthn std: foo; bar
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'bar' used at line 1␤ 'foo' used at line 1␤Check failed␤FAILED 00:00 41m␤»
jnthn That's how STD does it 16:28
std: foo; bar; Baz.new
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Baz' used at line 1␤Undeclared routines:␤ 'bar' used at line 1␤ 'foo' used at line 1␤Check failed␤FAILED 00:00 41m␤»
jnthn std: foo; Bar.new; Baz.new; class Baz { }
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Illegally post-declared type:␤ 'Baz' used at line 1␤Undeclared name:␤ 'Bar' used at line 1␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:00 42m␤»
16:28 stevan_ left
jnthn Those're the 3 categories 16:28
Guess I do it as a single exception for now. 16:29
16:29 stevan_ joined
dalek ast: b5ce7a2 | (Timo Paulssen)++ | S05-transliteration/trans.t:
added a small test case for RT #83766
16:31
jnthn What on earth is an unk? 16:39
my %unk_types;
moritz unknown types
jnthn Oh, UNKown! 16:40
*UNKnown
heh, why'd I not see that :)
moritz phenny: de en "unke"?
phenny moritz: "toad" (de to en, translate.google.com)
moritz
.oO( toad types )
.oO (timTOADy :-) 16:41
jnthn :D
benabik uncle types? 16:43
masak use TOAD_TYPING;
phenny: sv en "unken"? 16:44
phenny masak: "stale" (sv to en, translate.google.com)
jnthn phenny: "unk"? 16:45
phenny jnthn: "unk" (en to en, translate.google.com)
jnthn aww :)
jnthn hoped for a funny mystery word :)
16:46 stevan_ left
masak grondilu: re 'No solution' vs 'No solutions', I think both are correct. I did stop and think before choosing the latter. 16:47
grondilu: if I hadn't allowed multiple solutions, I would probably have gone with 'No solution'.
16:52 stanley left
masak sorear: would you be interested in me compiling a list of features that p6cc2012 contestants use that make a solution work in Rakudo but not in Niecza? 16:53
hm, because of possible conflicts of interest, I can't share it with you until 2013-01-18 :)
jnthn masak: I'd be interested in one that works the opposite way around, fwiw.
masak but I could build it as solutions come in.
16:54 stanley joined
masak jnthn: noted. will do. 16:54
16:58 bbkr_ joined 16:59 bbkr__ left 17:03 marloshouse left 17:05 marloshouse joined
[Coke] ] 17:15
~.
masak [Coke]: ]: command not found 17:16
[Coke]: ~.: command not found 17:17
jnthn r: ]
p6eval rakudo cf2761: OUTPUT«===SORRY!===␤Unexpected closing bracket␤at /tmp/OoqF_vpWNl:1␤------> <BOL>⏏]␤»
jnthn :)
17:20 benabik left
timotimo what do i have to look for to find the .perl method for Pair? 17:21
jnthn timotimo: Start in src/core/Pair.pm, if it's not in there it may be inherited (src/core/Enum.pm iirc) 17:22
masak .oO( because pairs are totally a kind of enum )
timotimo thanks :) 17:23
there it is, that was so easy i didn't even think of it 17:24
jnthn r: if Pair ~~ Enum { say "Sure they are, masak" }
p6eval rakudo cf2761: OUTPUT«Sure they are, masak␤»
masak grr
well, I guess all languages have their quirks.
timotimo is trying to make (0 => 1) => 2 .perlify correctly 17:25
my first attempt is to see if .key ~~ Pair, because if that's the case, it would have to be parenthesized, but that may not be enough yet 17:26
> (((0 => 1) => 2) => 3).perl, (0 => 1 => 2 => 3).perl --> ((0 => 1) => 2) => 3 0 => 1 => 2 => 3 17:29
jnthn timotimo: I'd check ~~ Enum 17:31
timotimo i'ven't done anything with Enum in perl6 before. should it do the same check, too?
17:31 benabik joined
jnthn timotimo: Enum is for immutable pairs, and I guess if they .perl the same way they you shoudl check them the same way 17:32
Just checking .key ~~ Enum rather than .key ~~ Pair should be sufficient.
timotimo yup, i'll move the code back to Enum.perl then
i guess i should write some tests to make sure the .perl does correct parens? 17:33
17:35 stevan_ joined 17:36 kivutar joined 17:48 SamuraiJack left
dalek ast: d925c3a | (Timo Paulssen)++ | S05-transliteration/trans.t:
forgot to bump up the plan
17:49
17:51 SamuraiJack joined 17:56 benabik left
dalek ast: 70d13c4 | (Timo Paulssen)++ | S05-transliteration/trans.t:
i heard testing your tests before commiting helps ...
18:01
timotimo n: (0 => 1) => 2 18:08
p6eval niecza v24-12-g8e50362: ( no output )
timotimo n: say ((0 => 1) => 2).perl
p6eval niecza v24-12-g8e50362: OUTPUT«0 => 1 => 2␤»
18:08 mtk left
dalek kudo/stdier: dcc1f94 | jnthn++ | src/core/Exception.pm:
Add X::Undeclared::Symbols for reporting mystery.
18:09
kudo/stdier: 72118ee | jnthn++ | src/Perl6/ (2 files):
Use %*MYSTERY to report [un|post]declared symbols.

Means we can correctly report post-declared types and give better output, much closer to how STD has it. A couple of regressions in spectest.
18:09 benabik joined
jnthn dinner, bbl 18:15
FROGGS jnthn: is there a way to get the classes, roles, modules and packages that are defined in a given file? 18:24
I wanna make a mapping, so that I get for example: { "Foo" : "lib/Foo.pm", "Foo::Bar" : "lib/Foo.pm" } 18:26
timotimo on a mildly related note: could perl6 --doc be made to search for libraries as well as files in the current directory? i'd like to do something like perl6 --doc Test 18:28
benabik +1
FROGGS timotimo: what about: PERL6LIB=. perl6 --doc Test 18:29
timotimo that's the wrong way around :) 18:30
FROGGS ahh, so it already just uses the current dir?
timotimo i'd like to not have to search for Test.pm and use the full path
yes, exactly
FROGGS ahh, my fault
timotimo is there some inspection that gives me the filename the module was loaded from? in python i could just import Test; help(Test); 18:31
FROGGS I dont know, but I am very interested in this 18:32
moritz r: use Test; say %*INC<Test>; 18:36
p6eval rakudo cf2761: OUTPUT«postcircumfix:<{ }> not defined for type Failure␤ in method gist at src/gen/CORE.setting:10199␤ in sub say at src/gen/CORE.setting:7476␤ in block at /tmp/yr4DuTvQtb:1␤␤»
moritz hm 18:37
there's a lexical %modules_loaded in Perl6::ModuleLoader 18:38
FROGGS r: use Test; say %*CUSTOM_LIB<Test>;
moritz but it's not exported in any way
p6eval rakudo cf2761: OUTPUT«Any()␤»
moritz nah, that's only related to the search path
18:38 SamuraiJack_ joined 18:41 SamuraiJack left
jnthn FROGGS: Well, there's looking at what it exports... 18:43
timotimo hah, GGE.
i'm looking at an old bug that requires GGE for a test case, but GGE won't compile any more 18:44
and GGE is pretty amusing
FROGGS jnthn: how do I do that? eval the file? but how to get the exports?
18:45 jerome left, hoelzro is now known as hoelzro|away
jnthn FROGGS: Yeah, that's what I'm not sure about. I mean, the module loader gets hold of the module's UNIT and then can look at EXPORT and GLOBALish 18:45
I'm not sure we've a way from userspace to say "load this thing as a mdoule and give me UNIT" 18:46
timotimo so, should i commit the code that makes pairs and enums .perl correctly with parens if needed and mark the RT with "testneeded"? or can you tell me where tests for that behavior fit in the spectest directory tree? 18:47
jnthn timotimo: S02-types/nested_pairs.t seems like one could option 18:48
Rotwang hi, is this github.com/perl6/book still developed? 18:49
or written or whatever
timotimo thanks!
Rotwang: occasionally there are issues and patches that are put in, but there's not much active development at the moment (see the commit history)
Rotwang yeah I noticed, but there is no better alternative 18:50
except for jumping around google
masak the perl6/book effort has stalled, yes. 18:52
18:54 mtk joined 18:58 jerome joined
timotimo t.h8.lv/0001-properly-.perl-nested-...airs.patch - would like to have this committed to the rakudo nom branch 18:58
dalek ast: 0296255 | (Timo Paulssen)++ | S02-types/nested_pairs.t:
test for left-nested pairs and .perl method
18:59
jnthn std: sub foo { }; foo:bar; 19:00
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'foo:bar' used at line 1␤Check failed␤FAILED 00:00 42m␤»
19:02 cognominal joined 19:04 quester joined
moritz nr: my $p = a => 2; say value %p 19:06
p6eval niecza v24-12-g8e50362: OUTPUT«===SORRY!===␤␤Variable %p is not predeclared at /tmp/X7Op3F7QSA line 1:␤------> my $p = a => 2; say value ⏏%p␤␤Undeclared routine:␤ 'value' used at line 1␤␤Potential difficulties:␤ $p is declared but not used at /tmp/X…
..rakudo cf2761: OUTPUT«===SORRY!===␤Variable %p is not declared␤at /tmp/zns0Z4CN6G:1␤------> my $p = a => 2; say value %p⏏<EOL>␤»
moritz nr: my $p = a => 2; say value $p
p6eval rakudo cf2761: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&value' called (line 1)␤»
..niecza v24-12-g8e50362: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'value' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /ho…
masak how does one know whether a method has a corresponding sub form in Perl 6? 19:08
moritz if it's a built-in sub in Perl 5, it has a sub form in Perl 6 19:10
nr: say values { a => 1, b => 0 }
p6eval rakudo cf2761, niecza v24-12-g8e50362: OUTPUT«1 0␤»
19:14 benabik left 19:17 aindilis` left 19:22 benabik joined
dalek ast: 7bec724 | jnthn++ | S02-literals/sub-calls.t:
Correct a test with non-STD expectations.
19:26
ast: a836740 | jnthn++ | S02-magicals/sub.t:
Toss a wrong test.
ast: f572ea5 | jnthn++ | S02-types/sigils-and-types.t:
Correct some long-broken tests.

Spotted 'cus mystery implementation makes them die, not just fail.
ast: 6a4a651 | jnthn++ | S11-modules/importing.t:
&foo now causes compile time error if undefined.
kudo/stdier: 2a36be0 | jnthn++ | src/core/Exception.pm:
Make sure .message works as well as .gist.
19:28
jnthn timotimo: Have grabbed it; will look in a little bit (just tracking down some fails in stdier branch at the moment) 19:29
timotimo jnthn: thanks :) 19:30
19:30 xilo_ left
jnthn std: my $! 19:32
p6eval std a8bc48f: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $! (see line 1) at /tmp/sX61C6HmTY line 1:␤------> my $!⏏<EOL>␤ok 00:00 41m␤»
jnthn std: /<[a-z]>/ 19:35
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Unsupported use of - as character range; in Perl 6 please use .. (or \- if you mean a literal hyphen) at /tmp/CYqp6yJYXa line 1:␤------> /<[a-z⏏]>/␤Parse failed␤FAILED 00:00 42m␤»
19:36 popl joined
jnthn std: my @a; my @a 19:38
p6eval std a8bc48f: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable @a (see line 1) at /tmp/GXfs_ODni4 line 1:␤------> my @a; my @a⏏<EOL>␤ok 00:00 42m␤»
jnthn r: my $foo does &Int 19:40
p6eval rakudo cf2761: OUTPUT«Cannot use 'does' operator with a type object.␤ in sub infix:<does> at src/gen/CORE.setting:12063␤ in block at /tmp/CPgOTi24xy:1␤␤»
jnthn std: my $foo does &Int
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Invalid role name at /tmp/wxcxFz7RhS line 1:␤------> my $foo does ⏏&Int␤ expecting typename␤Parse failed␤FAILED 00:00 41m␤»
timotimo i wonder if optimising "if $my-really-quite-long-string.index("maybe in there or maybe not") < 20 { say "it's near the beginning!" }" to lazily break off the search after 20 characters would be of any value whatsoever 19:42
19:42 fgomez left 19:56 cognominal left 19:57 cognominal joined
dalek ast: c8c7505 | jnthn++ | S02-names-vars/varnames.t:
Align test with STD.
19:58
ast: a52f2b3 | jnthn++ | S32-exceptions/misc.t:
A few minor tweaks for stdier.
kudo/stdier: 0793547 | jnthn++ | src/Perl6/Grammar.pm:
Missing return values.
20:00
kudo/stdier: 62a696f | jnthn++ | src/Perl6/Grammar.pm:
Remove unrequired space.
kudo/stdier: a03049e | jnthn++ | src/Perl6/Grammar.pm:
Move a sorry back to a panic for now.

Follow-up error actually seems to be worse, and STD spits internal errors on a program just containing "@" anyway.
jnthn moritz: Triaged all the things :) 20:02
moritz: Without having to get throws_like updated, but it's probably still a good idea...
dalek Heuristic branch merge: pushed 16 commits to rakudo/nom by jnthn 20:03
20:06 cognominal_ joined, kaare__ joined
jnthn Aside from the better errors, the above merge does two things of note... 20:06
1) &foo is now an error if you didn't declare foo some time. Just like in STD, and as promised in the deprecations notice put out last release. 20:07
masak \o/
jnthn 2) my $a; my $a; is just a warning now, not an error, like STD too.
20:07 cognominal left
masak \o/ 20:07
jnthn++
jnthn Main error message change is that you can now get multiple errors out.
If the first issue doesn't bust the parse, but is just wrong, it keeps going. 20:08
20:08 kaare_ left, stevan_ left
jnthn r: A.new; class A { } # it also gets this one better 20:09
p6eval rakudo cf2761: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&A' called (line 1)␤»
masak std: A.new; class A { } 20:11
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Illegally post-declared type:␤ 'A' used at line 1␤Check failed␤FAILED 00:00 42m␤»
dalek kudo/nom: 5fd9c03 | (Timo Paulssen)++ | src/core/Enum.pm:
properly .perl nested Enums/Pairs
20:12
20:12 xinming_ joined
jnthn masak: yeah, locally get same as STD. Just evalbot didn't rebuild yet :) 20:12
masak nodnod 20:14
moritz jnthn: (re without updating throws_like) I kinda hoped so, because the tests try very hard to fail only one way, so they never accidentally test the wrong thing
oh, and jnthn++ 20:15
jnthn moritz: Yeah, they're pretty good at it. I'm impressed :)
20:15 xinming left
moritz writes "experienced with dying exactly the right way" on his CV :-) 20:16
masak "mortal exactitude" 20:17
"fatal precision"
"necrotargeting"
moritz masak++ # necrotargeting 20:18
jnthn :D
dalek kudo/nom: 4bfab5a | jnthn++ | docs/ROADMAP:
Remove completed item.
20:19
kudo/nom: 10ced2a | jnthn++ | docs/ChangeLog:
Update ChangeLog.
masak someone might want to write a patient, clear answer to www.reddit.com/r/programming/commen...st/c7hj33d
if I tried, it'd come out "oh, *release* and *promote*! why didn't we think of that!", which is less-than-productive :) 20:20
20:20 lawrmcfa joined
masak lawrmcfa: yo. 20:20
jnthn masak: "We do both." 20:21
20:22 quester left
masak that's actually good. 20:22
masak replies that
jnthn Promotion should be proportional to what's on offer. Organizing a coding contest and the advent calendar are the right kind of promotion for where the product is currently at.
Going to big companies saying "use Perl 6 now!" is premature.
masak www.reddit.com/r/programming/commen...st/c7hk299
dalek ast: e14a5fe | (Timo Paulssen)++ | S04-declarations/my.t:
unfudge redeclaration spectests for rakudo
20:23
jnthn timotimo: ah, you just beat me to those :)
timotimo ha! :D
so, if perl6 is an mmorpg, was that a killsteal? :] 20:25
masak :D 20:26
20:30 cognominal_ left, cognominal joined, aindilis joined
moritz jnthn: t/spec/integration/error-report.rakudo fails a test 20:31
20:32 jerome left
moritz and it's legit 20:32
perlpunks.de/paste/show/50ce2ffe.6844.2ff 20:33
it reports line 1 for the undeclared routine
20:36 cognominal left 20:38 kivutar left 20:42 kivutar joined
jnthn moritz: hmmm 20:43
moritz: lemme guess, it's an #icu test...
moritz it is
(which is why I regularly run spectests even though I know you do too :-) 20:44
20:44 kurahaupo joined, jerome joined, cognominal joined
jnthn moritz: hm, that line number really is wrong... 20:47
oh, duh, I fail it
r: class A { method m() { say $!x } } 20:50
p6eval rakudo a03049: OUTPUT«===SORRY!===␤Attribute $!x not declared in class A␤at /tmp/W8dKldyJek:1␤------> class A { method m() { say $!x⏏ } }␤»
20:50 kivutar left
diakopter r: class A { method m() { say $.x } } 20:51
p6eval rakudo a03049: ( no output )
lichtkind moritz: any comments?
phenny lichtkind: 09:59Z <moritz> tell lichtkind not a bug
masak :)
timotimo the evalbot automatically compiles new rakudos whenever a push to github happens? 20:52
jnthn Well, there we go then
masak timotimo: no, every half hour.
timotimo ah, ok
jnthn diakopter: That case is different 'cus it's a method call
masak (if needed)
moritz lichtkind: it's the :g that makes rakudo not set $/, not the m
jnthn r: A.new; class A { }
p6eval rakudo a03049: OUTPUT«===SORRY!===␤Illegally post-declared type:␤ A used at line 1␤␤»
moritz lichtkind: that's because m:g returns a List, and $/ always contains a Match, not a List
jnthn yay
20:53 kivutar joined 20:54 [Muffins] joined
dalek kudo/nom: 7fd7073 | jnthn++ | src/Perl6/Grammar.pm:
Fix line numbers in explain_mystery.
20:54
jnthn moritz: Mebbe that helps 20:55
lichtkind moritz: but this should be bug
r: "123.234" ~~ m:g/d+/;
p6eval rakudo a03049: ( no output )
lichtkind r: $_ = "123.234"; say m:g/d+/; 20:56
p6eval rakudo a03049: OUTPUT«␤»
lichtkind hm
somewhere her was a bug yesterday
masak hoelzro|away: how's the advent post coming along? everything ready? 20:58
heh. "Gather and coroutines being equal in power, hopefully -- tadzik". I like the "hopefully" :P
moritz nr: $_ = "123.234"; say m:g/d+/;
p6eval niecza v24-12-g8e50362: OUTPUT«===SORRY!===␤␤Regex modifier g not yet implemented at /tmp/XftQd0J_SV line 1:␤------> $_ = "123.234"; say m:g⏏/d+/;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) …
..rakudo a03049: OUTPUT«␤»
jnthn Is that about "equal in power" or the post? ;)
lichtkind r: say "123.234.345.456" ~~ m:g/(\d)+/ 20:59
p6eval rakudo a03049: OUTPUT«False␤»
lichtkind thats the bug
moritz I wonder why that say() is empty
lichtkind r: say "123.234.345.456" ~~ m:g/(\d+)/
p6eval rakudo a03049: OUTPUT«False␤»
moritz lichtkind: that one is a specbug, and long known
20:59 Rotwang left
jnthn r: my $x = m:g/(\d+)/; say $x 20:59
p6eval rakudo a03049: OUTPUT«No such method 'match' for invocant of type 'Any'␤ in block at /tmp/rkPyNdWstz:1␤␤»
jnthn r: $_ = "123.234.345.456"; my $x = m:g/(\d+)/; say $x
p6eval rakudo a03049: OUTPUT«123 234 345 456␤»
moritz m:g// returns a list, and the string smart-matches falsly against the list
jnthn r: $_ = "123.234.345.456"; say m:g/(\d+)/; 21:00
p6eval rakudo a03049: OUTPUT«123 234 345 456␤»
moritz jnthn: yes, fixed the test
jnthn r: $_ = "123.234.345.456"; say m:g/\d+/;
p6eval rakudo a03049: OUTPUT«123 234 345 456␤»
moritz r: $_ = "123.234"; say m:g/d+/;
p6eval rakudo a03049: OUTPUT«␤»
moritz so, what's the difference?
jnthn moritz: d+
moritz oh 21:01
jnthn I missed it too :)
moritz yes :-)
rakudo++
21:02 [Muffins] left 21:04 GlitchMr left, kivutar left, popl left 21:13 SamuraiJack__ joined 21:15 Rotwang joined 21:16 SamuraiJack_ left
dalek ast: a6eefb3 | moritz++ | S0 (2 files):
unfudge some now-passing tests for rakudo
21:18
21:19 stevan_ joined
tadzik masak: yeah, hopefully I have most of it done :) 21:19
if you want to take a look, I'd be delighted
(good evening #perl6)
21:20 [Cupcakes] joined
masak tadzik! \o/ 21:22
21:23 stevan_ left
tadzik masak! \o/ 21:24
jnthn o/ tadzik 21:26
moritz bootstraps panda with ufo
tadzik \o
moritz: why so?
moritz tadzik: because the bootstrapping procedure fails on the qast-sink-1 branch
tadzik: and I want to narrow it down to a smaller scope 21:27
tadzik hm, interesting
sorear good * #perl6
tadzik hi sorear
masak sorear! \o/
moritz tadzik: and more interesting, it doesn't report any errors, just doesn't copy the files
nor does it even create the lib/ dir
sorear masak: I would be interested in such a list :D
tadzik bah
it's probably wrong in some Perl 6 sink context way :) 21:28
moritz probably :-)
tadzik and it worked before because the implementation was wrong, or something
moritz or rakudo is wrong :-)
masak sorear: consider yourself getting one, then :)
tadzik so I get to learn how sink context works :P
jnthn Would be good to know which :)
moritz hah, two tests files fail in panda
jnthn o/ sorear
tadzik yay, tests
moritz jnthn: that's what I'm trying to find out :-)
tadzik btw, anyone coming from the US to EU somewhere in the upcoming months? 21:29
21:29 stevan_ joined
moritz perl6 -Ilib t/panda/builder.t 21:29
1..6
Compiling lib/foo.pm
Error while reading from file: Unable to open filehandle from path 'lib/foo.pm'
tadzik huh 21:30
indir() failing?
but it did find it
I'll checkout the branch
moritz I'll merge nom first 21:31
dalek Heuristic branch merge: pushed 25 commits to rakudo/qast-sink-1 by moritz
moritz done :-)
timotimo r: ((1 => 2) => 3).perl.say; (1 => 2 => 3).perl.say 21:33
p6eval rakudo 7fd707: OUTPUT«(1 => 2) => 3␤1 => 2 => 3␤»
timotimo \☺/
jnthn timotimo++ 21:34
masak \(o => o)/ 21:35
ship it!
jnthn
.oO( celebrating somebody twisting my nose sideways? )
moritz tadzik: found the problem
jnthn masak: We do. :P
moritz tadzik: indir works, but the last statement within is a for-loop
jnthn masak: Or in this csae, you do :) 21:36
moritz tadzik: and that is now lazy
masak jnthn: d'oh!
moritz tadzik: so it returns an empty list from indir, and reifies it on the outside
on the outside of indir
tadzik beh
moritz so indir has already reverted to the old working dir
tadzik hm
jnthn r: say "@b[]" 21:37
p6eval rakudo 7fd707: OUTPUT«Null PMC access in find_method('postcircumfix:<[ ]>')␤ in block at /tmp/jCucFrtFB0:1␤␤»
jnthn Guess I should try and fix this one too... 21:38
masak huh, there's *another* reddit thread going on... www.reddit.com/r/perl/comments/14w7...g_contest/
21:40 [Cupcakes] left 21:41 [Cupcakes] joined, [Cupcakes] left, [Cupcakes] joined, [Cupcakes] left
moritz funny how that Perl 6 trolling doesn't make me angry anymore 21:42
21:42 [Cupcakes] joined, [Cupcakes] left
masak now that you mention it, same here. 21:42
21:42 [Cupcakes] joined, [Cupcakes] left
moritz do all panda tests pass on rakudo/nom ? 21:42
masak I'm like, "vaporware", really? 2005 called and they'd like their somewhat justified slander back.
Su-Shee masak: just ignore it. people re-chew and re-iterate all perl and perl 6 cliches every other day.. 21:43
spider-mario_ that vaporware sentence is new, I think
masak yeah, I know.
spider-mario_: hardly.
spider-mario_ it wasn’t there when I downvoted it minutes ago
timotimo silly me, i check for a Pair in Enum.perl, not for an Enum. t.h8.lv/0001-.perl-Enums-correctly-too.patch - could this get into rakudo-nom, too, please?
spider-mario_ I mean in the message
Su-Shee spider-mario_: ah you mean the posting and not the argument ;) 21:44
masak if there's anything that annoys me, it's being associated with unicorns. it's the Ruby people who are obsessed with unicorns, not us! :P
tadzik well, I replied there anyway :)
21:44 spider-mario_ is now known as spider-mario
masak tadzik: nice comment. seconded. 21:45
21:45 kaare__ left
Su-Shee there's only one way out of this anyways and that's to write a must-have everybody-uses-it application at some point or be invaluable to use on subject X and without real alternative... 21:45
masak many of our courses secretly monetize Perl 6 in various ways :)
tadzik I'm no longer able to say that I got more money for hacking Perl 6 than Perl 5 though :0 21:46
araujo should try to compile latest rakudo in his netbook to see if it works now
Su-Shee I'm going to snug some Perl 6 into an article or two..
masak Su-Shee: I wouldn't mind a killer app, but "excellent libraries" doesn't sound so bad either.
dalek nda: 2529075 | moritz++ | lib/Panda/ (2 files):
make panda sink-proof

in particular indir { for { ... } } fails on rakudo/qast-sink-1, because for is now lazy, and thus a lazy list is returned from indir. The list is reified outside of indir, thus with the wrong working directory
Su-Shee masak: that would fall into the category "invaluable and without real alternatives" :) 21:47
masak well, sometimes invaluable, sometimes just very nice.
spider-mario araujo: works rather flawlessly on mine
Su-Shee masak: or "paving the way" helps too. like e.g. DBI did
spider-mario nice work on the error messages btw :)
moritz dammit, didn't quite fix panda 21:48
the tests now pass
araujo spider-mario, I used to get an error before, will try now ...
moritz but it didn't install itself :(
21:49 hoelzro|away is now known as hoelzro
moritz must go to bed now, and debug tomorrow :/ 21:50
araujo moritz, night o/ 21:51
hoelzro masak: it's ready to roll
jnthn 'night, moritz
moritz o/
hoelzro it's queued up in WP
masak hoelzro: nice. 21:52
hoelzro I'm not sure what definition of "00:00" WP uses, though 21:53
feel free to look the post over beforehand, though =)
where can the source for the JS version of NQP found? 21:55
21:56 rindolf left
tadzik github/pmurias/rakudo-js I think 21:58
hoelzro ah ha
tadzik++ 21:59
masak 'night, #perl6
hoelzro o/ masak
araujo masak, night o/
japhb o/ 22:00
22:04 SamuraiJack__ left
pmurias hoelzro: yes 22:05
hoelzro pmurias: I want to see what black magic you use to get this done ;) 22:06
pmurias it's not yet done ;)
22:06 cognominal left
pmurias hoelzro: if anything is confusing mention it and i'll try to explain/clean it up 22:07
hoelzro pmurias: I'm just poking around for now, but I'll let you know!
dalek kudo-js: bb7c570 | (Paweł Murias)++ | / (2 files):
[nqp] interoplate scalars (containing text) in regexes
22:08
pmurias hoelzro: does it build on your machine?
hoelzro pmurias: haven't even tried yet; standby
well, make didn't fail =) 22:09
pmurias ./run_tests then 22:10
jnthn should see if it can build/run on Windows at some point :) 22:11
hoelzro ok, ./run_tests is *not* happy! 22:12
hoelzro investigates
22:13 rindolf joined
pmurias hoelzro: nopaste errors? 22:14
hoelzro incoming
oh, I figured out why 22:15
pmurias why? 22:16
hoelzro I hadn't cloned nqp to ../ =P 22:17
[Coke] How do you add a member to a set?
hoelzro ok, only 11-sub.t failed!
pmurias hmm, strange 22:19
what nqp do you have?
hoelzro latest from git 22:20
or do you mean installed?
pmurias installed
(both are relevant ;)
hoelzro 2012.11 is installed 22:21
../nqp is latest from Git
pmurias same as here
how does the test fail?
hoelzro TypeError: Object #<Object> has no method 'isinvokable' 22:22
pmurias you could nopaste nqp bin/nqp-js.nqp ../nqp/t/nqp/11-sub.t
ah, reproduced the error 22:24
I didn't have the latest nqp revision and the tests changed ;)
hoelzro ah, ok =) 22:25
22:26 Rotwang left
bbkr_ rakudo: print now.WHAT 22:27
22:27 yakshavr left
p6eval rakudo 7fd707: OUTPUT«use of uninitialized variable $v of type Instant in string context in block at /tmp/vPks5sMJeI:1␤␤» 22:27
bbkr_ hm, interesting 22:28
rakudo: say now.WHAT
22:28 rindolf left
p6eval rakudo 7fd707: OUTPUT«Instant()␤» 22:28
bbkr_ reports
jnthn bbkr_: print calls Str, say calls gist
bbkr_: So it's not surprising they're different. 22:29
22:29 rindolf joined
bbkr_ oh, new thing i've just learned :) 22:29
jnthn The spurious $v is a problem though.
pmurias nqp: say nqp::isinvokeable(sub() {})
p6eval nqp: OUTPUT«Confused at line 2, near "say nqp::i"␤current instr.: 'panic' pc 13221 (src/stage2/gen/NQPHLL.pir:4682) (src/stage2/gen/NQPHLL.pm:328)␤»
bbkr_ jnthn++ #explaining things
pmurias nqp: say(nqp::isinvokable(sub() {}))
p6eval nqp: OUTPUT«1␤»
22:29 PacoAir left, yakshavr joined
pmurias jnthn: is that correct? 22:29
jnthn: say( (!nqp::isinvokable(sub() {}) ?? 'ok 13' !! 'no 13' ) ~ ' nqp::isinvokable on sub'); 22:30
jnthn pmurias: believe so
though probably shoudl be not ok 13
22:30 stevan_ left
pmurias jnthn: so the test is incorrect? 22:31
jnthn: should i fix that?
jnthn er, wtf...yes, that test looks backwards.
pmurias: yes, please feel free to fix. 22:32
pmurias it seems to test for *incorrect* behaviour ;)
tadzik argh, fixed panda 22:33
pmurias rebuilds nqp to run the test
tadzik I'm not friends with sink context now
pmurias hoelzro: thanks for building nqp-js, portability to the first few computers is always tricky 22:34
hoelzro pmurias: what platform do you develop on?
tadzik I put 'return' and the end of my sub and suddenly stuff works
that's not quite The Least Surprise thing 22:35
bbkr_ jnthn: nice post about phasers. i'll use some ideas from it in SMTP protocol implementation 22:36
tadzik maybe I just don't understand sink context, but I find it terribly counterintuitive so far :)
jnthn tadzik: I think part of the problem may be that people expect for to never be lazy even if in non-sink context. 22:37
tadzik possibly
that's correctly, I don't expect for to be lazy :)
s/ly//
I guess I can understand the reasoning 22:38
jnthn I guess it's for TimToady++ to ponder given it seems to be the main sink context thing that bites people.
tadzik my new rule of thumb: write "return" at the end of subs to be sure that they execute
jnthn hm, integrating the STD approach to var use tracking seems to have gone quite smoothly... 22:39
Gets rid of an NPMCA
dalek nda: 9d68a70 | tadzik++ | lib/Panda/Fetcher.pm:
Almost fix panda for sink context
japhb tadzik: That rule of thumb makes me scrunch up my face 22:40
dalek p: 7405897 | (Paweł Murias)++ | src/QAST/Operations.nqp:
Remove a misleading relict from pir translation.
p: ad4ae89 | (Paweł Murias)++ | t/nqp/44-try-catch.t:
Test try without an exception.
p: 7fd05c9 | (Paweł Murias)++ | t/nqp/11-sub.t:
Fix test 11.
tadzik :) 22:41
22:41 yakshavr left
japhb pmurias, Sorry that I have not gotten back to you yet re: building nqp-js under perl6-bench. I will, but sadly still working on a big unexpected task. :-( 22:41
jnthn pmurias++ # removing relics
tadzik Urban Dictionary says: scrunch – when a girls bikini bottom goes up her butt
jnthn tadzik: Try using a more...normal...dictionary :P 22:42
pmurias jnthn: test 60 fails with what appears to be differences in how numers are implemented on our computers
tadzik I usually go there for stuff that's not in google translate
japhb Hmmm. I suppose it would be somewhat accurate ... but really, scrunching describes the squeezing and wrinkling
jnthn pmurias: Is that the bigint one?
pmurias: I get fails depending on box also 22:43
22:43 yakshavr joined
pmurias pastie.org/5540604 22:43
jnthn: yes
22:48 benabik left 22:49 spider-mario left 22:51 benabik joined
pmurias jnthn: abs_n returns a double precison number or a single precision one? 22:52
jnthn All the _n are double precision
22:54 fgomez joined, fgomez left, fgomez joined
pmurias jnthn: it in the last test we have a conversion to single precision 22:55
pmurias digs deeper
jnthn: FLOATVAL is double? 23:02
jnthn pmurias: Typically 23:03
dalek p-rx: 45d4a79 | rurban++ | t/nqp/46-charspec.t:
Fix t/nqp/46-charspec.t --without-icu.

Synced from parrot efac3e16ed21387837545c991e2a7c8f5d6781df
  [parrot #874]
jnthn (bad naming, I know...)
dalek kudo/nom: 6437197 | jnthn++ | src/Perl6/ (2 files):
Align variable checking with how STD does it.

This fixes the bug where @/%/& sigil variables interpolated in strings were not checked properly, leading to NPMCA at runtime.
23:04
jnthn OK, sleep time...'night 23:05
23:08 hoelzro is now known as hoelzro|away
pmurias night 23:09
araujo nice, rakudo compiling fine now .... 23:14
23:18 wamba left 23:27 stevan_ joined, stevan_ left
[Coke] (adding to a set) the only way I've found so far is: 23:28
r: my Set $a = set(1,2,3); $a.hash<6>=1; say $a.perl
p6eval rakudo 643719: OUTPUT«set("1", "2", "3", "6")␤»
[Coke] that seems suboptimal. 23:30
kurahaupo Should "set" be a value or a container? 23:36
r: my Set $a = set(1,2,3); $a |= set(6); say $a.perl 23:37
p6eval rakudo 643719: OUTPUT«Type check failed in assignment to '$a'; expected 'Set' but got 'Set'␤ in block at src/gen/CORE.setting:2093␤ in sub AUTOTHREAD at src/gen/CORE.setting:2085␤ in block at src/gen/CORE.setting:12511␤ in block at /tmp/4T2AMD7EIt:1␤␤»
kurahaupo r: my Set $a = Set(1,2,3); $a = $a | Set(6); say $a.perl 23:38
p6eval rakudo 643719: OUTPUT«Cannot coerce object of type Capture to Set. To create a one-element set, pass it to the 'set' function␤ in sub to-set at src/gen/CORE.setting:11786␤ in method postcircumfix:<( )> at src/gen/CORE.setting:11778␤ in at src/gen/BOOTSTRAP.pm:852␤ in any at src/ge…
kurahaupo r: my Set $a = set(1,2,3); $a = $a | set(6); say $a.perl
p6eval rakudo 643719: OUTPUT«Type check failed in assignment to '$a'; expected 'Set' but got 'Set'␤ in block at src/gen/CORE.setting:2093␤ in sub AUTOTHREAD at src/gen/CORE.setting:2085␤ in block at /tmp/weizgkVSAI:1␤␤»
kurahaupo r: my Set $a = set(1,2,3); $a = $a ⋃ set(6); say $a.perl 23:39
p6eval rakudo 643719: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/RxGQy3qzpg:1␤------> my Set $a = set(1,2,3); $a = $a ⏏⋃ set(6); say $a.perl␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ …
23:50 Chillance left 23:55 swanstomp left, swanstomp joined