Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-12

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:08 jnthn OK, for my final trick tonight...just spectesting a patch that dumps out signatures of possible candidates we could have called if a multi dispatch fails.
00:14 cls_bsd joined #perl6
00:20 ShaneC joined #perl6
00:23 colomon joined #perl6
00:28 mikehh joined #perl6
00:33 lichtkind good night to all
00:39 lestrrat joined #perl6
00:46 payload joined #perl6
00:48 ash_ joined #perl6
00:50 eternaleye joined #perl6
00:51 snarkyboojum joined #perl6
00:51 sorear Where do people keep Perl 6 modules these days?  (Having seen "some out of data modules" in the pugsrepo discussion)
00:51 jnthn Many are on github.
00:52 jnthn See http://github.com/masak/prot​o/blob/master/projects.list
00:59 m6locks Files=293, Tests=28427, 1734 wallclock secs (13.04 usr  3.37 sys + 1308.94 cusr 172.61 csys = 1497.96 CPU)
00:59 m6locks Result: PASS
00:59 m6locks nice, time for sm sleep nao
00:59 m6locks g'night
01:07 yinyin joined #perl6
01:12 lue hello!
01:12 colomon joined #perl6
01:12 lue hello colomon o/
01:14 dalek rakudo: 35e26f8 | jonathan++ | src/pmc/perl6multisub.pmc:
01:14 dalek rakudo: When we have no applicable candidates for a multi-dispatch, make the error contain all of the candidates that we could call.
01:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​5e26f8188c8e11f0c2702f5ee5f6dcc70cca4e9
01:15 agentzh joined #perl6
01:16 lue rakudo: say "what revision is me, 楽土?"
01:16 p6eval rakudo 69ce6d: OUTPUT«what revision is me, 楽土?␤»
01:16 lue ah. :/
01:21 snarkyboojum_ joined #perl6
01:24 lue hello snarkyboojum! o/
01:24 snarkyboojum lue: ello :)
01:24 lue llo!
01:25 lue rakudo: say "I'm not recompiling rakudo :( "
01:25 p6eval rakudo 69ce6d: OUTPUT«I'm not recompiling rakudo :( ␤»
01:25 lue "I" being the bot of course :)
01:30 sorear (Anyone have tips for recompiling rakudo faster / with less memory usage?  building stage2 takes overnight here)
01:32 lue What kind of computer has you? (CPU, RAM is good enough).
01:33 lue I have a G3 PPC ( < 1GHz) with 384 MiB RAM (double that swap space). I ended up ssh-ing to a remote server to work on rakudo.
01:33 sorear 2 10^9 x1 / 384 MiB RAM
01:33 sorear 2.00Ghz, but it's a P4, so halve that :p
01:34 sorear it's younger than the perl 6 project!
01:37 lue When diakopter (I think) comes around, he may be able to get you an account on the server I ssh to.
01:37 lue Don't quote me though.
01:37 dominix joined #perl6
01:42 quietfanatic joined #perl6
01:44 iay hi
01:46 lue hello! o/
01:53 quietfanatic Oh hi.  (belated_
01:53 quietfanatic *)
01:57 iay hello
01:58 quietfanatic Kinda quiet around here
01:58 snarkyboojum joined #perl6
02:00 lue barb (er, brb)
02:32 TimToady Kinda fanatic around here
02:36 am0c joined #perl6
02:39 quietfanatic Kinda snarky around here
02:49 snarkyboojum Kinda toady around here?
02:57 Emzzzz joined #perl6
02:57 Emzzzz http://imggmi.info/DSC-1268362284.jpg/ do my tits look big?
02:57 Emzzzz left #perl6
03:01 mikehh joined #perl6
03:07 am0c joined #perl6
03:10 DJ-Dongdot joined #perl6
03:37 jaldhar_ joined #perl6
03:54 lue rakudo: say sqrt(676)
03:54 p6eval rakudo 35e26f: OUTPUT«26␤»
03:56 rekhajos joined #perl6
04:03 nacho joined #perl6
04:44 doublec joined #perl6
04:52 quietfanatic joined #perl6
05:08 iay w
05:12 gfx joined #perl6
05:13 sorear rakudo: role A { has $x } role B { has $y }
05:13 p6eval rakudo 35e26f: OUTPUT«Confused at line 11, near "role A { h"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
05:14 sorear I think there are two bugs here... want to confirm before enqueuing
05:14 sorear the actual parse error is between } and role; Rakudo wants a newline or semicolon, and I don't see that in the synopses
05:15 Sunil joined #perl6
05:15 sorear also, it's being reported considerably earlier in the line than it actually is
05:22 vamped joined #perl6
05:30 quietfanatic sorear: Rakudo's error messages are mostly less than awesome right now
05:32 TimToady std: rakudo: role A { has $x } role B { has $y }
05:32 p6eval std 30036: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing semicolon or comma after block at /tmp/ZobCff5g7D line 1:␤------> [32mrakudo: role A { has $x } [33m⏏[31mrole B { has $y }[0m␤    expecting any of:␤        bracketed infix␤  infix or meta-infix␤      statement modifier loop␤FAILED 00:01
05:32 p6eval ..108m␤»
05:33 quietfanatic That's more what it ought to say.
05:34 quietfanatic (TimToady: nice statement label there.)
05:34 TimToady O_o
05:34 TimToady I blame my copy key
05:35 sorear missing semicolon or comma, eh
05:35 TimToady and it is specced, somewhere...
05:36 sorear I somehow hallucinated that newlines were irrelevant, oops
05:36 sorear (which rakudo happily accepts in lieu of a semicolon - bug?)
05:37 quietfanatic sorear: It only accepts a newline if the last thing was a block.
05:38 quietfanatic So you don't have to remember which syntactic constructs require them and which don't.
05:38 TimToady S04:247 mentions the need for semi in the middle
05:40 TimToady though the final example is probably incorrect there, since ==> is now considered an operator, not a statement terminator
05:41 sorear thank you
05:41 sorear so actually I had zero bugs, yay
05:41 TimToady but quietfanatic is correct in that it is one of the spots where p6 doesn't require you to memorize an arbitrary list
05:42 TimToady where p5 (and C and C++) do have an arbitrary list of which blocks require ; and which don't
05:42 quietfanatic Well, you had the LTA error message.  That's officially a bug.
05:42 TimToady all blocks, user-defined or otherwise, have the same status in p6
05:42 sorear it will be hard to forget that list after using it for 13 years :D
05:43 TimToady it doesn't hurt to put the extra ; in most spots
05:43 quietfanatic For me it's more common that I get to the end of the block and forget what kind of block it was, so I have to go up and look.
05:43 TimToady though it would still confuse the parser if you put it between an if and its else
05:43 TimToady dont' have to anymore
05:44 quietfanatic But for most of my Perl 5 programs, I just put a ; after every single one of my blocks.
05:44 TimToady any } that ends a line terminates its statement, unless continued by special syntax like else
05:44 TimToady but not before an else :)
05:45 quietfanatic No, not before an else, usually.
05:46 TimToady actually, the std message is ever so slightly LTA
05:46 TimToady it oughta put the mark at the end of the previous block, not after the ws
05:46 quietfanatic Well, that's kinda picky, ain't it?
05:46 TimToady I'm pretty picky, except with my kids :)
05:46 TimToady I let them get away with murder.
05:47 quietfanatic Oh, well if I had known that, then... :)
05:47 TimToady well, except for semicolon before else
05:47 TimToady well, you ate the mushrooms too
05:47 quietfanatic Gotta have some sort of feedback.
05:48 quietfanatic How many extra semicolons does that earn me?
05:57 sorear How do I do scope introspection? (join " ", keys %::)
06:01 quietfanatic If you can do it that way, I'm sure it's not implemented in Rakudo yet...
06:01 TimToady rakudo: say keys %GLOBAL::
06:01 p6eval rakudo 35e26f: OUTPUT«Confused at line 11, near "say keys %"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
06:01 TimToady what he said
06:02 TimToady but most of the names aren't in packages anymore anyway
06:02 TimToady they tend to show up in metaclass or in lexical scopes instead
06:03 TimToady rakudo: say (MY::).keys
06:03 p6eval rakudo 35e26f: OUTPUT«Confused at line 11, near "say (MY::)"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
06:03 TimToady std: say (MY::).keys
06:03 p6eval std 30036: OUTPUT«ok 00:02 107m␤»
06:04 TimToady in p6 you can start at MY:: and work your way upward via OUTER::
06:09 spinclad pmichaud, PerlJam, japhb, jnthn: haven't finished backlogging yet, but a thought i have is   Hash.new( Pair.new($k,$v), ... )   which seems it might parse and be flexible enough for everyone
06:10 sorear rakudo: say (::MY).keys
06:10 p6eval rakudo 35e26f: OUTPUT«Null PMC access in find_method('keys')␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
06:10 spinclad (another thought was  Hash.new( :kv($k,$v,...) )  but this seems to supply one Pair to a Hash that will accept it gladly, so i expect it won't do.)
06:10 jonasbn joined #perl6
06:11 sorear What is the most p6y way to override system calls under a dynamic scope for testing?  (In p5 I'd use %CORE::GLOBAL:: and moan about the lack of scoping)
06:11 TimToady just write a lexically scope sub of the same naem
06:11 TimToady name, even
06:12 TimToady dynamic scopes overrides aren't really allowed
06:12 TimToady that would be magical action at a distance
06:13 TimToady otoh, you could wrap any existing sub
06:14 TimToady S06:2469
06:14 TimToady that's intended more for AOP
06:14 quietfanatic So, it's a more official way of implementing action at a distance?
06:15 TimToady right, but the intend is to augment the meaning, not replace it.
06:15 quietfanatic I guess I haven't studied up on AOP so I don't know the use case.
06:15 TimToady one could also augment or supersede an existing class, if the system call in question is a method
06:15 spinclad japhb: ^^ i know this is heavy in typing each Pair, a lighter syntax for non-ident Pair is still wanted
06:16 TimToady or if you have control of the object in question, mixin a different type that overrides the method
06:17 TimToady if the call in question has dynamically scoped defaults, those can be tweaked dynamically
06:17 sorear I'll look into that, thanks, less than awesome but better than CORE::GLOBAL::
06:17 TimToady for example, print and say default to $*OUT, which can be dynamically overridden
06:18 TimToady but usually you just want to override them in a lexical scope
06:19 TimToady another way would be to compile up an alternate setting other than CORE and then compile you other code using that alternate setting
06:19 TimToady *your
06:20 quietfanatic Can you use .wrap on methods?
06:20 TimToady yes
06:20 sorear TimToady: ooh, that sounds like something I'd like to hear, can you give me pointers for what settings and CORE and compiling code in settings are?
06:20 TimToady rakudo doesn't support that yet
06:21 sorear that's just an excuse to help
06:21 TimToady settings are discussed at S02:2357
06:22 sorear thanks
06:26 TimToady zzz &
06:27 spinclad pmichaud, PerlJam, japhb, jnthn: perhaps  sub hash-from-kv (*@kv) { my %h := {}; for @kv -> $k, $v { %h{$k} := $v }; %h }  will translate into proper nqp; i'll give it a try.  seems to come close to what's wanted...
06:29 sorear What is the approved Perl 6 way to define a new setting and load one or more modules under it?
06:37 spinclad sorear: not sure.  the main driving use case i've seen (besides initial definitions) is the -n and -p command line flags, which supply alternate wrappers for YOURCODEGOESHERE; but those are built in.
06:38 sorear ok, I'll have to ask him tomorrow
06:39 * sorear may be trying a *slightly* too ambitious first project
06:40 sorear does Perl6 have its own set of directory layout best practices, or should I just use the old EU:MM bin/ lib/Foo/Bar.pm  t/*.t  setup?
06:45 vamped phenny: tell lichtkind re: http://irclog.perlgeek.de/​perl6/2010-03-11#i_2092652  there is an error at the bottom. "Parrot will join Perl and Parrot" - I think => "Parrot will join Perl and Python"
06:45 phenny vamped: I'll pass that on when lichtkind is around.
06:49 spinclad sorear: Perl 6 specs don't directly speak of directory layout as i recall;  but Rakudo has a new, bright, shiny speclet for finding modules, docs/S11-Modules-proposal.pod, which says something about it.
06:50 spinclad (subject to further annealing, of course)
06:54 sorear ooh shiny
06:54 sorear so I have to repeat my version number and auth-string in every compilation unit?
06:56 spinclad every compilation unit being a module, i think so
06:56 spinclad (at least so far)
06:56 sorear and I suppose if I want to import one module from another in the same distribution, I ought to specify version and auth?
06:57 * sorear is a fan of the "lots of little source files" model
07:01 spinclad for most precision, yes.  version ranges not allowed, exact match only if specified.  if your modules come in a bundle that all get updated together, it's a lot of extra paperwork at present.  proposals welcome.
07:01 kaare joined #perl6
07:03 japhb spinclad: yes, your hash-from-kv() looks like my unflatten() idea.  I'd been hoping for real syntax, but if that's not going to happen ... I'll take what I can get.
07:04 * japhb shuffles off to bed
07:06 spinclad japhb: we could call it HASH instead...
07:09 sorear rakudo: role A { multi method foo() { }; };  class B does A { }
07:09 p6eval rakudo 35e26f:  ( no output )
07:10 sorear rakudo: role A { multi method foo() { }; }; role B { multi method bar() { }; }; class C does A does B { }
07:10 p6eval rakudo 35e26f: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤current instr.: 'perl6;Code;name' pc 12744 (src/builtins/Str.pir:68)␤»
07:11 sorear file?
07:12 uniejo joined #perl6
07:12 sorear (or maybe I should try to figure it out myself...)
07:21 spinclad japhb: real syntax might be something like  hash( $k =:> $v, ... ), since both k => $v and :k($v) want k an ident...
07:21 diakopter kinda spinc around here
07:23 spinclad kinda pterygian hereabouts?
07:25 spinclad o/ diakopter
07:28 spinclad been wondering where comes your handle...  in the course of nym-splicing all that's left of the *heliko-? stem seems to be -ko-
07:29 spinclad (if i may ask)
07:31 [particle] joined #perl6
07:35 * spinclad -> bed, night all  &
07:37 mberends joined #perl6
07:39 diakopter o
07:42 mberends last night's backlog makes enjoyable reading
07:45 yinyin joined #perl6
07:51 Sunil left #perl6
07:53 fridim joined #perl6
07:55 riffraff joined #perl6
07:58 sorear diakopter: lue said I might be able to get a rakudo build account off you
08:27 iblechbot joined #perl6
08:28 Su-Shee joined #perl6
08:29 Su-Shee good morning
08:30 sorear hi
08:52 synth joined #perl6
08:54 saleem joined #perl6
09:00 payload joined #perl6
09:04 dakkar joined #perl6
09:30 fridim joined #perl6
09:48 mssm joined #perl6
09:51 sorear Tene: What do I need to do to make use SQLite3:from<parrot>; syntax work?
09:53 jnthn morning
09:54 sorear hello
09:54 sorear you say you need perl5guts experts
09:55 sorear I need 5<->6 interoperability, and am a perl5guts expert (with essentially no knowledge of parrot)
09:55 sorear how can I help you
09:58 sorear (jnthn, blizkost)
10:00 masak joined #perl6
10:01 jnthn sorear Hi!
10:02 sorear Hello
10:03 jnthn sorear: First, feel free to take a look at the Blizkost source so far. It builds (for me, at least), but it may be a little bitrotten and only ever "sort of worked" anyway
10:03 jnthn sorear: If you have a github username already, let me know what it is and I can add you to the project.
10:03 sorear sorear
10:04 sorear (I've been making a serious effort at perl6 for about, oh, a day now)
10:04 jnthn sorear: There's a missing piece in Rakudo at the moment that makes :from<...> work for loading things from other languages. I can try and put that back today, so it'll be easier to start playing with Blizkost again.
10:04 sorear I've been reading through the Rakudo sources but I can't say I understand them well enough to fix anything
10:04 jnthn You're added.
10:05 jnthn Feel free to ask questions. :-)
10:05 jnthn Also mberends++ updated docs/compiler_overview.pod which, if you didn't glance that already, may help.
10:06 sorear yeah I've seen it
10:06 jnthn Essentially, Parrot specs a cross-language API for how we can load libraries.
10:07 sorear there seem to be a lot of dependancies between Rakudo and Parrot, whenever I'm trying to understand something I spend lots of time pointer chasing
10:07 jnthn It also has "PMCs" which are essentially objects with a bunch of vtables.
10:07 sorear and I haven't done a very good job yet of internalizing the roadmap
10:07 sorear not to be confused with the ROADMAP, which is actually a TIMELINE
10:07 jnthn :-)
10:08 sorear so what did you actually do
10:08 sorear commit bit?
10:09 jnthn Added you to the Blizkost project on GitHub, so you can commit there now.
10:09 sorear I see.
10:10 jnthn My knowledge of Perl 5 guts is low, so there's probably already obvious things I'm Doing Wrong.
10:13 payload joined #perl6
10:13 sorear what's the goal?
10:14 sorear transparent importing of perl5 modules in perl6 is obviously the ideal, but I don't know if you consider it achievable
10:15 masak jnthn: from 'CAVEATS' in the Pod of Moose::Role: "Roles cannot use the "extends" keyword; it will throw an exception for now." jnthn++
10:15 vamped left #perl6
10:16 masak jnthn: I still don't know what to use the 'class does role is class' pattern for, but the fact that it works is just so awesome.
10:16 sorear jnthn: What files should I be looking at?
10:18 sorear jnthn: Why do you have separate PMCs for every Perl 5 sigil?
10:19 sorear Perl 5 sigils are purely syntactic; inside the interpreter, strings and subroutines are on equal footing
10:19 jnthn sorear: Hmm. OK, some bitrot but...nearly works.
10:19 jnthn sorear: I was a bit skeptical of those too.
10:20 jnthn sorear: Somebody else put them in and I figured they knew what they were doing. :-)
10:20 jnthn They can be tossed if it's a problem.
10:21 sorear I have pretty much no clue, so
10:21 colomon joined #perl6
10:22 jnthn :-)
10:22 betterworld joined #perl6
10:22 jnthn sorear: Moment, think I can show you some working example.
10:23 sorear I've read the user-documentation for Parrot but I don't know much of anything about the internals
10:23 betterworld joined #perl6
10:24 jnthn sorear: OK, I just pushed a patch to Blizkost.
10:24 jnthn sorear: Here is what can be done:
10:25 jnthn http://gist.github.com/330215
10:25 jnthn That's just Parrot intermediate code to test it out.
10:25 jnthn And works - it ends up loading CGI.pm and doing CGI->header
10:27 sorear this is incomprehensible to me... I guess I should find some Parrot docs next
10:27 jnthn :-)
10:28 jnthn Yes, that's probably a good next step.
10:28 jnthn I just added to the GIT the segfault I hit upon.
10:28 jnthn The first item works fine, the second fails.
10:28 jnthn That was where I got to.
10:28 jnthn (fails with segfault, looked like I'd corrupted the Perl 5 stack :-()
10:29 sorear How does ~/blizkost/build/parrot interact with /usr/local/src/rakudo/parrot
10:30 jnthn There's a parrot executable in ~/blizkost/build/ ?
10:30 sorear (I'd like to avoid recompiling Rakudo if I can; the stage2 bootstrap needs to run overnight on this bitty box)
10:30 jnthn When you run Configure.pl for blizkost
10:30 sorear no, but there are scripts that look like they're going to download and build one
10:30 jnthn And you have an existing Parrot install
10:30 jnthn Then you can do
10:31 jnthn perl Configure.pl --parrot-config=path/to/parrot_config
10:31 jnthn Then it will build against your local installed Parrot.
10:31 jnthn perl Configure.pl --gen-parrot will make a Parrot build specially for Blizkost.
10:32 jnthn Taht is, nothing special about the Parrot it builds.
10:32 jnthn Just that it is another copy
10:32 jnthn But it's fine to use the already installed one.
10:32 sorear supposing I had a parrot_config, what would it be called
10:32 jnthn It's an executable named parrot_config
10:32 jnthn If you did make install for Parrot at some point (or --gen-parrot when building Rakudo), you'll have one around somewhere.
10:33 jnthn It dumps a bunch of info, like where Parrot got installed to, and so forth.
10:33 sorear yes
10:33 jnthn It would probably be in the same directory as your parrot executable.
10:33 sorear Rakudo doesn't seem to like installing much these days, but ln -s parrot_install/bin/* ~/bin has given me a working 'perl6' in the path
10:33 sorear yeah I got it working
10:34 tlb joined #perl6
10:34 sorear now, if I wanted to play with those gists, what would I do
10:34 jnthn Put them into .pir files
10:34 jnthn In the blizkost directory
10:35 jnthn Make sure you have a perl5.pbc built and in there too.
10:35 jnthn Then path/to/parrot the_pir_file.pir
10:35 sorear Class 'P5Interpreter' not found
10:35 sorear er
10:36 jnthn Hm.
10:36 sorear I suppose I need to actually build blizkost, hmm
10:36 jnthn Oh, yes. :-)
10:36 jnthn just make
10:37 sorear whee http://pastie.org/866334
10:37 masak jnthn: there's a Lund.pm on http://www.pm.org/groups/map.html -- but it's outside the coast of Malmö... :)
10:37 colomon rakudo: (1, 1, *+* ... *).batch(20).perl.say
10:37 p6eval rakudo 35e26f: OUTPUT«(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765)␤»
10:38 jnthn masak: ...damm, I have to swim to .pm group? Swedes are hardcore.
10:39 masak jnthn: it must be the secret underwater Lund.
10:39 jnthn sorear: ooh. I leak.
10:39 jnthn sorear: Was that with the first test file?
10:39 sorear second
10:39 jnthn Aha
10:39 sorear the one you said worked
10:39 jnthn It segfaults for me.
10:39 jnthn wait...the one that calls .'new'() ?
10:39 sorear no
10:39 jnthn oh, sorry
10:39 sorear just header
10:40 sorear I thought I'd pick an 'easy' first project for perl6, a skeletal IRC client already based on MooseX::Declare
10:40 jnthn gist has them in a different order than they were on the edit page.
10:40 sim2409_ joined #perl6
10:40 jnthn So yes, the second one works...but appears to have some issues.
10:40 jnthn (I don't see anything about leaked scalar here, but it doubtless is.)
10:41 sorear are you one of those people who builds their own perls?
10:41 sorear I'm running a distribution generic perl
10:41 sorear that means threads support
10:41 sorear that means leak tracing support
10:42 jnthn I'm using ActiveState's build.
10:42 jnthn (I'm a Win32 guy...)
10:42 sorear oh, hmm
10:42 sorear yeah
10:42 jnthn So that may well be why.
10:42 sorear ActivePerl has been using ithreads since before they existed
10:42 sorear so I'm kinda suprised it's not doing leak tracing
10:42 jnthn Oddness.
10:43 sorear (the 5.8.0 ithreads system is a slightly retooled version of the 5.6.0 Windows fork() emulation, with a better API)
10:43 sorear so uh, back to parrot docs
10:55 saleem joined #perl6
10:57 colomon jnthn++ # got a great error message when I typoed working on my last commit.
10:58 jnthn colomon: ooh, which one? :-)
11:01 colomon ack, parrot build used all by backlog
11:02 colomon it was one that printed out all the possible candidates that dispatch considered.
11:02 sorear jnthn: Is there a Perl6 equivalent to that PIR snippet you pasted?
11:05 jnthn sorear: It should eventually be like:
11:05 jnthn use CGI:from<perl5>;
11:05 jnthn say CGI.header();
11:05 jnthn Or the second one would be
11:06 jnthn use CGI:from<perl5>;
11:06 sorear But it doesn't work now.
11:06 jnthn my $cgi = CGI.new(); $cgi.header(); # this is the broken one
11:06 jnthn Correct, that doesn't work yet.
11:06 sorear not CGI.new.header;?
11:06 jnthn Rakudo needs to re-learn how to do imports from other languages.
11:06 jnthn Yes, that also :-)
11:06 * sorear smells the "lexical variable blocks GC on purpose" antipattern
11:07 jnthn Well, I figured you'd want to do more with the instance in general. :-)
11:07 sorear oh
11:07 jnthn But yes, my PIR example doesn't set a lexical, correct.
11:07 jnthn So it really is more like say CGI.new.header.
11:08 sorear Is a PMC like a P6 container or a P6 value?
11:08 jnthn Either.
11:08 jnthn Depends by PMC
11:09 sorear ...
11:10 jnthn A container is just a PMC that has a reference to another PMC (or many others) and a way of accessing what's inside it.
11:10 jnthn At the Parrot level, there's not really a distinction.
11:11 sorear my $x = "snacks";  # how many PMCs do I have, and where are they
11:14 jnthn 2 - one that's a Perl6Scalar PMC and one that is a Str object (note that not everything is a PMC - many things are just normal classes)
11:16 sorear if I do $x = 2, the Str (eventually) ceases to exist, but the Perl6Scalar stays the same?
11:17 jnthn Yes.
11:18 colomon rakudo: my $a = *; say $a ~~ Whatever
11:18 p6eval rakudo 35e26f: OUTPUT«0␤»
11:19 jnthn fail
11:19 jnthn rakudo: my $a = *; say $a.WHAT
11:19 colomon that appears to be the source of the infinite range bug
11:19 p6eval rakudo 35e26f: OUTPUT«Block()␤»
11:19 jnthn lol
11:20 colomon ?]
11:20 colomon rakudo: my $a = *; say $a
11:20 p6eval rakudo 35e26f: OUTPUT«!whatever_dispatch_helper␤»
11:21 jnthn colomon: Some method must get called on * during the process of assigning it.
11:21 jnthn rakudo: my $a = *; say $a(42)
11:21 p6eval rakudo 35e26f: OUTPUT«Method 'item' not found for invocant of class 'Integer'␤current instr.: '!whatever_dispatch_helper' pc 280 (src/glue/dispatch.pir:25)␤»
11:21 jnthn Aha
11:21 sorear Is it possible to directly expose 'foreign' PMCs to a HLL, or does there need to be an additional shim layer above the Parrot?
11:22 jnthn sorear: We got to some effort in Rakudo (though may well need to go to more) to make it possible to directly expose them.
11:22 jnthn colomon: I'm kinda tied up now but..
11:22 jnthn colomon: edit src/pmc/p6opaque.pmc
11:22 jnthn around line 393
11:23 jnthn Need to add item to the list of methods that we don't go and create a closure for.
11:23 colomon !Parrot_str_equal(interp, name, item) &&
11:23 colomon like that?
11:23 sorear agh, I'm falling asleep, stupid time zones
11:24 sorear I will look more tomorrow
11:24 jnthn colomon: not quite
11:24 jnthn colomon: well, item_str and then you need to define item_str
11:24 jnthn Like the other things are defined in that sequence.
11:25 jnthn sorear: OK, cool. :-)
11:25 jnthn sorear: Sleep well :-)
11:26 colomon okay, cloning isa_str code now
11:31 colomon jnthn++
11:33 colomon spectesting now
11:34 colomon on another matter: any idea how hard it would be to make a version of [ ] that accepted a closure?
11:49 jnthn I don't know what current spec is on how those work.
11:49 jnthn But I guess it's a case of adding to src/builtins/Positional.pir
11:50 colomon oooo... hadn't thought of that
11:55 dalek rakudo: e5d11fe | (Solomon Foster)++ | src/pmc/p6opaque.pmc:
11:55 dalek rakudo: Add item to the list of methods that we don't go and create a closure for, as per jnthn++.
11:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​5d11fe4360fcea8d53d0fb9df77644a50881a04
11:58 mikehh joined #perl6
12:05 mikehh joined #perl6
12:15 mikehh joined #perl6
12:16 moritz_ o/
12:18 m6locks o/
12:19 jnthn oh hai, moritz_
12:20 colomon \o
12:28 pugssvn r30037 | moritz++ | [S03] two grammeros
12:28 pugssvn r30038 | moritz++ | [perl6.org] add perl6-workshops mailing list
12:28 pugssvn r30039 | moritz++ | [perl6.org] new section "getting started"
12:28 pugssvn r30040 | moritz++ | [perl6.org] some front page tweaking
12:30 masak moritz_: 'grammero', to the extent that it matters, contains a typo... should be 'grammAro'
12:30 moritz_ o.
12:31 nacho joined #perl6
12:31 * jnthn always finds the spelling/pronunciation disconnect there weird.
12:31 masak there is a semi-famous American actor by the name of Kelsey Grammer.
12:32 jnthn If you put his name into the possessive form in Slovak it sounds like Grammero. :-)
12:33 masak moritz_: there you go. you must have been thinking about Kelsey in Slovak.
12:37 jnthn These things happen.
12:39 moritz_ jnthn: I found a bug in lexical imports :-)
12:39 moritz_ it goes like that:
12:39 moritz_ { use someModule; foo() # works if somModule exports foo }
12:40 moritz_ { use someModule; eval 'foo()' # boom }
12:40 moritz_ I mean it doesn't explode, but inside the eval the foo() can't be found
12:40 moritz_ oh
12:40 moritz_ not a bug in lexical imports
12:40 jnthn rakudo: my $a = 42; eval('say $a')
12:40 * moritz_ used eval_lives_ok
12:40 p6eval rakudo e5d11f: OUTPUT«42␤»
12:41 moritz_ and that evaluates the eval in a different lexical scope
12:41 jnthn oh :-)
12:41 jnthn Right.
12:41 moritz_ as I explained to baest++ during the hackathon :-)
12:41 jnthn Yeah, that one often catches folks out.
12:41 ispeak_ joined #perl6
12:41 jnthn It's got me too. :-)
12:41 jnthn Use the block form maybe.
12:41 moritz_ nope
12:42 moritz_ missing routines are meant to be detected at CHECK time
12:42 moritz_ so it would not even run the test file if the import went wrong
12:42 jnthn ah, true
12:46 pugssvn r30041 | moritz++ | [t/spec] fudge an unexpectedly passing TODO
12:46 pugssvn r30042 | moritz++ | [t/spec] clean up variables-and-packages.t
12:46 pugssvn r30042 |
12:46 pugssvn r30042 | comparing a not yet initialized symbol to 0 with is() is a bad idea, since
12:46 pugssvn r30042 | they are really Any and stringify to Any().
12:46 pugssvn r30042 |
12:46 pugssvn r30042 | Also remove usage of undeclared barewords
12:46 pugssvn r30043 | moritz++ | [t/spec] move module loading and calling an imported routine into the same eval block
12:46 pugssvn r30044 | moritz++ | [t/spec] very simple meta class test
12:46 dalek rakudo: f28f3c7 | moritz++ | src/core/Num.pm:
12:46 dalek rakudo: port some Num methods over from alpha
12:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​28f3c7062beabfcd5fa869203782d65e98beaf1
12:46 dalek rakudo: f04eb83 | moritz++ | .gitignore:
12:46 dalek rakudo: .gitgnore docs/test_summary.times.tmp
12:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​04eb83ab46b20ecb1406ab18bd9cf94a1ef0d65
12:46 dalek rakudo: 0c6ae7c | moritz++ | t/spectest.data:
12:46 dalek rakudo: run more test files
12:46 pugssvn r30045 | moritz++ | [t/spec] fix up an integration test not to use the same class name multiple times; remove example pugs output
12:46 pugssvn r30046 | moritz++ | [t/spec] simple tests for lexical importing
12:46 pugssvn r30047 | moritz++ | [t/spec] fudge S05-metasyntax/repeat.t for rakudo
12:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​c6ae7c172072749d8f8a27131342f9c973805b1
12:46 pugssvn r30048 | moritz++ | [t/spec] fudge S03-smartmatch/any-str.t for rakudo
12:46 pugssvn r30049 | moritz++ | [t/spec] re-fudge do.t for rakudo
12:46 pugssvn r30050 | moritz++ | [t/spec] fudge S14-roles/parameter-subtyping.t for rakudo
12:46 pugssvn r30051 | moritz++ | [t/spec] fix S11-modules/lexical.t not to use eval_(lives|dies)_ok
12:49 masak moritz_++ # crazy productivity
12:49 moritz_ it looks that way when I'm offline for one or two days, and come back to commit everything
12:52 jnthn moritz_++
13:08 payload joined #perl6
13:17 rodi joined #perl6
13:20 moritz_ can somebody please confirm that  t/spec/S11-modules/lexical.t passes, and if yes, enable it?
13:21 takadonet morning all
13:23 takadonet !!! 10 more test files are passing
13:23 takadonet good job moritz_++ !
13:24 bluescreen joined #perl6
13:32 M_o_C joined #perl6
13:34 iblechbot joined #perl6
13:49 masak I've now replied to chromatic++'s interview questions.
13:52 masak rakudo: use MONKEY_TYPING
13:52 p6eval rakudo f04eb8: OUTPUT«Unable to find module 'MONKEY_TYPING'.␤current instr.: 'perl6;Perl6;Module;Loader;need' pc 33812 (src/gen/role_pm.pir:0)␤»
13:52 masak std: use MONKEY_TYPING
13:52 p6eval std 30051: OUTPUT«ok 00:01 106m␤»
13:53 masak std: augment class Hash { method foo() { say "OH HAI" } }
13:53 p6eval std 30051: OUTPUT«ok 00:01 107m␤»
13:53 masak TimToady: STD.pm doesn't seem to enforce MONKEY_TYPING...
13:53 jnthn May be more of a semantic thing than a syntactic one.
13:54 * jnthn also started on replis to the interview questions, but didn't finish 'em yet. :-)
13:54 masak I don't see why it would be more of a semantic thing.
13:56 masak I'd like to direct people's attention to supernovus's http://github.com/supernovus/ww6
13:56 masak it looks really impressive in its scope.
13:56 jnthn .oO( World War 6? )
13:57 jnthn wow, cool
13:57 masak seems it's Webtoo Websight version 6.
13:58 masak hm. offhand, I don't see the reason for 'gt=' rather than 'ge'.
13:59 masak 'gt=' looks to my Perl 6-accustomed eyes as an assigment metaoperator, disallowed because it's too diffy. :)
14:03 rv2733 joined #perl6
14:12 Guest67534 yes, why not 'gte' instead.
14:13 masak why not 'ge' as in Perl 5 and Perl 6?
14:13 rodi left #perl6
14:14 Guest67534 ... or 'ge' ... ;-)
14:14 hercynium joined #perl6
14:16 masak Guest67534: :)
14:18 masak how long do these colds usually last? I've had mine for over 24 hours now, and frankly I'm getting sick of it.
14:19 jnthn masak: Mine got worse today rather than better :-(
14:19 masak yeah, same here.
14:20 * araujo hands hot water to masak & jnthn
14:20 masak I had one of those night full of interesting compromises in breathing technique.
14:20 jnthn Hackathons. Complete with risk of cross-infection.
14:20 masak "The type of bug you just can't submit."
14:20 jnthn file humanbug!
14:21 masak I bet they'll get it fixed by the time Human 6.0.0 comes out.
14:24 jnthn I heard Human 6.0.0 will play Duke Nuken Forever.
14:25 masak yeah. on Hurd. with an Optimus Prime keyboard.
14:28 jnthn .oO( I Hurd you like vapourware... )
14:29 masak *lol*
14:39 masak actually, I periodically gravitate towards Hurd, Plan 9 and Haiku, just to see how they're doing. there are some really exquisite ideas in there.
14:41 masak are sub definitions lexically scoped nowadays? that is, if I don't provide a 'my' or 'our', do I get 'my' semantics on a sub?
14:41 masak std: sub foo() { sub bar() {} }; bar()
14:41 p6eval std 30051: OUTPUT«Undeclared routine:␤   'bar' used at line 1␤ok 00:01 108m␤»
14:41 masak seems like it.
14:41 payload joined #perl6
14:42 masak so, could it be said that 'sub foo() { ... }' is a convenient shorthand for 'my &foo = sub () { ... }' ?
14:42 szabgab joined #perl6
14:43 eiro joined #perl6
14:46 payload joined #perl6
14:47 jnthn Woo, back...on ADSL rather than mobile. :-)
14:48 jnthn Ahh....that latency is rather better.
14:48 jnthn masak: Yes, lexical by default.
14:48 masak maybe binding would be a better desugaring.
14:49 jnthn masak: more like my &foo := anon sub foo() { ... };
14:49 masak why the 'anon'?
14:49 jnthn so we can give the RHS a name.
14:49 jnthn But it doesn't get registered anywhere.
14:49 masak oh, ok.
14:50 masak the 'anon' says "don't install me".
14:53 jnthn right
14:53 jnthn But the sub knows its name.
14:54 masak nod. 'anon with the following name...' :)
14:55 jnthn Well, it's the difference between you knowing your name and somebody else also knowing it. :-)
14:56 masak aye.
14:57 masak "-- What's your name? -- Anonymous. -- 'Anonymous'... is that Greek?"
15:04 hudnix joined #perl6
15:05 arnsholt masak: I think it actually -is- Greek =D
15:06 masak arnsholt: yes, it is :)
15:06 masak it's related to the English word 'noun', I think.
15:06 arnsholt Probably
15:07 arnsholt And 'name', as well as nomen in Latin, and so on
15:07 masak arnsholt: the dialogue is from a movie "Remember Me" that I saw the other day. I liked it quite a bit, though most reviewers seem to give thumbs down.
15:07 * arnsholt digs out his etymological dictionary
15:07 masak :)
15:09 arnsholt Hmm. Apparently name in Greek is onoma, which means that non-name should be anonoma
15:09 Psyche^ joined #perl6
15:10 masak oh!
15:10 arnsholt Looks like the leading o is dropped in the derivation
15:10 arnsholt Ah, but no!
15:11 arnsholt It's an-onumia
15:11 arnsholt The internal o becomes u. Probably ablaut again ^^
15:11 masak :)
15:12 hejki rakudo: for (0,pi/2,pi,pi*2) -> $x { say cos($x) }
15:12 p6eval rakudo f04eb8: OUTPUT«1␤6.12323399573677e-17␤-1␤1␤»
15:12 hejki :)
15:12 arnsholt Anyways, it's the same word. Uncertain reconstruction in PIE, but there are probably some laryngeals in there somewhere
15:15 hejki rakudo: for (0,pi/2,pi,pi*2) -> $x { say cos($x).Int }
15:15 p6eval rakudo f04eb8: OUTPUT«1␤0␤-1␤1␤»
15:15 daemon joined #perl6
15:15 hejki is it since the inaccurate pi? :P
15:16 mssm joined #perl6
15:17 [particle] rakudo: cos(0).WHAT.print
15:17 p6eval rakudo f04eb8: OUTPUT«Num()»
15:18 [particle] rakudo: cos(pi/2).WHAT.print
15:18 p6eval rakudo f04eb8: OUTPUT«Num()»
15:18 [particle] phew :)
15:40 pmichaud good morning, #perl6
15:41 masak pmichaud!
15:45 jnthn morning pmichaud :-)
15:46 TimToady arnsholt: we don't know if there are laryngeals because it's hard to understand someone with their mouth full; the word is actually from an ancient game show named "Nom that chewin'"
15:46 masak ah, those ancient game shows. I love catching the reruns.
15:47 arnsholt TimToady: Good explanation. You should publish =)
15:47 arthur-_ joined #perl6
15:47 TimToady along with how Japanese is most closely related to Yiddish.
15:48 pmichaud .oO( Should I look in backscroll to figure out what TimToady/arnshold/masak are referring to?  Probably not. )
15:48 masak :D
15:49 * jnthn had to wikipedia laryngeals
15:50 TimToady not to be confused with pharyngeals
15:50 * TimToady was one of the few trainees at SIL that could actually perform a pharyngeal
15:52 arnsholt pmichaud: You should. It's very educational ^^
15:53 arnsholt TimToady: I am now slightly envious. I really need to take a course in phonetics to get some practice with the funky sounds
15:54 pmichaud I must be tired.  I originally saw "course" as "curse" there.  :)
15:54 * masak .oO( welcome to YAPC::EU 2010. in his keynote Larry Wall will *actually* perform a pharyngeal! )
15:54 arnsholt Good misread that
15:54 SmokeMachine joined #perl6
15:55 nihiliad joined #perl6
15:55 TimToady it will sound to an English speaker as though I am gagging
15:55 pmichaud Does Perl 6 have pharyngeals yet?  Seems like a good companion to phasers and slangs and the like.
15:56 pmichaud if it sounds like gagging, then perhapsw e should have "pharyngeals" instead of "exceptions".
15:56 TimToady sure, it has Unicode, and Unicode has Arabic
15:56 pmichaud "SORRY!  Your code just performed a pharyngeal at line 42, near ..."
15:56 TimToady Gag me with a fork...
15:57 pmichaud can't do that on Windows systems, though.
15:57 pmichaud Fortunately, Windows is self-gagging.
15:57 TimToady .oO(gag me with a spawn?)
15:57 REPLeffect joined #perl6
15:58 pmichaud afk for a bit
16:01 rgrau joined #perl6
16:02 justatheory joined #perl6
16:15 TimToady hmm, "Use Pastie in your quest to save humanity, not in your evil plots to take over the world!"
16:16 TimToady seems to me the two are not mutually exclusive...
16:16 TimToady but maybe that's just me...
16:17 masak :)
16:26 xinming joined #perl6
16:33 pugssvn r30052 | colomon++ | [t/spec] Add tests for RangeIter on infinite Ranges.
16:33 colomon joined #perl6
16:49 masak http://uncyclopedia.wikia.com/wiki/Perl
16:49 masak I'm disappointed that it doesn't mention Perl 6 more explicitly.
16:49 masak the closest they get is "Over the years, PERL mutated more and more and finally reached a stage where the syntax changes all day long, it takes about 3 hour until the complete syntax has changed."
16:52 masak that might have been true in 2007 or so. nowadays we have special scripts which can change the complete syntax in about 8 minutes.
16:52 pugssvn r30053 | lwall++ | [S02] document which ops don't autoclose with *, including assignment
16:52 pugssvn r30053 | conjecture a generalization of the closure-calling context that subscripts enforce
16:52 pugssvn r30053 | note that this generalization might allow the autoclosing of some of the current exceptions
16:53 jnthn masak: Devel::Declare ain't that slow. :-P
16:55 masak jnthn: :)
17:03 colomon 27297 passing tests...
17:04 m6locks hmm i got moar
17:04 m6locks Files=293, Tests=28427, 1734 wallclock secs (13.04 usr  3.37 sys + 1308.94 cusr 172.61 csys = 1497.96 CPU)
17:05 SmokeMachine joined #perl6
17:05 colomon m6locks: that's tests run, not tests passed.
17:05 m6locks well it said All tests successful.
17:06 colomon I'm actually getting 28655 tests run here (that's from tools/test_summary.pl, not make spectest).
17:06 m6locks not sure though where be the actual number of passed tests
17:06 m6locks oh ok
17:06 m6locks i ran spectest
17:07 colomon test_summary actually gives you a really nice summary of what tests ran, etc...
17:07 m6locks nice, running it now
17:08 m6locks i guess it oughta be the same number
17:08 colomon It's really much more handy than make spectest for figuring out how many tests pass, how many are fudged, etc.
17:09 rgrau talking about passing tests, http://rakudo.org/status is not getting updated.  Not a big issue but...
17:10 pmichaud it tends to get updated when I run updates :-)
17:10 rgrau ah :)
17:10 colomon m6locks: might not be the same number, for instance depending on whether or not you have ICU installed.
17:11 colomon pmichaud: good morning!
17:12 masak food &
17:13 pmichaud I'm blocked from doing spectest updates at the moment by the silly wifi restrictions here.
17:13 pmichaud At least, I'm blocked until I can get ssh tunneling all set up properly.
17:13 pmichaud s/tunneling/forwarding/
17:14 jnthn ugh
17:16 colomon Is there some procedure for someone else to take over that job?
17:18 * colomon goes to nom dim sum.
17:19 pmichaud yes, I actually have the update procedure written as a script
17:19 pmichaud oh, I could do the updates from my desktop, I guess.  I'm just so used to doing it from my notebook.
17:22 pmichaud I'll do that.
17:22 riffraff joined #perl6
17:28 SmokeMachine joined #perl6
17:30 * jnthn afk for a bit
17:33 Trashlord joined #perl6
17:37 araujo_ joined #perl6
17:41 meppl joined #perl6
17:51 araujo joined #perl6
17:54 rindolf joined #perl6
17:54 rindolf Hi lal.
17:54 rindolf Hi all.
17:55 hanekomu_ joined #perl6
18:04 clintongormley joined #perl6
18:17 bluescreen joined #perl6
18:22 Lorn joined #perl6
18:35 s1n wow, first time in 6 months i ran the spectest:
18:35 s1n Files=302, Tests=28655, 560 wallclock secs (11.49 usr  1.61 sys + 987.24 cusr 63.66 csys = 1064.00 CPU)
18:35 s1n Result: PASS
18:35 s1n it actually didn't kill my machine like last time
18:36 s1n t/spec/S02-builtin_data_types/array.rakudo TODO 3 passed
18:36 s1n t/spec/S02-builtin_data_types/range.rakudo TODO 63 passed
18:36 s1n t/spec/S32-str/uc.rakudo TODO 17-20 passed
18:50 payload joined #perl6
18:52 supernovus joined #perl6
18:57 IllvilJa joined #perl6
18:57 supernovus_ joined #perl6
19:01 ruoso joined #perl6
19:20 chromatic joined #perl6
19:37 PZt joined #perl6
19:40 rindolf joined #perl6
19:40 colomon joined #perl6
19:42 vamped joined #perl6
19:46 SmokeMachine joined #perl6
19:46 xomas joined #perl6
19:46 xomas joined #perl6
19:47 ShaneC joined #perl6
19:48 rindolf Hi all.
19:51 vamped o/
19:51 PerlJam greetings
19:51 pugssvn r30054 | lwall++ | [STD] implement MONKEY_TYPING constraint
19:51 rindolf Hi pelr
19:51 rindolf Hi PerlJam
19:51 rindolf PerlJam: I was surprised that I ran into so many Rakudo bugs when I tried it.
19:52 rindolf Known bugs no less.
19:52 PerlJam Why were you surprised?  :)
19:53 TimToady and if you knew about them, why didn't you fix them :P
19:54 TimToady seriously, we're still recovering from switching branches
19:54 TimToady but other things are getting better
19:55 TimToady rakudo: say ~(1, 1, *+* ... *).batch(30)
19:55 p6eval rakudo f04eb8: OUTPUT«1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040␤»
19:55 ruoso that's cool
19:57 TimToady rakudo: say (*/*)(22,7)
19:57 p6eval rakudo f04eb8: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
19:57 TimToady rakudo: say (*+*)(22,7)
19:57 p6eval rakudo f04eb8: OUTPUT«29␤»
19:58 TimToady rakudo: say (* * *)(22,7)
19:58 p6eval rakudo f04eb8: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
19:58 jnthn TimToady: I think the patch for those just put in a couple of cheats.
19:58 TimToady looks like *+* is hardwired :)
19:58 masak joined #perl6
19:58 jnthn lolitsmasak
19:58 masak oh hai, #perl6.
19:58 TimToady rakudo: say (* + *)(22,7)
19:58 p6eval rakudo f04eb8: OUTPUT«29␤»
19:59 masak (* + *) looks like an owl.
19:59 TimToady rakudo: say (* v *)(22,7)
19:59 p6eval rakudo f04eb8: OUTPUT«Confused at line 11, near "say (* v *"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
19:59 masak :)
19:59 masak obviously we need an infix:<v> operator.
20:00 masak for esthetic reasons.
20:00 TimToady that was so obvious I didn't even bother to say it
20:00 vamped lolmasak
20:00 masak lolvamped
20:00 vamped we'll call it the "owl" operator. what should it do?
20:01 TimToady std: supersede class Mäsak {...}
20:01 masak hoot.
20:01 p6eval std 30054: OUTPUT«Potential difficulties:␤  Can't supersede something that doesn't exist at /tmp/WEDk4pNQsi line 1:␤------> [32msupersede class Mäsak[33m⏏[31m {...}[0m␤ok 00:01 107m␤»
20:01 jnthn Do geek owls h00t?
20:01 masak std: class masak {}; augment class masak {}; supersede class masak {}
20:01 p6eval std 30054: OUTPUT«ok 00:01 105m␤»
20:01 ash_ joined #perl6
20:02 TimToady the version is lying again
20:05 ash_ ping pm? or perlpilo?
20:05 ash_ hmm
20:05 ash_ i wish i could spell
20:05 ash_ s/perlpilo/perlpilot/
20:07 TimToady std: supersede class Int {...}
20:07 p6eval std 30054: OUTPUT«ok 00:01 105m␤»
20:07 TimToady ...
20:08 supernovus joined #perl6
20:09 masak std: class class {}; class supersede {}; supersede class class {}; supersede class supersede {}
20:09 p6eval std 30054: OUTPUT«ok 00:02 105m␤»
20:09 ash_ masak, that looks scary
20:09 masak ash_: sorry about that :) just trying to be deliberately evil.
20:10 masak STD.pm is too good for my evil to work, tho'.
20:10 ash_ i hope you never take over the world, nothing against you personally, but...
20:10 supernovus masak: being deliberately evil is a good way to find cool new feat... err bugs...
20:10 masak ash_: I understand.
20:10 jnthn rakudo: class class { }
20:10 p6eval rakudo f04eb8:  ( no output )
20:10 masak jnthn: already tried that one long ago :P
20:11 jnthn rakudo: class class {}; class supersede {}; supersede class class {}
20:11 p6eval rakudo f04eb8: OUTPUT«"supersede" not yet implemented at line 11, near " class cla"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
20:11 jnthn aw.
20:11 jnthn :-)
20:11 masak supernovus: actually, some cool parts of Perl 6 have been 'discovered' by pretty much that process. :)
20:11 masak supernovus: so, ready to do some evil Tardis hacking? :)
20:11 masak oh wait. sorry.
20:12 * masak immediately learns to keep supernovus and snarkyboojum apart
20:12 masak supernovus: sir, I wish to compliment you on your impressive web app.
20:12 jnthn They both being with an "s", how different can they be?
20:12 jnthn *begin
20:12 supernovus masak: I haven't looked at TARDIS yet. I was going to help out with Temporal Flux... but anything named after something from Doctor Who is always a good thing in my books. :-D
20:12 masak supernovus: you're not just lue with another nick, are you? :P
20:13 * masak 's recipe for combatting his own confusion: create more confustion
20:14 supernovus masak: Nope. And glad you liked my web app. As it was based on an existing Perl 5 script, it did make some technological choices that may appear "weird", such as not using ANY databases at all... but that was an intentional part of the design.
20:14 masak supernovus: I like it when people go public with lots of Perl 6 code.
20:14 masak it gives me something to read :)
20:15 masak [backlog] ooh, TimToady++ implemented the MONKEY_TYPING constraint! \o/
20:16 masak TimToady: you're so responsive nowadays to my nits that I almost feel like I'm ordering you around... :P
20:16 supernovus masak: It took me a few moments to post it. I've never released any of my webtoo websight code before. Versions 1 through 4 are lost forever, which is probably a good thing. I may release ww5 for historical interest after I've migrated to ww6.
20:17 masak supernovus: we should compare notes between November and ww6 sometime.
20:17 ash_ we should alias MONKEY_TYPING to DUCK_PUNCHING, that name always amused me more than monkey typing
20:18 masak oh no poor ducks
20:18 ash_ well, as long as they quack properly its okay
20:18 masak ash_: we try to avoid punching animals. having a monkey sit down at a typewriter is OK, though.
20:18 riffraff joined #perl6
20:19 ash_ okay, i can see the ethical issues with that name
20:19 supernovus masak: That sounds like an idea. One of the goals of ww6 is to make it modular. I want to make the Webtoo::Request object use Web.pm at some point. I'm assuming Web.pm will replace the CGI.pm in November as well (which is where a lot of the code in Webtoo::Request was nicked from...)
20:19 TimToady .oO(DUCK_TAPING)
20:19 masak if you thought Camelia was hard to explain to your boss, try DUCK_PUNCHING...
20:20 masak supernovus: that is the plan.
20:20 masak supernovus: ooh, you nicked code? good for you!
20:21 supernovus masak: Yeah, I noticed that Request.pm was looking a lot like CGI.pm and I figured all of the stuff for urldecoding wasn't worth re-inventing, so I just nicked it from CGI.pm ;-)
20:21 krr joined #perl6
20:21 vamped duck taping would also be cruel :p
20:21 masak November definitely errs on the practical side, sometimes embarassingly so.
20:21 masak s/side/side of things/
20:22 masak supernovus: yes, the idea of Web.pm is that it's backend-independent, so CGI is just one of the possible things you can plug in.
20:22 masak (and given what CGI is and does, you probably should consider the alternatives)
20:23 supernovus Yeah, the Request.pm currently supports CGI, SCGI and mod_perl6 (untested, as it doesn't compile with the January Rakudo...)  I am using SCGI for everything, it's WAY faster than CGI.
20:23 masak glad to hear that.
20:23 ash_ kinda like rack from ruby then? or wsgi from python, Web.pm will be a generic interface to the web
20:23 masak I don't know what SCGI is. maybe you could explain it sometime.
20:24 masak ash_: the core of Web.pm is shamelessly cribbed from Rack.
20:24 ash_ sweet
20:24 ash_ maybe you could get it to work with rack then :P
20:24 ash_ i know people have used ruby rack for python projects before
20:24 masak we haven't deviated from Rack compatibility yet, I think.
20:24 ash_ its kinda amusing, python web projects being hosted via a ruby server
20:25 TimToady wow, an amazing number of tests do augment/supersede without a 'use MONKEY_TYPING'
20:26 supernovus SCGI is a simple protocol similar to FastCGI but MUCH simpler, that allows a persistent daemon process to receive requests from the web server, and returns the results to the web server.
20:26 masak other parts of Web.pm are shamelessly cribbed from a popular Python templating engine (Genshi) and a popular Ruby database intermediator (Sequel).
20:26 masak TimToady: those naughty tests/
20:26 masak s[/][.]
20:26 supernovus TimToady: I am guilty... although my stuff is using January Rakudo, there are a lot of "is also" calls with no MONKEY_TYPING in sight...
20:26 TimToady std: s[/][.]
20:26 p6eval std 30054: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/12WXstxPfG line 1:␤------> [32ms[[33m⏏[31m/][.][0m␤    expecting regex atom␤FAILED 00:01 109m␤»
20:27 masak supernovus: we've all done that.
20:27 masak TimToady: it was a p5 substitution! :P
20:27 TimToady this is #perl6!!!
20:27 * masak hangs head in shame
20:27 rindolf It's also sed.
20:27 masak I... I really meant s[ '/' ] = '.'
20:28 masak std: s[ '/' ] = '.'
20:28 p6eval std 30054: OUTPUT«ok 00:01 106m␤»
20:28 masak rakudo: s[ '/' ] = '.'
20:28 p6eval rakudo f04eb8: OUTPUT«Could not find non-existent sub &s␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
20:29 masak also known as 'could not find special syntax' :)
20:29 ash_ rakudo: 'hello world/'['/'] = '.';
20:29 p6eval rakudo f04eb8: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)␤»
20:29 masak ash_: that looks like a Rubyism.
20:30 ash_ eh, probably is, thats a language i know pretty well, so it sneaks into a lot of my stuff
20:30 ash_ rakudo: my $a = 'hello world'; $a['/'] = '.'; say $a;
20:30 p6eval rakudo f04eb8: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)␤»
20:31 masak hm.
20:31 masak I started to augment the Str class to accomodate for the above behaviour...
20:31 masak ...but it's just too weird. :)
20:31 TimToady std: supersede class Str {...}
20:31 p6eval std 30054: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't supersede without 'use MONKEY_TYPING;' at /tmp/1woMYkQ5b1 line 1:␤------> [32msupersede[33m⏏[31m class Str {...}[0m␤FAILED 00:01 105m␤»
20:31 TimToady there we go
20:31 masak std: supersede role Str {...}
20:31 p6eval std 30054: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't supersede without 'use MONKEY_TYPING;' at /tmp/fMAKR8ICLx line 1:␤------> [32msupersede[33m⏏[31m role Str {...}[0m␤FAILED 00:01 105m␤»
20:32 masak std: use MONKEY_TYPING; supersede class KitchenSink {...}
20:32 p6eval std 30054: OUTPUT«ok 00:01 105m␤»
20:32 masak :)
20:32 TimToady std: class class {}; class supersede {}; supersede class class {}; supersede class supersede {}
20:32 p6eval std 30054: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't supersede without 'use MONKEY_TYPING;' at /tmp/sYcOCDqmed line 1:␤------> [32m class {}; class supersede {}; supersede[33m⏏[31m class class {}; supersede class superse[0m␤FAILED 00:01 105m␤»
20:32 TimToady though actually it's testing it in the wrong place
20:33 TimToady and we should probably check it on MOP tweaking as well
20:33 masak to catch any sneaky monkies.
20:33 TimToady decommuting &
20:34 jnthn Dunno that the MOP tweaking will be easy to enforce. :-/
20:35 Tene sorear: the next step is to parse the :foo<blah> syntax in the 'use' statement and get that passed as a hash to the 'use' command.
20:35 jnthn Tene: Already happens in Rakudo master.
20:35 Tene Okay.
20:35 Tene After that, we need to get rakudo using the HLL interop API.
20:36 jnthn Right, that's what needs doing now. :-)
20:36 Tene I have various gripes and discontents about the entire situation there.  I've been chatting with japhb about exactly what needs to happen here.
20:37 jnthn Ah, OK.
20:37 jnthn The way we had it in alpha is not a Good Way Forward?
20:38 Tene *I* was pretty happy with what we had before.
20:38 jnthn Oh.
20:38 jnthn Who isn't?
20:38 Tene In fact, that's what's still implemented in the Parrot tree.
20:38 jnthn So, make Rakudo dependent on it.
20:38 Tene pm wrote up a new API, and it's kinda implemented in NQP, but nothing uses it, and Rakudo no longer uses anything at all.
20:39 jnthn Ah.
20:39 jnthn s/dependent/use/
20:39 jnthn :-)
20:39 * jnthn is less sure about disagreeing with Pm's calls :-)
20:40 Tene Well, the problem there is that NQP registers itself as the compiler for the 'parrot' languae.
20:40 jnthn ...
20:40 jnthn Oh.
20:40 jnthn That sounds...awkward.
20:40 Tene Well, registers a compiler that it builds.
20:40 jnthn As in, breaks :from<parrot>
20:40 Tene not the NQP compiler itself.
20:40 jnthn Oh, I see
20:40 jnthn OK, maybe that's sane-ish then? Or not so?
20:41 Tene Well, it'll work, but <gripes about the API>, and it suggests that everything that wants to use the 'parrot' compiler should load NQP first.
20:41 Tene Also, the old implementation is still in the place that the load_language op will look in, runtime/parrot/languages/parrot/parrot.pir
20:42 Tene the traditional idiom is "check to see if there's a compiler, if not, load_language.  But since NQP is loaded, this new thing is there as a compiler.
20:43 Tene Also, rakudo registers the Perl6::Compiler class twice, once with PCT::HLLCompiler as a parent, and once with HLL::Compiler as a parent.
20:43 Tene The latter being the new HLL API implementation in NQP
20:43 jnthn Ah.
20:43 Tene So, there's some stuff that needs de-tangling.
20:43 jnthn Yes, sounds like it.
20:43 jnthn Grr. I was hoping it was going to be simple to get :from<perl5> wired through to blizkost again.
20:44 jnthn (e.g. by putting back what was in alpha)
20:44 jnthn But sounds not. :-(
20:45 Tene I've avoided putting back what was in alpha because I want to avoid politics in clashing with pm.
20:45 jnthn Fair enough.
20:46 jnthn I didn't realize it had changed, tbh.
20:46 Tene But, now I can say "jnthn told me to do it".
20:46 jnthn lol
20:46 supernovus masak: So, I'm going to check out the Temporal Flux project from your repo, and see what I can do to help with it. It would be a nice gift for Rakudo for the * release. :-)
20:46 jnthn How different is the API?
20:46 Tene jnthn: Very little.
20:47 masak supernovus: I'm very glad you're taking an initiative here.
20:47 jnthn Is it much effort to put it back that way?
20:47 jnthn (the new way)?
20:47 jnthn (is that very little difference, or very little in common?)
20:47 masak supernovus: in my view there are some good ideas represented by Temporal Flux that really ought to make it into the spec, and into Rakudo.
20:47 Tene Very little difference.  Just enough to be incompatible, kinda.
20:48 jnthn hmpfh.
20:48 masak supernovus: but unfortunately, both of these (S32-Temporal, Rakudo) have moved a great deal, and a rebase to catch up will essentially mean re-applying patches on the latest versions of them.
20:48 Tene The problem is that I want to do it right, and get Rakudo set up properly for HLL interop at the same time.
20:48 jnthn And you're not convinced the changes are right?
20:49 Tene Well, the spec is definitely incomplete.  It doesn't offer all of what plumage needs, frex.
20:50 Tene and de-tangling Perl6::Compiler to inherit from HLL::Compiler isn't completely trivial.
20:50 Tene Perl6::Compiler currently has an 'import' method that does something different from what HLL::Compiler's does.
20:50 Tene and the issue of which declaration actually works.
20:51 Tene It's not *too* hard, just not trivial.
20:51 nacho joined #perl6
20:52 jnthn Sounds non-trival, yes.
20:52 japhb Tene, jnthn: Just noticed the highlight on this window, but lunch awaits, so will be AFK.  However, ping me if you have any questions about Plumage's requirements or what have you, and I'll backlog and respond when I get back.
20:52 Tene so my ideal process is: 1) get Perl6::Compiler working with the API declared in HLL::Compiler 2) get 'use' to just use methods on Perl6::Compiler, 3) add some stuff in 'use' to get a different compiler object when :from<foo> is specified
20:53 Tene Which is do-able.
20:54 Tene Somewhere in there, the 'parrot' language probably needs to be replaced with just a :load sub that loads NQP
20:54 mberends joined #perl6
20:54 jnthn use currently calls need, followed by import, on Perl6::Module::Loader, fwiw.
20:54 Tene Which I'm not completely happy with, but is probably reasonable.
20:54 supernovus masak: Well, I'll see what I can do to help. Be it porting your changes to the new Rakudo master (and the Temporal.pm that is found therein) or just implementing more of your spec document. Maybe both :-) I haven't worked with rebasing in git before (actually, prior to perl5i and pspec I hadn't really used git), so this could be interesting.
20:55 jnthn yayitsmberends!
20:55 Tene jnthn: That's great.  I was avoiding working on this until that stuff in rakudo had settled down.
20:55 masak lolitsmberends!
20:55 Chillance joined #perl6
20:55 masak supernovus: I think 'rebasing' here is more of a mental image than an actual process. the changes are too great, at least in Rakudo, which did a branch replacement rather than a merge.
20:56 masak supernovus: let me dig up the most important changes of Temporal Flux for you.
20:56 masak they were all in the constructors, I believe.
20:56 jnthn Tene: I'm plenty happy for people to start hacking in that area now.
20:57 jnthn Tene: There's still bits to do, like the tagged imports and stuff.
20:57 jnthn Tene: But S11 looks like it needs some love on those ATM anyway.
20:57 Tene Sure, but the overall architecture isn't likely to change, yes?
20:57 jnthn I've no plans to change it.
20:57 jnthn :-)
20:57 Tene Great.
20:57 cotto_work joined #perl6
20:58 Tene Tonight is... busy.  this weekend is mostly free for me, I think.
20:58 jnthn Cool.
20:58 jnthn Tene++
20:58 mberends hello masak, nice to see several of your older projects become active again with new contributors :)
20:59 masak mberends: yes, it's a dream come true.
20:59 supernovus jnthn: Oh, I can't wait for the day I can do:  use SOAP::Lite :from<perl5>;   and have it "just work". :-)  If I knew anything about perl5 or parrot guts, I'd help out there too. For now, I think I'll stick to stuff written primarily in Perl 6.  I can grok that language :-)
21:00 jnthn supernovus: It's being worked on. :-)
21:01 jnthn I really hope we can have that working for R*.
21:01 Tene supernovus: it's likely, IMO, that you'll instead want to use a Perl6 wrapper over many perl5 modules.  module Soap::Lite { use Soap::Lite:from<perl5>; ... }
21:01 Tene That's what I usually end up doing for parrot libraries in Perl6
21:01 masak supernovus: http://github.com/masak/temporal-flux-perl6syn​/blob/master/S32-setting-library/Temporal.pod
21:02 masak supernovus: starting from Gregorian::DateTime and on.
21:02 masak supernovus: (I'm pretty sure I don't like the name Gregorian::DateTime, now that I see it again.)
21:02 * supernovus adds to list of things to do: learn C, learn C++, learn PIR, learn PMC.
21:02 Tene jnthn: pm's hll api is in docs/pdds/draft/pdd31_hll.pod and implemented in src/HLL/Compiler.pm in nqp-rx repo
21:02 Tene jnthn: if you'd like to look over them.
21:03 rgrau joined #perl6
21:03 jnthn Tene: Thanks. I'm kinda tied up with $other-job atm, but will glance later.
21:03 masak I don't think it's culturally very insensitive to assume Gregorian datetimes.
21:03 Tene jnthn: I'm gonna go work on $otherjob now too
21:03 supernovus masak: Well, I'll see what I can do to add the stuff from temporal flux to the current Temporal.pm. I'll check out your older Temporal Flux rakudo, the new rakudo master, and the spec changes. Given that, I should be able to help hack out something. :-)
21:04 masak supernovus: http://github.com/masak/rak​udo/blob/master/temporal.t
21:04 masak supernovus: http://github.com/masak/rakudo/blob/5c4c821dd2f958​3841e26f128f847f7a9d20e786/src/setting/Temporal.pm
21:05 masak those three URLs constitute all my contributions so far.
21:05 masak I'd be very happy if something could be salvaged from them. I think they're pretty solid.
21:05 jnthn masak++, supernovus++ # taking on Temporal
21:05 jnthn I didn't even understand half of what was written in p6l in the recent threads.
21:06 masak jnthn: me either, to be honest.
21:06 masak jnthn: but since I strive for simplicity... :)
21:06 jnthn masak: IMNSHO, those things belong in modules.
21:06 supernovus I commonly use the TimeDate and DateTime modules from Perl 5. I have a great interest in being able to use:
21:06 * mberends hides behind a copy of last year's calendar
21:06 masak jnthn: nod.
21:07 masak jnthn: there are just two viable ways to go for Temporal in Perl 6. either we provide a minimal-ish, really good standard. or we remove it altogether.
21:08 masak anything else will end up being half measures.
21:08 masak IMNSHO.
21:08 ash__ joined #perl6
21:09 masak but this is clearly a game where code speaks and bikeshedding leads no-where... which is why my plan was to spring the sweet-spot solution on everyone in one fell swoop, so that no-one would have the strength to bikeshed :P
21:09 jnthn masak: Sounds like a good analysis of the situation.
21:09 jnthn Go for it!
21:09 bluescreen joined #perl6
21:09 jnthn And yes, code speaks volumes louder than bikeshedding.
21:10 masak my requirements are simple:
21:10 masak I want to be able to easily talk about today's date.
21:10 masak I want to be able to easily talk about a given date.
21:10 masak same with times.
21:10 masak I want to be able to do time arithmetics, to the extent it makes sense to do so.
21:10 TimToady if you want to steal Date and Time for the normal gregorian calendar, I'm fine with that
21:10 masak TimToady: \o/
21:11 jnthn masak: I use the DateTime class in .Net plenty and it's intuitive to me, if you want another data point.
21:11 masak TimToady: I'm not saying we should ignore the other cultures. just that they can be Huff'd a great deal.
21:11 jnthn For example, I just wrote:
21:11 jnthn var StartTime = DateTime.Now;
21:11 jnthn var Results = ...;
21:11 jnthn var ExecutionTime = (int)DateTime.Now.Subtract(S​tartTime).TotalMilliseconds;
21:11 jnthn It'd be disappointed if it wasn't something close to that neat in Perl 6.
21:11 masak jnthn: aye.
21:12 jnthn (or better)
21:12 jnthn :-)
21:12 TimToady well, civic units are not necessarily well behaved in terms of Duration
21:12 masak supernovus: maybe we should spur each other to look at other languages' Date/Time modules, and steal all their good ideas?
21:12 pmurias joined #perl6
21:12 masak TimToady: don't know exactly what you mean, but even a 'simple' concept such as 'month' is hard to add and subtract without issues.
21:13 masak not to mention half a month.
21:13 TimToady you can't even subtract to civil times and get microseconds across a leap second
21:13 TimToady *two
21:13 jnthn How very...uncivil.
21:13 TimToady well, okay, I'm confusing civil seconds with POSIX seconds...
21:14 masak TimToady: definition time. 'civil time' means 'the time that masak uses in his daily life', yes?
21:14 masak or civilians in general.
21:15 TimToady you can't tell that 1 hour is 3600 seconds, but you can tell if a particular hour is, assuming knowledge of leap seconds
21:15 japhb jnthn, masak: data point: For games/animation/etc. you *really* don't want a timebase that warps more than a millisecond or so at a time.  Otherwise physics, animation, network RTT and such calculations go kablooey.  So it needs to be easy to get a high-res monotonic nearly-fixed-rate time.
21:15 TimToady and those are Instants and Durations
21:15 masak good.
21:15 masak it'll be necessary to make exactly that distinction in the docs.
21:16 masak "If you want monotonic nearly-fixed-rate time, use Instant and Duration."
21:16 TimToady whereas Dates and Times are culturally and locationally bound
21:16 japhb I'm just saying, it needs to be possible (which it clearly is, from the specs), and should be easy.
21:16 masak "If you want messy, worldly, fuzzy, fussy civil time with dates and stuff, use Date and Time."
21:16 TimToady even within the gregorian system
21:17 masak Instant:Date,Time::Str:Buf
21:17 TimToady do not expect that adding 86400 seconds will give you the same Time the next day
21:17 masak TimToady: well, under some datetime arithmetics I do expect exactly that.
21:18 TimToady in that case, do not expect that all your seconds are one second long :)
21:18 masak TimToady: or rather, I expect to be able to add a day and nothing 'funny' happens.
21:18 japhb Tene, jnthn: looks like you guys have a plan for the interop code.  Let me know if I can be of assistance.  I've got a strong incentive to have 'use OpenGL :from<parrot>;' working again soon, so take advantage now.  ;-)
21:19 masak TimToady: that's the same sense as the third of March being one month after the third of Feb and one month before the third of April, even though the 'one month' intervals are of different size. :)
21:19 TimToady sure
21:19 japhb spinclad, yep, whether I call it HASH() or unflatten(), I think your code is essentially what I will use.  Thanks for tanking on it!
21:19 TimToady civil time is allowed to have snap-to-grid semantics :)
21:20 masak exactly.
21:20 masak it's even expected some of the time.
21:20 TimToady well, snap to it!
21:20 masak I'm not at all helped by my calendar app being very prissy about seconds when I'm switching months.
21:21 TimToady grid yourself for battle
21:21 masak "What time is it? Pun time!"
21:22 TimToady ippun is either one minute or one pun in Japanese  :)
21:22 masak how appropriate.
21:23 masak I hope to see in S32 at some time the phrase "Civil time is allowed to have snap-to-grid semantics." :)
21:24 TimToady would you like a commit bit?
21:24 masak nah, sounds too hard.
21:24 supernovus I'll be back in a few mins. I really like where the Temporal stuff is going. I do have a few questions, like how to initialize a DateTime object from a tai stamp, etc. Also, including formatters for both ISO8601/RFC3339 and RFC2822 in the default set.
21:24 masak I'll just branch off and create my own Perl 6 instead.
21:26 masak supernovus: as frettled explained once, initializing a civil DateTime from a tai stamp involves implementing a scary graph, IIRC.
21:26 arthur-_ joined #perl6
21:26 pmurias http://www.cs.brown.edu/peop​le/acb/codebubbles_site.htm seems interesting
21:27 masak supernovus: in my sekkrit reimplementation, the API for creating/querying dates, times and timelengths was a large subset of ISO8601.
21:28 TimToady now we just need to give IO some snap-to-grid semantics, and we're all set...
21:28 masak rakudo: say $*IN.WHAT
21:28 p6eval rakudo f04eb8: OUTPUT«IO()␤»
21:28 * sorear returns
21:29 sorear Tene: can you explain to me, what it means for NQP to register itself as 'parrot', and why it does it?
21:29 masak if $*IN is a kind of IO, does that mean it has .e and all its cousins?
21:29 TimToady "Line too short, padded with nulls at foo line 42"
21:29 sorear Tene: also, when you say use SQLite3:from<parrot> and it works... where is the binding code?
21:29 * masak sneezes
21:29 TimToady masak: yes, but that's no guarantee they work right
21:30 masak TimToady: ok.
21:30 masak is a filehandle also a kind of IO?
21:30 TimToady yes
21:30 TimToady and maybe even a qp{} path
21:30 masak we still have those? :/
21:31 TimToady for the moment
21:31 masak sometimes I wish the things that the p6l dream up would automatically end up in external modules... :/
21:32 TimToady yes, well, IO.pod is certainly in the odd state of being simultaneously overengineered and underengineered...
21:32 masak as is Temporal.
21:32 masak and S19.
21:34 TimToady I've been trying to get ingy to rewrite IO.pod for us, but he's too sane.
21:34 * jnthn tries to remember which one S19 is
21:34 jnthn Command line arghs?
21:34 masak yaaargh.
21:35 jnthn :-/
21:35 jnthn Yes, I kinda suspect nobody has touched implementing anything because somebody has a stalled grant to work on that. :-/
21:35 masak I'd love to have them, but I look at S19 and think "that's... a bit engineered"
21:35 jnthn At least, that's why I've held of looking at that area.
21:36 masak Perl 6 is the first unix tool I know to introduce metaoptions, and a variety of dashlike prefixes.
21:36 Tene sorear: I wrote this: http://github.com/tene/perl6-sqlite
21:36 sorear yes
21:36 sorear I read it
21:37 sorear and the "you're calling code which AFAICT doesn't even exist" alarm went off in my head
21:38 Tene sorear: I don't understand.  What code doesn't exist?
21:38 sorear SQLite3:from<parrot>
21:38 sorear it's not defined anywhere I can find
21:39 Tene sorear: runtime/parrot/library/SQLite3.pir in the parrot repo
21:39 sorear ...oh
21:39 sorear my find-fu is failing
21:40 sorear so what's the story with NQP and 'parrot'?
21:40 sorear (thanks)
21:41 jnthn masak: Maybe somebody just JFISOI
21:41 jnthn (... Some Of It)
21:41 masak jnthn: aye.
21:42 sorear oooooh, parrot::Curses looks a lot less braindamaged than the p5 Curses.pm, I might actually use this
21:42 masak basically, at S19:48:
21:42 masak "New C<++> metasyntax allows options to be passed through to subsystems"
21:43 masak ...you lost me. :(
21:44 masak later on, there are things like '++PARSER --setting=Perl6-autoloop-no-print ++/PARSER'
21:45 masak I so do not need delimiters in my option syntax.
21:46 jnthn :-/
21:46 masak ++/
21:47 masak browsing through S19, most things actually seem fine, expect for the metasyntactic options which seem insane.
21:48 TimToady they're a useful idea from ghc
21:48 masak oh, there's prior art?
21:48 masak I didn't know that.
21:48 jnthn ...well, that explains the source of the insanity. <grin>
21:49 TimToady and they help prevent overuse of environment variables
21:49 masak I can see that.
21:49 Tene sorear: parrot has a system where you can register and retrieve a "compiler" object, given a string naming the "language".  Part of NQP's library includes a class that implements a new compiler interface, which registers itself as the "compiler" for the "parrot" language.
21:49 masak TimToady: would namespaced options acheive the same effect?
21:50 EvanCarroll joined #perl6
21:50 EvanCarroll It would be really cool if rakudo.de talked about the sudden shifts in the testing graphs
21:50 masak s[ei][ie]
21:51 sorear EvanCarroll: the explanation is quite simple - they were just updated today for the first time in $WHILE
21:51 EvanCarroll I'd be curious to know why so many spec tests were removed, and why the passes went down without the failures going up?
21:51 TimToady masak: conceivably
21:51 masak EvanCarroll: yeah, suddenly the graph has an interesting structure :)
21:51 masak TimToady: :)
21:52 EvanCarroll the graph seems to imply that spec is only half implimented, with fewer tests than last month, and absolutely 0 failures.
21:53 jnthn EvanCarroll: A little while back, we merged a branch that caused some regressions.
21:53 EvanCarroll If this is a test-driven development how come there are 0 failing tests reported
21:53 masak since the command-line options form a reaction surface against the outside world, I think it would help to be a bit less revolutionary with S19 than the present S19 is.
21:53 sorear I wonder if this is related to use MONKEY_TYPING
21:53 Tene EvanCarroll: there's a "fudging" mechanism used for tests that are known to fail, to mark them as TODO instead
21:54 jnthn EvanCarroll: We keep fails clean so it's possible for developers to do changes and know they didn't regress (on the small scale). And what Tene++ said to account for the rest.
21:54 Tene EvanCarroll: and to just not run tests that don't pass at all.
21:54 EvanCarroll look at the amount of TODO's from last month and today
21:54 masak EvanCarroll: a TODO test is essentially a known failing test.
21:54 TimToady and the big picture is that we went through a major refactor
21:54 masak EvanCarroll: yes, well, all tests have not been brought back online yet.
21:55 Tene Mostly we've been bringing them back online as we implement them.  Turn the test on locally, make it pass, and commit it all.
21:55 Tene That's approximately my strategy, at least.
21:56 masak S19 is the only specification to mention 'Christmas'. it doesn't explain it, it just mentions it.
21:56 Tene EvanCarroll: you can consider the estimated difference between tests that are run and "spec" tests as implicitly failing, because we're not even trying to run them right now.
21:57 TimToady sorear: we only enabled MONKEY_TYPING checking in STD, which has nothing to do with which tests rakudo passes
21:58 TimToady rakudo: say ~(1,1/2,1/4...*).batch(10)
21:58 p6eval rakudo f04eb8: OUTPUT«1 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.00390625 0.001953125␤»
21:58 TimToady rakudo: say ~(1/1,1/2,1/4...*).batch(10)
21:58 p6eval rakudo f04eb8: OUTPUT«1 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.00390625 0.001953125␤»
21:59 masak phenny: tell snarkyboojum that I think I need to sleep off this cold I'm having. hope we can conspire over Tardis at some later time instead.
21:59 phenny masak: I'll pass that on when snarkyboojum is around.
21:59 TimToady rakudo: say(1,1/2,1/4...*).batch(10).perl
21:59 TimToady oops
21:59 p6eval rakudo f04eb8:  ( no output )
21:59 TimToady rakudo: say (1,1/2,1/4...*).batch(10).perl
21:59 masak goodnight, everyone.
21:59 p6eval rakudo f04eb8: OUTPUT«(1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512)␤»
21:59 colomon TimToady: what are you trying to get at there?  :)
21:59 jnthn night, masak o/
22:00 colomon masak: \o
22:00 TimToady just making sure it stays rational
22:00 jnthn masak: Hope the cold is better imorgon. :-)
22:00 masak o/
22:00 masak jnthn: yeah, me too. :)
22:00 colomon TimToady: :)
22:00 TimToady colomon++ btw
22:00 colomon I suppose we should be testing that somewhere....
22:00 * colomon blushes
22:01 colomon I know I've completely mucked up the way "excess" values on the left-hand side of the series are handled.
22:02 colomon (I would swear the spec changed since I started implementing it, but probably it was just something I missed the first half-dozen times through.)
22:02 colomon I just haven't had the tuits to go in, write tests, and fix it.
22:02 TimToady it sort of has to know what the parcel on the left has in it
22:02 colomon (Last 36 hours here have been completely insane.)
22:03 colomon TimToady: the issue is this
22:03 colomon :
22:03 TimToady the note I just added to S02 might have some bearing
22:03 colomon rakudo: say (1, 1, 1, 2, 4 ... *).batch(10).perl
22:03 p6eval rakudo f04eb8: OUTPUT«Method 'batch' not found for invocant of class 'Failure'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
22:03 colomon oh, that's interesting....
22:04 colomon well, make it two bugs.  :)
22:04 TimToady ah, yes, which is why it says "last 3 values"
22:04 colomon rakudo: say (1, 2, 3, 6, 9 ... *).batch(10).perl
22:04 p6eval rakudo f04eb8: OUTPUT«Method 'batch' not found for invocant of class 'Failure'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
22:05 colomon ah, well, maybe it doesn't have the bug I thought because it doesn't ever actually handle the case where there are more than three values.  :)
22:05 colomon 1, 1, 1, 2, 4 ... *  is supposed to be 1, 1, 1, 2, 4, 8, 16, etc, right?
22:05 TimToady by current spec, yes
22:06 colomon Seems reasonable to me, I just failed to implement it.  :)
22:06 TimToady and 1,2...10,20...100,200...* is supposed to act the same as 1,2,3...10,20,30...100,200,300...*
22:06 TimToady since it's only supposed to take literals into account, not the leftover 9, 90, etc
22:06 colomon Right, in that case, I just plain don't know how to implement it.
22:06 TimToady that's why I was talking about parcels
22:07 colomon Ah!
22:07 TimToady it might yet be proven insane, however
22:07 colomon right, I don't know how to say "give me a slurpy array of Parcels", or whatever the proper way of specifying that might be.
22:08 TimToady in general, I think rakudo is still weak on list infixes
22:08 jnthn Is that the **@foo thingy?
22:08 TimToady well, essentially, you have a slice
22:08 jnthn Ah.
22:08 jnthn Rakudo doesn't have much clue on slices yet, I'm afraid.
22:08 colomon (Come to think of that, that's also the reason that @a Z @b works but @a Z @b Z @c doesn't yet.)
22:08 TimToady yes, it's like 1,2;10,20;100,200 except with a different operator for ;
22:09 TimToady the lists of a list infix are independent lists, and independently lazy
22:10 TimToady it seems like a beautiful thing to me, but then I might be a cannibal in my spare time, for all you know.
22:11 chromatic Cultural relativism has gone too far.
22:11 TimToady I don't eat relatives.
22:12 chromatic If you hate your mother in law, fill up on veggies and bread.
22:12 TimToady I can see the weekend has begun early...
22:13 TimToady anyway, we were speaking of slices...
22:13 TimToady .oO(vs flat bread)
22:17 donaldh joined #perl6
22:22 donaldh_ joined #perl6
22:23 Psyche^ joined #perl6
22:23 donaldh__ joined #perl6
22:32 wknight8111 joined #perl6
22:34 quietfanatic joined #perl6
22:43 hercynium joined #perl6
22:45 arthur-_ joined #perl6
22:50 jferrero joined #perl6
22:50 snarkyboojum joined #perl6
23:02 sorear When you say 'std:', what underlying interpreter is being used?
23:07 ash_ perl5
23:08 ash_ the STD.pm is in perl 6 syntax, but it translates it to something perl 5 can understand
23:08 ash_ its not actually running the perl 6 code so much, its really just parsing it
23:08 snarkyboojum is it gimme5 which translates std into perl5, and viv that runs it?
23:08 phenny snarkyboojum: 21:59Z <masak> tell snarkyboojum that I think I need to sleep off this cold I'm having. hope we can conspire over Tardis at some later time instead.
23:09 snarkyboojum phenny: tell masak - no worries - get better, and I'll look forward to it
23:09 phenny snarkyboojum: I'll pass that on when masak is around.
23:10 snarkyboojum sorear: ah here you go - http://www.perlfoundation.org/perl6/index.cgi?viv
23:11 snarkyboojum gimme5 is some serious perl 5 :)
23:11 ash_ viv translates the perl 6 code into a stack frame, its yaml backed
23:12 ash_ yaml based*
23:12 ash_ viv is written in perl 5 and uses STD.pm (i guess gimme5 too)
23:12 snarkyboojum viv is created by gimme5?
23:13 * snarkyboojum is confused :)
23:13 ash_ ummm i am not sure, i'd have to check the make files
23:14 ash_ http://svn.pugscode.org/pugs/src/perl6/viv
23:14 ash_ is viv, i am not exactly sure how it works
23:16 ash_ vill uses viv to run perl 6
23:16 ash_ but i am not sure the status of vill
23:18 snarkyboojum "So Larry has devised a cunning Perl 6 to Perl 5 translator for just this job, called "gimme5".  Running C<make> tells gimme5 to convert STD.pm into a Perl 5 script called "viv"."
23:19 snarkyboojum viv can then parse perl6 and output an AST in YAML format
23:19 snarkyboojum that seems to be how it works
23:25 bluescreen joined #perl6
23:42 [particle]1 joined #perl6
23:47 TimToady that's...oversimplified
23:48 TimToady gimme5 translates STD.pm to STD.pmc
23:48 TimToady viv is just a p5 scripts that says "use STD", but it picks up STD.pmc in preference to STD.pm
23:50 jnthn (note that this pmc is nothing to do with Parrot's meaning of PMC.)
23:53 snarkyboojum yeah - was just looking at that (running it on my linux box)
23:53 snarkyboojum so viv isn't autogenerated
23:53 snarkyboojum the wiki seems to indicate that
23:54 snarkyboojum or perhaps I just misinterpreted :)
23:56 TimToady I have enough job deconfusing the specs; deconfusing the wiki will have to be someone else's job.
23:56 snarkyboojum sure thing - I'll just confuse everyone in the process :)

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

Perl 6 | Reference Documentation | Rakudo