Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-03-20

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:00 moritz_ amoc: http://en.wikipedia.org/wiki/Sic
00:00 amoc oh-
00:01 moritz_ jnthn: if you want to make both masak and me happy, you could look into RT #63902 tomorrow ;-)
00:01 amoc moritz_: TimToady: thank you very much !
00:03 moritz_ you're welcome
00:03 moritz_ bed time for me
00:03 amoc moritz_: *good night*
00:04 jnthn moritz_: Noted, thanks.
00:20 pmurias joined #perl6
00:23 Kisu joined #perl6
00:24 nihiliad joined #perl6
00:35 cspencer rakudo: sub foo($x:) { say "x = $x" }; foo(2)
00:35 p6eval rakudo c26021: OUTPUT«error:imcc:syntax error, unexpected IDENTIFIER ('self')␤   in file 'EVAL_19' line 53␤»
00:36 jnthn fail
00:36 jnthn std: sub foo($x:) { say "x = $x" }; foo(2)
00:36 amoc it emits segmentation fault ;
00:37 p6eval std 25938: OUTPUT«ok 00:04 37m␤»
00:37 jnthn Damm, I can't steal an error from STD.pm. ;-)
00:37 cspencer heh :)
00:37 jnthn cspencer: File Rakudo bug, shouldn't be too hard to make that a better compile time error.
00:38 cspencer will do :)
00:40 * jnthn finally finishes captioning his holiday photos
00:43 eternaleye joined #perl6
00:51 amoc std: my ::MySig ::= :(Int, Num)
00:51 p6eval std 25938: OUTPUT«##### PARSE FAILED #####␤Malformed my at /tmp/uc83UjfXWK line 1:␤------> [32mmy ::MySig ::[31m= :(Int, Num)[0m␤    expecting any of:␤     horizontal whitespace␤    morename␤ multi_declarator␤ typename␤       whitespace␤FAILED 00:02 34m␤»
00:51 amoc '~';...?
00:52 jnthn std: ::MySig ::= :(Int, Num)
00:52 p6eval std 25938: OUTPUT«ok 00:02 36m␤»
00:52 amoc ow?
00:52 jnthn That is syntactically OK
00:52 jnthn But dubious
00:53 jnthn Since :: implies does Abstraction and AFAIK Signature does not.
00:54 * amoc search'ed' what afaiks stands for
00:54 amoc i see
00:56 jnthn sorry
00:56 jnthn iutma
00:57 amoc '~' it seems really dubious
00:58 jnthn Did you see it in a synopsis somewhere?
00:58 jnthn ::MyType ::= Int for example I would expect to work...
00:59 amoc http://perlcabal.org/syn/S02.html#Names_and_Variables
01:00 amoc rakudo: ::MyType ::= Int
01:00 p6eval rakudo c26021: OUTPUT«Could not find non-existent sub infix:::=␤current instr.: '_block14' pc 61 (EVAL_17:40)␤»
01:00 amoc rakudo: ::MyType := Int
01:00 p6eval rakudo c26021: RESULT«Int»
01:01 cspencer if i were to write the 'lc' method as a P6 method, would the best way to do it be as an inline PIR?
01:01 cspencer i don't see an easy way of figuring out the lowercase of all possible characters...
01:02 jnthn cspencer: Yes, as inline PIR
01:02 jnthn There will be a Parrot opcode to do it.
01:02 cspencer ok
01:02 cspencer yep
01:02 cspencer downcase, i belieive
01:02 jnthn rakudo: ::MyType := Int; my MyType $x = 42; say "ok"; $x = "OMG"; say $x;
01:02 p6eval rakudo c26021: OUTPUT«ok␤Type mismatch in assignment.␤current instr.: 'die' pc 15960 (src/builtins/control.pir:204)␤»
01:02 jnthn yay
01:04 jnthn cspencer: I think somebody even did a similar op recently.
01:05 cspencer oh, it's already implemented in rakudo?
01:05 jnthn erm, built-in doing a string op, that is.
01:05 jnthn cspencer: I don't know that lc is
01:05 cspencer ok
01:05 jnthn I meant somebody had done another Str method in the setting that used a PIR opcode.
01:05 cspencer i don't think that lc is done from the looks of it
01:05 cspencer ah ok
01:06 jnthn The implication being that you could glance at it if you need inspiration. :-)
01:06 cspencer i just did a couple Any-num ones
01:06 jnthn Nice.
01:06 cspencer heh, gotcha, ok :)
01:08 * amoc thinks starting with synopsis are not so easy, i should go here and there to get terms meaning.
01:08 amoc s/ i / he /;
01:10 orafu joined #perl6
01:11 jnthn amoc: The synopses are specifications more than tutorials and as such can be hard-going at times.
01:12 amoc yes, i know, heh >_<
01:12 cspencer jnthn: ah yes you're right, someone had done a P6 Any.uc method :)
01:17 jnthn Dares you to do ucfirst as well. ;-)
01:18 cspencer i believe i already did a week or so ago :)
01:23 jnthn cspencer: Oh, nice. Was it applied?
01:23 cspencer it was indeed
01:24 jnthn Great.
01:26 cspencer how do i squash the last two commits in my git tree down to one patch?
01:28 * jnthn is a git n00b
01:28 jnthn git format-patch?
01:29 cspencer hah, i'm a noob myself
01:30 cspencer ah, got it
01:31 gravity git-rebase can do it as well
01:31 gravity You can even search its manpage for "squash" :-)
01:31 * avar thinks squash should be called "stomp"
01:32 jnthn I actually have come to admire git overall though, even though it still feels a bit magical at times.
01:33 cspencer gravity: i think the problem was that i was trying to squash the master branch back down into the master branch
01:33 cspencer so i just branched master, reset master and merged the branch back in
01:43 xinming joined #perl6
01:45 gbacon joined #perl6
01:49 * amoc noobs
01:49 alester joined #perl6
01:51 amoc std: my ::MyType ::= :(Num, Str)
01:51 p6eval std 25938: OUTPUT«##### PARSE FAILED #####␤Malformed my at /tmp/AiLUEhuRlW line 1:␤------> [32mmy ::MyType ::[31m= :(Num, Str)[0m␤    expecting any of:␤    horizontal whitespace␤    morename␤ multi_declarator␤ typename␤       whitespace␤FAILED 00:02 34m␤»
01:52 * gravity nods
01:52 amoc rakudo: my ::MyType ::= :(Num, Str)
01:52 p6eval rakudo c26021: OUTPUT«ResizablePMCArray: Can't pop from an empty array!␤current instr.: 'parrot;Perl6;Grammar;Actions;typename' pc -3015048 ((unknown file):-1)␤»
01:52 jnthn ewwwww
01:53 amoc can't pop empty array (..@_@)
01:54 amoc rakudo: ::MyType ::= :(Num, Str)
01:54 jnthn amoc: It's a fail in the guts.
01:54 p6eval rakudo c26021: OUTPUT«too few arguments passed (0) - 2 params expected␤current instr.: '_block14' pc 40 (EVAL_18:28)␤»
01:54 jnthn I know where.
01:57 amoc than, should it be to rakudobug?
01:59 jnthn Please.
01:59 jnthn I can't really guess why it's giving that error.
02:02 SamB joined #perl6
02:18 cspencer do rakudo regexes support the :g global matching adverb?
02:19 cspencer i can't quite figure out how to get the syntax right
02:21 jnthn rakudo: my $x = "xxx"; say $x.match(/x/, :g).perl;
02:21 p6eval rakudo c26021: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ text => "x",␤ from => 0,␤ to   => 1,␤)␤»
02:21 jnthn Hmm.
02:21 cspencer ah, ok.  i was trying various forms of the $str ~~ m:g/x/
02:22 jnthn cspencer: I suggest looking through the .match method for clues, I think I remember something in there...
02:22 jnthn I think we don't support adverbs out front like that yet.
02:22 cspencer will do, thanks :)
02:24 * jnthn should sleep
02:24 disismt joined #perl6
02:24 jnthn I think I've been shifting a timezone a night for the last few days or something...
02:24 cspencer that'd take its toll eventually :)
02:24 jnthn It always hits me on a Sunday morning, when I'm meant to be at church for 9:30am...
02:24 cspencer heheh
02:25 jnthn And I seem to remember I volunteered myself for...something...this Sunday.
02:25 jnthn Anyway, night
02:26 Tene_ joined #perl6
02:26 cspencer good night :)
02:28 dukeleto rakudo: say 1i.roots(2)
02:28 p6eval rakudo c26021: OUTPUT«Statement not terminated properly at line 1, near ".roots(2)"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:31 amoc jnthn: good night!
02:32 ced-2 joined #perl6
02:33 alc joined #perl6
02:35 pmichaud2 good morning, all.
02:35 pmichaud2 er, good evening.
02:37 amoc pmichaud2: good morning/evening :) *
02:51 unobe joined #perl6
02:56 Porsbo joined #perl6
03:09 cspencer joined #perl6
03:12 FurnaceBoy joined #perl6
03:15 pmichaud anyone know of any blockers for the rakudo release?
03:15 lambdabot pmichaud: You have 2 new messages. '/msg lambdabot @messages' to read them.
03:15 pmichaud @messages
03:15 lambdabot moritz_ said 11d 6h 35m ago: I hope I addressed all your concerns with the built-ins in Perl 6. If so, please close the tickets
03:15 lambdabot moritz_ said 1d 10h 38m 37s ago: if you want to do some rakudo publicity, you could answer http://www.perlmonks.org/?node_id=751341
03:21 pugs_svn r25939 | lwall++ | [STD] improve error message on unsupported multiple type constraints
03:24 frooh pmichaud: hey, s1n and I were wondering if you could give us access to the hosting space of dallas.p6m.org?
03:27 pmichaud I don't have it hosted anywhere yet -- I just registered the domain.
03:27 pmichaud I can host it somewhere, yes.
03:27 frooh if you don't mind it would be helpful
03:27 pmichaud or if you have somewhere you'd prefer to see it hosted, we can do that.
03:27 frooh I know you are on vacation at the moment
03:27 pmichaud it'll be a day or two before I can do that.
03:27 frooh either is cool with me
03:28 frooh whichever is easier for you
03:28 pmichaud I'm off-vacation now; just got back about 6 hours ago.
03:28 frooh ah, well no rush either way
03:28 frooh but just when you get a chance it would be nice if we had some for of site that multiple people could use
03:28 frooh maybe a ....web .... sit
03:28 frooh site*
03:28 frooh :-)
03:29 frooh also form*
03:29 frooh also we should talk at some point about when you want to do your "hacking on rakudo" dry run
03:30 frooh obviously the limiting reagent (afaik) is s1n as he has school stuff etc
03:54 meppl good night
03:56 cspencer rakudo: my $s = "hello"; say $s ~~ "h"
03:56 p6eval rakudo c26021: OUTPUT«0␤»
03:57 cspencer hmmm...does the RHS have to be a regex?
04:07 pmichaud smart matching against a string asks for equivalency
04:09 pmichaud rakudo:  my $s = 'h' ~ 'ello';   say $s ~~ 'hello';
04:09 p6eval rakudo c26021: OUTPUT«1␤»
04:09 dalek rakudo: 80344fd | pmichaud++ | docs/ChangeLog:
04:09 dalek rakudo: More ChangeLog updates for release #15.
04:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/80344fd35d64c218136a9daed55c79f801cbcb47
04:09 dalek rakudo: 44e1496 | pmichaud++ | build/PARROT_REVISION:
04:09 dalek rakudo: Bump PARROT_REVISION for release testing.
04:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/44e1496989cf1b6f9fbd97152a31987841f2e0ff
04:40 OuLouFu joined #perl6
05:16 Tene_ jnthn: ping
06:09 ejs joined #perl6
06:09 amoc may i just test something -
06:09 amoc std: IO.^modules.perl
06:09 p6eval std 25939: OUTPUT«ok 00:02 34m␤»
06:53 ejs joined #perl6
06:54 DemoFreak joined #perl6
07:14 amoc std: say $?PARSER
07:14 p6eval std 25939: OUTPUT«ok 00:02 35m␤»
07:14 amoc std: say $?PERL
07:14 p6eval std 25939: OUTPUT«ok 00:02 35m␤»
07:30 mberends joined #perl6
07:31 mberends joined #perl6
07:42 moritz_ std: 1 ?? 2 << 3 :: 4 >> 5 !! 6
07:42 p6eval std 25939: OUTPUT«##### PARSE FAILED #####␤Obsolete use of << to do left shift; in Perl 6 please use +< or ~< instead at /tmp/UDssTgFOrQ line 1:␤------> [32m1 ?? 2 << [31m3 :: 4 >> 5 !! 6[0m␤FAILED 00:02 34m␤»
07:46 moritz_ perl6: say 1 ?? << 3 :: 4 >> !! 6
07:46 p6eval elf 25939: OUTPUT«Unknown rule: infix:conditional␤It needs to be added to ast_handlers.␤ at ./elf_h line 2841␤»
07:46 p6eval ..pugs, rakudo 44e149: OUTPUT«3::4␤»
08:03 disismt joined #perl6
08:16 mberends moritz_: good morning! here is a new site for you to browse: http://autoexec.demon.nl:8080/home/rakudo/pugs/docs/Perl6/Spec/S32-setting-library/Basics.pod except the port is actually 2080 to avoid being botted ;)
08:16 moritz_ mberends: will do in a few minutes, have to run now
08:17 mberends np
08:35 drbean joined #perl6
08:35 moritz_ mberends++
08:35 moritz_ one minor nit: multiple code blocks separated by newlines should be joined to one block
08:36 mberends yes, agreed, it's a todo for me.
08:41 viklund joined #perl6
08:43 moritz_ oh, and it should ignore =for vim :-)
08:43 moritz_ see for example S13
08:43 moritz_ but it's way cool
08:57 viklund *sigh* while cleaning up the perl5 part of proto I almost made it OO...
08:57 viklund or rather, it is, but not explicitly
09:00 bacek joined #perl6
09:01 moritz_ what's *sigh* about it? do you dislike OO?
09:02 viklund I didn't plan on it...
09:03 viklund I guess I don't think the current solution is elegant enough
09:03 viklund well, well, at least it's now possible to use proto to install rakudo inside parrot...
09:08 ejs joined #perl6
09:09 bacek good evening
09:10 bacek perl6: my $c = \( A => 'b', C => 'd'); my $C = |$c; say $C
09:10 p6eval pugs: OUTPUT«CaptSub {c_feeds = [:MkFeed {f_positionals = [::], f_nameds = [(C,[:"d":]),(A,[:"b":])]}:]}␤»
09:10 p6eval ..elf 25939: OUTPUT«Undefined subroutine &GLOBAL::prefix__124 called at (eval 125) line 4.␤ at ./elf_h line 5863␤»
09:10 p6eval ..rakudo 44e149: OUTPUT«too many arguments passed (3) - 2 params expected␤current instr.: 'infix:=' pc 14184 (src/builtins/assign.pir:15)␤»
09:11 bacek perl6: my $c = \( A => 'b', C => 'd'); my $C = |$c; say ~$C
09:11 p6eval elf 25939: OUTPUT«Undefined subroutine &GLOBAL::prefix__124 called at (eval 126) line 4.␤ at ./elf_h line 5863␤»
09:11 p6eval ..pugs: OUTPUT«CaptSub {c_feeds = [:MkFeed {f_positionals = [::], f_nameds = [(C,[:"d":]),(A,[:"b":])]}:]}␤»
09:11 p6eval ..rakudo 44e149: OUTPUT«too many arguments passed (3) - 2 params expected␤current instr.: 'infix:=' pc 14184 (src/builtins/assign.pir:15)␤»
09:12 bacek It suppose to say "d", isn't it?
09:14 moritz_ is it?
09:18 ejs1 joined #perl6
09:35 meppl joined #perl6
09:35 Sepheebear joined #perl6
09:55 zamolxes joined #perl6
10:04 masak joined #perl6
10:05 mberends masak: HAI! you do not need to frig with netcat today. the pod server is online at http://autoexec.demon.nl:8080/home/rakudo/perl6-examples/lib/Pod/Server.pm except that the port is 2080 to throw google and yahoo bots off the scent.
10:05 * masak tries
10:06 mberends the entire filesystem is browseable so please don't quote the exact url publicly.
10:06 mberends The server is single threaded and response times are several minutes for some documents, so please don't open docs in multiple tabs at the same time.
10:07 mberends you can see how the Synopses currently render in /home/rakudo/pugs/docs/Perl6/Spec but check the file sizes locally before fetching anything. S26 (72KB) took 1.3GB RAM died after 8 minutes. S01 S07 and S10 - S31 are reasonable.
10:08 masak pmichaud, jnthn: hate to do this on a release day, but November is blocking on [perl #63978]. I guess we could work around it if it's not fixed before the release, but I haven't looked into yet how difficult/hackish that would be.
10:09 masak mberends: kudos.
10:09 masak mberends: looking forward to playing around with Perl 6 SVG on the web in the same way.
10:11 mberends yes, I was hoping to incorporate SVG already but the tuits (round) are low.
10:11 masak mberends: how's the weekend look?
10:12 masak I think I can throw in a first implementation of Druid board rendering then.
10:12 ejs2 joined #perl6
10:13 mberends quite a lot offline, but I'll be able to pull Druid updates and hopefully put that online as well.
10:13 mberends next week no $work, therefore @play !
10:14 masak YaY!
10:16 masak speaking of @play, here are the fruits of yesterday evening's hacking at home: http://github.com/masak/druid/blob/master/t/01-game-rules.t
10:16 masak Test::Ix is a little bit cooler now, with optional "fixture" setup/teardown.
10:17 masak the syntax pleases me. there are still some restrictions with the test framework that I don't like, but overall it's very nice to work with.
10:19 masak Text::Ix uses introspection to figure out how many arguments to send to the test subs.
10:23 ejs1 joined #perl6
10:25 * mberends runs 'proto install druid' to see
10:27 masak the tests already made me brave in refactoring some stuff.
10:28 masak Druid is still suffering from behaving in a way appropriate to when it was a script, not a set of classes.
10:28 mberends that's good progress then
10:29 masak yes, and fun too.
10:30 masak I have a great new idea for a computer player that I want to try. but I'm making myself write these tests first.
10:31 mberends spoken like a true TDD convert
10:31 masak I guess... :)
10:31 masak though it also makes me slightly disappointed when tests pass right away.
10:34 moritz_ do you think it's ok to apply pir-to-perl6 patches before the release, if they pass all tests?
10:34 moritz_ cspencer++ submitted one that looks nice
10:35 masak moritz_: I think so.
10:35 * mberends thinks so, if 'all tests' means spectests
10:35 masak they do, I'm sure.
10:36 moritz_ aye
10:38 moritz_ masak: re release blocker, you should respond to pmichaud's p6c mail
10:39 masak moritz_: good idea.
10:44 pugs_svn r25940 | moritz++ | [t/spec] tests for RT #63978
10:50 masak moritz_: did you notice that [perl #64014] lacked the actual code that fails? on top of that, I suspect it is a dupe.
10:51 mikehh rakudo (44e1496) builds on parrot r37609 - make test/make spectest PASS
10:51 moritz_ masak: yes, I already replied... (I hope)
10:52 moritz_ masak: and I'm vaguely remembering a similar ticket
10:52 masak ok, good. looking on RT instead, since the email route is so slow.
10:54 viklund masak: proto is now almost I
10:54 viklund s/I/OO/
10:54 moritz_ masak: RT #61838 is similar, but not quite identical
10:54 * viklund sighs
10:54 viklund (again)
10:54 masak viklund: oh?
10:55 masak you've pushed something?
10:55 moritz_ no, it's identical
10:55 masak moritz_: ok :)
10:55 viklund yep, almost all subs take config_info as their only argument...
10:55 * masak pulls
10:55 masak gotta go in, like, 5 minutes.
10:56 * viklund doesn't like globals
10:56 viklund since Alva is playing on the floor, I might have to go at any time
10:57 masak viklund: is File::Path included in standard Perl?
10:57 moritz_ rakudo: if 5 > my $a = 4 { say $a }
10:57 viklund it was referenced from 'perldoc -f mkdir' so I guess so
10:57 p6eval rakudo 44e149: OUTPUT«Unable to set lvalue on PAST::Val node␤current instr.: 'parrot;PAST;Val;lvalue' pc 566 (src/PAST/Node.pir:161)␤»
10:57 moritz_ corelist File::Path
10:57 moritz_ File::Path was first released with perl 5.001
10:57 viklund ;)
10:58 masak viklund: anyway, looks good. thanks.
10:58 masak I'll look more closely at it in the weekend.
10:58 viklund it's a start at least
10:58 ruoso joined #perl6
10:58 masak o/
10:59 ruoso joined #perl6
11:11 Matt-W Morning
11:11 orafu joined #perl6
11:12 jnthn hi allo
11:12 jnthn .oO( where'd that o come from )
11:14 Matt-W who knows?
11:14 Matt-W some future version of English?
11:15 jnthn So...we had release?
11:16 Matt-W not seen anything on any blogs...
11:16 jnthn oh, just saw p6l message
11:18 jnthn Regarding bug 63978
11:18 jnthn I will fix this now before the release.
11:39 jnthn Have a fix, spectest'ing.
11:54 Matt-W woot
11:56 pugs_svn r25941 | jnthn++ | [t/spec] Unfudge eval in class test.
11:58 disismt joined #perl6
11:59 dalek rakudo: 977b948 | jnthn++ | src/builtins/control.pir:
11:59 dalek rakudo: Fix eval crash when eval is used inside a class.
11:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/977b94896c481b85b200b56eaa1c9576656ac973
12:12 dalek rakudo: cba1557 | jnthn++ | docs/ChangeLog:
12:12 dalek rakudo: Add a few more bits to the ChangeLog.
12:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/cba1557c5a9f9de748b029f8700b7556289af0df
12:29 dalek rakudo: 9a08c4f | (Cory Spencer)++ |  (5 files):
12:29 dalek rakudo: Added inline PIR versions of Any.pm's lc, ceiling, floor and round to the P6 Any.pm class.
12:29 dalek rakudo: Squashed commit of the following:
12:29 dalek rakudo: commit 59873f07aa08081cc2d5e915ce309d733935cb54
12:29 dalek rakudo: Author: Cory Spencer <cspencer@sprocket.org>
12:29 dalek rakudo: Date:   Thu Mar 19 18:19:21 2009 -0700
12:29 dalek rakudo:     Added an inline PIR P6 version of lc
12:29 dalek rakudo: commit 65b75d2b6266adaae8caac230cc55462467c8c0c
12:29 dalek rakudo: Author: Cory Spencer <cspencer@sprocket.org>
12:29 dalek rakudo: Date:   Thu Mar 19 16:06:26 2009 -0700
12:29 dalek rakudo:     Add inline PIR versions of round, ceiling and floor
12:29 dalek rakudo: commit 9a873239e9a0fb86d4d11dc2f141d6081d2e1a23
12:29 dalek rakudo: Merge: 8592d17... f8b6aee...
12:29 dalek rakudo: Author: Cory Spencer <cspencer@sprocket.org>
12:29 dalek rakudo: Date:   Thu Mar 19 14:28:57 2009 -0700
12:29 dalek rakudo:     Merge branch 'master' of git://github.com/rakudo/rakudo
12:29 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
12:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9a08c4f5f0d72cd8dd0b309854f36a8dcfb3d4fa
12:30 pmurias joined #perl6
12:31 ruoso hi pmurias
12:31 jnthn moritz_: Oy! I was just smoking those. :-P
12:31 moritz_ jnthn: hah, I was faster ;-)
12:31 jnthn :-P
12:31 * ruoso just hates how svn takes ownership on my machine when doing an update of a big repository that wasn't updated for a long time...
12:32 moritz_ git++
12:32 pmurias ruoso: hi
12:33 ruoso pmurias, I finished nagc... I thought at first to put native capture inside the "native" module
12:33 ruoso but I changed my mind... we need capture earlier...
12:33 jnthn moritz_: Any thoughts on how best to test http://rt.perl.org/rt3/Ticket/Display.html?id=63958
12:33 moritz_ svn up also restores files that are deleted in the working copy... so it has to check the whole repo recursively, not just the updated parts
12:34 ruoso moritz_, and I can't even update it...
12:34 jnthn (just assign it to you is a valid answer ;-))
12:34 ruoso it complains about a lock of some sort... asks me to run cleanup
12:34 moritz_ jnthn: there you go ;-)
12:34 ruoso I run cleanup, nothing happens, try to update and it still shows me the same error... *sigh* svn--
12:34 moritz_ jnthn: but it wont be before monday
12:34 jnthn moritz_: OK, thanks.
12:35 jnthn That's fine...I just want to make sure we get something in so we don't regress on it.
12:35 Matt-W jnthn: I could only get it to work with actual individual files
12:35 ruoso pmurias, so we might have the native capture with the placeholder message at start
12:35 jnthn Matt-W: Yeah. I recreated your example here.
12:35 Matt-W jnthn: glad it's not just me :)
12:35 jnthn Matt-W: Thanks for the good bug report.
12:35 ruoso pmurias, then we replace the message later...
12:35 pmurias how will we extract data from it then
12:35 Matt-W jnthn: took a while to figure it out but it's usually worth the effort
12:35 jnthn Matt-W: I have a fix, I'm just running it through make spectest to ensure no collateral damage (low probability).
12:35 pmurias (if it has a placeholder message)
12:36 Matt-W jnthn++
12:36 jnthn Yeah, the example pinpointed the issue very well. Matt-W++
12:36 Matt-W jnthn: that's going to make my life a lot easier
12:36 ruoso pmurias, it is still an object with an RI... so it needs to support MESSAGE somehow...
12:36 ruoso better have it as the placeholder than leaving null
12:36 jnthn Matt-W: Is this a duplicate: http://rt.perl.org/rt3/Ticket/Display.html?id=63866 ?
12:36 Matt-W jnthn: I have another bug which seems to be some sort of infinite loop trying to call a subroutine, but I haven't pinned that down yet
12:37 jnthn (Duplicate of http://rt.perl.org/rt3/Ticket/Display.html?id=63958, that is)
12:37 Matt-W jnthn: no, that's a different bug
12:37 Matt-W oh no
12:37 Matt-W it's not
12:37 Matt-W damn
12:38 Matt-W I didn't know masak had filed that
12:38 jnthn It's fine, your reproduction instructions were easier.
12:38 Matt-W yeah but I should have stuck them on that ticket
12:38 Matt-W oh the bright side
12:38 Matt-W you get to close two tickets!
12:39 moritz_ rakudo: class A { has $!a; submethod BUILD($obj) { $!a = 3 } }; A.new
12:39 p6eval rakudo 9a08c4: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14182 (src/builtins/assign.pir:21)␤»
12:39 Matt-W (Null PMC access)--
12:39 Matt-W my least favourite error
12:40 * ruoso 's machine still owned by svn--
12:40 moritz_ most rakudo bugs manifest as Null PMC access
12:40 Matt-W moritz_: that's why I don't like it, because I see it so often
12:41 pmurias ruoso: do native types need to be implemented before p6gc?
12:41 ruoso not really
12:41 ruoso actually
12:41 ruoso it does
12:42 * ruoso missing cofeee
12:42 ruoso pmurias, it only requires capture, actually...
12:42 ruoso pmurias, capture, interpreter and lost - that is
12:43 ruoso finally... svn released my machine...
12:46 ruoso pmurias, in fact, native could be implemented after mold...
12:46 ruoso and mold doesn't require p6gc as well
12:47 pugs_svn r25942 | ruoso++ | [re-smop] re-order list of modules
12:48 ruoso pmurias, see r25943
12:48 pugs_svn r25943 | ruoso++ | [re-smop] we actually dont need the LOwlevel STate machine... mold can be up soon enough...
12:48 Psyche^ joined #perl6
13:03 pmurias ruoso: can't see any obvious errors in the list
13:03 pmurias lunch/breakfast
13:03 dalek rakudo: 2352fd0 | jnthn++ | src/builtins/eval.pir:
13:03 dalek rakudo: When we do a use, we need to make sure the recursive invocation of the Perl 6 compiler gets a clean @?NS, otherwise thigns start getting nested in namespaces in the non-pre-compiled case.
13:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2352fd03db5b615f400f85ed0bc81395f41d290c
13:03 dalek rakudo: 8207372 | jnthn++ |  (5 files):
13:03 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
13:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8207372ae394ca87667e974a2be2cd547def1f9c
13:04 ruoso pmurias, cool... I didn't made a specific note about where we replace the placeholder MESSAGEs... but I think it is in native itself...
13:05 ruoso pmurias, we need to think on how we can improve the RI DSL to support signatures... this is a major limitation we have today
13:11 pugs_svn r25944 | ruoso++ | [re-smop] Actually, p6gc only need to be implemented for p6opaque, all other s1p types can use nagc
13:18 Matt-W jnthn++
13:18 pugs_svn r25945 | ruoso++ | [re-smop] thikning again, the call of the DESTROYALL method can be made from the DESTROYALL member of p6opaque. That means we only need nagc for now..
13:20 Matt-W jnthn: I even understand the code you wrote to fix the bug!
13:20 pmichaud good morning #perl6
13:21 moritz_ hello
13:21 jnthn pmichaud: Good morning :-)
13:21 * jnthn is being all good and just doing small changes pre-release. ;-)
13:22 Matt-W jnthn: small but crucial
13:22 Matt-W also perfectly-formed
13:22 moritz_ jnthn: if you want to do larger things: branches are easy ;-)
13:22 jnthn moritz_: Yeah, I know. ;-)
13:22 moritz_ ... but I don't object to bug fixes ;-)
13:22 jnthn I'm currently pondering 63170
13:24 moritz_ rakudo: class A { ... }; class A { has $.b }; say "alive";
13:24 p6eval rakudo 820737: OUTPUT«Re-declaration of type A at line 1, near "; say \"ali"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
13:25 pmichaud I'm stll wanting to find a way to eliminate a lot of the 'if null' checks.
13:25 pmichaud unfortunately I don't have one at the moment.
13:26 jnthn pmichaud: Given so many things use null to signal "doesn't exist"...
13:26 pmichaud oooh!  maybe a dynop?
13:26 pmichaud set_if_null $P0, $P1    # sets $P0 to $P1 if isnull $P0
13:26 jnthn pmichaud: What exactly do you want to achieve?
13:26 jnthn Oh!
13:27 jnthn pmichaud: You want to avoid a branch essentially?
13:27 pmichaud perhaps
13:27 pmichaud although I guess we'd have to lookup $P1 at any rate, so it's not so great.
13:27 jnthn Where are your main use cases for this?
13:28 pmichaud all of the places that we're having to install ifnull checks :-)
13:28 kane_ joined #perl6
13:28 jnthn It's probably a five-minute job for me to write you a dynop to do that.
13:28 pmichaud right.... but let me think about it just a bit more.
13:28 jnthn Sure
13:28 jnthn And, release first. ;-)
13:28 pmichaud it doesn't quite have that "yes, this fixes the real problem" feel abot it.
13:28 pmichaud *about
13:29 moritz_ .oO( release first, think later )
13:30 jnthn pmichaud: Do you want me to not distract you for a while to do the release? Got some questions...
13:30 pmichaud release is simple... but I'll be getting a phone call here shortly that will distract me.
13:31 jnthn OK.
13:31 pmichaud so, ask questions, but I'll disappear in a bit.
13:31 jnthn http://rt.perl.org/rt3/Ticket/Display.html?id=63170
13:31 jnthn In here, if you pre-compile A.pm then it blows up while compiling A.
13:31 jnthn Saying the type B doesn't exist.
13:32 jnthn Which is correct.
13:32 jnthn However, if you use A, like is done here, it doesn't fail while compiling A in the same way.
13:33 moritz_ is it even allowed to do what masak wants do to there?
13:33 jnthn The obvious thing that comes to mind is that we perhaps need, when doing use (and thus require), to give a clean @?BLOCK
13:33 jnthn moritz_: It should fail in the same way it does in pre-compilation.
13:33 FurnaceBoy joined #perl6
13:33 pmichaud I think it's more than just a clean @?BLOCK, though -- don't we need a clean symbol table?
13:34 jnthn Well, that's what I pondered next. And that one is a bit more...painful.
13:34 pmichaud agreed, it is.
13:35 Kisu joined #perl6
13:35 jnthn Thing is, my $x; use Foo; where Foo then uses $x in its body without declaring it is probably also working as an up-shot of @?BLOCK being carried over.
13:36 jnthn So while that's not all of the solution, I think it has to be part of it.
13:36 pmichaud agreed.
13:36 jnthn But earlier today I fixed another bug.
13:36 jnthn Where when we did use we needed a clean @?NS (nested namespace stack)
13:36 jnthn And I'm getting a bit...well...uncomfortable about piling this lot in use/require.
13:37 pmichaud I wonder if we need to make everything lexical.
13:37 pmichaud I suspected we might have to do that at some point anyway.
13:37 jnthn I was thinking that @?BLOCK etc became attributes rather than lexicals, and we created a new instance of the actions? Or does it not work like that?
13:37 pmichaud but since we didn't have a good way of inspecting lexpads/lexinfo (until your recent change), I wasn't pushing for it.
13:37 * moritz_ is off for the weekend, have the appropriate amount of fun!
13:38 jnthn moritz_: You too!
13:38 pmichaud oh, it can also happen as attributes, yes.  I don't know if NQP supports that yet.
13:38 jnthn Probably not, but it might not be hard to add.
13:38 pmichaud it's not hard to add -- PCT supports it already.
13:38 pmichaud er, PAST supports it already.
13:38 pmichaud so it's just syntax.
13:39 jnthn Right.
13:39 pmichaud and we can certainly bind/inline PIR things to get what we want.
13:39 jnthn True, but I don't think adding has $!x; to NQP is so bad.
13:39 jnthn And $!x for lookups
13:40 szabgab on the main page of Rakudo.org there is a link to documentation that actually links to how-to-get-rakudo
13:40 jnthn Don't really want to go down the road of accessor generation and so forth.
13:40 pmichaud agreed, I don't want to do that either.  In fact, I'm only primarily interested in the $!x for lookups at the moment.
13:40 jnthn Ah, that's quite easy. :-)
13:41 pmichaud since there's not really any good class-generating code in NQP at the moment.  It does recognize 'class Foo' as needing to create a Foo class... but getting has $!x to dtrt might be a bit tricky.
13:41 jnthn I wondered about that...
13:41 pmichaud brb
13:42 jnthn ok
13:42 Matt-W I would have thought that if you have my $x; use Foo; then inside Foo if you just say '$x' it wouldn't see that first $x - you'd have to say $::x or something.
13:43 pmichaud Let me review STD.pm to see how it's handling symbol tables at the moment and I can answer from that.
13:43 pmichaud (which I'll have to do a bit later, but can put it on my todo list)
13:46 Matt-W Where does STD.pm live?
13:46 szabgab after I ran make spectest how can I run an individual test script ?
13:46 szabgab I thought I saw something on the web site like make test path/to/test   but I cannot find it any more
13:47 szabgab and that make test path will actually run the whole make test
13:47 pmichaud szabgab: make t/spec/something/test.t
13:48 szabgab thanks,
13:48 pmichaud STD.pm is in pugs repo:   http://svn.pugscode.org/pugs/src/perl6/STD.pm
13:48 szabgab actually I just ran ./perl6  t/spec/something/test.t
13:48 szabgab and that was also ok
13:48 pmichaud RT #64026 looks like a duplicate bug
13:50 szabgab so how do you have you development directories setup? do you have pugs checked out in a separate directory ?
13:50 jnthn pmichaud: I fixed 64026.
13:50 szabgab where do you write your new tests?
13:50 jnthn pmichaud: There was a dupe but it got merged into the ticket before I got to doing the fix.
13:50 pmichaud jnthn: excellent -- I didn't see a reply to 64026 yet which is why I brought it up  (knew it was fixed)
13:50 pmichaud ah... didn't see the merge.
13:50 pmichaud (I'm catching up on email)
13:50 jnthn ah, yes
13:50 jnthn moritz - Merged into ticket #63978
13:50 pmichaud szabgab: I just write my new tests and test edits in t/spec directly
13:51 pmichaud (within the rakudo directory)
13:51 pmichaud no need for a separate checkout
13:51 pmichaud to review STD.pm I generally use the http-link I gave above
13:51 pmichaud for other stuff that is in pugs, I have a separate checkout of the pugs directory.... but I don't often need to do other things inside of pugs.
13:52 szabgab at a quick  glance it seems there still seem to be a bunch of tests in the pugs tree outside the spec subdir
13:52 szabgab can I try to move them over?
13:52 pmichaud yes, those still need to be reviewed/migrated.
13:52 pmichaud please do move them over.
13:53 szabgab actually I have been afraid of adding spec tests as they seem to be too serious
13:53 jnthn pmichaud: OK. Are you saying I should hold off on giving a clean @?BLOCK while you review STD.pm some more, or is that OK?
13:53 pmichaud jnthn: I suggest holding off for a day or so.
13:53 pmichaud jnthn: but feel free to keep bugging me about it.
13:53 pmichaud I will go ahead and look at it a bit later today
13:53 pmichaud (phone)
13:53 jnthn Am, damm, I'd already determined it fixed the issue in the ticket and mostly smoked it. :-|
13:54 pmichaud if you already have it, and it smokes, feel free to commit.
13:54 jnthn OK.
13:56 pmichaud (off phone)
13:56 Exodist joined #perl6
13:57 jnthn pmichaud: The other thing I wanted to mention was GSOC and Rakudo. We should perhaps try and think of more tasks we could add.
13:57 jnthn To the list of suggested projects.
13:57 pmichaud agreed
13:58 pmichaud I find it hard to come up with 10-week tasks that will be ripe 12 weeks from now, though.  :-|
13:58 pmichaud I'm definitely in favor of more spectest coverage
13:58 pmichaud I'm also in favor of improved toolsets
13:59 pmichaud for example, it might _really_ be nice to have an equivalent of Test::Harness that is written in p6.
14:00 pmichaud a perl6pod implementation would be excellent, too.
14:00 pmichaud (yes, I know there is one already... I'm thinking something a bit more fleshed out)
14:00 jnthn I think mberends++ has made some progress on that front.
14:01 jnthn Another thing I pondered is that there's a few built-in types that we don't have any support for at all yet.
14:02 jnthn Rat, Set, Bag, Blob, KeyHash, KeySet, KeyBag, Buf.
14:02 skids joined #perl6
14:02 pmichaud yes, some of those are good candidates, as long as they're not on our critical path
14:02 pmichaud I suspect Rat will be critical path-ish
14:02 pmichaud Buf too.
14:02 jnthn What do you mean by critical path-ish?
14:02 pmichaud that we'll want an implementation before the end of GSOC
14:03 jnthn But certainly, some of those can be done in relative isolation.
14:03 jnthn (As in, without having to first get a really deep understanding of Rakudo guts.)
14:03 pmichaud i.e., anything we suggest for GSOC needs to be something that we don't expect or want to be otherwise solved before the end of summer.
14:04 jnthn Do we have a need for Buf or Rat before then?
14:04 pmichaud I think it's likely that someone might.
14:04 pmichaud I know that we're going to have to fix up our numification semantics soon anyway
14:04 pmichaud to handle the STD.pm refactor of numbers
14:04 jnthn OK
14:05 jnthn Even discounting Rat and Buf, I still think we can point to enough of the standard library to make a decent GSOC project.
14:05 pmichaud because STD.pm now parses Rats directly
14:05 jnthn S16 is somewhat more stable now too, as is the datetime stuff.
14:05 pmichaud another place that is big but a worthy candidate is portions of S09
14:07 pmichaud so, what I'm thinking we need now is
14:07 pmichaud (1) a big list of "things left to implement from the known spec"
14:07 pmichaud (2) a refinement of that list that estimates when/where we expect the feature to be done
14:07 pmichaud then we can do (3)  things that are good GSOC candidates
14:07 pmichaud i.e., an updated roadmap.  :-)
14:08 jnthn Producing (1) would be a worthy exercise in itself.
14:08 pmichaud yes.
14:08 pmichaud should we build one in the repo, wiki, or elsewhere?
14:08 pmichaud maybe a page on rakudo.org ?
14:08 jnthn I think that having it in a place where it is quite visible is a good thing.
14:08 pmichaud agreed
14:09 jnthn A lot of people like to know, what's left.
14:09 * ruoso wonders if the smartlinks in the tests could help providing a semantic meaning on what's left
14:09 jnthn But yes, I'd really like to get a good sense of what is left.
14:09 jnthn Some synopses we're looking fairly good on.
14:10 jnthn S03 and S12, for example.
14:10 jnthn Others, like S09, I suspect are a very different story.
14:10 pmichaud I'll have a tests-by-synopsis summary here shortly.
14:10 pmichaud (running my final make spectest prior to release now)
14:11 jnthn Aye, though I fear S09 is probably lacking tests too.
14:11 jnthn I was actually pondering making S09 the next thing I focus on. (Up to now it's mostly been S12.)
14:11 pugs_svn r25946 | szabgab++ | test for loop with two varibles
14:12 pmichaud S09 would have some good things to focus on, yes.
14:13 jnthn Some of it will be just plain evil to do, I've no doubt.
14:13 pmurias joined #perl6
14:13 jnthn pmichaud: Am I OK to commit stuff again now?
14:14 jnthn Or you want to make a tag first etc?
14:14 pmichaud not quite yet -- I still need to make a tag.
14:16 jnthn OK, I won't push.
14:18 ruoso it would be nice to make a ratio of number of lines in the spec pod file vs number of tests related to it...
14:19 ruoso it should help seeing which specs are undertested....
14:19 pmichaud I just need one last spectest run to finish, then I can commit+push.
14:19 pmurias ruoso:
14:19 pmichaud I'll then have to run an errand before making the tarball and announcement.
14:20 pmurias ruoso: re RI DSL the simplest thing which could work would be %method foo($invocant:$pos1,$pos2...)
14:20 jnthn pmichaud: OK, nice. :-)
14:21 ruoso pmurias, we can define a subset of the syntax to work... I think that's fine...
14:21 ruoso pmurias, but we should probably allow checking for native types
14:22 ruoso so %method foo(int $i) should do any .FETCH and .int it needs
14:22 ruoso actually, that'd be a good reason for having the LOwlevel STate machine
14:22 ruoso it woud
14:23 ruoso it would make such checkings easier than requiring a mold
14:24 ruoso because it could avoid most of the work if the capture is native and the argument is already native as well
14:25 pmurias do captures allow arbitary named keys
14:25 pmurias ?
14:25 ruoso the current SMOP implementation only support idconst
14:26 pmurias and the spec?
14:26 ruoso but yes, capture supports arbitrary named keys
14:27 pmurias is it specced anywhere?
14:27 ruoso there's no spec on capture yet
14:27 * ruoso should start it someday
14:28 szabgab rakudo: for 1..5 ->  $x, $y { say "$x$y" }
14:28 p6eval rakudo 820737: OUTPUT«12␤34␤StopIteration␤current instr.: '_block14' pc 125 (EVAL_20:56)␤»
14:28 szabgab this prints the values before throwing exception
14:28 hercynium joined #perl6
14:28 szabgab my $str = ''; eval_dies_ok('for 1..5 ->  $x, $y { $str ~= "$x$y" }', 'xx');
14:29 pmurias ruoso: does the native capture type also need to suport arbitary named keys?
14:29 szabgab the above test does not seem to have 1234 in the $str at the end
14:29 ruoso pmurias, yes... as soon as we have them...
14:29 ruoso but we still don't have a Str type
14:30 ruoso so just saying "unsupported" if someone tries to use it with a non idconst seems fine
14:30 ruoso for now
14:31 pmurias what i'm most worried about are Array keys or user defined Foo keys
14:31 cspencer joined #perl6
14:35 pmichaud jnthn:  Okay, release is now tagged -- feel free to commit away.
14:36 pmichaud I have to run an errand -- I'll make the tarball and announce the release when I get back in about 50 mins.
14:36 pmichaud (Have to go pick up my car from the shop)
14:36 ruoso pmurias, I think the standard hash assumes string for keys...
14:37 ruoso pmurias, I think the same can be said about capture
14:37 pmurias seems resonable
14:38 pmurias i think i'll write a utility set of hash routines so we can use them instead of a bsearch'ed sorted list
14:38 ruoso but that's a different beast, actually... because at this point we require idconst
14:38 dalek rakudo: db1e872 | pmichaud++ | docs/ChangeLog:
14:38 dalek rakudo: Final ChangeLog for release #15.
14:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/db1e872654d5af4f5232af9609167eea2ad51518
14:38 dalek rakudo: f67507c | pmichaud++ | docs/release_guide.pod:
14:38 dalek rakudo: Release date and name updates.
14:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f67507c1d5c3f912a52ebb53c570d57dcc51e3df
14:38 dalek rakudo: e552334 | pmichaud++ | docs/announce/2009-03:
14:38 dalek rakudo: Text of 2009-03 release announcement.
14:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e5523344eb8f49d5c9d077fbba29a5b52c2045cd
14:40 pugs_svn r25947 | szabgab++ | for test
14:42 jnthn std: sub foo(:x($y)) { }
14:42 p6eval std 25946: OUTPUT«ok 00:02 36m␤»
14:43 justatheory joined #perl6
14:56 pugs_svn r25948 | szabgab++ | more for related test
15:00 pmurias ruoso: capture needs native integers to implement positional
15:01 ruoso pmurias, only inside MESSAGE
15:01 ruoso we can leave MESSAGE as a placeholder for now
15:01 ruoso and replace it in the "native" module
15:02 pmurias we would need to expose SMOP__NATIVE__capture_positinal(SMOP__Object* capture,int i) then
15:03 ruoso pmurias, yes... but that's ok
15:03 Tene joined #perl6
15:03 ruoso native types can have native interfaces
15:03 ruoso but we should probably just fix it to include interpreter as first arg
15:03 ruoso (doesn't it already?)
15:05 pmurias yes it does
15:12 pmurias ruoso: we have to decide how will we keep the tests in module-name/t or module-name-tests
15:12 pmurias sorry
15:12 ruoso pmurias, I think we could have the sources as it is now...
15:12 pmurias got confused by scons copying files
15:12 ruoso but have a build/lib and build/t
15:13 ruoso then build/t/module/
15:13 ruoso but just build/lib  is ok
15:14 pmurias build/lib is better as we would just have to set LD_PRELOAD_PATH to build/lib
15:15 ruoso LD_LIBRARY_PATH, you mean
15:17 pmurias yes
15:19 pugs_svn r25949 | pmurias++ | [re-smop] tests are build in build/t, libs in buil/lib
15:20 ruoso pmurias, what are the .os files created?
15:21 ruoso and why are them placed in the source dir instead of the build dir?
15:21 ruoso on a last point... the libraries should probable have a "smop-" prefix in their names
15:22 ruoso libsmop-nagc.so
15:22 ruoso libsmop-s0native.so
15:29 TimToady joined #perl6
15:29 diakopter joined #perl6
15:30 [particle] joined #perl6
15:32 nihiliad joined #perl6
15:35 pugs_svn r25950 | pmurias++ | [re-smop] .os files are no longer kept in the source dir, libraries are called smop-*
15:39 pugs_svn r25951 | pmurias++ | [re-smop] modules are build using a loop instead of a copy-and-pasted sequence
15:43 ejs joined #perl6
15:48 [particle]1 joined #perl6
15:48 sri_kraih joined #perl6
15:53 pmurias ruoso: smop/nagc.h should automaticlly pull in smop/base.h?
15:56 TimToady pmichaud: STD doesn't have @?BLOCKS any more; it also doesn't implement 'use' yet, but when it does, the used code has its own scope lexically nested in CORE, and the only access it has to user scope is via COMPILING
15:57 TimToady well, I suppose CALLER also gets back to the user
15:57 TimToady but in any case, it can only get there via dynamic scoping, since files are like independent blocks
15:59 TimToady in fact, we'd probably better be careful to warn if CALLER !=== COMPILING
16:04 TimToady which means that policy modules need to be careful not to violate that without explicitly delegating to their own COMPILING
16:06 TimToady alternately, we declare that when you call an import routine when you're not actively compiling, it will go and automatically delegate to the current COMPILING
16:06 TimToady maybe that's okay
16:07 szabgab std: for (1..5) -> $x, $y? { }
16:07 p6eval std 25951: OUTPUT«ok 00:02 36m␤»
16:07 szabgab std: for (1..5) -> $x, $y=7 { }
16:07 p6eval std 25951: OUTPUT«ok 00:02 36m␤»
16:07 szabgab rakudo: for (1..5) -> $x, $y=7 { }
16:07 p6eval rakudo e55233: OUTPUT«StopIteration␤current instr.: '_block14' pc 125 (EVAL_18:56)␤»
16:07 jnthn TimToady: Is [//] meant to short-circuit?
16:08 TimToady only to the extent that the list is lazily evaluated
16:08 szabgab so not only optional variables but also default values are ok in the for loop
16:08 TimToady szabgab: yes
16:08 jnthn szabgab: I woulda thought so.
16:08 TimToady btw, you don't need the parens
16:08 jnthn It's just a plain old signature...
16:09 szabgab std: for 1..5 -> $x, $y=7 { }
16:09 p6eval std 25951: OUTPUT«ok 00:02 36m␤»
16:09 szabgab ok, adding tests
16:09 pmichaud S03 says:
16:09 pmichaud Similarly, list-associative operators that have the thunk-izing characteristics of
16:09 pmichaud macros (such as short-circuit operators) lose those macro-like characteristics.
16:09 pmichaud by the semantics of the list, not the semantics of C<||>.
16:09 pmichaud You can say
16:09 pmichaud [||] a(), b(), c(), d()
16:09 pmichaud to return the first true result, but the evaluation of the list is controlled
16:09 pmichaud (which agrees with what TimToady just said)
16:10 TimToady I do remember parts of the spec correctly, upon occasion :)
16:10 szabgab pmichaud, I think I did did not understood half of the words in that sentence :-)
16:10 jnthn So in that case we'd have called all of a(), b(), c(), and d() but if a()'s return value was true we'd not have evaluated the return values of b, c and d.
16:11 pmichaud jnthn: that makes sense to me, I think.  :-)
16:11 szabgab but if that was the other discussion then I just crawl back to writing simple tests
16:11 TimToady it's possible the list may end up lazier than that, but it's same to assume they may all be evaluated
16:11 TimToady *sane
16:12 TimToady *safe rather
16:12 alester joined #perl6
16:12 pmichaud safe and sane?
16:12 * jnthn tries to think if there's a sensible way to do factor out the short-circuit logic aside from writing an explicit prefix:[//] etc.
16:12 pmichaud well, note that infix:<//>  needs to change to list precedence anyway
16:12 pmichaud I don't know if rakudo has made that change yet.
16:13 pmichaud s/list precedence/list associativity/
16:13 jnthn pmichaud: Does that just affect the parsing?
16:13 pmichaud no
16:13 jnthn Or our ability to use def_or?
16:13 szabgab std: for 1..5 -> $x?, $y? { }
16:13 p6eval std 25951: OUTPUT«ok 00:02 36m␤»
16:14 pmichaud it affects more than the parsing, I think.
16:14 jnthn Hmmm...that (annoyingly) makes sense...
16:14 pmichaud at any rate, there needs to be an infix:<//> function that accepts a list.
16:14 pmichaud and it would likely have the semantics you want for infix:<[//]>
16:15 pugs_svn r25952 | szabgab++ | test for loop with default value
16:15 jnthn erm, if infix:// takes a list now, is it then not equivalent to infix:[//]?
16:15 TimToady but you might have to call it with explicit {...} thunks
16:16 ruoso pmurias, hmm... maybe, as it uses things defined there...
16:16 jnthn erm
16:16 pmichaud afaict   infix:<//> and infix:<[//]>  are essentially identical
16:16 jnthn prefix:[//]
16:16 pmichaud er, yes,  prefix:<[//]>
16:16 jnthn Ah.
16:16 jnthn That means...just install some extra tokens. :-)(
16:16 pmichaud with the possible exception of thunking semantics, as TT mentioned
16:16 TimToady rakudo: 1 / die "oops"
16:16 p6eval rakudo e55233: OUTPUT«oops␤current instr.: 'die' pc 15942 (src/builtins/control.pir:204)␤»
16:16 TimToady oops
16:16 pmichaud well, we also need to write those functions, as they don't exist yet.
16:17 TimToady rakudo 1 // die "oops"
16:17 TimToady rakudo: 1 // die "oops"
16:17 jnthn oops ;-)
16:17 p6eval rakudo e55233: RESULT«1»
16:17 pmichaud this also affects the infix:<//=>  stuff you wrote... but I was going to clean that up later.
16:17 jnthn Yes, that's what I was just realizing. :-|
16:17 TimToady rakudo: prefix:<//>(1, die "oops")
16:17 p6eval rakudo e55233: OUTPUT«Statement not terminated properly at line 1, near ":<//>(1, d"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
16:18 pmichaud TimToady: yes, rakudo would presumably die on the prefix:<//> version (when we implement it)
16:18 TimToady rakudo: &prefix:<//>(1, die "oops")
16:18 p6eval rakudo e55233: OUTPUT«Statement not terminated properly at line 1, near ":<//>(1, d"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
16:18 pmichaud rakudo still doesn't understand the infix:<op>  forms yet
16:18 TimToady so the right arg would presumably expect to be {...}
16:18 jnthn TimToady: We just don't parse thing:<...> yet
16:18 pmichaud TimToady: how would we distinguish {...}  (a thunk) from some other sort of closure?
16:19 pmichaud or do we assume that closures are intended to be evaluated?
16:19 pmichaud and if someone wanted to return a closure they'd use  { { ... } }   ?
16:19 jnthn pmichaud: btw, can I commit again now?
16:20 pmichaud my $x = $y // { ... };    -->     my $x =  prefix:<//>($y, { { ... } } );   # is this right?
16:20 pmichaud jnthn: yes, I thought I sent a note saying it was okay to commit
16:20 pmichaud I had to rush out -- Paula was going to be late to work
16:20 pmichaud jnthn: sorry about that if I missed it
16:20 TimToady I saw it
16:21 jnthn pmichaud: Ah, I missed it.
16:21 TimToady yes, it just runs one level of {...} if there
16:22 TimToady and people who accidentally feed closures to [//] can just lump it
16:22 pmichaud ..."lump it"?
16:22 TimToady hmm, maybe a west coastism
16:23 jnthn I think it's a postfix form of the prefix "screw"
16:23 TimToady might even be Valley Girl
16:23 pmichaud "take their lumps?"
16:23 TimToady don't know the derivation, offhand
16:23 pmichaud but the essential meaning is "too bad, so sad?"
16:23 TimToady *nod*
16:24 [particle]1 no, like it or lump it is old. like, wwii or earlier
16:24 pmichaud afaik, nobody said "lump it" to me while I was on the West Coast this past weekend.  :-)
16:24 TimToady maybe I'm just too old :)
16:24 jnthn pmichaud: BTW, did you get chance to read in backscrooll my discussion with Tene about import?
16:24 Tene pmichaud: in #parrot
16:24 pmichaud jnthn: Not yet.  I'm waaaaaay backlogged
16:25 szabgab std: for 1.. { }
16:25 jnthn It was recent backscroll, if that helps. ;-)
16:25 p6eval std 25952: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/2JwnyZ8Eg4 line 0:␤------> [32m[31m[0m␤    expecting parameterized block␤FAILED 00:02 35m␤»
16:25 szabgab std: for 1.. { }
16:25 TimToady see my remarks about that as well
16:25 p6eval std 25952: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/KD5yMtDdKJ line 0:␤------> [32m[31m[0m␤    expecting parameterized block␤FAILED 00:02 34m␤»
16:25 szabgab std: for 1..4 { }
16:25 p6eval std 25952: OUTPUT«ok 00:02 34m␤»
16:25 szabgab std: for 1..Inf { }
16:25 p6eval std 25952: OUTPUT«ok 00:02 34m␤»
16:25 dalek rakudo: 4c90262 | jnthn++ | src/parser/ (2 files):
16:25 dalek rakudo: Support renaming of named parameters in the signature. This also takes us a couple of steps closer to STD.pm.
16:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4c90262f15475262de7005029d0f57a928fb813c
16:25 dalek rakudo: 703b36e | jnthn++ | docs/ (3 files):
16:25 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
16:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/703b36e792b73eb8f3c650ae6d083d9edc8a0f9d
16:25 pmichaud I'll check the backscroll in a bit.  Have to get lunch for kids, finish publishing the rakudo release, and get some stuff back to rdice
16:25 Tene std: for 1..* { }
16:25 [particle]1 apparently dates back to 1833.
16:25 p6eval std 25952: OUTPUT«ok 00:02 34m␤»
16:25 TimToady my remarks about 1/2 hr ago
16:26 pmichaud TimToady: on #parrot or #perl6 ?
16:26 TimToady here
16:26 pmichaud okay.
16:26 * Tene go to work.
16:26 szabgab Tene, so is 1.. invalied?
16:26 Tene szabgab: ENOCLUE
16:27 pmichaud TimToady: okay, read em.  Your description matches what I was thinking might happen, so good.
16:27 jnthn szabgab: Yes. Maybe you meant 1...
16:27 szabgab I mean 1..Inf
16:27 TimToady std: (1..)
16:27 p6eval std 25952: OUTPUT«##### PARSE FAILED #####␤Please use ..* for indefinite range at /tmp/cdzMVl6A3Y line 1:␤------> [32m(1..[31m)[0m␤FAILED 00:02 34m␤»
16:27 szabgab is that 1... ?
16:27 jnthn IIRC.
16:27 jnthn Or 1..*
16:27 TimToady see std's error message above
16:27 szabgab std: (1...)
16:27 pmichaud for 1.. { }   is treating the block as the second argument to infix:<..>
16:28 p6eval std 25952: OUTPUT«##### PARSE FAILED #####␤Unable to parse parenthesized expression; couldn't find final ')' at /tmp/euiWWPVD0N line 1:␤------> [32m(1...[31m)[0m␤    expecting any of:␤    prefix or noun␤   whitespace␤FAILED 00:02 35m␤»
16:28 TimToady I just said that!!!
16:28 szabgab you had only 2 dots :-)
16:28 TimToady oh, right
16:28 * TimToady hangs head in shame, briefly
16:29 szabgab can I tell this in the club ?
16:29 TimToady they'll certainly buy the 'briefly' part...
16:30 jnthn Opinions: $*OUT.close; $*OUT.print("hello world"); # dies by default, of fails and only dies with use fatal in effect?
16:30 jnthn s/of/or/
16:33 pmichaud would it at least warn?
16:34 pmurias jnthn: what print return normally?
16:34 pmurias s/what/what does/
16:34 szabgab std: for 1..* -> $x { say $x; last if $x == 6 }
16:34 p6eval std 25952: OUTPUT«ok 00:02 37m␤»
16:34 szabgab rakudo: for 1..* -> $x { say $x; last if $x == 6 }
16:34 p6eval rakudo 703b36: OUTPUT«Use of uninitialized value␤»
16:35 pmurias rakudo: say $*OUT.print("hi\n");
16:35 p6eval rakudo 703b36: OUTPUT«Cannot write to a filehandle not opened for write␤current instr.: 'parrot;IO;print' pc -91335 ((unknown file):-1)␤»
16:35 [particle]1 tools/test_summary.pl needs a user story for when t/spec doesn't exist
16:35 szabgab rakudo: for 1..8 -> $x { say $x; last if $x == 6 }
16:35 p6eval rakudo 703b36: OUTPUT«1␤2␤3␤4␤5␤6␤»
16:36 jnthn =item multi print (*@LIST --> Bool)
16:36 jnthn Stringifies each element, concatenates those strings, and sends the
16:36 jnthn result to the output.
16:36 jnthn Returns C<Bool::True> if successful, C<Failure> otherwise.
16:36 jnthn Guess there's my answer.
16:37 [particle]1 perl 6: failure is always an option
16:38 TimToady What we've got here is...Failure to communicate...
16:40 pugs_svn r25953 | szabgab++ | testing infinite for loops
16:45 TimToady ah, "lump" used to mean "sulk", and first use of "let 'em lump it if they don't like it" is in 1833
16:46 pmichaud lump:   Linux, Ubuntu, MySQL, and Perl/PHP/Python?
16:46 TimToady and I'll bet "lump" is onematepoeic for the sound someone sulking makes when stomping around :)
16:46 jan_ joined #perl6
16:46 TimToady er, when did Ubuntu become a web server?
16:46 pmichaud :-)
16:47 pmichaud it didn't, but it fit the backronym.  :-)
16:54 Psyche^ joined #perl6
16:54 szabgab std: substr("abcd", 1|2, 2)
16:55 p6eval std 25953: OUTPUT«ok 00:04 36m␤»
16:55 szabgab rakudo: substr("abcd", 1|2, 2)
16:55 p6eval rakudo 703b36: OUTPUT«get_integer() not implemented in class 'Junction'␤current instr.: 'parrot;Any;substr' pc 12840 (src/builtins/any-str.pir:370)␤»
16:55 pmichaud I don't know if we have subroutine autothreading in place yet.
16:55 pmichaud rakudo:   'abcd'.substr(1|2, 2).say
16:55 p6eval rakudo 703b36: OUTPUT«get_integer() not implemented in class 'Junction'␤current instr.: 'parrot;Any;substr' pc 12840 (src/builtins/any-str.pir:370)␤»
16:56 jnthn pmichaud: We do, but only for things written in Perl 6.
16:56 pmichaud okay, I guess that substr needs a signature to get it to autothread.
16:57 * jnthn is moving various of IO.pir to IO.pm which will likely become class IO::File later.
16:57 szabgab I think the answer was no to the same question 3 days ago, I am just checking so I can add a test
17:01 pugs_svn r25954 | szabgab++ | test substr on junctions
17:06 maennj joined #perl6
17:06 maennj left #perl6
17:07 jnthn rakudo: $*OUT.print("hi")
17:07 p6eval rakudo 703b36: OUTPUT«Cannot write to a filehandle not opened for write␤current instr.: 'parrot;IO;print' pc -91335 ((unknown file):-1)␤»
17:07 jnthn wtf
17:08 szabgab rakudo: my $z = index(any("abcd", "qwebdd"), "b"); say $z.WHAT
17:08 p6eval rakudo 703b36: OUTPUT«Int␤»
17:08 szabgab rakudo: my $z = index("abcd", any("b", "c")); say $z.WHAT
17:08 p6eval rakudo 703b36: OUTPUT«Failure␤»
17:09 jnthn rakudo: $*ERR.print("hi")
17:09 p6eval rakudo 703b36: OUTPUT«Cannot write to a filehandle not opened for write␤current instr.: 'parrot;IO;print' pc -91335 ((unknown file):-1)␤»
17:09 jnthn rakudo: $*IN.print("hi")
17:09 p6eval rakudo 703b36: OUTPUT«Cannot write to a filehandle not opened for write␤current instr.: 'parrot;IO;print' pc -91335 ((unknown file):-1)␤»
17:10 * Matt-W updates rakudo
17:10 awarefish joined #perl6
17:10 Matt-W Looking forward to some bugfix goodness :)
17:11 kane__ joined #perl6
17:15 Southen joined #perl6
17:18 Matt-W Should pbc_to_exe really be using over 500MB of RAM?
17:18 jnthn :-O
17:20 Matt-W because it just did!
17:24 schmalbe joined #perl6
17:28 Matt-W t/02-parseactions......1/9 invoke() not implemented in class 'Form::Field::TextField'
17:28 Matt-W hmmm
17:29 jnthn Matt-W: New error or different one?
17:30 pmichaud it wouldn't surprise me if pbc_to_exe wanted 500MB of RAM.
17:30 pmichaud it has to do a bunch of itty-bitty string concatenations.
17:31 Matt-W not sure
17:31 pmichaud like, around 5 million of them (at least)
17:31 Matt-W pmichaud: ow
17:31 Matt-W the experience reminds me of using Epigram
17:31 Matt-W only nowhere near as bad
17:31 Matt-W maybe I should get some more ram for my laptop
17:31 jnthn pmichaud: I've worked out why $*ERR and $*OUT stopped working, at last...
17:31 pmichaud when Parrot has its buffered I/O fixed, we can eliminate a lot of the string concatenations.
17:32 Matt-W pmichaud: hurrah
17:32 pmichaud until then, the choice is 500MB of RAM or a 3-minute pbc_to_exe step.
17:32 pmichaud so I vote for using the ram.  :-)
17:32 jnthn pmichaud: Turns out for foreign objects in Perl6Scalar we really must !DEREF the invocant first.
17:32 pmichaud jnthn: yes.  is method dispatch doing that already?
17:33 jnthn It is now.
17:33 pmichaud okay.
17:33 jnthn (Or will be after tests run and I commit...)
17:33 jnthn I've re-written some of IO into the setting.
17:33 pmichaud release tarball created, announcements posted.
17:33 jnthn And dealt with another ticket along the way.
17:33 jnthn Great!
17:33 jnthn pmichaud++
17:34 icwiener joined #perl6
17:34 pmichaud now we need a name for the April 2009 release :-)
17:34 jnthn Maybe it's time to go out of Europe?
17:36 pmichaud hmmm.  I posted a story to rakudo.org but it doesn't appear anywhere.  Same for the postings that jnthn++ has made.  :-|
17:37 jnthn pmichaud: It is "there"
17:37 pmichaud yes, I see it in "recent posts" but it seems like it should be more visible.
17:37 jnthn See http://www.rakudo.org/tracker
17:37 jnthn But yes, I said to Andy a few days back that it'd be nice to have a "News" or "Blog" tab.
17:37 jnthn Which held the latest stories.
17:37 pmichaud it's okay with me if the news/blog stories appear on the front page -- beneath the initial text.
17:37 pmichaud kinda like what parrot.org is doing.
17:38 jnthn That'd work for me too.
17:39 [particle] joined #perl6
17:39 * jnthn hopes that starting to move IO into the setting will encourage others to join in with making it more S32-ish.
17:41 [particle] seems tools/test_summary.pl also fails ungracefully without ack installed
17:41 pmichaud that's possible/likely.
17:42 [particle] use App::Ack; # should fix that
17:43 [particle] and -e 't/spec' or die "run '$make testable' first!\n";
17:43 pmichaud [particle]: patches welcome?  ;-)
17:44 [particle] yeah, i've got a deadline, and it doesn't match with yours :)
17:44 pmichaud deadline?  hmm?
17:44 jnthn What's one of those?
17:45 jnthn Gah. I broked a test.
17:48 nihiliad joined #perl6
17:48 mncharity joined #perl6
17:48 Kimtaro_ joined #perl6
17:49 mncharity moritz_: One thing it might be nice to have community action on would be creating a P6 version of JS.Class - Ruby OO in js.
17:50 mncharity http://jsclass.jcoglan.com/  http://github.com/jcoglan/js.class/tree/6c1cb11ad916505e24e82fd40150205e73feeba0/source/core
17:51 mncharity ruoso,pmurias,etal: What would be a good url(s) to point someone at to get someone started on "p6 oo, the implementation details".
17:51 mncharity ?
17:51 ruoso mncharity, I guess it depends on the implementation
17:51 ruoso ;)
17:51 M_o_C joined #perl6
17:51 dalek rakudo: 83e060f | jnthn++ | src/builtins/guts.pir:
17:51 dalek rakudo: We need to !DEREF foreign invocants that might have got put in a Perl6Scalar.
17:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/83e060f2e8a4c2a75313756bd42e42574c097dde
17:52 mncharity http://feather.perl6.nl/syn/S10.html http://feather.perl6.nl/syn/S11.html http://feather.perl6.nl/syn/S12.html
17:52 mncharity ruoso: my fuzzy recollection is that there were nice smop pages, detailing p6 oo, in a way which was only implicit in the Snn...
17:53 pmichaud jnthn: we don't deref invocants that go through the .HOW interface?  shouldn't we do that also?
17:53 ruoso mncharity, http://www.perlfoundation.org/perl6/index.cgi?smop_oo_api
17:53 jnthn pmichaud: I think if we're just using them inside Rakudo it's fine.
17:53 mncharity http://www.perlfoundation.org/perl6/index.cgi?smop_oo_api ?
17:54 mncharity ah, :)  , thanks
17:54 ruoso http://www.perlfoundation.org/perl6/index.cgi?smop_p6opaque_implementation
17:54 jnthn (fine not to deref, that is)
17:54 mncharity fyi, broken link on http://www.perlfoundation.org/perl6/index.cgi?smop_oo_api   http://svn.pugscode.org/pugs/v6/smop/doc/InvocationSequence.png
17:55 ruoso mncharity, interesting... I just clicked it and got the image
17:56 mncharity yeah, looks like a socialtext-ism
17:56 ruoso socialtext--
17:56 mncharity on ?smop_oo_api it shows up as a red unclickable link
17:57 ruoso that image is a bit inacurrate, actually..
17:57 ruoso but the general idea is correct
17:57 mncharity re socialtext--, well, it's just not the ideal wiki for this particular job.
17:58 ruoso it tries to be too smart...
17:58 ruoso and fails badly
17:58 ruoso i.e.: why the hell does it map a double-click to edit the page?
17:58 ruoso doesn't it know that double-click is used to select a word, and after that, a line?
17:59 * mncharity tries to find a http://www.perlfoundation.org/perl6/ password to add "image is a bit inacurrate, but the general idea is correct".  no anon edits :(
18:00 szabgab given a junction $x, how can I find out what kind of a junction is that ?  (any, all...)
18:02 [particle] szabgab: not yet specced or implemented, but discussed here yesterday
18:03 [particle] (unless i missed a spec commit message)
18:03 szabgab I could not find anything in the Spec
18:03 szabgab another question: given a junction can I check if it has the same type and values as another junction ?
18:05 ruoso mncharity, I've added the note about the image
18:06 mncharity ah, great.
18:10 jnthn szabgab: Maybe === will do it.
18:10 szabgab rakudo: say 1|2 === 1|2 ?? 1 !! 0
18:10 p6eval rakudo 83e060: OUTPUT«0␤»
18:11 ruoso szabgab, the bottom line is: you don't want to do that ;)
18:11 dalek rakudo: 7b9f811 | jnthn++ |  (3 files):
18:11 dalek rakudo: Start to move some methods in IO over to the Perl 6 setting, improving error handling to be more in line with S32 along the way.
18:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7b9f81149735cbe4d075765d8e43fc2fcc13e9d1
18:12 ruoso szabgab, too many people was trying to using junctions as sets, so larry made it a bit less usefull for that purpose
18:12 skids szabgab: in the meantime a future-proof workaround is $junc.perl and pull the type out of the string.
18:12 ruoso and for the sake of testing, it should suffice
18:13 ruoso rakudo: (1|2).perl
18:13 szabgab for the type yes, but not for the values
18:13 p6eval rakudo 83e060: RESULT«"any(1, 2)"»
18:13 szabgab but it could come back as any(2, 1) too, right /
18:13 szabgab ?
18:13 ruoso yes, but that's the nature of junctions
18:13 ruoso they are not sets
18:13 skids Right, the values you'd have to use .eigenstates
18:14 mncharity Ruby has a ruby oo on javascript implementation: http://jsclass.jcoglan.com/ http://github.com/jcoglan/js.class/tree/6c1cb11ad916505e24e82fd40150205e73feeba0/source/core .  Shouldn't Perl6 have one too?  http://www.perlfoundation.org/perl6/index.cgi?smop_oo_api  It would be a great way for someone to learn P6 OO (and/or JS).
18:14 mncharity moritz_,etal: feel free to point at ^^^
18:14 mncharity :)
18:15 ruoso mncharity, It shouldn't be too hard to embed a js runtime in SMOP...
18:15 mncharity Thanks ruoso. :)
18:15 szabgab .eigenstates gives back the list of values in some random order
18:15 skids Yes but it's a list, and can be sorted.
18:15 ruoso szabgab, and it is a private method now
18:15 mncharity re embed, neat.  what would be involved?
18:15 szabgab and it is not mentioned in the specs at all AFAIK
18:16 szabgab AFAICG
18:16 ruoso mncharity, reading up smop/base.h
18:16 ruoso and implementing a SMOP__ResponderInterface that would interact with js values
18:16 szabgab I was looking for that so thank
18:17 mncharity http://perlcabal.org/svn/pugs/view/v6/smop/smop-base/include/smop_base.h ?
18:17 ruoso mncharity, pugsrepo/v6/re-smop/base/include/smop/base.h actually
18:17 ruoso mncharity, this one is prior to a refactoring we're doing...
18:17 ruoso look at the re-smop dir
18:18 szabgab but I cannot write a sub to compare two junctions passed as parameters as that sub will autothread . right?
18:18 mncharity http://perlcabal.org/svn/pugs/browse/v6/re-smop  http://perlcabal.org/svn/pugs/view/v6/re-smop/base/include/smop/base.h
18:18 ruoso szabgab, not if the signature contains Object
18:18 ruoso szabgab, it only autothreads if the signature contains Any or narrower
18:19 ruoso mncharity, that one...
18:19 szabgab sub xyz(Object $this, Object $that)
18:19 mncharity with js getting thread jit, performance might even be non-toy.
18:19 ruoso szabgab, yes
18:19 szabgab thanks, I'll try
18:19 ruoso mncharity, also... take a look at the lowdoc directory in re-smop
18:19 mncharity http://perlcabal.org/svn/pugs/browse/v6/re-smop/lowdoc
18:20 mncharity (we need a lambdabot hack for this...)
18:20 ruoso mncharity, there are a few other lowdocs in the original smop dir that weren't ported yet... but mostly are still up-to-date
18:21 Psyche^ joined #perl6
18:23 ruoso mncharity, you'll need a few more tricks if you want to interoperate continuations...
18:23 ruoso I'm not sure if there is support for continuations in any of the js runtimes
18:25 maerzhase joined #perl6
18:26 ruoso mncharity, I seriously consider having modified versions of such runtime libraries to provide a smoother integration with SMOP... that's already planned for p5...
18:28 mncharity re continuations, there have been a couple of cps program transformers, and some patched implementations... I don't know what current state is.
18:28 skids ruoso: http://www.abrij.org/~bri/S17.tempurl.pod <-- my S17 scratchpad.  Way in flux.
18:28 aalfred joined #perl6
18:28 skids Ignoring the rest of it, or not, I'd like your opinion on the Coroutine notes there.
18:28 pmurias mncharity: they don't have to be full continuations, smop uses "one-shot" ones
18:29 aalfred left #perl6
18:29 mncharity ah, ok
18:30 pugs_svn r25955 | pmurias++ | [re-smop] start of a rewrite of native capture
18:30 mncharity pumpkin.  was fun.  thnaks. &
18:35 ruoso skids, it's a big document... I'll need more time to read it...
18:35 |jedai| joined #perl6
18:36 skids I know just the Coroutines part was what I wanted input on (search for "=head2 Coroutines" )
18:37 skids The rest of the stuff, well some of it is shall we say tenuous at best :-)
18:38 ruoso skids, Iterator is a more generic thing
18:38 ruoso it is not necessarly backed by code
18:39 ruoso it might be backed by a readonly lst
18:39 ruoso or by a data stream
18:39 ruoso a Coroutine is one of the possible backends for an Iterator
18:39 ruoso you can even think that Coroutine does Iterator
18:39 ruoso which makes much sense
18:40 skids OK, so terminology-wise, clean that up.
18:40 TimToady looks pretty crufty to me...
18:40 skids Do you think it fits in S07 though?
18:41 ruoso skids, I don't understand what $d = =$it:{("OH HAI")}; is
18:41 TimToady I do not yet believe in coroutines, so you're risking not being able to persuade me to believe in them
18:41 skids Iterate the iterator in $it, passing the "OH HAI" back to it.
18:42 skids If it is going to a yield statement, the yield returns "OH HAI"
18:42 ruoso TimToady, gather/take is kinda coroutines
18:42 skids If it is going to a take, then "OH HAI" ends up unshifted on the slurpy.
18:42 ruoso skids, hmm... that seems... weird
18:42 skids (or well, ("OH HAI") ends up unshifted on the @@slurpy)
18:43 ruoso skids, why don't you keep the reference to the lazy array you sent to the code that generated $i and push it there instead?
18:43 skids Basically makes coroutines and feeds interoperate.
18:44 skids I'll have to ponder that.
18:45 ruoso skids, take/yeld doesn't need to return any value
18:45 skids take doesn't.  People that really like coroutines will want yield to do so.
18:45 TimToady when I say I don't believe in coroutines, I mean I don't believe in tying laziness to the sub call interface, since it's already a property of the incoming and outgoing types
18:46 pugs_svn r25956 | pmurias++ | [re-smop] added parts of capture i forgot to svn add
18:46 ced-2_ joined #perl6
18:46 TimToady and the low-level iterator interface is methods, not subs
18:48 skids I ditched the idea of having a sub that you could re-call for coroutine behavior pretty quickly.
18:48 TimToady or to put it another way, every sub is already potentially a coroutine if it returns a list
18:48 skids Just not compatible with MMD.  This interface never has named coros.
18:49 TimToady more to the point, the way you pull values lazily in Perl 6 is with a lazy list, not with extra sub calls
18:49 skids That's nice, but it isn't the sum total of what coroutine folks expect.  They don't just want to use these for lists.
18:50 ruoso skids, let's take each step on its own...
18:50 skids What I wrote there is a way to intergrate the list-focused perlish way, with a way touse them for procedural computing.
18:50 ruoso 1 - how to use coroutines with feeds
18:50 skids s/intergrate/integrate/  really, I can spell.
18:51 skids Oh that's a question?
18:51 ruoso A - gather/take solves that, you make a routine that has the gather in the body, receives a slurpy list as input
18:51 ruoso the feed will provide content for that list
18:51 ruoso gather will provide content for wherever the routine is being used
18:52 ruoso 2 - how to inject new values in each iteration (besides the slurpy list)
18:52 ruoso A - I don't really see the point in it, but I suppose that could be implemented in a module later...
18:53 skids I understand that.  The stripped-down coros constituted by a gather/take are just fine.  It's a good api.
18:53 TimToady what we've got to teach people is that take is actually an event generator
18:54 skids That's kind of a reverse way of looking at what I wrote -- not the intent to "inject" values in a feed.
18:54 ruoso skids, the $i:{('OH HAI')} syntax seems to imply that
18:54 skids The intent is that if you are doing normal procedural coroutines, you can reuse your code as a feed in different circumstances.
18:55 ruoso skids, ah.. in that case, keeping a reference to the original lazy list really solves the problem
18:55 ruoso pmurias, I think the test for constant identifiers was supposed to be in s0native, wasn't it?
18:55 ruoso TimToady, we still need to figure out the main event loop api
18:56 skids ruoso: Like I said I'll have to play with that idea for a bit.
18:57 pugs_svn r25957 | pmurias++ | [re-smop] remove accidently duplicated test
19:01 ruoso pmurias, I think the RIs that will need to have the MESSAGE replaced have to be exposed in the .h
19:02 ruoso and also, native types need the RI exposed so you can check if a value you received is of that type.
19:07 skids ruoso: by "solves the problem" which problem do you mean?
19:07 ruoso TimToady, I was thinking we could have a resumable control exception ControlExceptionWouldBlock that is then catched and install the event listeners for that continuation...
19:07 ruoso skids, you can already do that simply by pushing to the lazy array you sent to the routine in the first place
19:08 skids If you are using a coroutine procedurally, there is no such list.
19:08 ruoso er... why?
19:08 skids It is being generated procedurally by the code calling the coroutine.
19:08 ruoso what is the problem in:
19:09 ruoso my @a <== some_lazy_thing;
19:09 ruoso my $iterator <== my_coro(@a)
19:09 ruoso my $item = =$iterator;
19:09 ruoso @a.push('value');
19:09 lambdabot Unknown command, try @list
19:09 ruoso my $otheritem = =$iterator;
19:11 skids Ah, OK, now I get your point.  In other words, if you want a procedural coroutine, back it with an empty lazy list.
19:13 ruoso well... I didn't meant an empty list...
19:13 ruoso I meant something lazy
19:13 ruoso but an empty list might do the trick, depending on what you want
19:14 skids Sure some kind of lazy thing.
19:14 ruoso empty lists might want to be eager
19:15 ruoso but having sub my_coro(@a is ref) { gather { ...; take ...; ...; } } also solves it
19:15 skids But one with no actual value to/in it other than being used as the channel between the coro and the caller.
19:16 ruoso I think (@a is ref) also fits that purpose...
19:16 ruoso but you really seems to be wanting contextual variables
19:17 skids That may actually turn out OK.  It will be a bit of an adjustment in that it is a bit even further away from the coro.resume(values back to coro yield) syntax than .<=>:some_adverb_with_values is.
19:18 skids Wel, the thing I suggested doesn't do compile-time type-checking either, just runtime.
19:18 ruoso skids, there's nothing fundamentally wrong with &coro.resume(1,2,3)
19:19 ruoso as long as &coro is not the actual sub you call the first time
19:19 ruoso you probably want to have something like...
19:20 ruoso my &coro = &actual_sub.new_invocation();
19:20 ruoso my $a = &coro(1,2,3);
19:20 ruoso my $b = &coro(2,3,4);
19:20 ruoso the problem is not about coro per-se
19:21 ruoso the problem is about the idea of a symbol that changes its meaning in time...
19:21 skids I don't think we want to present coros as subs at all.  It's a bad habit; I think Perl6 should break it.
19:21 ruoso even cleaner then...
19:21 ruoso but that doesn't need to be CORE
19:22 ruoso my $coro = Coro.new: sub { ... };
19:22 ruoso my $a = $coro.resume(1,2,3);
19:22 ruoso my $b = $coro.resume(4,5,6);
19:23 ruoso a module can implement that later without any problems...
19:24 skids Sure.  As long as we either have a "yield" statement or document the way to use take instead with the auxiliary lazy object.
19:25 ruoso skids, yield doesn't need to be a statement...
19:25 ruoso just as return isn't
19:25 ruoso it's just a sub
19:25 skids Is take a sub?
19:25 ruoso I think so...
19:27 ruoso pmurias, I think libsmop-capture needs to be linked against libsmop-nagc, doesn't it?
19:30 skids OK, then, should CORE have an empty lazy object that can .new(:{#anonymous_block}) so you can later call .Iterator on it?
19:31 skids And get an iterator that runs your anonymous block, perhaps loops it?
19:31 ruoso what's wrong with "for"?
19:32 ruoso for is lazy
19:32 skids Good.
19:33 ruoso for 1..* { }
19:33 skids If I were to write up "a how to use these things to write a traditional coro" section, would you like one for S07?
19:33 ruoso I'm not sure it would belong in S07
19:33 skids (oh but how do you push() to  for?)
19:33 ruoso but maybe it is...
19:33 icwiener_ joined #perl6
19:34 skids S17 is going to be honing huge.  It might be for the better.
19:34 skids s/honing/honking/
19:34 ruoso skids, you push to the input of for
19:35 skids isn't the input to for 1..*?
19:36 Kimtaro joined #perl6
19:37 ruoso skids, just use a lazy thingy instead
19:40 skids An array seems to make most sense. but like you said @a <== ($first, $call, $parameters) might decide to eager.  IIRC there's no "lazy" keyword, just list context.
19:41 ruoso well...
19:41 ruoso actually...
19:41 ruoso that doesn't stop you from pushing to @a
19:42 ruoso and, nobody yet complained that S07 states that feed operators are strictly lazy
19:42 ruoso which means that @a <== (1,2,3) doesn't evaluate anything
19:44 ruoso but I'm pretty sure someone will tell me that feed should only be "mostly lazy"
19:44 skids So start circling the wagons :-)
19:47 skids Anyway, to another matter.  @a <== ... generic lazy list iterator.  unshift on that -- do you intend it just to cache, or is that going to do backfeeding to Iterator::Unshift stuff further up the line?
19:48 ruoso please ellaborate... my head hurts right now... it's kinda hard to think...
19:49 TimToady feeds are not required to backfeed
19:49 TimToady think Unix pipes
19:49 ruoso ah..
19:49 ruoso a feed only deals with the Iterator role
19:49 ruoso which means it only uses prefix:<=>
19:50 ruoso (as a method, that is)
19:50 skids Yes, but if the feed feeding @a does allow backfeed, will @a try to, or will it just store the values you put in there?
19:50 ruoso the feed operator will not pass the actual container from one side to another
19:50 ruoso it will consume from the right side, and send to the left side
19:51 ruoso it really works like unix pipes
19:51 TimToady arrays are capable of unshifting
19:51 skids speaking specifically of the "generic lazy list" iterator, not the feed operator.  Basically the Iterator::Unshift stuff is confusing me because I do not know whether those are going to use it.
19:52 ruoso Iterator::Unshift is just a declaration of a subset of API
19:52 ruoso every Array does Iterator::UnShift
19:52 ruoso the feed operator doesn't use Iterator::UnShift
19:52 ruoso it only uses the plain Iterator
19:52 TimToady btw, feeds are just mostly lazy :)
19:52 skids That clears it up, thanks.
19:52 TimToady think Unix pipes
19:53 * ruoso just had a vague hope that it would be strictly lazy... simply because it's easier to implement...
19:53 TimToady basically, you can throttle them, but you can't tell the other process how much to do when
19:53 skids I think eventually there will be demand for a strict lockstep feed, BTW.  Though it could easily "not be CORE".
19:54 ruoso there's an eager modifier already
19:54 skids exact opposite of what I meant.
19:54 TimToady that's the opposite
19:54 ruoso maybe an explicit lazy modifier sets it to strictly lazy
19:54 ruoso @a <== lazy (1,2,3)
19:54 lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
19:55 TimToady the only reason you'd *want* strict laziness is to prevent out-of-order side effects among competing threads, which is a bad approach in the first place
19:55 ruoso TimToady, you may also avoid buffering
19:55 skids Well, if Perl6 only attracts good coders, it will have a small audience :-)
19:56 ruoso TimToady, if you apply the lazyness levels to IO.. it does make sense
19:56 TimToady well, the compiler can tell if either side of a feed accesses lexicals outside its scope
19:57 ruoso I don't think it's related to that
19:57 TimToady anyway, the default is that you shouldn't depend on how much buffering is going on
19:57 ruoso but the actual application might
19:57 ruoso let's suppose an application where you have an input IO... that once you have read, you should process immediatly
19:58 ruoso if you can't process right now,
19:58 ruoso you shouldn't read
19:58 ruoso if, in the other side of the stream, you have a load balancer, that's quite relevant
19:58 TimToady I understand that protocols don't like buffering, but lazy lists aren't the right approach there anyway
19:59 TimToady unless you do it all with event processing
19:59 Helios joined #perl6
19:59 ruoso TimToady, weren't we discussing a main event loop in the interpreter?
19:59 Kisu joined #perl6
19:59 TimToady sure, but that's low-level
20:00 TimToady and yes, we do want to layer transactions over events
20:00 TimToady but transactions and laziness don't mix real well
20:00 ruoso that's precisely why the "lazy" modifier would do the trick
20:01 skids TimToady: tell me about it :-)
20:01 ruoso to force the runtime to only consume the data that is actually needed...
20:01 TimToady we can certainly have specialized feeds, they're just not the default
20:02 ruoso TimToady, I was actually considering that every lazyness should be represented in terms of a continuation... when you want to consume from a lazy list, if the data is not available, a control exception is thrown....
20:02 ruoso then that continuation is executed, until there is data
20:02 ruoso which then gets back to the other continuation
20:02 TimToady feeds are meant to run between threads
20:03 ruoso that doesn't break this model
20:03 ruoso on the contrary...
20:03 ruoso this model can try to use as many OS threads as it wants to run the continuations
20:04 ruoso (alright... one continuation per thread... yes...)
20:04 ruoso (at the same time, at least )
20:04 TimToady we have to be very careful not to make extra lockstep promises where they aren't necessary, or we'll never scale to multicore
20:05 ruoso TimToady, in my head... the iterator only thows ControlExceptionWouldBlock if there is no data available
20:05 ruoso if there's idle processing, the interpreter can decide to pre-evaluate "mostly-lazy" resources
20:10 TimToady if the interpreter has to decide it, then you won't scale to manycore
20:10 TimToady there are any number of subtle ways not to scale to manycore  :)
20:10 skids The other reason for a feed thread to pause of course is hitting a memory use ceiling...
20:12 ruoso TimToady, by "interpreter decide" I mean... any event library available
20:13 ruoso the linux kernel provides some very nifty features in that field...
20:13 TimToady if anything other than the two ends of the feed decide it, you won't scale :)
20:13 ruoso TimToady, not even a kernel event?
20:13 ruoso oh
20:13 ruoso rihgt...
20:14 ruoso I see what you mean
20:14 ruoso yes...
20:14 ruoso only the two ends of the feed decide
20:14 ruoso but that's strictly laz
20:14 TimToady welcome to the world of massive parallelism
20:14 ruoso but in the end there's IO
20:14 TimToady yes, then they speak a protocol that goes lockstep
20:14 ruoso there's always IO ;)
20:14 TimToady and it's not the default feed
20:15 ruoso TimToady, but if only the two ends decide
20:15 ruoso ok... ok.. I see.
20:15 ruoso a feed may be generating data from a non-blocking source
20:15 TimToady that's why the default is mostly lazy
20:16 TimToady I'd like Perl to be the language of choice if you can't abide Erlang :)
20:16 TimToady and maybe even if you can :)
20:17 * ruoso working too much with IO lately
20:17 TimToady but fundamentally we're trying to avoid the same mistake as C's for loops, where the programmer is tempted to be more specific about sequence than is warranted
20:18 TimToady overpromising sequence is what keeps parallel algorithms from scaling as well as they might
20:18 TimToady you can work around it with compilers that rewrite your code
20:18 TimToady but they can't always read minds
20:20 ruoso yes... I was agreeing with you all the time... I wasn't just talking about the case of non-blocking-infinite-source in a feed
20:21 ruoso but basically... that means we need a unix kernel implemented in our interpreter that implements pipes ;)
20:21 jcrigby joined #perl6
20:21 skids Do we have specific language about the consequences of directly touching the control list in a for loop from inside he list?
20:21 skids erm, inside the loop.
20:21 ruoso depends on what you mean by touching
20:22 skids shifting prematurely :-)
20:22 ruoso there has been some rumours about clonning the list when passing to "for"
20:23 ruoso TimToady, was anything decided about that?
20:23 TimToady I have no idea what it means
20:23 ruoso for @a { @a.shift }
20:23 TimToady should work exactly like map { @a.shift }, @a
20:23 ruoso which means?
20:24 TimToady the programmer will be taken out and shot at dawn
20:24 skids Just cause using for to create the iterator gives no way to get the pushed values unless the loop repeats.
20:24 ruoso is that one of those "erroneous" things?
20:24 ruoso do it and I can only guarantee that dwarves will come and kick your ass?
20:24 TimToady yes, side effects that cross lazy lists are typically errneous
20:25 skids I'll look around for some other lazy construct to abuse.
20:26 dolmen joined #perl6
20:26 * ruoso later &
20:27 TimToady in fact, there's something to be said for putting some "jitter" into mostly lazy to prevent people from depending on such accidental determinacy
20:28 skids And also in the case of really lazy things that only get popped occasionally, to improve code locality so all those iterator loops aren't filling the icache (or in VMs case the dcache) at the same time when they don't really need to be.
20:29 skids erm, unshifted.
20:29 TimToady yes, that's the other motivation for mostly lazy
20:29 TimToady though the argument depends on current architectures
20:29 TimToady wouldn't have meant anything on a Cray-1 for instance :)
20:30 skids Sure, maybe we'll be bottleneck-free someday.  Then maybe the bottleneck will come back 3 years after that.
20:31 TimToady all we can do is aim for the current sweet spot and hope we're flexible enough to change later
20:32 TimToady but I think a lot of language designers really have no clue when they're designing unnecessary bottlenecks into their language
20:32 TimToady me, I have a small clue :)
20:33 skids I just consolidate other people's clues. :-)
20:35 TimToady Your clue will be absorbed!!!
20:35 skids clues sustain me.
20:35 TimToady "Perl 6 is a clue language"
20:36 skids Inthat case we would need a "clue" keyword.  Not sure for what, though :-)
20:36 TimToady I don't know that that follows, Perl 5 doesn't have a "glue" keyword...
20:37 skids OK, point taken.
20:37 tarbo2 joined #perl6
20:37 * TimToady wanders &
20:38 * skids wonders how far down the rakudo roadmap @@ stuff is.
20:40 TimToady jnthn was threatening to work on S09 next, which needs @@ context for subscripts
20:40 * TimToady rewanders &
20:40 donaldh joined #perl6
20:47 jnthn Aye, @@ would come with S09 doings...
20:50 * jnthn wishes he'd been able to concentrate more today and do stuff beyond minor bug fixes.
21:00 ejs joined #perl6
21:02 Whiteknight joined #perl6
21:13 DemoFreak joined #perl6
21:17 ejs1 joined #perl6
21:19 jnthn std: sub bar is export(:DEFAULT :others) {...}
21:19 p6eval std 25957: OUTPUT«ok 00:02 34m␤»
21:19 jnthn rakudo: sub bar is export(:DEFAULT :others) {...}
21:19 p6eval rakudo 7b9f81: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 1, near ":DEFAULT :"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
21:19 jnthn rakudo: sub bar is export(:DEFAULT, :others) {...}
21:19 p6eval rakudo 7b9f81: RESULT«{ ... }»
21:19 jnthn std: foo(:a :b)
21:20 p6eval std 25957: OUTPUT«Undeclared routine:␤   foo used at 1 ␤ok 00:02 34m␤»
21:20 jnthn rakudo: foo(:a :b)
21:20 p6eval rakudo 7b9f81: OUTPUT«Statement not terminated properly at line 1, near "(:a :b)"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
21:20 * jnthn hadn't realized the , was optional there...or does it mean something else? :-S
21:21 Limbic_Region joined #perl6
21:21 Cybera joined #perl6
21:23 skids maybe we could get evalbot to post those neat HTML parse trees somehow...
21:23 Cybera ?eval say 10;
21:24 skids perl6: say 10;
21:24 p6eval elf 25957, pugs, rakudo 7b9f81: OUTPUT«10␤»
21:25 Cybera thx
21:25 skids (or choose particular implementation, or "std:" to just parse on STD.pm)
21:25 Cybera k
21:28 Woody4286 joined #perl6
21:31 skids rakudo: do { take 1; take 2;  take 3;}
21:31 p6eval rakudo 7b9f81: OUTPUT«Warning␤Warning␤Warning␤»
21:31 [particle] danger, will robinson!
21:31 skids Just trying to figure out if only gather groks take.
21:32 [particle] no, gather and take can exist without eachother
21:32 [particle] sub foo { bar(); bar(); bar; gather }; sub bar { state $x = 1; take $x++; }
21:33 skids rakudo: for 1..2 { take 1; take 2;}
21:33 p6eval rakudo 7b9f81: OUTPUT«Warning␤Warning␤Warning␤Warning␤»
21:34 skids rakudo: for 1..2 { ?&BLOCK.next(1); ?&BLOCK.next(2);}
21:34 p6eval rakudo 7b9f81: OUTPUT«Null PMC access in can()␤current instr.: '!dispatch_method' pc 16962 (src/builtins/guts.pir:104)␤»
21:58 frioux rakudo: frew => 2
21:58 p6eval rakudo 7b9f81: RESULT«{"frew" => 2}»
21:58 frioux rakudo: frew p5=> 2
21:58 p6eval rakudo 7b9f81: OUTPUT«Could not find non-existent sub frew␤current instr.: '_block14' pc 61 (EVAL_16:40)␤»
21:58 frioux rakudo: 'frew' p5=> 2
21:59 p6eval rakudo 7b9f81: RESULT«["frew", 2]»
21:59 wknight8111 joined #perl6
21:59 * frioux wonders who will ever use p5=>
21:59 jnthn The p5 translator I guess...
22:00 frioux but you have to quote the first word
22:00 frioux or is that a bug?
22:00 jnthn No idea...
22:00 frioux k
22:00 jnthn I'd hope not though.
22:01 jnthn Otherwise that means we have to treat it specially in the compiler.
22:01 jnthn Ask std ;-)
22:01 frioux well, if it's not then you'd have to change frew => 4 to 'frew' p5 => 4
22:01 jnthn std:  'frew' p5=> 2
22:01 p6eval std 25957: OUTPUT«ok 00:02 36m␤»
22:01 frioux std: frew p5=> 2
22:01 jnthn std:  frew p5=> 2
22:01 jnthn oh
22:01 jnthn :-)
22:01 p6eval std 25957: OUTPUT«Undeclared routine:␤   frew used at 1 ␤ok 00:02 34m␤»
22:01 p6eval std 25957: OUTPUT«Undeclared routine:␤   frew used at 1 ␤ok 00:02 34m␤»
22:01 jnthn No, std agrees with Rakudo.
22:01 frioux yeah, so that's just a drag to have to do is all
22:02 jnthn I think in the light of all the other fixups a p5->p6 translator will need to do, inserting some quotes is not much to worry about. ;-)
22:02 frioux yeah
22:03 NordQ joined #perl6
22:04 frioux so is that still planned?
22:04 frioux and is supporting p5 in p6 still planned?
22:04 jnthn I think so, though it may not have anyone actively working on it.
22:04 frioux huh
22:04 jnthn The latter is in the same kinda boat. Very much planned.
22:05 frioux right
22:05 FurnaceBoy joined #perl6
22:05 jnthn Just nobody currently devoting tuits to it.
22:05 frioux I am sure one would benefit from the other
22:05 jnthn Yeah.
22:05 frioux any idea how XS will work?
22:06 jnthn tbh I think as a first approximation we'd just embed Perl 5, so pretty much the same in some senses...
22:07 frioux so you mean embed perl 5 the implementation?
22:07 [particle] yes
22:07 jnthn Yeah
22:07 frioux interesting
22:08 [particle] it's a Hard Problem.
22:08 [particle] with an Easy 80% solution.
22:09 frioux hm
22:09 frioux but theoretically, as perl 6 will support 5, perl 6 programs could use perl 5 modules
22:10 frioux right?
22:10 frioux from CPAN
22:10 jnthn That's the main reason why we would want to embed Perl 5, yes.
22:12 frioux gnarly.
22:12 frioux recently I was talking with people and they were disagreeing with having junctions in perl6 as part of the language itself.
22:12 frioux what do you think jnthn?
22:13 jnthn Heh, it's hard to answer specifically without knowing what their objections were.
22:13 jnthn I think that used right (and steps have been taken to discourage bad use) they are a good langauge feature.
22:14 frioux they thought it was overkill
22:14 frioux and too academic
22:14 frioux I think it's cool, but I like anything that's shiny :-)
22:14 frioux I don't care if IBM likes perl6
22:15 jnthn Too academic?
22:15 frioux I am not sure when I will every use all() but I will use any plenty of the time
22:15 frioux their words
22:16 jnthn Curious. There's plenty of features in Perl 6 that I'd describe as further in the direction of academic than junctions. Junctions feel far more int he directions of practical to me. :-)
22:16 [particle] i'm not sure when i'll use and, but i'll use not and or plenty
22:16 frioux not and?
22:16 jnthn particle. :-)
22:17 frioux what is that?  and what is plenty?
22:17 frioux I don't get the joke...
22:17 jnthn frioux: particle was pointing out that any is to or what all is to and.
22:17 frioux oh, right
22:17 frioux that's true
22:18 frioux but I just can't see using and with junctions is all
22:18 frioux but I am mostly thinking in the context of given/when
22:19 frioux where (0|1) makes perfect sense to me, how can you have (1&2)?
22:19 rhr joined #perl6
22:19 aindilis joined #perl6
22:19 [particle] 0 but True
22:20 frioux is but long for & ?
22:20 jnthn if $value <= all(@limits) { say "all is well" }
22:21 [particle] poll all @sockets;
22:21 frioux rakudo: my $f = 0&True; if($f) {say "station"}
22:21 p6eval rakudo 7b9f81: OUTPUT«Statement not terminated properly at line 1, near "{say \"stat"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
22:21 frioux rakudo: my $f = 0&True; if($f) {say "station";}
22:21 p6eval rakudo 7b9f81: OUTPUT«Statement not terminated properly at line 1, near "{say \"stat"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
22:21 jnthn frioux: No, but is not short for &
22:21 jnthn erm, long for...
22:21 [particle] heh
22:22 jnthn all($a, $b) is equivalent for $a & $b
22:22 * jnthn ponders the import stuff...
22:27 amoc joined #perl6
22:34 amoc std: (*).perl.say
22:34 p6eval std 25957: OUTPUT«ok 00:02 34m␤»
22:34 M_o_C joined #perl6
22:34 amoc perl6: (*).perl.say
22:34 p6eval elf 25957: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 124) line 3.␤ at ./elf_h line 5863␤»
22:34 p6eval ..pugs: OUTPUT«Inf␤»
22:34 p6eval ..rakudo 7b9f81: OUTPUT«*␤»
22:35 amoc i don't see what is right output.
22:37 jnthn Rakudo.
22:37 jnthn pugs used to be right, I think, but is out of date now.
22:40 amoc i see.
22:41 lambdabot joined #perl6
22:41 amoc I sent rakudoperl yesterday, but rest of mine all have '[perl #nnnnn]' label in mailing-list.
22:42 amoc what should i do? have to reply to myself with new subject?
22:42 jnthn amoc: You mean rakudobug?
22:42 amoc oops, yes.
22:43 jnthn amoc: For new bugs, send new mail to rakudobug email address. To follow up on an existing message, reply and keep the number in the subject line.
22:43 jnthn An existing bug,t hat is.
22:43 jnthn The number is what lets RT associate email follow-ups with the right ticket.
22:47 amoc then, i don't have to and it's just for future replies to keep follow-ups. is it right?
22:48 jnthn Right.
22:48 jnthn If you want to report a new, different problem, sent an email without that subject to rakudobug
22:49 amoc okay, Thank you 'really' much  !
22:52 jnthn :-)
22:54 ewilhelm_ joined #perl6
23:15 bp0 joined #perl6
23:15 bp0 evalbot: 'perl6: say 3;'
23:15 bp0 evalbot?
23:15 frioux rakudo: say 3
23:15 jnthn perl6: say 3
23:15 p6eval rakudo 7b9f81: OUTPUT«3␤»
23:15 p6eval elf 25957, pugs, rakudo 7b9f81: OUTPUT«3␤»
23:15 jnthn bp0: Like that. :-)
23:15 bp0 heh
23:16 bp0 why "say 3"?
23:17 jnthn True. say 42 would clearly have been better. ;-)
23:17 jnthn You can just put whatever Perl 6 you like there to try and run it though.
23:17 jnthn rakudo: for 1..10 -> $num { say $num }
23:17 bp0 ic
23:17 p6eval rakudo 7b9f81: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
23:39 dalek rakudo: ec0db22 | jnthn++ | src/builtins/guts.pir:
23:39 dalek rakudo: Work around multiple Parrot bugs for calls to foreign objects, and document what we're working around. (TODO: see if they already have tickets and submit them if not.)
23:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/ec0db222dbde5ed9a93177841d4cbb295ea1e202
23:39 dalek rakudo: e38edf9 | jnthn++ | src/ (3 files):
23:39 dalek rakudo: First cut of importing from :DEFAULT one use. Wrong and incomplete, but a start at least. Also, per S11 (or as far as I understand it), multis want to get :DEFAULT automatically, so add that.
23:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e38edf94bc1839ded19870b419d93553965d554d

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

Perl 6 | Reference Documentation | Rakudo