Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-07-02

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 timotimo masak: why not <tiny small medium large huge> >>~>> " disk"; instead of map { "$_ disk" }, <tiny small medium large huge>;?
00:07 sorear gah, I missed masak
00:10 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 #perl6
00:14 pmichaud although I suspect that »~»  ought to be more idiomatic for this example.
00:30 tokuhirom joined #perl6
00:41 UncleFester6 joined #perl6
00:43 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…
00:58 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…
01:02 sorear that's an interesting bug
01:05 scott_ joined #perl6
01:19 UncleFester6 sorear: ok - thx.  tomorrow I'll try to file it if I can't find a duplicate.
01:34 sudokode joined #perl6
01:54 spaceships joined #perl6
02:06 aloha joined #perl6
02:12 sftp joined #perl6
02:13 * colomon is trying to install the Mono Framework MDK to see if that helps with his Gtk#/Glib# problems.
02:13 spaceships joined #perl6
02:14 colomon argh
02:34 colomon argh
02:34 aindilis joined #perl6
02:50 araujo joined #perl6
03:17 jaldhar joined #perl6
03:22 araujo joined #perl6
03:23 araujo joined #perl6
03:23 araujo joined #perl6
03:33 adu joined #perl6
04:14 kaare_ joined #perl6
04:26 adu joined #perl6
04:33 jaldhar joined #perl6
04:42 japhb joined #perl6
04:46 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 moritz masak: just so that you can catch any hanoi-related errors easily
05:03 adu joined #perl6
05:05 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 japhb If not, is there a deep reason, or is it LHF?
05:07 birdwindupbird joined #perl6
05:10 moritz japhb: well, either it needs to be supported by parrot, or you'd have to take care of cross-platform portability yourself
05:13 adu hi all
05:15 japhb moritz, it appears supported by parrot, as seen in .../parrot/t/dynoplibs/io.t
05:24 japhb 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:40 kaleem joined #perl6
05:57 sorear japhb: afaik rakudo does not currently have heredocs at all
06:01 dalek roast: d80a990 | pmichaud++ | S02-names-vars/perl.t:
06:01 dalek roast: Add test for Str.perl with unicode characters.
06:01 dalek roast: review: https://github.com/perl6/roast/commit/d80a990e68
06:02 dalek rakudo/nom: 16db643 | pmichaud++ | src/core/Str.pm:
06:02 dalek rakudo/nom: Add fix for Str.perl to be more robust when ICU isn't present (RT #113886).
06:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/16db64382f
06:06 wtw joined #perl6
06:09 gesh joined #perl6
06:12 fhelmberger joined #perl6
06:29 moritz japhb: then it's just NYI
06:29 moritz japhb: and probably a LHF
06:30 sftp_ joined #perl6
06:35 adu joined #perl6
06:36 fridim_ joined #perl6
06:39 japhb moritz, That's what I'd figured.  I need to get some sleep tonight, but maybe sometime this week.
07:00 GlitchMr joined #perl6
07:11 brrt joined #perl6
07:31 spider-mario joined #perl6
07:41 kaleem joined #perl6
07:43 kaleem joined #perl6
07:45 masak moritz: X::Hanoi -- makes sense. will do.
07:46 masak timotimo, pmichaud: <tiny small medium large huge> >>~>> " disk" is nicer, yes. I have no basis to choose between X~ and »~» :)
07:47 Khisanth joined #perl6
07:47 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.
07:48 masak 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!
07:48 masak sorear! \o/
07:49 masak 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
07:49 p6eval rakudo 16db64: OUTPUT«Ooops␤  in block <anon> at /tmp/CXTY79qjJs:1␤␤»
07:49 masak well, and file name, I guess.
07:49 moritz r: class X::Custom is Exception { method message() { 'Ooops' }; multi method gist(X::Custom:D:) { self.message } }; X::Custom.new.throw
07:49 p6eval rakudo 16db64: OUTPUT«Ooops␤»
07:52 moritz masak: I guess we should ship Test::Util from t/spec/packages as a pandable module
07:52 moritz then you can use throws_like
07:52 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.
07:52 moritz you can also have a role X::Hanoi is Exception { }
07:52 masak moritz: I copy+pasted throws_like, but I prefer my changes. you might want to merge them back, actually.
07:53 masak moritz: I know I can have that, but it feels harder to motivate even if it works.
07:53 moritz masak: URL?
07:53 masak to what?
07:53 moritz masak: your changed throws_like or whatever you call it
07:53 masak hold on.
07:54 masak https://github.com/masak/crypt/blob/2fecc9137c1a24bcb20eb8527c7e86a39ee20a1c/crypt.pl#L218
07:54 masak I'd say &followup? is the big change.
07:55 masak it felt insufficiently flexible with a hash of tests.
07:59 moritz and yet all of your uses so far would have been just fine with a hash
07:59 moritz ... except for the test message, which you further customize
08:00 masak if you're fine with your current code, then that's fine.
08:00 jnthn Good morning o/
08:01 masak I felt I wanted a code block there, to run arbitrary code. idea courtesy of jnthn++/nqp.
08:01 masak jnthn! \o/
08:02 moritz \o japhb
08:02 moritz erm
08:02 moritz \o jnthn :-)
08:03 moritz 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:05 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:07 * 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 :)
08:07 * moritz stops at the meta comment
08:08 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:09 masak 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 masak in other words, pass closures (and similarly powerful constructs).
08:10 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:11 masak :P
08:13 masak walk &
08:27 kresike joined #perl6
08:28 kresike hello all you happy perl6 people
08:29 sporous joined #perl6
08:29 preflex joined #perl6
08:29 moritz \o kresike
08:34 sorear o/ kresike
08:34 kresike moritz, sorear, o/
08:34 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 #perl6
08:36 jnthn hi, kresike
08:36 jnthn Ahh...the temperature back here in Sweden. It's so nicer :)
08:37 kresike jnthn, o/
08:43 moritz oh noez
08:43 moritz building URI.pm OOMs
08:43 moritz I've limited the process to 2G of virtual memory
08:43 moritz Compiling lib/URI.pm
08:43 moritz Failed allocation of 98336 bytes
08:43 moritz Parrot VM: PANIC: Out of mem!
08:43 moritz C file src/gc/alloc_memory.c, line 142
08:44 moritz that's new, isn't it?
08:47 jnthn Sounds like... :S
08:50 kresike it's 35C in the shade here, much nicer than Sweden I believe :)
08:51 jnthn 35C in the shade is nice?!
08:51 kresike well, nicer than the 50C in the sun :)
08:52 bonsaikitten kresike: hrm, here it's also close to 35C, but not much sun
08:52 bonsaikitten 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 !
08:54 moritz can anybody reproduce the hang while compiling URI.pm?
08:55 moritz and if yes, maybe even bisect which rakudo revision caused it?
08:55 moritz star: use URI; say 'alive'
08:55 p6eval star 2012.06: OUTPUT«(signal SEGV)»
08:55 moritz oh noez
08:56 moritz I thought we'd fixed that :(
08:56 moritz maybe the star installer doesn't copy stuff in the correct order
09:04 moritz oh
09:04 moritz I wonder if the problem is that --setting=RESTRICTED and precompilation doesn't mix well\
09:07 moritz at least for star in p6eval
09:08 cognominal joined #perl6
09:09 moritz NOOO
09:10 moritz it's not the compilation that hangs
09:10 moritz panda hangs after copiling the last module
09:10 moritz i broked it :(
09:12 domidumont joined #perl6
09:13 domidumont joined #perl6
09:14 bbkr joined #perl6
09:17 sisar joined #perl6
09:17 dalek doc: 0ba2375 | moritz++ | lib/ (2 files):
09:17 dalek doc: [Any, Code] move signatures out of headlines
09:17 dalek doc:
09:17 dalek doc: 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 dalek doc: review: https://github.com/perl6/doc/commit/0ba2375a4b
09:20 moritz http://moritz.faui2k3.org/tmp/p6doc-html/List.html#roll
09:22 jnthn omg there's p6doc as html now?!
09:22 jnthn Nice!
09:23 jnthn The Items, Flattening and Sigils link doesn't work, fwiw.
09:24 wamba joined #perl6
09:25 moritz well, it's a very early draft :-)
09:25 moritz and that's a Pod::To::HTML bug I suspect
09:25 jnthn Aye
09:25 jnthn I'm just very happy to see it; I didn't realize it was being worked on by anyone yet :)
09:26 moritz my plan for an URL schema so far is:
09:26 jnthn I should have tuits for more doc commits this week :)
09:26 moritz doc.perl6.org/foo  -> list of everything named "foo" (tutorial with that name, method, sub, constant, enum, type, ...)
09:27 moritz doc.perl6.org/type/IO::Socket::INET # for types
09:27 moritz doc.perl6.org/routine/split # subs or methods named split
09:28 * jnthn ponders if a function vs method distinction in the URL structure there is worth it
09:28 jnthn Maybe not
09:29 moritz currently we have the same body text for sub and method split
09:29 lrnperl joined #perl6
09:33 lrnperl joined #perl6
09:44 daxim joined #perl6
09:47 masak I opine that's a good thing.
09:48 masak mix them together as a name, but be clear in the article body that it's different things.
09:50 * sisar gets fail for both tests in spec/S32-io/dir.t
09:50 sisar I guess it is expected, given the recent IO changes.
09:51 moritz sisar: right, I guess I have to fix them
09:51 moritz n: dir()
09:51 p6eval niecza v19-7-g5e25209:  ( no output )
09:51 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␤»
09:52 sisar moritz++
09:52 moritz oh, and update the spec so that niecza can follow
09:52 moritz might take a day or two
09:52 masak ++moritz
09:54 moritz oh, niecza doesn't run that file anymore
09:54 moritz that makes things easier
09:55 nuba joined #perl6
09:55 drbean joined #perl6
09:55 telex joined #perl6
09:56 GlitchMr joined #perl6
09:56 birdwindupbird joined #perl6
09:56 Patterner joined #perl6
09:56 baest joined #perl6
09:56 yves_ joined #perl6
09:56 apejens_ joined #perl6
09:56 erkan joined #perl6
09:56 Tene joined #perl6
09:56 pnu joined #perl6
10:00 dalek roast: 4d11076 | moritz++ | S32-io/dir.t:
10:00 dalek roast: update &dir tests to current spec
10:00 dalek roast: review: https://github.com/perl6/roast/commit/4d11076c62
10:00 Ex joined #perl6
10:12 masak wow, such divided opinions about Schwern's YAPC::NA keynote. seems there's an insider/outside gradient involved.
10:12 masak outsider*
10:17 daxim url?
10:17 daxim (to the gossip, not the keynote)
10:17 masak http://blog.nu42.com/2012/06/dont-box-me-in-yapcna-2012-impressions.html
10:17 masak including comments.
10:17 masak via szabgab's newsletter as of a week or so ago.
10:20 daxim ah oh
10:38 bbkr hi. is non-deterministic compilation issue (for example with URI segfaulting) solved in 2012.06?
10:38 bbkr star: use URI;
10:38 p6eval star 2012.06: OUTPUT«(signal SEGV)»
10:39 bbkr nvm :)
10:51 Psyche^ joined #perl6
10:55 snearch joined #perl6
11:15 fridim_ joined #perl6
11:21 moritz bbkr: curiously URI.pm seems to work reliably when installed with panda or ufo
11:23 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:24 moritz bbkr: ok
11:28 moritz 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␤␤»
11:28 moritz tadzik: is there a way to get more debug output out of panda?
11:31 moritz 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 moritz wanted: a feature that produces a backtrace when I send a signal to a perl6 process
11:32 moritz I guess after building comes testing
11:33 moritz but I've reverted to a panda revision (b97cf9f3) before I touched the tester, and it still loops :(
11:37 dalek roast: 2f0e76a | (Solomon Foster)++ | S12-construction/new.t:
11:37 dalek roast: Fudge for niecza.
11:37 dalek roast: review: https://github.com/perl6/roast/commit/2f0e76aad4
11:47 spider-mario joined #perl6
12:17 xdbr__ joined #perl6
12:49 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 #perl6
12:50 jnthn masak: Now exceptions are just pushed onto the end of a queue.
12:51 masak so the answer is [A, B]?
12:51 jnthn Oh, wait a moment...
12:51 jnthn It's a bit more subtle.
12:52 jnthn We fail to handle A
12:52 jnthn So we end up in the global catcher
12:52 jnthn Which spits out an exception
12:52 masak oh, because we haven't left the block yet at that point.
12:52 jnthn So we never get around to unwinding.
12:52 masak right.
12:52 masak but shouldn't we unwind before exiting the program?
12:53 masak I mean, shouldn't LEAVE guarantee that it gets run, even in the presence of `die`?
12:55 jnthn masak: You...want multiple backtraces?
12:55 jnthn masak: Generally, if you exit with an uncaught exception you're kinda screwed anyway.
12:56 jnthn r: do { die "A"; LEAVE die "B" }; CATCH { default { } }
12:56 p6eval rakudo 16db64:  ( no output )
12:56 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␤␤»
12:57 jnthn Works as wanted if you actually do handle it.
13:02 PacoAir joined #perl6
13:03 sisar joined #perl6
13:03 atrodo joined #perl6
13:10 masak jnthn: LEAVE is our closest thing to the refcount going to 0, that's why it feels important.
13:10 masak buubot_backup: eval 42
13:10 buubot_backup masak: 42
13:11 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!" };
13:11 buubot_backup masak: Couldn't match input.
13:11 masak buubot_backup: eval use 5.010; package Foo; sub DESTROY { say "cleaning up..." }; { my $foo = Foo->new() die "argh!" };
13:11 buubot_backup masak: ERROR: syntax error at (eval 20) line 1, near ") die"
13:11 masak buubot_backup: eval use 5.010; package Foo; sub DESTROY { say "cleaning up..." }; { my $foo = Foo->new(); die "argh!" };
13:11 buubot_backup masak: ERROR: Can't locate object method "new" via package "Foo" at (eval 20) line 1.
13:11 masak oh, right :)
13:12 masak 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.
13:12 masak that's what I'm talking about. the DESTROY runs even when the block dies.
13:13 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.
13:13 masak well,
13:14 masak r: do { die "A"; LEAVE say "oh!" }
13:14 p6eval rakudo 16db64: OUTPUT«A␤  in block <anon> at /tmp/2r5k_9ugGv:1␤␤»
13:14 masak so in Rakudo it's not a question of whether the LEAVE dies or not. it simply doesn't run.
13:17 jnthn Right.
13:18 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 masak TimToady: yesterday I wrote line 9 of https://github.com/masak/crypt/commit/35435dc33a99f2da443f7786658aa648a7593ed6 and I didn't even blink.
13:30 skids joined #perl6
13:32 TimToady "It is a comfort not to be mistaken on all points."  --Gandalf
13:33 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:34 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...
13:35 masak exactly.
13:35 masak I think MoR:Dumbledore mentions Gandalf at some point, pointing out exactly this.
13:35 masak hm, MoR!Dumbledore*
13:36 masak daxim: it's a bit of a mouthful, but it's not really that complicated. the subs help extract out the inessentialities.
13:37 masak 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 :)
13:37 * masak should stop saying "extract out" like *right now*
13:38 masak 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:39 bluescreen10 joined #perl6
13:40 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 :)
13:40 masak at least I'm on topic!
13:41 flussence is that a line of actual output?
13:42 masak from Event.Str, yes.
13:43 masak 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 :)
13:43 masak oh!
13:43 masak sorry. yeah, comma should not be there.
13:44 masak w'DiskRemoved[:disk<tiny disk> :source<left>]'
13:44 masak s/w//
13:44 masak I considered putting them in, and then didn't feel they were essential.
13:44 masak it's more of a .gist output than a .perl output :)
13:44 timotimo http://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
13:46 masak timotimo: NYI
13:47 masak timotimo: it treats the () as a statement list and runs through them all, evaluating to the last statement.
13:48 timotimo OK. what should it be instead, though?
13:48 imarcusthis joined #perl6
13:49 masak r: say (<a b>, (1, 2)).tree
13:49 p6eval rakudo 16db64: OUTPUT«a b 1 2␤»
13:49 masak r: say (<a b>, (1, 2)).tree.perl
13:49 p6eval rakudo 16db64: OUTPUT«LoL.new($("a", "b"), $(1, 2))␤»
13:49 masak that enough?
13:49 dalek nqp: f16f2c5 | jnthn++ | src/how/NQPModuleHOW.pm:
13:49 dalek nqp: Stop nqp::can(EXPORTHOW, 'foo') from exploding by adding some missing bits to NQPModuleHOW.
13:49 dalek nqp: review: https://github.com/perl6/nqp/commit/f16f2c591c
13:49 timotimo well, what i was wnodering about was: what does a ; mean in this case?
13:50 [Coke] how many stringy forms do we have now? 3? (String, Perl, Gist) ?
13:50 flussence Cat?
13:51 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.
13:51 flussence .Str is .perl iirc, and say calls .gist directly.
13:51 [Coke] masak; yes, but, to be fair, all three types can be distinct and don't have to rely on each other.
13:51 [Coke] s/types/methods/
13:53 masak granted.
13:53 masak and yes, it's a conceptual burden in some sense.
13:54 masak just as the print/say distinction (beyond "\n") is a conceptual burden.
13:56 masak r: loop { last; LEAVE say "bye!" }; say "outside"
13:56 p6eval rakudo 16db64: OUTPUT«outside␤»
13:56 masak do we have this one on file?
13:57 masak closest I find is https://rt.perl.org/rt3/Ticket/Display.html?id=113548
13:58 * masak submits rakudobug
13:58 masak r: for ^10 { next; LEAVE say "yay!" }; say "outside"
13:58 p6eval rakudo 16db64: OUTPUT«outside␤»
13:58 masak that, too.
13:58 masak n: loop { last; LEAVE say "bye!" }; say "outside"
13:58 p6eval niecza v19-7-g5e25209: OUTPUT«bye!␤outside␤»
13:59 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:03 tyatpi joined #perl6
14:16 masak r: class A { method x {} }; say A.^methods
14:16 p6eval rakudo 16db64: OUTPUT«x␤»
14:16 masak r: class A { method x {} }; say A.^methods[0]
14:16 p6eval rakudo 16db64: OUTPUT«x␤»
14:16 masak r: class A { method x {} }; say A.^methods[0].^methods
14:16 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␤␤»
14:16 * masak submits rakudobug
14:17 masak r: class A { method x {} }; say A.^methods[0].WHAT
14:17 p6eval rakudo 16db64: OUTPUT«Method()␤»
14:17 masak r: say Method.^methods
14:17 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␤␤»
14:18 masak r: sub foo {}; say &foo.WHAT
14:18 p6eval rakudo 16db64: OUTPUT«Sub()␤»
14:18 masak r: sub foo {}; say &foo.WHAT.gist
14:18 p6eval rakudo 16db64: OUTPUT«Sub()␤»
14:18 masak so, obviously that Sub() *has* a 'gist' method.
14:18 masak therefore, I probably hit an nqp Sub() or something.
14:25 jnthn masak: Yes, and I think that's been known and RT'd for a while.
14:32 colomon joined #perl6
14:37 masak if anyone finds the dupe, I'll happily merge it.
14:44 masak 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␤␤»
14:44 masak oh hm.
14:44 masak r: say .name for Signature.^methods
14:44 p6eval rakudo 16db64: OUTPUT«Unmarshallable foreign language value passed for parameter '$_'␤  in block <anon> at /tmp/3I6XNT09ux:1␤␤»
14:44 masak r: for Signature.^methods { try .say }
14:44 p6eval rakudo 16db64: OUTPUT«Unmarshallable foreign language value passed for parameter '$_'␤  in block <anon> at /tmp/UsVIALGx6B:1␤␤»
14:45 masak this is a problem.
14:45 masak those unmarshallable foreign elements infecting the purity of our French nation^W^W Chinese sovereignity^W^W programming language!
14:47 masak at least Signature is in core...
14:47 masak ...but it still detracts from the affordances/discovery process for newbies...
14:48 masak 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 #perl6
14:55 masak argh the invocant is a positional. of course.
14:56 masak 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:57 harmil there we go
14:58 colomon harmil++
14:59 alester joined #perl6
14:59 masak ;)
15:02 atrodo joined #perl6
15:04 thou joined #perl6
15:09 kresike bye all
15:14 GlitchMr joined #perl6
15:16 spider-mario .u ◌̧
15:16 phenny U+25CC DOTTED CIRCLE (◌)
15:16 phenny U+0327 COMBINING CEDILLA (◌̧)
15:17 GlitchMr .u ||
15:17 phenny U+007C VERTICAL LINE (|)
15:17 phenny U+007C VERTICAL LINE (|)
15:18 GlitchMr .u te­st
15:18 phenny GlitchMr: U+0074 U+0065 U+00AD U+0073 U+0074
15:19 thelazydeveloper joined #perl6
15:24 GlitchMr .u ????
15:24 phenny U+10000 LINEAR B SYLLABLE B008 A (????)
15:26 GlitchMr .u ????
15:26 phenny U+10FFFF (No name found)
15:27 GlitchMr exception what?
15:28 mucker joined #perl6
15:31 masak GlitchMr: you seem lost. can I help you with anything?
15:31 GlitchMr Nothing
15:31 masak (the 'Exiting due to an exception' quit message is most likely just a joke.)
15:31 GlitchMr Probably
15:32 masak ok, let me know if there's anything you need.
15:32 GlitchMr Whatever
15:32 GlitchMr I thought it crashed because of high UTF-8 character
15:32 GlitchMr But that would be silly
15:32 masak no, it wasn't the same nick.
15:33 GlitchMr I know
15:33 GlitchMr perl6: print "\x10FFFF"
15:33 p6eval niecza v19-7-g5e25209: OUTPUT«\x{10FFFF}»
15:33 p6eval ..rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
15:33 GlitchMr perl6: print "\x110000"
15:33 p6eval niecza v19-7-g5e25209: OUTPUT«\x110000»
15:33 p6eval ..rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
15:34 GlitchMr But in UTF-8 U+10FFFF is valid (technically)
15:34 masak please submit a bug report, then.
15:35 GlitchMr I don't know where to send rakudo bug reports
15:35 jnthn Valid in what sense?
15:35 masak rakudobug@perl.org
15:35 jnthn Please be specific (e.g. reference something)
15:35 jnthn (If filing a bug, that is. Handwaving on #perl6 is fine :))
15:35 masak it is!? :P
15:36 masak \o/ |\o/| o< /o\
15:36 jnthn :P
15:36 [Coke] aw... "learning perl, 6e" is not about perl 6.
15:36 masak you noticed too, eh?
15:36 [Coke] I'm all like, "OOH, what's this E about..."... nada.
15:37 GlitchMr rakudo: print "\x100000"
15:37 p6eval rakudo 16db64: OUTPUT«????»
15:37 GlitchMr rakudo: print "\x10FFFF"
15:37 p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
15:37 * masak does a given { when { when { } } for the first time in a program
15:37 GlitchMr rakudo: print "\x100001"
15:37 p6eval rakudo 16db64: OUTPUT«????»
15:37 masak er, plus an additional }
15:37 GlitchMr rakudo: print "\x10F000"
15:37 p6eval rakudo 16db64: OUTPUT«????»
15:37 GlitchMr rakudo: print "\x10FFFE"
15:37 p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
15:37 GlitchMr what?
15:37 masak GlitchMr: please be more specific than "what?"
15:38 masak GlitchMr: we cannot have a constructive discussion if you don't supply your expectations.
15:38 masak supplying surprise is a good start, but not enough.
15:38 GlitchMr So, Rakudo expects that UTF-8 ends on U+10FFFD
15:38 GlitchMr Weird...
15:38 masak something like "I expected this code to shoot monkeys out my nose."
15:38 masak if you say that, we can go on to explain why Rakudo doesn't do it that way.
15:38 jnthn So, here's what the Unicode spec syas.
15:38 jnthn *says
15:39 jnthn 10FFFE <not a character> * the value 10FFFE is guaranteed not to be a Unicode character at all
15:39 jnthn http://unicode.org/charts/PDF/U10FF80.pdf
15:40 GlitchMr Oh, then sorry
15:40 masak no need to apologise. :)
15:40 jnthn No problems. I didn't know it without looking it up. :)
15:40 masak except for being unclear with what you expected :P
15:41 gesh joined #perl6
15:41 [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!?
15:42 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:44 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
15:44 bbkr star: say "aaabb" ~~ m:2nd/.|../
15:44 p6eval star 2012.06: OUTPUT«q[ab]␤␤»
15:44 [Coke] jnthn: *snrk*
15:44 bbkr \o/ LTM FTW!
15:44 [Coke] masak: I think you, of all people, might be accepting of "seeing how to make rakudo blow up.". ;)
15:45 masak of course, that's not the point.
15:45 masak I'm wondering by what divine insight GlitchMr found this particular codepoint.
15:45 GlitchMr perl6: print "????"
15:45 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:45 p6eval ..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.�[31m===[0mSORRY![31m===[0m��Unrecognized backslash sequence: '\x' at /tmp/QfSe2zNE7T…
15:46 masak given that he didn't seem to be aware of the Unicode spec explicitly excluding it from the set of legal characters.
15:46 GlitchMr ... so Perl 5 catched it...
15:46 majrmovies joined #perl6
15:46 masak in what sense did Perl 5 catch it?
15:46 MayDaniel joined #perl6
15:46 masak if you do a 'perl6' evaluation, and then go '... so Perl 5...', there is some causal link missing.
15:47 jnthn masak: See the EvalbotExecuter.pm warning
15:47 jnthn masak: The Evalbot is written in Perl 5
15:47 masak oh!
15:47 masak indeed. GlitchMr++
15:48 masak interesting error message, too.
15:48 GlitchMr And it converted it to print "\x{10FFFF}"
15:48 GlitchMr Except Perl 6 uses [] instead of {}
15:53 fgomez joined #perl6
15:54 spider-mario .u ☕
15:54 phenny U+2615 HOT BEVERAGE (☕)
15:54 spider-mario .u ????
15:54 phenny U+1F42A (No name found)
15:55 masak yes, Perl 6 thinks {} is for code blocks (and hashes).
15:56 bbkr where was the option to mark RT ticket as testneeded? cannot find it.
15:56 jnthn On the Jumbo page, in tags
15:58 bbkr weird, I don't see it there...
15:59 masak maybe you're not logged in.
15:59 [Coke] bbkr: "Custom Fields"
15:59 masak it's also under "Basics". I never use the "Jumbo" page.
16:04 bbkr http://bbkr.org/~bbkr/testneeded.png - no tags selection...
16:05 bbkr and I'm logged in
16:06 bbkr I'm sure I was able to add tags in the past. maybe some additional permissions are required today?
16:07 xinming_ joined #perl6
16:14 masak looks like.
16:15 dalek nqp/toqast: e5cccaa | jnthn++ | src/QAST/Compiler.nqp:
16:15 dalek nqp/toqast: Provide a way to handle loadlibs.
16:15 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/e5cccaacdb
16:18 sorear good * #perl6
16:19 dalek rakudo/toqast: a9770e0 | jnthn++ | src/QPerl6/Actions.pm:
16:19 dalek rakudo/toqast: Translate GLOBAL installation (still something vm-specific for now).
16:19 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/a9770e05ab
16:19 dalek rakudo/toqast: 6e0b080 | jnthn++ | src/QPerl6/World.pm:
16:19 dalek rakudo/toqast: Some QAST translation of setting loading; still will need some generalizing by VM.
16:19 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/6e0b080c2a
16:19 dalek rakudo/toqast: f62e3e3 | jnthn++ | src/QPerl6/World.pm:
16:19 dalek rakudo/toqast: Update loadlibs handling to QAST::VM approach.
16:19 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/f62e3e3e5b
16:22 jnthn o/ sorear
16:22 sporous joined #perl6
16:25 daemon left #perl6
16:26 dalek nqp/toqast: 2e6ad4a | jnthn++ | src/HLL/Compiler.pm:
16:26 dalek nqp/toqast: Make HLL::Compiler more aware of QAST.
16:26 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2e6ad4aa16
16:27 bbkr std: / $. / # I think I found STD regression - error message is messy. back in 2010 it warned about unsupported $. variable, see https://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.�[31m===[0mSORRY![31m===[0m�Unsupported use of $. variable; in Perl 6 please use the filehandle's .line me…
16:28 moritz bbkr: it still does
16:28 moritz bbkr: it simply spits out some warnings before
16:29 masak sorear! \o/ moritz! \o/
16:29 sisar joined #perl6
16:32 kaleem_ joined #perl6
16:33 REPLeffect joined #perl6
16:33 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:34 moritz bbkr: it's less than awesome
16:37 fridim_ joined #perl6
16:39 dalek doc: 3274031 | moritz++ | htmlify.pl:
16:39 dalek doc: script for making HTML files
16:39 dalek doc:
16:39 dalek doc: very basic and very much a work in progress
16:39 dalek doc: review: https://github.com/perl6/doc/commit/3274031a23
16:42 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␤␤»
16:43 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␤␤»
16:43 masak r: sub foo { $^s.subst("a", "b") }; my $s = "abc"; $s .= &foo; say $s
16:43 p6eval rakudo 16db64: OUTPUT«bbc␤»
16:43 masak \o/
16:43 masak oh, it's only blocks that get an implicit $_?
16:43 jnthn aye
16:43 jnthn well
16:43 jnthn an implcit $_ parameter
16:44 masak aye.
16:45 dalek nqp/toqast: a39b82e | jnthn++ | src/QAST/Compiler.nqp:
16:45 dalek nqp/toqast: Improve error reporting when we find a PAST node inside a QAST tree.
16:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/a39b82e61d
16:45 dalek star: 8fb57ac | ronaldxs++ | skel/tools/build/module-install.pl:
16:45 dalek star: 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.
16:45 dalek star: review: https://github.com/rakudo/star/commit/8fb57acf80
16:45 dalek star: 7e48e51 | moritz++ | skel/tools/build/module-install.pl:
16:45 dalek star: Merge pull request #8 from ronaldxs/patch-1
16:45 dalek star:
16:45 dalek star: I think this is why URI is seg faulting.  I have not fully tested this w...
16:45 dalek star: review: https://github.com/rakudo/star/commit/7e48e51c60
16:45 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.
16:46 [Coke] moritz++ for your help in winproving panda.
16:46 [Coke] 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?
16:47 masak could I please ask people to review and stress-test https://github.com/masak/crypt/commit/72ef665c3faec428968eaa7a4db66c43ea3f4802 ?
16:47 masak it goes into today's blog post.
16:47 [Coke] not to check tap output, but just to see if the test file itself would generate any errors in compilation.
16:47 masak I'm really proud if this bit of code. Perl 6 is so nice nowadays.
16:48 masak oh, I see something to fix immediately.
16:49 [Coke] on feather, perl6 is This is Rakudo Perl 6, version 2010.08 built on parrot 2.7.0
16:51 seldon joined #perl6
16:52 [Coke] masak: everyone knows what hanoi is, but perhaps stating the goal in the help?
16:53 masak [Coke]: oh! sure.
16:53 masak [Coke]: http://strangelyconsistent.org/blog/another-month-of-blogging-adventure-game-here-i-come
16:53 masak [Coke]: http://strangelyconsistent.org/blog/july-1-2012-hanoi-as-a-black-box
16:53 wamba joined #perl6
16:53 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 #perl6
16:55 wamba joined #perl6
16:56 [Coke] > remove masakian disk
16:56 [Coke] Cannot remove the masakian disk because it has been removed
16:56 masak oh!
16:56 masak looks like a bug. [Coke]++
16:56 masak reproduced here.
16:56 masak investigating.
16:57 wamba left #perl6
16:57 [Coke] also, having a "show" command would be nice, so I can see where I am after filling the screen with errors.
16:57 masak yeah, I've simply missed writing a test case for that and implementing that.
16:58 masak [Coke]: ok, I'm giving you a "show" command, and then I'll implement the missing functionality.
16:58 masak thank you very much for the feedback.
16:58 masak [Coke]++
16:58 masak there's more free karma for other people with suggestions :)
17:00 masak [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.
17:02 masak I'm sorry? where did you get the impression that the goal is to remove the tiny disk?
17:02 masak it's an essential part of the adventure game to be able to remove the tiny disk, yes.
17:02 masak but the winning condition in the hanoi game is the usual one.
17:02 pmichaud good morning, #perl6
17:03 [Coke] masak: help should mention show.
17:03 [Coke] masak: from the lack of docs. ;)
17:03 masak [Coke]: help mentioning show coming up.
17:04 masak [Coke]: by the way, you're the first contestant in "Devastate The Adventure Game", as outlined in http://strangelyconsistent.org/blog/another-month-of-blogging-adventure-game-here-i-come :)
17:04 [Coke] masak: so, the goal is to move the tower to the right, aye?
17:05 spider-mario joined #perl6
17:05 [Coke] does the game let me know I've won
17:05 [Coke] ?
17:05 masak oh!
17:05 spider-mario .u ????
17:05 phenny U+1F608 (No name found)
17:06 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 masak [Coke]++
17:07 [Coke] well, that was probably the most enjoyable lunch break I'll have this week. ;)
17:07 masak yay
17:07 timotimo r: https://gist.github.com/3034309
17:07 p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Confused␤at /tmp/9zoH4wflws:1␤»
17:07 timotimo whoops.
17:07 masak note to self: drop enjoyable Perl 6 apps on #perl6 people during their lunch breaks
17:08 timotimo r: https://gist.github.com/3034309
17:08 p6eval rakudo 16db64: OUTPUT«1..2␤ok 1 - ␤ok 2 - ␤»
17:08 timotimo i'm confuse.
17:08 PerlJam joined #perl6
17:09 masak timotimo: there's a known scoping bug in that area :/
17:09 timotimo OK
17:09 masak it's not *fun* to run into, but it *is* confusing.
17:09 masak so that might be what you're experiencing.
17:09 timotimo i thought it was fun
17:09 masak if you want I can dig out RT.
17:09 timotimo i didn't really run into it
17:09 pmichaud ...scoping bug?  /me doesn't see it
17:09 timotimo i kind of provoked it :)
17:10 masak hm, pmichaud is right.
17:10 masak it looks correct.
17:11 masak 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
17:12 masak timotimo: why did you think that?
17:12 timotimo i don't know actually
17:12 masak that's not how closures work.
17:12 masak [Coke]: fixed. https://github.com/masak/crypt/commit/45fb27113b9d47d1a65ce446ea9b517e25328f6c
17:15 [Coke] masak: danke.
17:17 * [Coke] writes down the list of winning steps so he can more quickly test the win condition later. ;)
17:18 masak and now it tells you when you've won; pushed.
17:18 masak adding things to this game tells me the design is *very* right.
17:20 timotimo i'm quite fond of the multi MAIN('test', 'hanoi') "pattern"
17:25 PerlJam masak: Your throws_exception sub is interesting.
17:26 PerlJam it's almost the beginning of a "subtest DSL"  :)
17:26 masak I kinda like that factoring too. it feels right.
17:27 PerlJam yep
17:27 * masak goes hunting for food
17:27 [Coke] masak one last bug for you. ;)
17:27 masak keep the bug reports coming, people :)
17:28 * 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"
17:28 [Coke] so my trick of pocketing the small one while I finish the small puzzle doesn't work. ;)
17:28 [Coke] er, the *tiny* one, the *smaller* puzzle
17:29 masak hrm.
17:30 masak I'm not sure I consider that a bug.
17:30 masak you mean taking the tiny rod, and then finishing the hanoi game with the remaining disks?
17:31 masak yeah; feature, not bug. :)
17:31 masak the physical explanation is that the floor needs all the disks in place to tip over ;)
17:31 [Coke] masak: but when I add the tiny back to the tower on the right, I don't win
17:31 masak oh!
17:31 masak yes, *that's* a bug.
17:31 [Coke] I have to add it back, then use the "move" command to win.
17:31 masak [Coke]++
17:31 masak will fix, when I get back from getting food.
17:31 [Coke] \o/ . o O (SCORE!)
17:31 masak people, [Coke] is now two bugs ahead!
17:32 masak where's the rest of you? :P
17:32 [Coke] hee!
17:32 GlitchMr joined #perl6
17:33 masak the help now states the goal of the game, and the in-game limitation. [Coke]++
17:34 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:35 masak they don't bug me in the least.
17:35 masak in fact, I like the X:: namespace.
17:35 masak it's user-extensible, and it being one letter long means I feel like I come out ahead every time I refer to it :)
17:35 pmichaud it just feels like an awful lot of code to write to define an exception; especially when the pattern is so similar
17:36 masak I disagree.
17:36 [Coke] it is very javaesque yes.
17:36 masak each one is a few 'has' declarations and a very simple 'message' method. it's very fit for purpose.
17:36 [Coke] rakudo: class barf is Exception;
17:36 p6eval rakudo 16db64:  ( no output )
17:37 masak adventure game bugs so far: https://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?
17:37 [Coke] *sadfae*
17:38 masak actually, that was a really good feature request.
17:39 masak I didn't classify it as "things that didn't behave as they obviously should". maybe I should've.
17:39 * masak adds it
17:39 [Coke] no worries.
17:39 [Coke] or, fine, worry then!
17:40 masak added.
17:40 PerlJam .oO( Is masak the unhappy fairy? )
17:40 * masak away, really this time
17:46 Kivutar joined #perl6
17:47 felher joined #perl6
17:48 Kivutar hi, what would be better, PIR or zavolaj to write an SDL binding?
17:49 pyrimidine joined #perl6
17:49 Kivutar I found this https://github.com/PerlGameDev/SDL6 and this https://github.com/quietfanatic/gamebase
17:50 PerlJam Kivutar: Zavolaj IMHO, but it's kind of an apples-to-orange comparison.
17:51 [Coke] is your goal to get something usable in perl6, or something usable by any language targetting parrot?
17:51 zipf joined #perl6
17:52 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 Kivutar niecza
17:53 Kivutar is it the case?
17:53 eiro hello from Kivutar's home (marseille)
17:53 [Coke] I think that zavolaj only works from rakudo. niecza has its own C# interop you could use.
17:54 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.
17:54 eiro and mst is awesome! 11h of perl6 code payed back all  his fees :)
17:55 Kivutar ok thanks, I'll try zavolaj then (also because it seams a lot easier to use)
17:58 adam7504 joined #perl6
18:05 masak eiro: hehe, #perl6 doesn't know about mst's deal yet. :)
18:05 masak feel free to tell.
18:06 pmichaud I know about it.  :)
18:06 pmichaud I saw the tweets.
18:07 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++
18:08 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 #perl6
18:09 eiro i didn't have time to share with masak and jnthn and hack on perl6...
18:10 eiro 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.
18:11 eiro jnthn, or a yapc, as some said so ... but i don't have enougth of courage for that
18:11 eiro (i'd really love, btw ...)
18:12 jnthn It'd be great for a yapc too, yes. ;-)
18:12 jnthn But that is a lot more work.
18:13 eiro yep.. and now i really know i'm not made for this job. Parhaps we have to convince delphine and alex :)
18:13 eiro (i'll help for sure)
18:17 sisar masak++ #hanoi
18:18 masak well, stand by for today's post ;)
18:18 masak (but thanks)
18:19 * masak goes on to fix [Coke]++'s bug
18:19 masak that bug is currently easily the winning one, by the way.
18:19 masak it has exactly the kind of out-of-the-box sneaky thinking I'm after.
18:19 masak "the winning one so far", I should say ;)
18:20 vmspb joined #perl6
18:21 * sisar wants l, m , r short forms for left middle and right. Lazy sisar !
18:25 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 :)
18:26 masak sisar: how can we make it clearer what is accepted? concrete examples of commands?
18:26 sisar masak: did you not read? "Lazy sisar!" ;-)
18:27 masak sisar: well, you may still reject the task, of course. :)
18:28 sisar masak: um, not sure. Adding that only the small disk can be removed or added is one way
18:28 sisar masak: :-)
18:28 masak the tiny disk.
18:28 sisar s/Adding/Mentioning
18:28 sisar masak: yes, the tiny disk
18:28 masak I will mention that. good idea.
18:31 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:32 sisar .oO( damn you bikeshedding, why are you so easy? ) :-)
18:33 masak sisar: I did that on purpose :)
18:33 masak I have a few tests that make sure you first get the 'covered by' exception, and then the 'cannot remove' exception.
18:33 masak yes, I'm sadistic. I know.
18:34 * masak .oO( masak is supposed to be a masakist! )
18:34 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:35 masak not really autopuns.
18:35 masak maybe you don't grok the word "autopun" :P
18:36 sisar masak: it does involve use and .. wha's the second part of an autopun ?
18:36 masak [Coke]: bug fixed -- https://github.com/masak/crypt/commit/9f9b0becffa6fbca5c511fa6e78e7226a09b4331 -- [Coke]++
18:36 masak isn't it a wonderfully simple fix? :)
18:36 masak sisar: mention.
18:37 masak sisar: yes, but it's supposed to irreverently *confuse* use and mention.
18:37 sisar ah
18:37 masak or at least connect them somehow.
18:38 masak like, "There are two types of people those who write run-on sentences..."
18:39 masak the "there are two types of people" snowclone seems to be a fecund autopun generator, by the way.
18:39 masak as is "now you have 2 problems".
18:40 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:41 * masak .oO( don't do that, then )
18:43 masak harmil: srsly, it's hard to say why that happens. I don't think people tend to do the last step to exe.
18:43 masak maybe there's something in there that doesn't work so well.
18:44 masak 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:44 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:45 masak what the heck is that dash character before 'target'?
18:45 masak .u —
18:45 phenny U+2014 EM DASH (—)
18:46 masak o.O
18:46 masak oh! you're on a client that...
18:46 harmil That's what my cruddy IRC client turns - followed by - into
18:46 masak ...turns -- into —. heh.
18:46 masak (autocorrection: because the computer knows better than you)
18:46 harmil it's almost—you know—useful..
18:47 masak meh.
18:48 harmil anywhoo, I guess I'l do testing
18:49 harmil urg… nope, running the pbc through parrot causes the same problem, it's not an exe issue
18:50 masak ok.
18:50 masak that's good to know, though.
18:50 masak I believe running a pbc worked at some point.
18:51 masak main reason people didn't run from .pbc files was that apparently, parsing the .pir was basically not slower.
18:51 geekosaur masak: could be set for tex, where -- is en-dash and --- is em-dash, both of which are distinct from hyphen
18:52 masak geekosaur: right, but harmil's very helpful client turned -- into U+2014 EM DASH.
18:53 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:53 geekosaur yeh, I'm suggesting that's nt the most broken autocorrect )
18:59 [Coke] masak++: verified, fixed.
18:59 masak \o/
19:00 masak [Coke]: knowing about the 'take tiny disk' thing essentially halves the hanoi problem.
19:00 [Coke] masak: i'm lazy!
19:00 masak maybe I should only allow taking the disk when the achievement is unlocked. but that feels a bit arbitrary.
19:00 masak no, I think the lazy-but-creative people basically deserve the shortcut :)
19:01 [Coke] masak: leave it for the clever kids to find. ;)
19:01 [Coke] right. ;)
19:01 brrt joined #perl6
19:01 [Coke] from tom on p5p: This, I think, is the take-home message from all this.  It is ridiculously
19:01 [Coke] difficult to describe the spec for a Perl variable by name.  It shouldn't be.
19:02 plobsing joined #perl6
19:05 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:05 masak yes.
19:06 sisar If yes, after finishing, "remove tiny disk", "add tiny disk right" does not say that the achievement has been (re) unlocked.
19:06 harmil I've created a trivial reproducer for the "pir output runs out of memory" problem: https://gist.github.com/3035007
19:06 harmil can someone verify that they see the same brokenness before I go rebuilding everything obsessively?
19:06 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:07 masak sisar: namely, you have to move or remove a disk larger than the tiny disk.
19:08 sisar ok, that's fine then.
19:08 masak I could perhaps make that condition clearer in yesterday's post.
19:16 vmspb rn:  my $x=0; $x++ for 1..4; say $x
19:16 p6eval rakudo 16db64, niecza v19-7-g5e25209: OUTPUT«4␤»
19:16 vmspb rn:  my $x=0; ($x++ for 1..4); say $x
19:16 p6eval rakudo 16db64: OUTPUT«4␤»
19:16 p6eval ..niecza v19-7-g5e25209: OUTPUT«0␤»
19:17 vmspb rn:  my $x=0; +($x++ for 1..4); say $x
19:17 p6eval rakudo 16db64, niecza v19-7-g5e25209: OUTPUT«4␤»
19:18 masak vmspb: looks like you're trying to do something.
19:20 vmspb this nieczabug?
19:20 flussence rn: my $x = 0; eager ($x++ for 1..4); say $x;
19:20 p6eval rakudo 16db64: OUTPUT«4␤»
19:20 p6eval ..niecza v19-7-g5e25209: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤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…
19:20 masak vmspb: oh, I see now.
19:20 masak yes, I believe so.
19:21 cog_ joined #perl6
19:21 sorear insofar as niecza lacks a 'sink' which eagerizes stuff, it is a nieczabug
19:22 brrt1 joined #perl6
19:25 pmichaud harmil: I don't think we have executing .pir files directly functioning yet.
19:26 pmichaud i.e., it's more NYI than anything else.
19:27 brrt joined #perl6
19:27 pmichaud although the failure mode is indeed truly interesting.
19:28 jnthn What is it, ooc?
19:28 brrt1 joined #perl6
19:28 pmichaud it seems to hang and eat up lots of memory
19:29 pmichaud A little over 1GB/sec
19:29 harmil yep, that's what I see
19:30 harmil I propose we rename the target from PIR to MEMSTRESSTEST and call it a day ;-)
19:30 pmichaud well, we *do* use target=pir for other stuff, such as precompiling modules
19:30 pmichaud we just don't have the PIR smart enough to be used as a standalone program yet.
19:32 birdwindupbird joined #perl6
19:34 pmichaud https://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 pmichaud afk, lunch
19:39 brrt joined #perl6
19:41 harmil sad to see perl6-log didn't make it into rakudo-star 2012.06. Oh well
19:46 * sorear narrowly avoids posting a vitriolic reply to bug#132
19:47 diakopter do the parentheses defer the innards?
19:47 sorear yes
19:48 masak ah, indeed. the splice bug that I found yesterday was submitted November 2011: https://rt.perl.org/rt3/Ticket/Display.html?id=104026
19:48 * [Coke] doesn't see any need for any vitriol here
19:49 stephenlb joined #perl6
19:50 sorear There is never need for vitriol.
19:55 flussence aww crap, I thought URI.pm would be a 1-char fix in niecza. Then I get a NYI on something else :(
20:00 colomon sorear: why do parentheses defer the innards?
20:01 snearch joined #perl6
20:01 sorear colomon: nasty hack to simulate sink context
20:02 colomon sorear: ah
20:02 sorear for loops that are direct children of statementlist are run immediately
20:04 masak today's autopun: http://twitter.com/GaryDelaney/status/25756204076630017
20:20 harmil When you say, "autopun", do you mean that you have something that goes and finds these, masak?
20:23 diakopter autopuns are utterances that make mention of some activity/state while also embodying the activity/state.
20:23 huf i always try to explain why autopuns are awesome to people
20:23 huf and then i can never remember any examples
20:23 huf literally *none*
20:24 huf (also i suck at making them up on the spot)
20:25 brrt left #perl6
20:30 harmil So, a meta autopun wouldn't be repundent at all?
20:30 moritz the meta the better
20:37 masak huf: http://masak.org/carl/gpw-2012-autopuns/talk.pdf
20:40 spider-mario joined #perl6
20:42 MayDaniel joined #perl6
20:42 * colomon never meta autopun he didn't like.
20:42 * colomon is hating computers with a deep passion today
20:43 flussence rakudo's horribly broken for me today. Parrot OOM errors doing normal stuff :(
20:43 flussence (that makes two computers it won't work on now...)
20:43 diakopter blame the leap second
20:46 flussence https://gist.github.com/3035588 ...that's an amazingly uninformative error.
20:49 sorear 'failed allocation of 2738176 bytes' seems informative enough
20:49 harmil I do like the final line, there, though
20:52 harmil 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:52 flussence sorear: yeah, but this *used* to work fine and I have at least 5 gigs free...
20:53 jnthn flussence: When is "used to work" exactly?
20:53 jnthn flussence: Hours? Days? Weeks?
20:53 flussence days at most
20:53 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)
20:54 flussence it's not limited to installing nativecall either, I was getting it trying to run the URI module tests
20:56 harmil r: for (1,2) -> $i { say $i }
20:56 p6eval rakudo 16db64: OUTPUT«1␤2␤»
20:56 harmil hmmm...
20:56 harmil locally, I get:
20:56 harmil Undefined routine '&for' called (line 1)
20:57 harmil -v says: This is perl6 version 2012.06 built on parrot 4.5.0 revision 0
20:57 flussence r: for(1,2) -> $i { say $i }
20:57 p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Confused␤at /tmp/Occ8wCUhLL:1␤»
20:57 flussence works here, but I'm on 16db64
20:57 masak lol! I blogged! again! \o/ http://strangelyconsistent.org/blog/july-2-2012-implementing-hanoi
21:02 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:03 masak I did add it so that the Hanoi game will plug in well into the bigger adventure game. see previous posts :)
21:03 masak (the tiny disk plays a vital role in finishing the quest)
21:03 flussence ooh, that's clever
21:04 masak yeah, I always like that part :)
21:05 masak flussence: if you have time, consider playing the game. it's quite fun. the tag is 2011 in the crypt repo.
21:05 masak hm, did I push that tag? :)
21:06 masak tag pushed.
21:10 masak I again encourage people to crash my stuff. a prize has been announced.
21:13 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:14 masak that explains it.
21:35 tadzik hello #perl6
21:36 masak tadzik! \o/
21:37 jnthn evenin', tadzik
21:46 tadzik hello hello
21:46 tadzik that was quite an adventurous day
21:46 tadzik and FRA is absolutely HORRIBLE
21:46 sorear tadzik!
21:47 tadzik sorear!
21:49 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 harmil am I spelling that wrong?
21:49 tadzik I think it confuses the block with a hash
21:49 tadzik my %h = <a b c>.map: {; $_ => 1}
21:50 tadzik r: my %h = <a b c>.map: {; $_ => 1}
21:50 p6eval rakudo 16db64:  ( no output )
21:50 tadzik yep
21:50 tadzik ';' helps
21:50 harmil freaky, thanks
21:55 stephenlb joined #perl6
22:00 harmil r: my %x = ("a" => 1, "b" => 2); say %x<a>
22:00 p6eval rakudo 16db64: OUTPUT«1␤»
22:00 harmil r: our %x = ("a" => 1, "b" => 2); say %x<a>
22:00 p6eval rakudo 16db64: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤  in block <anon> at /tmp/95LvfBVWjx:1␤␤»
22:00 harmil Why would changing my to our make that break?
22:01 tadzik I don't have any idea
22:01 jnthn Because Rakudo's hanlding of non-scalar our scoped things is weird.
22:01 harmil Oh, I think I ran into this before…. our on %ish things is known not working
22:02 ocharles left #perl6
22:02 jnthn (As in, not really implemented.)
22:02 harmil yeah, I ran into that last week… bad memory
22:02 harmil sorry
22:02 jnthn bad rakudo too...
22:03 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:12 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)␤»
22:12 harmil interesting
22:13 harmil n: try { my $foo = spoon; CATCH { say "There is no spoon"; return; } }
22:13 p6eval niecza v19-7-g5e25209: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤      'spoon' used at line 1â�¤â�¤Potential difficulties:â�¤  $foo is declared but not used at /tmp/GgNTO57bus line 1:â�¤------> [32mtry { my [33mâ��[31m$foo = spoon; CATCH { say "There is no s[0mâ�¤â�¤Unhandled exceptio…
22:14 jnthn harmil: That's caught at compile time.
22:14 jnthn CHECK time to be specific.
22:14 drbean joined #perl6
22:14 sorear b:  try { my $foo = spoon; CATCH { say "There is no spoon"; return; } }
22:15 p6eval b 922500: OUTPUT«There is no spoon␤»
22:15 sorear harmil: ^^^ previous versions of rakudo behaved differently
22:15 sorear alpha: say "Alpha still runs in p6eval"
22:16 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 harmil not sure how to do that if it's being trapped at compile-time… how does that even work?
22:17 whiteknight joined #perl6
22:17 harmil what's b?
22:18 flussence b is 'back one rewrite before nom'
22:18 harmil nice
22:18 sorear harmil: Conditioning on the exports of a module is a major design smell
22:18 sorear It could be done, but I'd want to know why
22:19 geekosaur version skew is the usual reason I find myself needing such things
22:20 geekosaur 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:20 harmil 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.
22:21 sorear "how do you catch a failed use"
22:21 sorear by using 'require' instead.
22:22 harmil fair enough
22:22 sorear r: try { require Moo <&moo>; CATCH { default { say "can't require Moo" } } }
22:22 p6eval rakudo 16db64: OUTPUT«can't require Moo␤»
22:22 sorear r: try { require Test <&plan>; plan 5 CATCH { default { say "can't require Moo" } } }
22:22 p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2, near "plan 5 CAT"␤»
22:22 sorear r: try { require Test <&plan>; plan 5; CATCH { default { say "can't require Moo" } } }
22:22 p6eval rakudo 16db64: OUTPUT«1..5␤# Looks like you planned 5 tests, but ran 0␤»
22:22 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.
22:22 sorear how is that not useful
22:23 harmil users get cranky when their programs exit without doing work ;-)
22:23 sorear where am I suggesting 'exit'?
22:25 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 harmil anyway, not the time for me to debate the finer points of correct error recovery. I'll cobble something together
22:26 eiro jnthn, Kivutar uses zavojakasomething
22:26 eiro (running sdl code)
22:27 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:28 Kivutar 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?
22:28 sorear Require should be perfect for your needs
22:29 sorear well, if rstar 06 has require.
22:29 sorear if it doesn't, you've got a slightly bigger problem :|
22:30 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
22:31 jnthn Kivutar: Just pass OpaquePointer itself
22:32 jnthn Kivutar: ah, tadzik++ beat me to saying it. But basically, a type object represents null.
22:32 Kivutar thanks, it worked
22:33 tadzik jnthn: so what happened to your laptop?
22:33 Kivutar time to go to sleep
22:33 jnthn tadzik: Nothing spectaculor.
22:33 Kivutar zavolaj is a great tool
22:34 jnthn tadzik: It BSOD'd, and then when I rebooted it did the same right away.
22:34 tadzik odd
22:34 jnthn tadzik: No disabling of stuff helped
22:34 Kivutar got a small sdl binding in 30min
22:34 jnthn Kivutar: Nice!
22:35 jnthn tadzik: yeah, odd indeed :(
22:35 jnthn tadzik: It's hard to guess where the failure really lies... I think it may be new laptop time, though.
22:36 Kivutar left #perl6
22:37 plobsing joined #perl6
22:40 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
22:40 tadzik what are you trying to achieve?
22:41 tadzik "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.
22:41 tadzik My experience with require is "yes, it works"
22:42 jnthn What does require return, ooc?
22:42 pmichaud back again
22:42 jnthn I suspect it's leaking a Parrot value into Perl 6 space given that error.
22:42 tadzik r: use Test; say so eval 'my $a = &is'
22:42 p6eval rakudo 16db64: OUTPUT«True␤»
22:42 tadzik r: say so eval 'my $a = &is'
22:42 p6eval rakudo 16db64: OUTPUT«False␤»
22:42 tadzik there you are
22:43 jnthn BEGIN { require A; 1 } # will get around this
22:43 harmil r: BEGIN { require Test }
22:43 p6eval rakudo 16db64: OUTPUT«===SORRY!===␤Can only use nqp_set_sc_for_object with a SixModelObject␤»
22:43 harmil r: BEGIN { require Test;1  }
22:43 p6eval rakudo 16db64:  ( no output )
22:44 harmil ok
22:44 jnthn masak may file a Rakudo bug about it too ;)
22:45 * masak submits rakudobug
22:46 tadzik automagic
22:46 harmil p6eval should probably file a bug for any input that results in output containing "SixModelObject" ;-)
22:46 tadzik so, no feedback about Typed::Subroutines?
22:46 masak harmil: people have been trying to automate me for years :P
22:46 tadzik I personally find it quite awesome, but obviously I'm biased
22:46 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 :)
22:47 masak :P
22:47 tadzik (https://github.com/tadzik/Typed-Subroutines/blob/master/README)
22:48 masak harmil: after a while you won't even notice the weird language in here, it will just seem normal to you. :)
22:49 masak harmil: https://rt.perl.org/rt3/Ticket/Display.html?id=113956
22:50 adu joined #perl6
22:50 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:51 masak harmil: oh, I was referring to the "touch-typing" response.
22:51 harmil oh, he
22:51 harmil heh
22:57 pmichaud for RT #113956, I suspect the problem is the return value of the 'load_module' method in ModuleLoader.  In particular:
22:58 pmichaud r: BEGIN { require Test <&is>; }   # works fine
22:58 p6eval rakudo 16db64:  ( no output )
22:58 pmichaud r: say BEGIN { require Test <&is>; }   # works fine
22:58 p6eval rakudo 16db64: OUTPUT«Test()␤»
23:00 sudokode joined #perl6
23:01 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?
23:02 * pmichaud tries that.
23:02 harmil r: try { require Bogosity; CATCH { say "it was bogus" } }
23:02 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␤␤»
23:03 sorear harmil: it means you have to treat the exception as handled, using CATCH { default { *your code goes here* } }
23:03 sorear harmil: or more generally, CATCH { succeed }
23:03 harmil ah, ok
23:03 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
23:04 harmil r: try { require Bogosity; CATCH { default { say "it was bogus" } } }
23:04 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...
23:04 p6eval rakudo 16db64: OUTPUT«it was bogus␤»
23:04 harmil yay
23:04 sorear it's possible for more than one exception to be pending at once, if a previous CATCH died
23:05 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
23:05 sorear uncaught
23:22 flussence whoa, I don't think this is fixed after all... NativeCall shouldn't take >2.5 gigs of RAM.
23:23 flussence (still climbing)
23:23 flussence yeah, URI's tests pass but this exploded again :(
23:27 masak good night, #perl6
23:44 mokko joined #perl6
23:46 tokuhiro_ joined #perl6
23:50 Vlavv_ joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo