»ö« 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.
timotimo masak: why not <tiny small medium large huge> >>~>> " disk"; instead of map { "$_ disk" }, <tiny small medium large huge>;? 00:06
sorear gah, I missed masak 00:07
pmichaud r: say <tiny small medium large huge> X~ ' disk' 00:10
p6eval rakudo 1edbd3: OUTPUT«tiny disk small disk medium disk large disk huge disk␤»
00:14 DeltaZero joined
pmichaud although I suspect that »~» ought to be more idiomatic for this example. 00:14
00:30 tokuhirom joined 00:41 UncleFester6 joined
UncleFester6 r: (our ($a)) 00:43
p6eval rakudo 1edbd3: OUTPUT«use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤===SORRY!===␤error:imcc:Multiple declarations of lexical '$a'␤␤ i…
UncleFester6 r: our ($a) = 1 00:58
p6eval rakudo 1edbd3: OUTPUT«use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤===SORRY!===␤error:imcc:Multiple declarations of lexical '$a'␤␤ i…
sorear that's an interesting bug 01:02
01:05 scott_ joined, scott_ is now known as Guest48448 01:07 Guest12592 left
UncleFester6 sorear: ok - thx. tomorrow I'll try to file it if I can't find a duplicate. 01:19
01:26 aloha left 01:30 tokuhirom left 01:34 sudokode joined 01:46 UncleFester6 left 01:54 spaceships joined 02:06 aloha joined 02:08 sftp left 02:12 sftp joined
colomon is trying to install the Mono Framework MDK to see if that helps with his Gtk#/Glib# problems. 02:13
02:13 spaceships left, spaceships joined
colomon argh 02:14
02:24 spaceships left 02:34 araujo left
colomon argh 02:34
02:34 aindilis joined 02:50 araujo joined 03:01 araujo is now known as Guest73198 03:03 jaldhar left 03:17 jaldhar joined 03:21 Guest73198 left 03:22 araujo joined 03:23 araujo left, araujo joined, araujo left, araujo joined 03:33 adu joined 04:07 skids left 04:14 kaare_ joined, adu left 04:26 adu joined 04:32 jaldhar left 04:33 jaldhar joined 04:39 sisar left 04:42 japhb joined
moritz masak: I'd add an X::Hanoi type (role or class) and have all other X::Hanoi::* classes do it or inherit from it 04:46
masak: just so that you can catch any hanoi-related errors easily
04:56 adu left 05:03 adu joined
japhb Does Rakudo have write-to-pipe IO yet? All I can find is read-from-pipe in sub QX(), and even then that's only all-at-once reading. 05:05
If not, is there a deep reason, or is it LHF?
05:07 birdwindupbird joined
moritz japhb: well, either it needs to be supported by parrot, or you'd have to take care of cross-platform portability yourself 05:10
adu hi all 05:13
japhb moritz, it appears supported by parrot, as seen in .../parrot/t/dynoplibs/io.t 05:15
Also, are heredocs available? A quick test indicates "q:to'END'" gives a compile-time error, but perhaps the implementation and synopsis aren't using identical syntax? 05:24
05:37 DeltaZero left 05:40 kaleem joined
sorear japhb: afaik rakudo does not currently have heredocs at all 05:57
dalek ast: d80a990 | pmichaud++ | S02-names-vars/perl.t:
Add test for Str.perl with unicode characters.
06:01
kudo/nom: 16db643 | pmichaud++ | src/core/Str.pm:
Add fix for Str.perl to be more robust when ICU isn't present (RT #113886).
06:02
06:06 wtw joined 06:09 gesh joined 06:12 fhelmberger joined 06:28 adu left
moritz japhb: then it's just NYI 06:29
japhb: and probably a LHF
06:30 sftp_ joined, sftp left 06:35 adu joined 06:36 fridim_ joined
japhb moritz, That's what I'd figured. I need to get some sleep tonight, but maybe sometime this week. 06:39
06:54 fridim_ left 06:58 Khisanth left 07:00 GlitchMr joined 07:11 brrt joined 07:13 adu left 07:31 spider-mario joined 07:41 kaleem left, kaleem joined 07:42 kaleem left 07:43 kaleem joined
masak moritz: X::Hanoi -- makes sense. will do. 07:45
timotimo, pmichaud: <tiny small medium large huge> >>~>> " disk" is nicer, yes. I have no basis to choose between X~ and »~» :) 07:46
07:47 Khisanth joined
moritz masak: it also has the benefit that you can easily suppress backtraces for all your exceptions if/when you deem that a good idea :-) 07:47
masak heh.
moritz: well, I found that most of the times when I got exceptions in my development with this TDD style, I was already in a throws_exception call path, it soaked up the exception, and showed Actual/Expected. 07:48
sorear masak!
masak sorear! \o/
moritz: a *vast* improvement. if I can get line number in there somehow too it will have all I need. 07:49
moritz r: class X::Custom is Exception { method message() { 'Ooops' }; multi method gist(X::Custom:D) { self.message } }; X::Custom.new.throw
p6eval rakudo 16db64: OUTPUT«Ooops␤ in block <anon> at /tmp/CXTY79qjJs:1␤␤»
masak well, and file name, I guess.
moritz r: class X::Custom is Exception { method message() { 'Ooops' }; multi method gist(X::Custom:D:) { self.message } }; X::Custom.new.throw
p6eval rakudo 16db64: OUTPUT«Ooops␤»
moritz masak: I guess we should ship Test::Util from t/spec/packages as a pandable module 07:52
then you can use throws_like
masak hm. I *think* it makes more sense to make X::Hanoi a class, since it needs to 'is Exception'. we're "already" in the class hierarchy, so to speak.
moritz you can also have a role X::Hanoi is Exception { }
masak moritz: I copy+pasted throws_like, but I prefer my changes. you might want to merge them back, actually.
moritz: I know I can have that, but it feels harder to motivate even if it works. 07:53
moritz masak: URL?
masak to what?
moritz masak: your changed throws_like or whatever you call it
masak hold on.
github.com/masak/crypt/blob/2fecc9...pt.pl#L218 07:54
I'd say &followup? is the big change.
it felt insufficiently flexible with a hash of tests. 07:55
moritz and yet all of your uses so far would have been just fine with a hash 07:59
... except for the test message, which you further customize
masak if you're fine with your current code, then that's fine. 08:00
08:00 gesh left
jnthn Good morning o/ 08:00
masak I felt I wanted a code block there, to run arbitrary code. idea courtesy of jnthn++/nqp. 08:01
jnthn! \o/
moritz \o japhb 08:02
erm
\o jnthn :-)
masak: well, if people modify copies of throws_like because they feel it's not general enough, I should at least investigate what can/should be done 08:03
masak I confess it wasn't because I felt an immediate need, it was more on the order of "obviously this hash needs to be liberated into a callable the way I've seen it done elsewhere". 08:05
moritz tries to suppress the urge to comment on the specced IO subsystem, design astronautism and "obviously this [needs to be generalized]" 08:07
masak :)
moritz stops at the meta comment
masak yeah, I don't have any good rationale. except that I think that my tests *look* nice, and nicer than they would with the hash. 08:08
I think some of what Lisp and Smalltalk weenies are constantly trying to tell us is the following: Don't sell away the ability to do general computation too early in the running process. 08:09
in other words, pass closures (and similarly powerful constructs).
moritz in that sense, my solution is even more general -- you can pass a hash with closures as values, so you can pass *multiple* closures :-) *SCNR* 08:10
masak :P 08:11
walk & 08:13
08:18 thou left 08:23 fgomez left 08:24 sporous left 08:27 kresike joined
kresike hello all you happy perl6 people 08:28
08:29 sporous joined, preflex joined
moritz \o kresike 08:29
sorear o/ kresike 08:34
kresike moritz, sorear, o/
sorear masak: this week's problems: finishing the non-bootstrap parser design, and motivating myself to actually finish the branch D:
08:35 dakkar joined
jnthn hi, kresike 08:36
Ahh...the temperature back here in Sweden. It's so nicer :)
kresike jnthn, o/ 08:37
moritz oh noez 08:43
building URI.pm OOMs
I've limited the process to 2G of virtual memory
Compiling lib/URI.pm
Failed allocation of 98336 bytes
Parrot VM: PANIC: Out of mem!
C file src/gc/alloc_memory.c, line 142
that's new, isn't it? 08:44
jnthn Sounds like... :S 08:47
kresike it's 35C in the shade here, much nicer than Sweden I believe :) 08:50
jnthn 35C in the shade is nice?! 08:51
kresike well, nicer than the 50C in the sun :)
bonsaikitten kresike: hrm, here it's also close to 35C, but not much sun 08:52
summer at last :) 08:53
kresike here the summer has passed, the oven has come ... and will stay like this for a week at least !
moritz can anybody reproduce the hang while compiling URI.pm? 08:54
and if yes, maybe even bisect which rakudo revision caused it? 08:55
star: use URI; say 'alive'
p6eval star 2012.06: OUTPUT«(signal SEGV)»
moritz oh noez
I thought we'd fixed that :( 08:56
maybe the star installer doesn't copy stuff in the correct order
oh 09:04
I wonder if the problem is that --setting=RESTRICTED and precompilation doesn't mix well\
at least for star in p6eval 09:07
09:08 cognominal joined
moritz NOOO 09:09
it's not the compilation that hangs 09:10
panda hangs after copiling the last module
i broked it :(
09:12 domidumont joined, domidumont left 09:13 domidumont joined 09:14 bbkr joined 09:17 sisar joined
dalek c: 0ba2375 | moritz++ | lib/ (2 files):
[Any, Code] move signatures out of headlines

eventually I want to link to methods in a class like doc.perl6.org/type/Code#signature so it makes sense to have only the method name as a heading
09:17
moritz moritz.faui2k3.org/tmp/p6doc-html/List.html#roll 09:20
jnthn omg there's p6doc as html now?! 09:22
Nice!
The Items, Flattening and Sigils link doesn't work, fwiw. 09:23
09:24 wamba joined
moritz well, it's a very early draft :-) 09:25
and that's a Pod::To::HTML bug I suspect
jnthn Aye
I'm just very happy to see it; I didn't realize it was being worked on by anyone yet :)
moritz my plan for an URL schema so far is: 09:26
jnthn I should have tuits for more doc commits this week :)
moritz doc.perl6.org/foo -> list of everything named "foo" (tutorial with that name, method, sub, constant, enum, type, ...)
doc.perl6.org/type/IO::Socket::INET # for types 09:27
doc.perl6.org/routine/split # subs or methods named split
jnthn ponders if a function vs method distinction in the URL structure there is worth it 09:28
Maybe not
moritz currently we have the same body text for sub and method split 09:29
09:29 lrnperl joined 09:32 lrnperl left 09:33 lrnperl joined 09:37 lrnperl left 09:44 daxim joined
masak I opine that's a good thing. 09:47
mix them together as a name, but be clear in the article body that it's different things. 09:48
sisar gets fail for both tests in spec/S32-io/dir.t 09:50
I guess it is expected, given the recent IO changes.
moritz sisar: right, I guess I have to fix them 09:51
n: dir()
p6eval niecza v19-7-g5e25209: ( no output )
moritz n: say dir() 09:52
p6eval niecza v19-7-g5e25209: OUTPUT«.fetch-stamp .git .gitignore FETCH_URL LICENSE License-MS-PL.txt Makefile README.pod TODO VERSION boot docs examples lib main.pl obj p5test perf perl5 run simple-tests src t test.pl test2.pl test3.pl tools␤»
sisar moritz++
moritz oh, and update the spec so that niecza can follow
might take a day or two
masak ++moritz
moritz oh, niecza doesn't run that file anymore 09:54
that makes things easier
09:55 GlitchMr left, birdwindupbird left, Patterner left, telex left, drbean left, baest left, yves_ left, Ex left, apejens_ left, erkan left, nuba left, nuba joined, drbean joined, telex joined 09:56 GlitchMr joined, birdwindupbird joined, Patterner joined, baest joined, yves_ joined, apejens_ joined, erkan joined, Tene joined, pnu joined 09:58 wamba left
dalek ast: 4d11076 | moritz++ | S32-io/dir.t:
update &dir tests to current spec
10:00
10:00 Ex joined
masak wow, such divided opinions about Schwern's YAPC::NA keynote. seems there's an insider/outside gradient involved. 10:12
outsider*
10:13 Guest48448 left
daxim url? 10:17
(to the gossip, not the keynote)
masak blog.nu42.com/2012/06/dont-box-me-i...sions.html
including comments.
via szabgab's newsletter as of a week or so ago.
daxim ah oh 10:20
10:21 Patterner left
bbkr hi. is non-deterministic compilation issue (for example with URI segfaulting) solved in 2012.06? 10:38
star: use URI;
p6eval star 2012.06: OUTPUT«(signal SEGV)»
bbkr nvm :) 10:39
10:51 Psyche^ joined, Psyche^ is now known as Patterner 10:55 snearch joined 11:15 fridim_ joined
moritz bbkr: curiously URI.pm seems to work reliably when installed with panda or ufo 11:21
bbkr moritz: I want to switch JSON::RPC from own inline grammar to URI, and since it is included in Star it has to wait. 11:23
moritz bbkr: ok 11:24
r: do { LEAVE die 'foo' } 11:28
p6eval rakudo 16db64: OUTPUT«foo␤ in block <anon> at /tmp/2ppwj8ywg4:1␤ in block <anon> at /tmp/2ppwj8ywg4:1␤␤»
moritz tadzik: is there a way to get more debug output out of panda? 11:29
tadzik: it seems I (or rakudo, or so) broke panda to loop infinitely after finishing to build a module, and I'd like to find out where it loops 11:31
wanted: a feature that produces a backtrace when I send a signal to a perl6 process
I guess after building comes testing 11:32
but I've reverted to a panda revision (b97cf9f3) before I touched the tester, and it still loops :( 11:33
dalek ast: 2f0e76a | (Solomon Foster)++ | S12-construction/new.t:
Fudge for niecza.
11:37
11:46 spider-mario left 11:47 spider-mario joined 12:03 fridim_ left 12:17 xdbr__ joined
masak r: do { die "A"; LEAVE die "B" } # which die should win here? 12:49
p6eval rakudo 16db64: OUTPUT«A␤ in block <anon> at /tmp/wuuXE7vFze:1␤␤»
12:50 mucker joined
jnthn masak: Now exceptions are just pushed onto the end of a queue. 12:50
masak so the answer is [A, B]? 12:51
jnthn Oh, wait a moment...
It's a bit more subtle.
We fail to handle A 12:52
So we end up in the global catcher
Which spits out an exception
masak oh, because we haven't left the block yet at that point.
jnthn So we never get around to unwinding.
masak right.
but shouldn't we unwind before exiting the program?
I mean, shouldn't LEAVE guarantee that it gets run, even in the presence of `die`? 12:53
jnthn masak: You...want multiple backtraces? 12:55
masak: Generally, if you exit with an uncaught exception you're kinda screwed anyway.
r: do { die "A"; LEAVE die "B" }; CATCH { default { } } 12:56
p6eval rakudo 16db64: ( no output )
jnthn r: do { die "A"; LEAVE die "B" }; CATCH { when "A" { } } 12:57
p6eval rakudo 16db64: OUTPUT«B␤ in block <anon> at /tmp/Npfus_PpDj:1␤ in block <anon> at /tmp/Npfus_PpDj:1␤␤»
jnthn Works as wanted if you actually do handle it.
12:57 GlitchMr left 13:00 sisar left 13:02 PacoAir joined 13:03 sisar joined, atrodo joined
masak jnthn: LEAVE is our closest thing to the refcount going to 0, that's why it feels important. 13:10
buubot_backup: eval 42
buubot_backup masak: 42
jnthn masak: What does Perl 5 promise in terms of destruction if you have an exceptional exit, ooc? 13:11
masak buubot_backup: use 5.010; package Foo; sub DESTROY { say "cleaning up..." }; { my $foo = Foo->new() die "argh!" };
buubot_backup masak: Couldn't match input.
masak buubot_backup: eval use 5.010; package Foo; sub DESTROY { say "cleaning up..." }; { my $foo = Foo->new() die "argh!" };
buubot_backup masak: ERROR: syntax error at (eval 20) line 1, near ") die"
masak buubot_backup: eval use 5.010; package Foo; sub DESTROY { say "cleaning up..." }; { my $foo = Foo->new(); die "argh!" };
buubot_backup masak: ERROR: Can't locate object method "new" via package "Foo" at (eval 20) line 1.
masak oh, right :)
buubot_backup: eval use 5.010; package Foo; sub new { bless {} }; sub DESTROY { say "cleaning up..." }; { my $foo = Foo->new(); die "argh!" }; 13:12
buubot_backup masak: cleaning up... ERROR: argh! at (eval 20) line 1.
masak that's what I'm talking about. the DESTROY runs even when the block dies.
jnthn buubot_backup: eval use 5.010; package Foo; sub new { bless {} }; sub DESTROY { die "mwaha" }; { my $foo = Foo->new(); die "argh!" }; 13:13
buubot_backup jnthn: ERROR: argh! at (eval 20) line 1.
masak well,
r: do { die "A"; LEAVE say "oh!" } 13:14
p6eval rakudo 16db64: OUTPUT«A␤ in block <anon> at /tmp/2r5k_9ugGv:1␤␤»
masak so in Rakudo it's not a question of whether the LEAVE dies or not. it simply doesn't run.
jnthn Right. 13:17
masak TimToady: I was wrong, you were right. we once had a conversation about "" in {} in "", and I was squarely against it for parsing/highlighter reasons. I didn't think I'd ever nest things that way. 13:18
TimToady: yesterday I wrote line 9 of github.com/masak/crypt/commit/3543...48a7593ed6 and I didn't even blink.
13:25 atrodo left 13:31 skids joined
TimToady "It is a comfort not to be mistaken on all points." --Gandalf 13:32
13:33 kaleem left
masak well, Gandalf would say that. obviously instead of the plan that obviously didn't contain any weaknesses, he was aiming for the plan that didn't contain any obvious weaknesses :P 13:33
daxim Facts: masak is a mammal. masak codes ALL the time. The purpose of the masak is to flip out and advance Perl 6. Testimonial: masak codes "{event}[{map { ":{name $_}<{value $_}>" }, self.^attributes}]" ALL the time and don't even blink. 13:34
TimToady masak: security through obscurity...
masak exactly. 13:35
I think MoR:Dumbledore mentions Gandalf at some point, pointing out exactly this.
hm, MoR!Dumbledore*
daxim: it's a bit of a mouthful, but it's not really that complicated. the subs help extract out the inessentialities. 13:36
daxim: I could go one sub more and make it "{event}[{attributes}]"... 13:37
flussence the output format looks a bit squished, but that's just my personal preference :)
masak should stop saying "extract out" like *right now*
by the way, I'm about to write a CLI mode for that code, so you can all play Hanoi and play "Devastate The Adventure Game" ;) 13:38
13:39 bluescreen10 joined
masak flussence: fwiw, how would you have the format? for something like 'DiskRemoved[:disk<tiny disk>, :source<left>]' ? 13:40
masak is back, and babbling as usual :)
at least I'm on topic!
flussence is that a line of actual output? 13:41
masak from Event.Str, yes. 13:42
if you stringify a DiskRemoved object with those values, you get that. 13:43
flussence hm, I mis-ran the code in my head and it came out with no commas :)
masak oh!
sorry. yeah, comma should not be there.
w'DiskRemoved[:disk<tiny disk> :source<left>]' 13:44
s/w//
I considered putting them in, and then didn't feel they were essential.
it's more of a .gist output than a .perl output :)
timotimo perlcabal.org/syn/S03.html#Cross_operators <- how strange. on my rakudo, (<a b>; 1, 2) seems to evaluate to only 1, 2 and parcels don't have a .cross method. seems like the syn should be changed or tests added, because those desugarizations aren't tested, or at least not near that link to the test file
masak timotimo: NYI 13:46
timotimo: it treats the () as a statement list and runs through them all, evaluating to the last statement. 13:47
13:47 imarcusthis left
timotimo OK. what should it be instead, though? 13:48
13:48 imarcusthis joined
masak r: say (<a b>, (1, 2)).tree 13:49
p6eval rakudo 16db64: OUTPUT«a b 1 2␤»
masak r: say (<a b>, (1, 2)).tree.perl
p6eval rakudo 16db64: OUTPUT«LoL.new($("a", "b"), $(1, 2))␤»
masak that enough?
dalek p: f16f2c5 | jnthn++ | src/how/NQPModuleHOW.pm:
Stop nqp::can(EXPORTHOW, 'foo') from exploding by adding some missing bits to NQPModuleHOW.
timotimo well, what i was wnodering about was: what does a ; mean in this case?
[Coke] how many stringy forms do we have now? 3? (String, Perl, Gist) ? 13:50
flussence Cat?
masak [Coke]: to be fair, .Str is more of a type than a format, and it defaults to one of .perl/.gist, I forget which. 13:51
[Coke] meow.
flussence .Str is .perl iirc, and say calls .gist directly.
[Coke] masak; yes, but, to be fair, all three types can be distinct and don't have to rely on each other.
s/types/methods/
masak granted. 13:53
and yes, it's a conceptual burden in some sense.
just as the print/say distinction (beyond "\n") is a conceptual burden. 13:54
r: loop { last; LEAVE say "bye!" }; say "outside" 13:56
p6eval rakudo 16db64: OUTPUT«outside␤»
masak do we have this one on file?
closest I find is rt.perl.org/rt3/Ticket/Display.html?id=113548 13:58
masak submits rakudobug
r: for ^10 { next; LEAVE say "yay!" }; say "outside"
p6eval rakudo 16db64: OUTPUT«outside␤»
masak that, too.
n: loop { last; LEAVE say "bye!" }; say "outside"
p6eval niecza v19-7-g5e25209: OUTPUT«bye!␤outside␤»
masak n: for ^10 { next; LEAVE say "yay!" }; say "outside" 13:59
p6eval niecza v19-7-g5e25209: OUTPUT«yay!␤yay!␤yay!␤yay!␤yay!␤yay!␤yay!␤yay!␤yay!␤yay!␤outside␤»
14:02 wtw left 14:03 tyatpi joined 14:04 mucker left
masak r: class A { method x {} }; say A.^methods 14:16
p6eval rakudo 16db64: OUTPUT«x␤»
masak r: class A { method x {} }; say A.^methods[0]
p6eval rakudo 16db64: OUTPUT«x␤»
masak r: class A { method x {} }; say A.^methods[0].^methods
p6eval rakudo 16db64: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤ in method gist at src/gen/CORE.setting:4624␤ in sub say at src/gen/CORE.setting:7009␤ in block <anon> at /tmp/RFeFlR_m7o:1␤␤»
masak submits rakudobug
r: class A { method x {} }; say A.^methods[0].WHAT 14:17
p6eval rakudo 16db64: OUTPUT«Method()␤»
masak r: say Method.^methods
p6eval rakudo 16db64: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤ in method gist at src/gen/CORE.setting:4624␤ in sub say at src/gen/CORE.setting:7009␤ in block <anon> at /tmp/7yJoa9AMwf:1␤␤»
masak r: sub foo {}; say &foo.WHAT 14:18
p6eval rakudo 16db64: OUTPUT«Sub()␤»
masak r: sub foo {}; say &foo.WHAT.gist
p6eval rakudo 16db64: OUTPUT«Sub()␤»
masak so, obviously that Sub() *has* a 'gist' method.
therefore, I probably hit an nqp Sub() or something.
14:18 sisar left
jnthn masak: Yes, and I think that's been known and RT'd for a while. 14:25
14:32 colomon joined 14:36 snearch left
masak if anyone finds the dupe, I'll happily merge it. 14:37
r: say Signature.^methods 14:44
p6eval rakudo 16db64: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤ in method gist at src/gen/CORE.setting:4624␤ in sub say at src/gen/CORE.setting:7009␤ in block <anon> at /tmp/yIy7zAoMmt:1␤␤»
masak oh hm.
r: say .name for Signature.^methods
p6eval rakudo 16db64: OUTPUT«Unmarshallable foreign language value passed for parameter '$_'␤ in block <anon> at /tmp/3I6XNT09ux:1␤␤»
masak r: for Signature.^methods { try .say }
p6eval rakudo 16db64: OUTPUT«Unmarshallable foreign language value passed for parameter '$_'␤ in block <anon> at /tmp/UsVIALGx6B:1␤␤»
masak this is a problem. 14:45
those unmarshallable foreign elements infecting the purity of our French nation^W^W Chinese sovereignity^W^W programming language!
at least Signature is in core... 14:47
...but it still detracts from the affordances/discovery process for newbies...
oh, .params is what I want. 14:48
jnthn I agree it should be fixed. It's just some way down my "things that should be fixed" list. :)
14:48 tokuhiro_ joined
masak argh the invocant is a positional. of course. 14:55
I was wondering why my .substr(1) calls (to remove the sigils) went out of bounds :) 14:56
harmil1 I think that's, "arg, the invocant..."
14:56 harmil1 is now known as harmil
harmil there we go 14:57
colomon harmil++ 14:58
14:59 alester joined
masak ;) 14:59
15:02 atrodo joined 15:04 thou joined
kresike bye all 15:09
15:09 kresike left 15:14 GlitchMr joined
spider-mario .u ◌̧ 15:16
phenny U+25CC DOTTED CIRCLE (◌)
U+0327 COMBINING CEDILLA (◌̧)
GlitchMr .u || 15:17
phenny U+007C VERTICAL LINE (|)
GlitchMr .u te­st 15:18
phenny GlitchMr: U+0074 U+0065 U+00AD U+0073 U+0074
15:19 thelazydeveloper joined
GlitchMr .u 𐀀 15:24
phenny U+10000 LINEAR B SYLLABLE B008 A (𐀀)
GlitchMr .u 􏿿 15:26
phenny U+10FFFF (No name found)
15:26 groky left
GlitchMr exception what? 15:27
15:28 mucker joined
masak GlitchMr: you seem lost. can I help you with anything? 15:31
GlitchMr Nothing
masak (the 'Exiting due to an exception' quit message is most likely just a joke.)
GlitchMr Probably
masak ok, let me know if there's anything you need. 15:32
GlitchMr Whatever
I thought it crashed because of high UTF-8 character
But that would be silly
masak no, it wasn't the same nick.
15:32 birdwindupbird left
GlitchMr I know 15:33
perl6: print "\x10FFFF"
p6eval niecza v19-7-g5e25209: OUTPUT«\x{10FFFF}»
..rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
GlitchMr perl6: print "\x110000"
p6eval niecza v19-7-g5e25209: OUTPUT«\x110000»
..rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
GlitchMr But in UTF-8 U+10FFFF is valid (technically) 15:34
masak please submit a bug report, then.
GlitchMr I don't know where to send rakudo bug reports 15:35
jnthn Valid in what sense?
masak [email@hidden.address]
jnthn Please be specific (e.g. reference something)
(If filing a bug, that is. Handwaving on #perl6 is fine :))
masak it is!? :P
\o/ |\o/| o< /o\ 15:36
jnthn :P
[Coke] aw... "learning perl, 6e" is not about perl 6.
masak you noticed too, eh?
[Coke] I'm all like, "OOH, what's this E about..."... nada.
GlitchMr rakudo: print "\x100000" 15:37
p6eval rakudo 16db64: OUTPUT«􀀀»
GlitchMr rakudo: print "\x10FFFF"
p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
masak does a given { when { when { } } for the first time in a program
GlitchMr rakudo: print "\x100001"
p6eval rakudo 16db64: OUTPUT«􀀁»
masak er, plus an additional }
GlitchMr rakudo: print "\x10F000"
p6eval rakudo 16db64: OUTPUT«􏀀»
GlitchMr rakudo: print "\x10FFFE"
p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
GlitchMr what?
masak GlitchMr: please be more specific than "what?"
GlitchMr: we cannot have a constructive discussion if you don't supply your expectations. 15:38
supplying surprise is a good start, but not enough.
GlitchMr So, Rakudo expects that UTF-8 ends on U+10FFFD
Weird...
masak something like "I expected this code to shoot monkeys out my nose."
if you say that, we can go on to explain why Rakudo doesn't do it that way.
jnthn So, here's what the Unicode spec syas.
*says
10FFFE <not a character> * the value 10FFFE is guaranteed not to be a Unicode character at all 15:39
unicode.org/charts/PDF/U10FF80.pdf
GlitchMr Oh, then sorry 15:40
masak no need to apologise. :)
jnthn No problems. I didn't know it without looking it up. :)
masak except for being unclear with what you expected :P
15:41 gesh joined
[Coke] wow, jnthn, you could make a nice plaid shirt with those glyphs. 15:41
masak GlitchMr: if you didn't know that \x10FFFE wasn't a character at all, what in the world made you try it out!?
jnthn [Coke]: If you include the bottom right hand corner, you can just claim its a fasionable brand name too. "What? You don't know about 10FFFE 10FFFF Shirt Company? They're famous, y'know!" ;-) 15:42
masak GlitchMr: did you just wake up this morning and go "I wonder how Rakudo will react to this particular codepoint?" :P 15:44
GlitchMr no
bbkr star: say "aaabb" ~~ m:2nd/.|../
p6eval star 2012.06: OUTPUT«q[ab]␤␤»
[Coke] jnthn: *snrk*
bbkr \o/ LTM FTW!
[Coke] masak: I think you, of all people, might be accepting of "seeing how to make rakudo blow up.". ;)
masak of course, that's not the point. 15:45
I'm wondering by what divine insight GlitchMr found this particular codepoint.
GlitchMr perl6: print "􏿿"
p6eval rakudo 16db64: OUTPUT«Unicode non-character U+10FFFF is illegal for open interchange at lib/EvalbotExecuter.pm line 195.␤"\x{10ffff}" does not map to utf8 at lib/EvalbotExecuter.pm line 196.␤===SORRY!===␤Unrecognized backslash sequence: '\x' at line 2, near "{10FFFF}\""␤» 15:46
..niecza v19-7-g5e25209: OUTPUT«Unicode non-character U+10FFFF is illegal for open interchange at lib/EvalbotExecuter.pm line 195.␤"\x{10ffff}" does not map to utf8 at lib/EvalbotExecuter.pm line 196.␤===SORRY!===␤␤Unrecognized backslash sequence: '\x' at /tmp/QfSe2zNE7T…
masak given that he didn't seem to be aware of the Unicode spec explicitly excluding it from the set of legal characters.
GlitchMr ... so Perl 5 catched it...
15:46 majrmovies joined
masak in what sense did Perl 5 catch it? 15:46
15:46 MayDaniel joined
masak if you do a 'perl6' evaluation, and then go '... so Perl 5...', there is some causal link missing. 15:46
jnthn masak: See the EvalbotExecuter.pm warning 15:47
masak: The Evalbot is written in Perl 5
masak oh!
indeed. GlitchMr++
interesting error message, too. 15:48
GlitchMr And it converted it to print "\x{10FFFF}"
Except Perl 6 uses [] instead of {}
15:50 tokuhiro_ left 15:53 fgomez joined
spider-mario .u ☕ 15:54
phenny U+2615 HOT BEVERAGE (☕)
spider-mario .u 🐪
phenny U+1F42A (No name found)
masak yes, Perl 6 thinks {} is for code blocks (and hashes). 15:55
bbkr where was the option to mark RT ticket as testneeded? cannot find it. 15:56
jnthn On the Jumbo page, in tags
bbkr weird, I don't see it there... 15:58
masak maybe you're not logged in. 15:59
[Coke] bbkr: "Custom Fields"
masak it's also under "Basics". I never use the "Jumbo" page.
16:01 brrt left 16:02 MayDaniel left
bbkr bbkr.org/~bbkr/testneeded.png - no tags selection... 16:04
and I'm logged in 16:05
I'm sure I was able to add tags in the past. maybe some additional permissions are required today? 16:06
16:07 xinming_ joined 16:09 xinming left
masak looks like. 16:14
dalek p/toqast: e5cccaa | jnthn++ | src/QAST/Compiler.nqp:
Provide a way to handle loadlibs.
16:15
sorear good * #perl6 16:18
dalek kudo/toqast: a9770e0 | jnthn++ | src/QPerl6/Actions.pm:
Translate GLOBAL installation (still something vm-specific for now).
16:19
kudo/toqast: 6e0b080 | jnthn++ | src/QPerl6/World.pm:
Some QAST translation of setting loading; still will need some generalizing by VM.
kudo/toqast: f62e3e3 | jnthn++ | src/QPerl6/World.pm:
Update loadlibs handling to QAST::VM approach.
16:21 sporous left
jnthn o/ sorear 16:22
16:22 sporous joined
dalek p/toqast: 2e6ad4a | jnthn++ | src/HLL/Compiler.pm:
Make HLL::Compiler more aware of QAST.
16:26
bbkr std: / $. / # I think I found STD regression - error message is messy. back in 2010 it warned about unsupported $. variable, see rt.perl.org/rt3/Ticket/Display.html?id=77550 16:27
p6eval std fd2647b: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66584.␤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66623.␤===SORRY!===␤Unsupported use of $. variable; in Perl 6 please use the filehandle's .line me…
moritz bbkr: it still does 16:28
bbkr: it simply spits out some warnings before
masak sorear! \o/ moritz! \o/ 16:29
16:29 sisar joined 16:32 kaleem_ joined 16:33 REPLeffect joined
bbkr moritz: is it OK that STD error leaks? The part about "Unsupported use of $. variable" is meant to be seen by user, not some internal $x variables failures. 16:33
moritz bbkr: it's less than awesome 16:34
16:37 fridim_ joined
dalek c: 3274031 | moritz++ | htmlify.pl:
script for making HTML files

very basic and very much a work in progress
16:39
masak r: sub foo { .subst("a", "b") }; my $s = "abc"; $s .= &foo; say $s 16:42
p6eval rakudo 16db64: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub foo at /tmp/tecVI7RLpd:1␤ in method dispatch:<.=> at src/gen/CORE.setting:835␤ in block <anon> at /tmp/tecVI7RLpd:1␤␤»
masak r: sub foo { $_.subst("a", "b") }; my $s = "abc"; $s .= &foo; say $s 16:43
p6eval rakudo 16db64: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub foo at /tmp/Hj4eRtse43:1␤ in method dispatch:<.=> at src/gen/CORE.setting:835␤ in block <anon> at /tmp/Hj4eRtse43:1␤␤»
masak r: sub foo { $^s.subst("a", "b") }; my $s = "abc"; $s .= &foo; say $s
p6eval rakudo 16db64: OUTPUT«bbc␤»
masak \o/
oh, it's only blocks that get an implicit $_?
jnthn aye
well
an implcit $_ parameter
masak aye. 16:44
dalek p/toqast: a39b82e | jnthn++ | src/QAST/Compiler.nqp:
Improve error reporting when we find a PAST node inside a QAST tree.
16:45
ar: 8fb57ac | ronaldxs++ | skel/tools/build/module-install.pl:
I think this is why URI is seg faulting. I have not fully tested this with respect to its overall effect on rakudo star but it seems safe and appropriate enough. I think similar changes were made not long ago to ufo and maybe panda.
ar: 7e48e51 | moritz++ | skel/tools/build/module-install.pl:
Merge pull request #8 from ronaldxs/patch-1

I think this is why URI is seg faulting. I have not fully tested this w...
16:45 wooden left
bbkr phenny: tell TimToady that / $. / regexp parsing using STD has some internal error "Use of uninitialized value $x in concatenation in line 66623" leaking and shown before "Unsupported use of $. variable" message (meant to be seen by user). RT 77550 shows that it did not happen in the past, so this is an regression in awesomness :) 16:46
phenny bbkr: I'll pass that on when TimToady is around.
[Coke] moritz++ for your help in winproving panda.
oh. I just thought of something. should we have an std run of roast to insure that all the code we're trying to run is valid perl 6?
masak could I please ask people to review and stress-test github.com/masak/crypt/commit/72ef...43ea3f4802 ? 16:47
it goes into today's blog post.
[Coke] not to check tap output, but just to see if the test file itself would generate any errors in compilation.
masak I'm really proud if this bit of code. Perl 6 is so nice nowadays.
oh, I see something to fix immediately. 16:48
[Coke] on feather, perl6 is This is Rakudo Perl 6, version 2010.08 built on parrot 2.7.0 16:50
16:51 seldon joined
[Coke] masak: everyone knows what hanoi is, but perhaps stating the goal in the help? 16:52
masak [Coke]: oh! sure. 16:53
[Coke]: strangelyconsistent.org/blog/anothe...ere-i-come
[Coke]: strangelyconsistent.org/blog/july-1...-black-box
16:53 dakkar left, wamba joined
bbkr can someone please mark RT 77522 and RT 77524 as testneeded? for some unknown reason I cannot see tags assignment. 16:53
masak [Coke]: ...today, I've built a CLI client for the game. it seems to work. I'll be happy to see people wreck it by doing things I hadn't thought of :)
16:55 wamba left, wamba joined
[Coke] > remove masakian disk 16:56
Cannot remove the masakian disk because it has been removed
masak oh!
looks like a bug. [Coke]++
reproduced here.
investigating.
16:57 wamba left
[Coke] also, having a "show" command would be nice, so I can see where I am after filling the screen with errors. 16:57
16:57 gesh left
masak yeah, I've simply missed writing a test case for that and implementing that. 16:57
[Coke]: ok, I'm giving you a "show" command, and then I'll implement the missing functionality. 16:58
thank you very much for the feedback.
[Coke]++
there's more free karma for other people with suggestions :)
[Coke]: 'show' implemented; pushed. it was a one-line change. :) 17:00
[Coke] masak: so, if the goal is to remove the tiny disk, ... I can win pretty quickly.
masak I'm sorry? where did you get the impression that the goal is to remove the tiny disk? 17:02
it's an essential part of the adventure game to be able to remove the tiny disk, yes.
but the winning condition in the hanoi game is the usual one.
pmichaud good morning, #perl6
[Coke] masak: help should mention show. 17:03
masak: from the lack of docs. ;)
masak [Coke]: help mentioning show coming up.
[Coke]: by the way, you're the first contestant in "Devastate The Adventure Game", as outlined in strangelyconsistent.org/blog/anothe...ere-i-come :) 17:04
17:04 spider-mario left
[Coke] masak: so, the goal is to move the tower to the right, aye? 17:04
17:05 spider-mario joined
[Coke] does the game let me know I've won 17:05
?
masak oh!
spider-mario .u 😈
phenny U+1F608 (No name found)
masak [Coke]: no, the CLI does not let you know you've won... but now that you've pointed it out, it's bloody obvious it should! :D 17:06
[Coke]++
[Coke] well, that was probably the most enjoyable lunch break I'll have this week. ;) 17:07
masak yay
timotimo r: gist.github.com/3034309
p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Confused␤at /tmp/9zoH4wflws:1␤»
timotimo whoops.
masak note to self: drop enjoyable Perl 6 apps on #perl6 people during their lunch breaks
timotimo r: gist.github.com/3034309 17:08
p6eval rakudo 16db64: OUTPUT«1..2␤ok 1 - ␤ok 2 - ␤»
timotimo i'm confuse.
17:09 PerlJam joined
masak timotimo: there's a known scoping bug in that area :/ 17:09
timotimo OK
masak it's not *fun* to run into, but it *is* confusing.
so that might be what you're experiencing.
timotimo i thought it was fun
masak if you want I can dig out RT.
timotimo i didn't really run into it
pmichaud ...scoping bug? /me doesn't see it
timotimo i kind of provoked it :)
masak hm, pmichaud is right. 17:10
it looks correct.
timotimo: please un-confuse us by stating your expectations :) 17:11
timotimo oh? i thought it would save the value of $a at the time the block for the where clause is created
masak timotimo: why did you think that? 17:12
timotimo i don't know actually
masak that's not how closures work.
[Coke]: fixed. github.com/masak/crypt/commit/45fb...7e25328f6c
[Coke] masak: danke. 17:15
[Coke] writes down the list of winning steps so he can more quickly test the win condition later. ;) 17:17
masak and now it tells you when you've won; pushed. 17:18
adding things to this game tells me the design is *very* right.
timotimo i'm quite fond of the multi MAIN('test', 'hanoi') "pattern" 17:20
17:20 fhelmberger left
PerlJam masak: Your throws_exception sub is interesting. 17:25
it's almost the beginning of a "subtest DSL" :) 17:26
masak I kinda like that factoring too. it feels right.
PerlJam yep 17:27
masak goes hunting for food
[Coke] masak one last bug for you. ;)
masak keep the bug reports coming, people :)
masak creates a gist of incidents of people breaking the adventure game 17:28
[Coke] you can't seem to unlock with "add", but only with "move"
so my trick of pocketing the small one while I finish the small puzzle doesn't work. ;)
er, the *tiny* one, the *smaller* puzzle
masak hrm. 17:29
I'm not sure I consider that a bug. 17:30
you mean taking the tiny rod, and then finishing the hanoi game with the remaining disks?
yeah; feature, not bug. :) 17:31
the physical explanation is that the floor needs all the disks in place to tip over ;)
[Coke] masak: but when I add the tiny back to the tower on the right, I don't win
masak oh!
yes, *that's* a bug.
[Coke] I have to add it back, then use the "move" command to win.
masak [Coke]++
will fix, when I get back from getting food.
[Coke] \o/ . o O (SCORE!)
masak people, [Coke] is now two bugs ahead!
where's the rest of you? :P 17:32
17:32 GlitchMr left
[Coke] hee! 17:32
17:32 GlitchMr joined
masak the help now states the goal of the game, and the in-game limitation. [Coke]++ 17:33
pmichaud seeing all of the X:: class declarations makes me sad somehow... like we've suddenly recreated some of the most annoying pieces of Java 17:34
masak they don't bug me in the least. 17:35
in fact, I like the X:: namespace.
it's user-extensible, and it being one letter long means I feel like I come out ahead every time I refer to it :)
pmichaud it just feels like an awful lot of code to write to define an exception; especially when the pattern is so similar
masak I disagree. 17:36
[Coke] it is very javaesque yes.
masak each one is a few 'has' declarations and a very simple 'message' method. it's very fit for purpose.
[Coke] rakudo: class barf is Exception;
p6eval rakudo 16db64: ( no output )
masak adventure game bugs so far: gist.github.com/3034482 -- I will try to keep that one up-to-date. 17:37
[Coke] masak: I don't get a bug for not letting you know you've won?
*sadfae*
masak actually, that was a really good feature request. 17:38
I didn't classify it as "things that didn't behave as they obviously should". maybe I should've. 17:39
masak adds it
[Coke] no worries.
or, fine, worry then!
masak added. 17:40
PerlJam
.oO( Is masak the unhappy fairy? )
masak away, really this time
17:45 felher left 17:46 Kivutar joined 17:47 felher joined
Kivutar hi, what would be better, PIR or zavolaj to write an SDL binding? 17:48
17:49 pyrimidine joined
Kivutar I found this github.com/PerlGameDev/SDL6 and this github.com/quietfanatic/gamebase 17:49
PerlJam Kivutar: Zavolaj IMHO, but it's kind of an apples-to-orange comparison. 17:50
[Coke] is your goal to get something usable in perl6, or something usable by any language targetting parrot? 17:51
17:51 zipf joined 17:52 zipf left
Kivutar having something usable by any language targetting parrot may be more usefull, except if bindings made with zavolaj also works with niea 17:52
niecza
is it the case? 17:53
eiro hello from Kivutar's home (marseille)
[Coke] I think that zavolaj only works from rakudo. niecza has its own C# interop you could use.
eiro masak, jnthn i read you enjoyed your trip: i'm really happy about that 17:54
[Coke] the thing about the parrot interop is that the main language you have access to is... rakudo. at which point you might as well use zavolah.
eiro and mst is awesome! 11h of perl6 code payed back all his fees :)
Kivutar ok thanks, I'll try zavolaj then (also because it seams a lot easier to use) 17:55
17:57 xdbr__ left 17:58 adam7504 joined 18:03 mtk left, adam7504 left
masak eiro: hehe, #perl6 doesn't know about mst's deal yet. :) 18:05
feel free to tell.
18:06 am0c left
pmichaud I know about it. :) 18:06
I saw the tweets.
eiro ok! at fpw, mst sold 40€ a hour to do whatever masak jnthn and tadzik wants for perl6. the credit is 11h :) 18:07
pmichaud mst++ fpw++
eiro he's awesome! and it was a really pleasant moment! 18:08
masak talking to mst++ in the evenings made the trip worth it on its own. but so many other things did, too.
18:09 adam7504 joined
eiro i didn't have time to share with masak and jnthn and hack on perl6... 18:09
hehe sure! everyone told me having a lot of good time. Strasboourg is a pleasant city and i really think it helps 18:10
jnthn Yes, the city was a great place for a workshop.
eiro jnthn, or a yapc, as some said so ... but i don't have enougth of courage for that 18:11
(i'd really love, btw ...)
jnthn It'd be great for a yapc too, yes. ;-) 18:12
But that is a lot more work.
eiro yep.. and now i really know i'm not made for this job. Parhaps we have to convince delphine and alex :) 18:13
(i'll help for sure)
18:17 kaleem_ left
sisar masak++ #hanoi 18:17
masak well, stand by for today's post ;) 18:18
(but thanks)
masak goes on to fix [Coke]++'s bug 18:19
that bug is currently easily the winning one, by the way.
18:19 adam7504 left
masak it has exactly the kind of out-of-the-box sneaky thinking I'm after. 18:19
"the winning one so far", I should say ;)
18:20 vmspb joined
sisar wants l, m , r short forms for left middle and right. Lazy sisar ! 18:21
18:23 mucker left
sisar (fwiw, "add <disk> <target>" and "remove <disk>" make you think that you can put anything in place of <disk>, but only by trying you find out that it only accepts "small disk") 18:25
masak sisar: I task you with implementing such functionality and to show us the patch :)
sisar: how can we make it clearer what is accepted? concrete examples of commands? 18:26
sisar masak: did you not read? "Lazy sisar!" ;-)
masak sisar: well, you may still reject the task, of course. :)
sisar masak: um, not sure. Adding that only the small disk can be removed or added is one way 18:27
masak: :-)
masak the tiny disk.
sisar s/Adding/Mentioning
masak: yes, the tiny disk
masak I will mention that. good idea.
18:29 GlitchMr left
sisar "> remove large disk ... Cannot move the large disk: it is covered by the medium disk, the small disk, and the tiny disk" Is that the real reason ? No. One might be led to believe that once the medium, small, and tiny disk are out of the way, one can remove the large disk. 18:31
.oO( damn you bikeshedding, why are you so easy? ) :-)
masak sisar: I did that on purpose :) 18:32
I have a few tests that make sure you first get the 'covered by' exception, and then the 'cannot remove' exception.
yes, I'm sadistic. I know.
masak .oO( masak is supposed to be a masakist! ) 18:33
sisar autopun(?): "I don't grok the word grok". Or... "I don't understand the word understand". Once can go on with synonyms of understand... 18:34
masak not really autopuns.
maybe you don't grok the word "autopun" :P
sisar masak: it does involve use and .. wha's the second part of an autopun ? 18:35
masak [Coke]: bug fixed -- github.com/masak/crypt/commit/9f9b...26a09b4331 -- [Coke]++
isn't it a wonderfully simple fix? :)
sisar: mention.
sisar: yes, but it's supposed to irreverently *confuse* use and mention. 18:36
sisar ah
masak or at least connect them somehow.
like, "There are two types of people those who write run-on sentences..." 18:37
the "there are two types of people" snowclone seems to be a fecund autopun generator, by the way. 18:38
as is "now you have 2 problems".
18:38 sudokode left
harmil Hmm… tried to turn my little parser program into an exe (p6->pir->pbc->exe) and executing the binary now exhausts system RAM and does nothing. 18:39
masak .oO( don't do that, then ) 18:40
harmil: srsly, it's hard to say why that happens. I don't think people tend to do the last step to exe. 18:42
maybe there's something in there that doesn't work so well.
it's usually considered a bit of a fools-gold activity to try to wrap the whole perl (5 or 6) interpreter in an exe file ;) 18:43
18:44 daxim left
harmil Is the output of perl6 —target=pir/parrot (the pbc file, that is) pre-loaded with required modules or does it perform additional load steps at run time? 18:44
masak what the heck is that dash character before 'target'? 18:45
.u —
phenny U+2014 EM DASH (—)
masak o.O
oh! you're on a client that...
harmil That's what my cruddy IRC client turns - followed by - into
masak ...turns -- into —. heh.
(autocorrection: because the computer knows better than you)
harmil it's almost—you know—useful.. 18:46
masak meh.
harmil anywhoo, I guess I'l do testing 18:47
urg… nope, running the pbc through parrot causes the same problem, it's not an exe issue 18:48
masak ok. 18:49
that's good to know, though.
I believe running a pbc worked at some point.
main reason people didn't run from .pbc files was that apparently, parsing the .pir was basically not slower. 18:50
geekosaur masak: could be set for tex, where -- is en-dash and --- is em-dash, both of which are distinct from hyphen
masak geekosaur: right, but harmil's very helpful client turned -- into U+2014 EM DASH. 18:51
harmil the pir gives the same result. There's something fundamentally different between "perl6 x.p6" and "perl6 - -target=PIR - -output=x.pir x.p6 && parrot x.pir" 18:52
geekosaur yeh, I'm suggesting that's nt the most broken autocorrect )
[Coke] masak++: verified, fixed. 18:58
masak \o/
[Coke]: knowing about the 'take tiny disk' thing essentially halves the hanoi problem. 18:59
[Coke] masak: i'm lazy!
masak maybe I should only allow taking the disk when the achievement is unlocked. but that feels a bit arbitrary.
no, I think the lazy-but-creative people basically deserve the shortcut :) 19:00
[Coke] masak: leave it for the clever kids to find. ;)
right. ;)
19:00 brrt joined
[Coke] from tom on p5p: This, I think, is the take-home message from all this. It is ridiculously 19:01
difficult to describe the spec for a Perl variable by name. It shouldn't be.
19:02 plobsing joined
sisar "...Hanoi game doesn't shut down or finish just because you unlock its achievement. So it's actually possible to un-unlock the achievement too." Is it possible to un-un-unlock it ? 19:04
masak yes.
sisar If yes, after finishing, "remove tiny disk", "add tiny disk right" does not say that the achievement has been (re) unlocked. 19:05
harmil I've created a trivial reproducer for the "pir output runs out of memory" problem: gist.github.com/3035007
can someone verify that they see the same brokenness before I go rebuilding everything obsessively?
masak sisar: no, due to considerations in the larger adventure game, you have to get "far enough" from the end configuration to actually re-lock the achievement. 19:06
sisar: namely, you have to move or remove a disk larger than the tiny disk.
sisar ok, that's fine then. 19:07
masak I could perhaps make that condition clearer in yesterday's post. 19:08
19:13 plobsing left
vmspb rn: my $x=0; $x++ for 1..4; say $x 19:15
p6eval rakudo 16db64, niecza v19-7-g5e25209: OUTPUT«4␤» 19:16
vmspb rn: my $x=0; ($x++ for 1..4); say $x
p6eval rakudo 16db64: OUTPUT«4␤»
..niecza v19-7-g5e25209: OUTPUT«0␤»
vmspb rn: my $x=0; +($x++ for 1..4); say $x
p6eval rakudo 16db64, niecza v19-7-g5e25209: OUTPUT«4␤»
masak vmspb: looks like you're trying to do something. 19:18
vmspb this nieczabug? 19:19
flussence rn: my $x = 0; eager ($x++ for 1..4); say $x;
p6eval rakudo 16db64: OUTPUT«4␤»
..niecza v19-7-g5e25209: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'eager' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1402 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /hom…
masak vmspb: oh, I see now.
yes, I believe so.
19:20 cog_ joined
sorear insofar as niecza lacks a 'sink' which eagerizes stuff, it is a nieczabug 19:21
19:21 brrt1 joined, brrt left 19:23 cognominal left 19:24 brrt1 left
pmichaud harmil: I don't think we have executing .pir files directly functioning yet. 19:25
i.e., it's more NYI than anything else.
19:26 brrt joined
pmichaud although the failure mode is indeed truly interesting. 19:26
jnthn What is it, ooc? 19:27
19:27 brrt1 joined
pmichaud it seems to hang and eat up lots of memory 19:27
A little over 1GB/sec 19:28
harmil yep, that's what I see
I propose we rename the target from PIR to MEMSTRESSTEST and call it a day ;-) 19:29
pmichaud well, we *do* use target=pir for other stuff, such as precompiling modules
we just don't have the PIR smart enough to be used as a standalone program yet. 19:30
19:31 brrt left, birdwindupbird joined
pmichaud gist.github.com/3035176 # in order to have parrot run precompiled .pir code directly -- this would likely have to be made working first 19:34
afk, lunch
19:38 brrt1 left, brrt joined
harmil sad to see perl6-log didn't make it into rakudo-star 2012.06. Oh well 19:40
19:42 seldon left 19:44 kaare_ left
sorear narrowly avoids posting a vitriolic reply to bug#132 19:45
diakopter do the parentheses defer the innards? 19:46
sorear yes
masak ah, indeed. the splice bug that I found yesterday was submitted November 2011: rt.perl.org/rt3/Ticket/Display.html?id=104026 19:47
[Coke] doesn't see any need for any vitriol here
19:48 stephenlb joined
sorear There is never need for vitriol. 19:49
flussence aww crap, I thought URI.pm would be a 1-char fix in niecza. Then I get a NYI on something else :( 19:54
colomon sorear: why do parentheses defer the innards? 19:59
20:00 snearch joined
sorear colomon: nasty hack to simulate sink context 20:01
colomon sorear: ah
sorear for loops that are direct children of statementlist are run immediately
masak today's autopun: twitter.com/GaryDelaney/status/25756204076630017 20:03
harmil When you say, "autopun", do you mean that you have something that goes and finds these, masak? 20:20
diakopter autopuns are utterances that make mention of some activity/state while also embodying the activity/state. 20:22
huf i always try to explain why autopuns are awesome to people
and then i can never remember any examples 20:23
literally *none*
(also i suck at making them up on the spot)
20:24 brrt left
harmil So, a meta autopun wouldn't be repundent at all? 20:29
moritz the meta the better 20:30
masak huf: masak.org/carl/gpw-2012-autopuns/talk.pdf 20:36
20:39 spider-mario left, spider-mario joined 20:41 MayDaniel joined
colomon never meta autopun he didn't like. 20:41
colomon is hating computers with a deep passion today
flussence rakudo's horribly broken for me today. Parrot OOM errors doing normal stuff :( 20:42
(that makes two computers it won't work on now...)
diakopter blame the leap second 20:43
flussence gist.github.com/3035588 ...that's an amazingly uninformative error. 20:45
sorear 'failed allocation of 2738176 bytes' seems informative enough 20:48
harmil I do like the final line, there, though 20:49
Grammar.pm's inconsistent use of ~ (e.g. between circumfix:sym<sigil> and circumfix:sym<[ ]>) makes me worry. I fear I'm missing subtle implications of ~'s use... 20:51
flussence sorear: yeah, but this *used* to work fine and I have at least 5 gigs free...
jnthn flussence: When is "used to work" exactly? 20:52
flussence: Hours? Days? Weeks?
flussence days at most
jnthn OK, that bounds what could be to blame. 20:53
harmil flussence there's something odd going on in parrot land, methinks. I'm having a hard time getting a trivial program to execute all of a sudden (sudden being defined in days, since I was on vaca for the 2nd half of last week)
flussence it's not limited to installing nativecall either, I was getting it trying to run the URI module tests
harmil r: for (1,2) -> $i { say $i } 20:55
p6eval rakudo 16db64: OUTPUT«1␤2␤»
harmil hmmm...
locally, I get:
Undefined routine '&for' called (line 1) 20:56
-v says: This is perl6 version 2012.06 built on parrot 4.5.0 revision 0
flussence r: for(1,2) -> $i { say $i }
p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Confused␤at /tmp/Occ8wCUhLL:1␤»
flussence works here, but I'm on 16db64 20:57
masak lol! I blogged! again! \o/ strangelyconsistent.org/blog/july-2...ting-hanoi
flussence is that removing-a-disk thing part of the normal Hanoi, or did you just add it so you can write more perl6? :) 21:01
masak I did add it so that the Hanoi game will plug in well into the bigger adventure game. see previous posts :) 21:02
(the tiny disk plays a vital role in finishing the quest)
flussence ooh, that's clever
masak yeah, I always like that part :) 21:03
flussence: if you have time, consider playing the game. it's quite fun. the tag is 2011 in the crypt repo. 21:04
hm, did I push that tag? :)
tag pushed. 21:05
21:09 birdwindupbird left
masak I again encourage people to crash my stuff. a prize has been announced. 21:10
21:10 snearch left, skids left
harmil doh. my problem with for not being defined turns out to be a shell alias problem. I was doing a bash "perl6() { …setupenv… \perl6 $* }" I changed $* to "$@" and it works fine. Turns out the one-word program "for" doesn't work so well... 21:12
masak that explains it. 21:13
tadzik hello #perl6 21:35
masak tadzik! \o/ 21:36
jnthn evenin', tadzik 21:37
tadzik hello hello 21:46
that was quite an adventurous day
and FRA is absolutely HORRIBLE
sorear tadzik!
tadzik sorear! 21:47
harmil r: my %h = <a b c>.map:{$_ => 1} 21:49
p6eval rakudo 16db64: OUTPUT«use of uninitialized variable $!key of type Any in string context in block <anon> at /tmp/7yd9m5PocN:1␤␤No such method 'count' for invocant of type 'Hash'␤ in method reify at src/gen/CORE.setting:5062␤ in method reify at src/gen/CORE.setting:4984␤ in method rei…
21:49 stephenlb left
harmil am I spelling that wrong? 21:49
tadzik I think it confuses the block with a hash
my %h = <a b c>.map: {; $_ => 1}
r: my %h = <a b c>.map: {; $_ => 1} 21:50
p6eval rakudo 16db64: ( no output )
tadzik yep
';' helps
harmil freaky, thanks
21:55 stephenlb joined 21:58 MayDaniel left
harmil r: my %x = ("a" => 1, "b" => 2); say %x<a> 22:00
p6eval rakudo 16db64: OUTPUT«1␤»
harmil r: our %x = ("a" => 1, "b" => 2); say %x<a>
p6eval rakudo 16db64: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤ in block <anon> at /tmp/95LvfBVWjx:1␤␤»
harmil Why would changing my to our make that break?
tadzik I don't have any idea 22:01
jnthn Because Rakudo's hanlding of non-scalar our scoped things is weird.
harmil Oh, I think I ran into this before…. our on %ish things is known not working
jnthn (As in, not really implemented.) 22:02
harmil yeah, I ran into that last week… bad memory
sorry
jnthn bad rakudo too...
harmil I do think that if something is known not working it would be nice to raise an error instead of failing in odd ways, especially for the star releases. But for now, I'm happy enough just knowing what the breakage is 22:03
22:11 vmspb left, PacoAir left
harmil r: try { my $foo = spoon; CATCH { say "There is no spoon"; return; } } 22:12
p6eval rakudo 16db64: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&spoon' called (line 1)␤»
harmil interesting
22:12 drbean left
harmil n: try { my $foo = spoon; CATCH { say "There is no spoon"; return; } } 22:13
p6eval niecza v19-7-g5e25209: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'spoon' used at line 1␤␤Potential difficulties:␤ $foo is declared but not used at /tmp/GgNTO57bus line 1:␤------> try { my ⏏$foo = spoon; CATCH { say "There is no s␤␤Unhandled exceptio…
jnthn harmil: That's caught at compile time. 22:14
CHECK time to be specific.
22:15 drbean joined
sorear b: try { my $foo = spoon; CATCH { say "There is no spoon"; return; } } 22:15
p6eval b 922500: OUTPUT«There is no spoon␤»
sorear harmil: ^^^ previous versions of rakudo behaved differently
alpha: say "Alpha still runs in p6eval"
harmil hmm… I'm trying to use it in code like so: "use Utensils; try { $spoon = spoon(); CATCH { … what to do if Utensils didn't export a spoon … }" 22:16
not sure how to do that if it's being trapped at compile-time… how does that even work?
22:17 whiteknight joined
harmil what's b? 22:17
22:18 whiteknight is now known as Guest62534
flussence b is 'back one rewrite before nom' 22:18
harmil nice
sorear harmil: Conditioning on the exports of a module is a major design smell
It could be done, but I'd want to know why
geekosaur version skew is the usual reason I find myself needing such things 22:19
then again that kinda comes from years managing an installation where the baseline was perl5.00503 22:20
harmil Yep, but in this case I was building up to trying to find a way to define a stub for a module if it didn't exist. 22:21
I was starting with detecting missing interfaces, then I was going to tackle the whole "how do you catch a failed use in a useful way" thing.
sorear "how do you catch a failed use"
by using 'require' instead.
harmil fair enough 22:22
sorear r: try { require Moo <&moo>; CATCH { default { say "can't require Moo" } } }
p6eval rakudo 16db64: OUTPUT«can't require Moo␤»
sorear r: try { require Test <&plan>; plan 5 CATCH { default { say "can't require Moo" } } }
p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2, near "plan 5 CAT"␤»
sorear r: try { require Test <&plan>; plan 5; CATCH { default { say "can't require Moo" } } }
p6eval rakudo 16db64: OUTPUT«1..5␤# Looks like you planned 5 tests, but ran 0␤»
harmil but that's not terribly useful is the problem. It's that whole "in a useful way" thing that I was building up to.
sorear how is that not useful
harmil users get cranky when their programs exit without doing work ;-) 22:23
sorear where am I suggesting 'exit'?
harmil Right now, my stack is about 20 levels deep. What I started out trying to do was cope with the fact that rstar 06 doesn't have my Log module or my IO buffering patch… 22:25
anyway, not the time for me to debate the finer points of correct error recovery. I'll cobble something together
eiro jnthn, Kivutar uses zavojakasomething 22:26
(running sdl code)
22:26 bluescreen10 left
Kivutar jnthn: i'm trying with zavolaj to bind a function that takes OpaquePointers, and call them with the value 0 (to emulate NULL in C), but zavolaj complains about type mismatch 22:27
Nominal type check failed for parameter ''; expected OpaquePointer but got Int instead 22:28
sorear harmil: I'm not trying to debate error recovery. Why do you think I am?
Require should be perfect for your needs
well, if rstar 06 has require. 22:29
if it doesn't, you've got a slightly bigger problem :|
tadzik Kivutar: the readme says: Note that a null string can be passed by passing the Str type object; a null return will also be represented by the type object 22:30
Kivutar thanks
jnthn Kivutar: Just pass OpaquePointer itself 22:31
Kivutar: ah, tadzik++ beat me to saying it. But basically, a type object represents null. 22:32
Kivutar thanks, it worked
tadzik jnthn: so what happened to your laptop? 22:33
Kivutar time to go to sleep
jnthn tadzik: Nothing spectaculor.
Kivutar zavolaj is a great tool
jnthn tadzik: It BSOD'd, and then when I rebooted it did the same right away. 22:34
tadzik odd
jnthn tadzik: No disabling of stuff helped
Kivutar got a small sdl binding in 30min
jnthn Kivutar: Nice!
tadzik: yeah, odd indeed :( 22:35
tadzik: It's hard to guess where the failure really lies... I think it may be new laptop time, though.
22:36 Kivutar left 22:37 plobsing joined
harmil "Can only use nqp_set_sc_for_object with a SixModelObject" — why would "BEGIN { require A }" throw that, given that A contains a single, empty class definition that loads just fine with "use"? 22:40
tadzik oh wait
what are you trying to achieve?
"is that symbol exported?" 22:41
harmil at this point in debugging, I don't care if I get anything useful out of the require.
tadzik My experience with require is "yes, it works"
jnthn What does require return, ooc? 22:42
pmichaud back again
jnthn I suspect it's leaking a Parrot value into Perl 6 space given that error.
tadzik r: use Test; say so eval 'my $a = &is'
p6eval rakudo 16db64: OUTPUT«True␤»
tadzik r: say so eval 'my $a = &is'
p6eval rakudo 16db64: OUTPUT«False␤»
tadzik there you are
jnthn BEGIN { require A; 1 } # will get around this 22:43
harmil r: BEGIN { require Test }
p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Can only use nqp_set_sc_for_object with a SixModelObject␤»
harmil r: BEGIN { require Test;1 }
p6eval rakudo 16db64: ( no output ) 22:44
harmil ok
22:44 thelazydeveloper left
jnthn masak may file a Rakudo bug about it too ;) 22:44
masak submits rakudobug 22:45
tadzik automagic 22:46
harmil p6eval should probably file a bug for any input that results in output containing "SixModelObject" ;-)
tadzik so, no feedback about Typed::Subroutines?
masak harmil: people have been trying to automate me for years :P
tadzik I personally find it quite awesome, but obviously I'm biased
harmil tadzik: I think subroutines should be typed, though I don't have a preference with respect to touch-typing vs. hunt-and-peck 22:47
tadzik :)
masak :P
tadzik (github.com/tadzik/Typed-Subroutine...er/README)
masak harmil: after a while you won't even notice the weird language in here, it will just seem normal to you. :) 22:48
harmil: rt.perl.org/rt3/Ticket/Display.html?id=113956 22:49
22:50 adu joined
harmil masak: oh, I wasn't suggesting that the language was odd, just that any time a SixModelObject is referenced in an error, it's almost certainly a bug. 22:50
masak harmil: oh, I was referring to the "touch-typing" response. 22:51
harmil oh, he
heh
pmichaud for RT #113956, I suspect the problem is the return value of the 'load_module' method in ModuleLoader. In particular: 22:57
r: BEGIN { require Test <&is>; } # works fine 22:58
p6eval rakudo 16db64: ( no output )
pmichaud r: say BEGIN { require Test <&is>; } # works fine
p6eval rakudo 16db64: OUTPUT«Test()␤»
23:00 fridim_ left, sudokode joined
pmichaud perhaps &REQUIRE_IMPORT should be called on all 'required' modules, and it knows what to do with an empty or non-existent import list. 23:01
harmil S04 says, "The exception thrower looks up the call stack for a catch lambda that returns () to indicate all exceptions are handled, and then it is happy" … what does "returns ()" mean in that context and how do I make that happen?
pmichaud tries that. 23:02
harmil r: try { require Bogosity; CATCH { say "it was bogus" } }
p6eval rakudo 16db64: OUTPUT«it was bogus␤Could not find Bogosity in any of: /home/p6eval/.perl6/lib, /home/p6eval/nom-inst2/lib/parrot/4.5.0-devel/languages/perl6/lib␤ in any load_module at src/Perl6/ModuleLoader.pm:108␤ in block <anon> at /tmp/I4RNfhHmxV:1␤␤»
sorear harmil: it means you have to treat the exception as handled, using CATCH { default { *your code goes here* } } 23:03
harmil: or more generally, CATCH { succeed }
harmil ah, ok
sorear harmil: the inside of a CATCH is like a given block, and there is a catch-all case that rethrows the exception 23:04
harmil it's the default I wasn't doing
r: try { require Bogosity; CATCH { default { say "it was bogus" } } }
flussence I think my OOM problem was something to do with stale .perl6 and/or rakudo build dir contents, it seems to have gone away on its own...
p6eval rakudo 16db64: OUTPUT«it was bogus␤»
harmil yay
sorear it's possible for more than one exception to be pending at once, if a previous CATCH died
harmil according to s05 it's an arbitrary list 23:05
sorear the 'catch lambda' is a munged version of your CATCH block which returns the unthrown exceptions
uncaught
flussence whoa, I don't think this is fixed after all... NativeCall shouldn't take >2.5 gigs of RAM. 23:22
(still climbing) 23:23
yeah, URI's tests pass but this exploded again :(
masak good night, #perl6 23:27
23:42 majrmovies left 23:44 mokko joined 23:46 tokuhiro_ joined 23:48 tyatpi left 23:50 Vlavv_ joined 23:59 preflex left, atrodo left