»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
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:08
00:09 am0c left 00:14 cls_bsd joined 00:17 ShaneC left 00:20 ShaneC joined 00:23 colomon joined, colomon left 00:27 nihiliad left 00:28 mikehh joined
lichtkind good night to all 00:33
00:34 lichtkind left 00:38 lestrrat left, snarkyboojum left 00:39 lestrrat joined 00:46 payload joined 00:48 ash_ joined 00:50 eternaleye joined 00:51 snarkyboojum joined
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.
See github.com/masak/proto/blob/master/projects.list 00:52
00:52 Chillance left 00:59 quietfanatic left
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
Result: PASS
nice, time for sm sleep nao
g'night
01:07 yinyin joined 01:09 thowe left 01:11 lestrrat is now known as lest_away
lue hello! 01:12
01:12 colomon joined
lue hello colomon o/ 01:12
dalek kudo: 35e26f8 | jonathan++ | src/pmc/perl6multisub.pmc:
When we have no applicable candidates for a multi-dispatch, make the error contain all of the candidates that we could call.
01:14
01:15 agentzh joined
lue rakudo: say "what revision is me, 楽土?" 01:16
p6eval rakudo 69ce6d: OUTPUT«what revision is me, 楽土?␤»
lue ah. :/
01:21 snarkyboojum_ joined 01:23 snarkyboojum left, snarkyboojum_ is now known as snarkyboojum
lue hello snarkyboojum! o/ 01:24
snarkyboojum lue: ello :)
lue llo!
rakudo: say "I'm not recompiling rakudo :( " 01:25
p6eval rakudo 69ce6d: OUTPUT«I'm not recompiling rakudo :( ␤»
lue "I" being the bot of course :)
sorear (Anyone have tips for recompiling rakudo faster / with less memory usage? building stage2 takes overnight here) 01:30
lue What kind of computer has you? (CPU, RAM is good enough). 01:32
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
2.00Ghz, but it's a P4, so halve that :p
it's younger than the perl 6 project! 01:34
01:34 ash_ left 01:37 meppl left
lue When diakopter (I think) comes around, he may be able to get you an account on the server I ssh to. 01:37
Don't quote me though.
01:37 dominix joined 01:42 quietfanatic joined
iay hi 01:44
01:44 lest_away is now known as lestrrat
lue hello! o/ 01:46
01:53 snarkyboojum left
quietfanatic Oh hi. (belated_ 01:53
*)
iay hello 01:57
quietfanatic Kinda quiet around here 01:58
01:58 snarkyboojum joined
lue barb (er, brb) 02:00
02:16 Lorn_ left 02:26 agentzh left
TimToady Kinda fanatic around here 02:32
02:36 am0c joined
quietfanatic Kinda snarky around here 02:39
snarkyboojum Kinda toady around here? 02:49
02:57 Emzzzz joined
Emzzzz imggmi.info/DSC-1268362284.jpg/ do my tits look big? 02:57
02:57 Emzzzz left 03:01 mikehh left, mikehh joined 03:05 am0c left 03:07 am0c joined 03:10 DJ-Dongdot joined 03:11 DJ-Dongdot left 03:22 mssm left 03:36 dominix left 03:37 jaldhar_ joined, jaldhar_ is now known as jaldhar, _jaldhar left 03:40 doublec left 03:41 am0c left
lue rakudo: say sqrt(676) 03:54
p6eval rakudo 35e26f: OUTPUT«26␤»
03:56 rekhajos joined 03:59 nacho joined, nacho left 04:05 ShaneC left 04:11 quietfanatic left 04:22 lue left 04:29 colomon left 04:44 doublec joined, hercynium left 04:52 quietfanatic joined
iay w 05:08
05:12 gfx joined
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)␤»
sorear I think there are two bugs here... want to confirm before enqueuing 05:14
05:14 REPLeffect left
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:14
05:15 Sunil joined
sorear also, it's being reported considerably earlier in the line than it actually is 05:15
05:24 vamped joined 05:29 justatheory left
quietfanatic sorear: Rakudo's error messages are mostly less than awesome right now 05:30
TimToady std: rakudo: role A { has $x } role B { has $y } 05:32
p6eval std 30036: OUTPUT«===SORRY!===␤Missing semicolon or comma after block at /tmp/ZobCff5g7D line 1:␤------> rakudo: role A { has $x } ⏏role B { has $y }␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤FAILED 00:01
..108m␤»
quietfanatic That's more what it ought to say. 05:33
(TimToady: nice statement label there.) 05:34
TimToady O_o
I blame my copy key
sorear missing semicolon or comma, eh 05:35
TimToady and it is specced, somewhere...
sorear I somehow hallucinated that newlines were irrelevant, oops 05:36
(which rakudo happily accepts in lieu of a semicolon - bug?)
quietfanatic sorear: It only accepts a newline if the last thing was a block. 05:37
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
though the final example is probably incorrect there, since ==> is now considered an operator, not a statement terminator 05:40
sorear thank you 05:41
so actually I had zero bugs, yay
TimToady but quietfanatic is correct in that it is one of the spots where p6 doesn't require you to memorize an arbitrary list
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.
TimToady all blocks, user-defined or otherwise, have the same status in p6
sorear it will be hard to forget that list after using it for 13 years :D
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.
TimToady though it would still confuse the parser if you put it between an if and its else
dont' have to anymore
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
but not before an else :)
quietfanatic No, not before an else, usually. 05:45
TimToady actually, the std message is ever so slightly LTA 05:46
it oughta put the mark at the end of the previous block, not after the ws
quietfanatic Well, that's kinda picky, ain't it?
TimToady I'm pretty picky, except with my kids :)
I let them get away with murder.
quietfanatic Oh, well if I had known that, then... :) 05:47
TimToady well, except for semicolon before else
well, you ate the mushrooms too
quietfanatic Gotta have some sort of feedback.
How many extra semicolons does that earn me? 05:48
sorear How do I do scope introspection? (join " ", keys %::) 05:57
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::
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)␤»
TimToady what he said
but most of the names aren't in packages anymore anyway 06:02
they tend to show up in metaclass or in lexical scopes instead
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)␤»
TimToady std: say (MY::).keys
p6eval std 30036: OUTPUT«ok 00:02 107m␤»
TimToady in p6 you can start at MY:: and work your way upward via OUTER:: 06:04
06:05 wolf2k_ubuntu left
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:09
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)␤»
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 06:11 jonasbn left
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
name, even
dynamic scopes overrides aren't really allowed 06:12
that would be magical action at a distance
otoh, you could wrap any existing sub 06:13
S06:2469 06:14
that's intended more for AOP
quietfanatic So, it's a more official way of implementing action at a distance?
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.
TimToady one could also augment or supersede an existing class, if the system call in question is a method
spinclad japhb: ^^ i know this is heavy in typing each Pair, a lighter syntax for non-ident Pair is still wanted
TimToady or if you have control of the object in question, mixin a different type that overrides the method 06:16
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::
TimToady for example, print and say default to $*OUT, which can be dynamically overridden
but usually you just want to override them in a lexical scope 06:18
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
*your
quietfanatic Can you use .wrap on methods? 06:20
TimToady yes
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?
TimToady rakudo doesn't support that yet
sorear that's just an excuse to help 06:21
TimToady settings are discussed at S02:2357
sorear thanks 06:22
TimToady zzz & 06:26
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:27
sorear What is the approved Perl 6 way to define a new setting and load one or more modules under it? 06:29
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:37
sorear ok, I'll have to ask him tomorrow 06:38
sorear may be trying a *slightly* too ambitious first project 06:39
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:40
vamped phenny: tell lichtkind re: 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.
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:49
(subject to further annealing, of course) 06:50
sorear ooh shiny 06:54
so I have to repeat my version number and auth-string in every compilation unit?
spinclad every compilation unit being a module, i think so 06:56
(at least so far)
sorear and I suppose if I want to import one module from another in the same distribution, I ought to specify version and auth?
sorear is a fan of the "lots of little source files" model 06:57
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
07:01 kaare joined, kaare is now known as Guest67534
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:03
japhb shuffles off to bed
07:05 saschi left
spinclad japhb: we could call it HASH instead... 07:06
sorear rakudo: role A { multi method foo() { }; }; class B does A { } 07:09
p6eval rakudo 35e26f: ( no output )
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)␤»
sorear file? 07:11
07:12 uniejo joined
sorear (or maybe I should try to figure it out myself...) 07:12
07:13 gfx left 07:18 yinyin left
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
spinclad kinda pterygian hereabouts? 07:23
o/ diakopter 07:25
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:28
(if i may ask) 07:29
07:31 [particle] joined
spinclad -> bed, night all & 07:35
07:37 mberends joined
diakopter o 07:39
mberends last night's backlog makes enjoyable reading 07:42
07:45 yinyin joined 07:51 Sunil left 07:53 fridim joined 07:55 riffraff joined
sorear diakopter: lue said I might be able to get a rakudo build account off you 07:58
08:13 xomas left 08:14 tuxdna left 08:21 snarkyboojum left 08:27 iblechbot joined 08:28 Su-Shee joined
Su-Shee good morning 08:29
sorear hi 08:30
08:31 rv2733 left 08:40 payload left 08:51 [synth] left 08:52 synth joined 08:54 saleem joined 09:00 payload joined, fridim left 09:04 dakkar joined 09:05 payload left 09:22 lestrrat is now known as lest_away 09:30 fridim joined 09:32 yinyin left 09:48 mssm joined
sorear Tene: What do I need to do to make use SQLite3:from<parrot>; syntax work? 09:51
jnthn morning 09:53
sorear hello 09:54
you say you need perl5guts experts
I need 5<->6 interoperability, and am a perl5guts expert (with essentially no knowledge of parrot) 09:55
how can I help you
(jnthn, blizkost) 09:58
10:00 masak joined
jnthn sorear Hi! 10:01
sorear Hello 10:02
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
sorear: If you have a github username already, let me know what it is and I can add you to the project.
sorear 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.
sorear I've been reading through the Rakudo sources but I can't say I understand them well enough to fix anything
jnthn You're added.
Feel free to ask questions. :-) 10:05
Also mberends++ updated docs/compiler_overview.pod which, if you didn't glance that already, may help.
sorear yeah I've seen it 10:06
jnthn Essentially, Parrot specs a cross-language API for how we can load libraries.
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.
sorear and I haven't done a very good job yet of internalizing the roadmap
not to be confused with the ROADMAP, which is actually a TIMELINE
jnthn :-)
sorear so what did you actually do 10:08
commit bit?
jnthn Added you to the Blizkost project on GitHub, so you can commit there now. 10:09
sorear I see.
jnthn My knowledge of Perl 5 guts is low, so there's probably already obvious things I'm Doing Wrong. 10:10
10:13 payload joined
sorear what's the goal? 10:13
10:14 betterworld left
sorear transparent importing of perl5 modules in perl6 is obviously the ideal, but I don't know if you consider it achievable 10:14
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
10:15 vamped left
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?
jnthn: Why do you have separate PMCs for every Perl 5 sigil? 10:18
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.
sorear: I was a bit skeptical of those too.
sorear: Somebody else put them in and I figured they knew what they were doing. :-) 10:20
They can be tossed if it's a problem.
sorear I have pretty much no clue, so 10:21
10:21 colomon joined
jnthn :-) 10:22
10:22 betterworld joined
jnthn sorear: Moment, think I can show you some working example. 10:22
10:23 betterworld left
sorear I've read the user-documentation for Parrot but I don't know much of anything about the internals 10:23
10:23 betterworld joined
jnthn sorear: OK, I just pushed a patch to Blizkost. 10:24
sorear: Here is what can be done:
gist.github.com/330215 10:25
That's just Parrot intermediate code to test it out.
And works - it ends up loading CGI.pm and doing CGI->header
sorear this is incomprehensible to me... I guess I should find some Parrot docs next 10:27
jnthn :-)
Yes, that's probably a good next step. 10:28
I just added to the GIT the segfault I hit upon.
The first item works fine, the second fails.
That was where I got to.
(fails with segfault, looked like I'd corrupted the Perl 5 stack :-()
10:29 chromatic left
sorear How does ~/blizkost/build/parrot interact with /usr/local/src/rakudo/parrot 10:29
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)
jnthn When you run Configure.pl for blizkost
sorear no, but there are scripts that look like they're going to download and build one
jnthn And you have an existing Parrot install
Then you can do
perl Configure.pl --parrot-config=path/to/parrot_config 10:31
Then it will build against your local installed Parrot.
10:31 lest_away is now known as lestrrat
jnthn perl Configure.pl --gen-parrot will make a Parrot build specially for Blizkost. 10:31
Taht is, nothing special about the Parrot it builds. 10:32
Just that it is another copy
But it's fine to use the already installed one.
sorear supposing I had a parrot_config, what would it be called
jnthn It's an executable named parrot_config
If you did make install for Parrot at some point (or --gen-parrot when building Rakudo), you'll have one around somewhere.
It dumps a bunch of info, like where Parrot got installed to, and so forth. 10:33
sorear yes
jnthn It would probably be in the same directory as your parrot executable.
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
yeah I got it working
10:34 tlb joined
sorear now, if I wanted to play with those gists, what would I do 10:34
jnthn Put them into .pir files
In the blizkost directory
Make sure you have a perl5.pbc built and in there too. 10:35
Then path/to/parrot the_pir_file.pir
sorear Class 'P5Interpreter' not found
er
jnthn Hm. 10:36
sorear I suppose I need to actually build blizkost, hmm
jnthn Oh, yes. :-)
just make
sorear whee pastie.org/866334 10:37
masak jnthn: there's a Lund.pm on www.pm.org/groups/map.html -- but it's outside the coast of Malmö... :)
colomon rakudo: (1, 1, *+* ... *).batch(20).perl.say
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:37 riffraff left
jnthn masak: ...damm, I have to swim to .pm group? Swedes are hardcore. 10:38
masak jnthn: it must be the secret underwater Lund. 10:39
jnthn sorear: ooh. I leak.
sorear: Was that with the first test file?
sorear second
jnthn Aha
sorear the one you said worked
jnthn It segfaults for me.
wait...the one that calls .'new'() ?
sorear no
jnthn oh, sorry
sorear just header
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
jnthn So yes, the second one works...but appears to have some issues. 10:40
(I don't see anything about leaked scalar here, but it doubtless is.)
sorear are you one of those people who builds their own perls? 10:41
I'm running a distribution generic perl
that means threads support
that means leak tracing support
jnthn I'm using ActiveState's build. 10:42
10:42 mssm left
jnthn (I'm a Win32 guy...) 10:42
sorear oh, hmm
yeah
jnthn So that may well be why.
sorear ActivePerl has been using ithreads since before they existed
so I'm kinda suprised it's not doing leak tracing
jnthn Oddness.
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
10:43 iay left
sorear so uh, back to parrot docs 10:43
10:55 saleem left, saleem joined 10:56 payload left 10:57 sim2409_ left
colomon jnthn++ # got a great error message when I typoed working on my last commit. 10:57
jnthn colomon: ooh, which one? :-) 10:58
colomon ack, parrot build used all by backlog 11:01
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?
jnthn sorear: It should eventually be like: 11:05
use CGI:from<perl5>;
say CGI.header();
Or the second one would be
sorear But it doesn't work now. 11:06
jnthn use CGI:from<perl5>;
my $cgi = CGI.new(); $cgi.header(); # this is the broken one
Correct, that doesn't work yet.
sorear not CGI.new.header;?
jnthn Rakudo needs to re-learn how to do imports from other languages.
Yes, that also :-)
sorear smells the "lexical variable blocks GC on purpose" antipattern
jnthn Well, I figured you'd want to do more with the instance in general. :-) 11:07
sorear oh
jnthn But yes, my PIR example doesn't set a lexical, correct.
So it really is more like say CGI.new.header.
sorear Is a PMC like a P6 container or a P6 value? 11:08
jnthn Either.
Depends by PMC
sorear ... 11:09
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
At the Parrot level, there's not really a distinction.
sorear my $x = "snacks"; # how many PMCs do I have, and where are they 11:11
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:14
sorear if I do $x = 2, the Str (eventually) ceases to exist, but the Perl6Scalar stays the same? 11:16
jnthn Yes. 11:17
colomon rakudo: my $a = *; say $a ~~ Whatever 11:18
p6eval rakudo 35e26f: OUTPUT«0␤»
jnthn fail 11:19
rakudo: my $a = *; say $a.WHAT
colomon that appears to be the source of the infinite range bug
p6eval rakudo 35e26f: OUTPUT«Block()␤»
jnthn lol
colomon ?] 11:20
rakudo: my $a = *; say $a
p6eval rakudo 35e26f: OUTPUT«!whatever_dispatch_helper␤»
jnthn colomon: Some method must get called on * during the process of assigning it. 11:21
rakudo: my $a = *; say $a(42)
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)␤»
jnthn Aha
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?
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
colomon: I'm kinda tied up now but..
colomon: edit src/pmc/p6opaque.pmc
around line 393
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) &&
like that?
sorear agh, I'm falling asleep, stupid time zones
I will look more tomorrow 11:24
jnthn colomon: not quite
colomon: well, item_str and then you need to define item_str
Like the other things are defined in that sequence.
sorear: OK, cool. :-) 11:25
sorear: Sleep well :-)
colomon okay, cloning isa_str code now 11:26
jnthn++ 11:31
spectesting now 11:33
on another matter: any idea how hard it would be to make a version of [ ] that accepted a closure? 11:34
jnthn I don't know what current spec is on how those work. 11:49
But I guess it's a case of adding to src/builtins/Positional.pir
colomon oooo... hadn't thought of that 11:50
11:50 rekhajos left
dalek kudo: e5d11fe | (Solomon Foster)++ | src/pmc/p6opaque.pmc:
Add item to the list of methods that we don't go and create a closure for, as per jnthn++.
11:55
11:57 mikehh left 11:58 mikehh joined 12:05 mikehh left, mikehh joined 12:10 iblechbot left 12:14 mikehh left 12:15 mikehh joined
moritz_ o/ 12:16
m6locks o/ 12:18
jnthn oh hai, moritz_ 12:19
colomon \o 12:20
12:20 fridim left
pugssvn r30037 | moritz++ | [S03] two grammeros 12:28
r30038 | moritz++ | [perl6.org] add perl6-workshops mailing list
r30039 | moritz++ | [perl6.org] new section "getting started"
r30040 | moritz++ | [perl6.org] some front page tweaking
masak moritz_: 'grammero', to the extent that it matters, contains a typo... should be 'grammAro' 12:30
moritz_ o.
12:31 nacho joined
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.
jnthn If you put his name into the possessive form in Slovak it sounds like Grammero. :-) 12:32
masak moritz_: there you go. you must have been thinking about Kelsey in Slovak. 12:33
jnthn These things happen. 12:37
moritz_ jnthn: I found a bug in lexical imports :-) 12:39
it goes like that:
{ use someModule; foo() # works if somModule exports foo }
{ use someModule; eval 'foo()' # boom } 12:40
I mean it doesn't explode, but inside the eval the foo() can't be found
oh
not a bug in lexical imports
jnthn rakudo: my $a = 42; eval('say $a')
moritz_ used eval_lives_ok
p6eval rakudo e5d11f: OUTPUT«42␤»
moritz_ and that evaluates the eval in a different lexical scope 12:41
jnthn oh :-)
Right.
moritz_ as I explained to baest++ during the hackathon :-)
jnthn Yeah, that one often catches folks out.
12:41 ispeak_ joined
jnthn It's got me too. :-) 12:41
Use the block form maybe.
moritz_ nope
missing routines are meant to be detected at CHECK time 12:42
so it would not even run the test file if the import went wrong
jnthn ah, true
12:44 ispeak_ left
pugssvn r30041 | moritz++ | [t/spec] fudge an unexpectedly passing TODO 12:46
r30042 | moritz++ | [t/spec] clean up variables-and-packages.t
r30042 |
r30042 | comparing a not yet initialized symbol to 0 with is() is a bad idea, since
r30042 | they are really Any and stringify to Any().
r30042 |
r30042 | Also remove usage of undeclared barewords
r30043 | moritz++ | [t/spec] move module loading and calling an imported routine into the same eval block
r30044 | moritz++ | [t/spec] very simple meta class test
dalek kudo: f28f3c7 | moritz++ | src/core/Num.pm:
port some Num methods over from alpha
kudo: f04eb83 | moritz++ | .gitignore:
.gitgnore docs/test_summary.times.tmp
kudo: 0c6ae7c | moritz++ | t/spectest.data:
run more test files
pugssvn r30045 | moritz++ | [t/spec] fix up an integration test not to use the same class name multiple times; remove example pugs output
r30046 | moritz++ | [t/spec] simple tests for lexical importing
r30047 | moritz++ | [t/spec] fudge S05-metasyntax/repeat.t for rakudo
pugssvn r30048 | moritz++ | [t/spec] fudge S03-smartmatch/any-str.t for rakudo
r30049 | moritz++ | [t/spec] re-fudge do.t for rakudo
r30050 | moritz++ | [t/spec] fudge S14-roles/parameter-subtyping.t for rakudo
r30051 | moritz++ | [t/spec] fix S11-modules/lexical.t not to use eval_(lives|dies)_ok
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
jnthn moritz_++ 12:52
12:52 colomon left 13:08 payload joined 13:17 rodi joined
moritz_ can somebody please confirm that t/spec/S11-modules/lexical.t passes, and if yes, enable it? 13:20
13:21 PZt left
takadonet morning all 13:21
!!! 10 more test files are passing 13:23
good job moritz_++ !
13:24 bluescreen joined 13:32 M_o_C joined 13:34 iblechbot joined
masak I've now replied to chromatic++'s interview questions. 13:49
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)␤»
masak std: use MONKEY_TYPING
p6eval std 30051: OUTPUT«ok 00:01 106m␤»
masak std: augment class Hash { method foo() { say "OH HAI" } } 13:53
p6eval std 30051: OUTPUT«ok 00:01 107m␤»
masak TimToady: STD.pm doesn't seem to enforce MONKEY_TYPING...
jnthn May be more of a semantic thing than a syntactic one.
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.
I'd like to direct people's attention to supernovus's github.com/supernovus/ww6 13:56
it looks really impressive in its scope.
jnthn
.oO( World War 6? )
wow, cool 13:57
masak seems it's Webtoo Websight version 6.
hm. offhand, I don't see the reason for 'gt=' rather than 'ge'. 13:58
'gt=' looks to my Perl 6-accustomed eyes as an assigment metaoperator, disallowed because it's too diffy. :) 13:59
14:01 tlb left 14:03 rv2733 joined
Guest67534 yes, why not 'gte' instead. 14:12
masak why not 'ge' as in Perl 5 and Perl 6? 14:13
14:13 rodi left
Guest67534 ... or 'ge' ... ;-) 14:14
14:14 hercynium joined
masak Guest67534: :) 14:16
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:18
jnthn masak: Mine got worse today rather than better :-( 14:19
masak yeah, same here.
I had one of those night full of interesting compromises in breathing technique. 14:20
araujo hands hot water to masak & jnthn
jnthn Hackathons. Complete with risk of cross-infection.
masak "The type of bug you just can't submit."
jnthn file humanbug!
masak I bet they'll get it fixed by the time Human 6.0.0 comes out. 14:21
jnthn I heard Human 6.0.0 will play Duke Nuken Forever. 14:24
masak yeah. on Hurd. with an Optimus Prime keyboard. 14:25
14:25 Guest67534 left
jnthn
.oO( I Hurd you like vapourware... )
14:28
masak *lol* 14:29
14:35 szabgab left
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:39
14:40 payload left
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
std: sub foo() { sub bar() {} }; bar()
p6eval std 30051: OUTPUT«Undeclared routine:␤ 'bar' used at line 1␤ok 00:01 108m␤»
masak seems like it.
14:41 payload joined, eiro left, uniejo left
masak so, could it be said that 'sub foo() { ... }' is a convenient shorthand for 'my &foo = sub () { ... }' ? 14:42
14:42 szabgab joined 14:43 eiro joined 14:45 payload left 14:46 payload joined
jnthn Woo, back...on ADSL rather than mobile. :-) 14:47
Ahh....that latency is rather better. 14:48
masak: Yes, lexical by default.
masak maybe binding would be a better desugaring.
jnthn masak: more like my &foo := anon sub foo() { ... }; 14:49
masak why the 'anon'?
jnthn so we can give the RHS a name.
But it doesn't get registered anywhere.
masak oh, ok.
the 'anon' says "don't install me". 14:50
jnthn right 14:53
But the sub knows its name.
masak nod. 'anon with the following name...' :) 14:54
jnthn Well, it's the difference between you knowing your name and somebody else also knowing it. :-) 14:55
masak aye. 14:56
"-- What's your name? -- Anonymous. -- 'Anonymous'... is that Greek?" 14:57
14:57 hudnix left 15:04 hudnix joined
arnsholt masak: I think it actually -is- Greek =D 15:05
masak arnsholt: yes, it is :) 15:06
it's related to the English word 'noun', I think.
arnsholt Probably
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.
arnsholt digs out his etymological dictionary
masak :)
arnsholt Hmm. Apparently name in Greek is onoma, which means that non-name should be anonoma 15:09
15:09 Psyche^ joined
masak oh! 15:10
arnsholt Looks like the leading o is dropped in the derivation
Ah, but no!
It's an-onumia 15:11
The internal o becomes u. Probably ablaut again ^^
masak :)
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␤»
hejki :)
arnsholt Anyways, it's the same word. Uncertain reconstruction in PIE, but there are probably some laryngeals in there somewhere
15:13 Patterner left, Psyche^ is now known as Patterner
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
hejki is it since the inaccurate pi? :P 15:15
15:16 mssm joined
[particle] rakudo: cos(0).WHAT.print 15:17
p6eval rakudo f04eb8: OUTPUT«Num()»
[particle] rakudo: cos(pi/2).WHAT.print 15:18
p6eval rakudo f04eb8: OUTPUT«Num()»
[particle] phew :)
15:31 mberends left
pmichaud good morning, #perl6 15:40
masak pmichaud! 15:41
jnthn morning pmichaud :-) 15:45
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 arthur-_ left
arnsholt TimToady: Good explanation. You should publish =) 15:47
15:47 arthur-_ joined
TimToady along with how Japanese is most closely related to Yiddish. 15:47
pmichaud
.oO( Should I look in backscroll to figure out what TimToady/arnshold/masak are referring to? Probably not. )
15:48
masak :D
jnthn had to wikipedia laryngeals 15:49
TimToady not to be confused with pharyngeals 15:50
TimToady was one of the few trainees at SIL that could actually perform a pharyngeal
arnsholt pmichaud: You should. It's very educational ^^ 15:52
TimToady: I am now slightly envious. I really need to take a course in phonetics to get some practice with the funky sounds 15:53
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! )
arnsholt Good misread that
15:54 SmokeMachine joined 15:55 nihiliad joined
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.
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
pmichaud "SORRY! Your code just performed a pharyngeal at line 42, near ..."
TimToady Gag me with a fork...
pmichaud can't do that on Windows systems, though. 15:57
Fortunately, Windows is self-gagging.
TimToady
.oO(gag me with a spawn?)
15:57 REPLeffect joined
pmichaud afk for a bit 15:58
16:01 rgrau joined 16:02 justatheory joined
TimToady hmm, "Use Pastie in your quest to save humanity, not in your evil plots to take over the world!" 16:15
seems to me the two are not mutually exclusive... 16:16
but maybe that's just me...
masak :) 16:17
16:22 xinming left 16:23 Trashlord left 16:26 xinming joined
pugssvn r30052 | colomon++ | [t/spec] Add tests for RangeIter on infinite Ranges. 16:33
16:33 colomon joined 16:44 SmokeMachine left
masak uncyclopedia.wikia.com/wiki/Perl 16:49
I'm disappointed that it doesn't mention Perl 6 more explicitly.
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."
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
r30053 | conjecture a generalization of the closure-calling context that subscripts enforce
r30053 | note that this generalization might allow the autoclosing of some of the current exceptions
jnthn masak: Devel::Declare ain't that slow. :-P 16:53
masak jnthn: :) 16:55
16:55 dakkar left
colomon 27297 passing tests... 17:03
m6locks hmm i got moar 17:04
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
colomon m6locks: that's tests run, not tests passed. 17:05
17:05 meteorjay left
m6locks well it said All tests successful. 17:05
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
oh ok
i ran spectest
colomon test_summary actually gives you a really nice summary of what tests ran, etc... 17:07
m6locks nice, running it now
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.
rgrau talking about passing tests, rakudo.org/status is not getting updated. Not a big issue but... 17:09
pmichaud it tends to get updated when I run updates :-) 17:10
rgrau ah :)
colomon m6locks: might not be the same number, for instance depending on whether or not you have ICU installed.
pmichaud: good morning! 17:11
masak food & 17:12
17:12 masak left
pmichaud I'm blocked from doing spectest updates at the moment by the silly wifi restrictions here. 17:13
At least, I'm blocked until I can get ssh tunneling all set up properly.
s/tunneling/forwarding/
jnthn ugh 17:14
colomon Is there some procedure for someone else to take over that job? 17:16
colomon goes to nom dim sum. 17:18
pmichaud yes, I actually have the update procedure written as a script 17:19
oh, I could do the updates from my desktop, I guess. I'm just so used to doing it from my notebook.
I'll do that. 17:22
17:22 SmokeMachine left, riffraff joined 17:28 SmokeMachine joined
jnthn afk for a bit 17:30
17:33 Trashlord joined 17:37 araujo_ joined 17:38 araujo left, araujo_ left 17:41 meppl joined 17:51 araujo joined 17:54 payload left, rindolf joined
rindolf Hi lal. 17:54
Hi all.
17:55 hanekomu_ joined 18:04 clintongormley joined 18:05 bluescreen left 18:06 clintongormley left 18:17 bluescreen joined 18:22 Lorn joined 18:26 IllvilJa left
s1n wow, first time in 6 months i ran the spectest: 18:35
Files=302, Tests=28655, 560 wallclock secs (11.49 usr 1.61 sys + 987.24 cusr 63.66 csys = 1064.00 CPU)
Result: PASS
it actually didn't kill my machine like last time
t/spec/S02-builtin_data_types/array.rakudo TODO 3 passed 18:36
t/spec/S02-builtin_data_types/range.rakudo TODO 63 passed
t/spec/S32-str/uc.rakudo TODO 17-20 passed
18:43 quietfanatic left 18:50 payload joined 18:52 supernovus joined 18:56 supernovus left 18:57 IllvilJa joined, supernovus_ joined, rindolf left 19:00 supernovus_ is now known as supernovus 19:01 ruoso joined 19:05 supernovus left 19:17 SmokeMachine left 19:20 chromatic joined 19:36 colomon left 19:37 PZt joined 19:40 rindolf joined, colomon joined 19:42 vamped joined 19:44 M_o_C left 19:46 SmokeMachine joined, xomas joined, xomas left, xomas joined 19:47 ShaneC joined
rindolf Hi all. 19:48
vamped o/ 19:51
PerlJam greetings
pugssvn r30054 | lwall++ | [STD] implement MONKEY_TYPING constraint
rindolf Hi pelr
Hi PerlJam
PerlJam: I was surprised that I ran into so many Rakudo bugs when I tried it.
Known bugs no less. 19:52
PerlJam Why were you surprised? :)
TimToady and if you knew about them, why didn't you fix them :P 19:53
seriously, we're still recovering from switching branches 19:54
19:54 hercynium left
TimToady but other things are getting better 19:54
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␤»
ruoso that's cool
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)␤»
TimToady rakudo: say (*+*)(22,7)
p6eval rakudo f04eb8: OUTPUT«29␤»
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)␤»
jnthn TimToady: I think the patch for those just put in a couple of cheats.
TimToady looks like *+* is hardwired :)
19:58 masak joined
jnthn lolitsmasak 19:58
masak oh hai, #perl6.
TimToady rakudo: say (* + *)(22,7)
p6eval rakudo f04eb8: OUTPUT«29␤»
masak (* + *) looks like an owl. 19:59
TimToady rakudo: say (* v *)(22,7)
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)␤»
masak :)
obviously we need an infix:<v> operator.
for esthetic reasons. 20:00
TimToady that was so obvious I didn't even bother to say it
vamped lolmasak
masak lolvamped
vamped we'll call it the "owl" operator. what should it do?
TimToady std: supersede class Mäsak {...} 20:01
masak hoot.
p6eval std 30054: OUTPUT«Potential difficulties:␤ Can't supersede something that doesn't exist at /tmp/WEDk4pNQsi line 1:␤------> supersede class Mäsak⏏ {...}␤ok 00:01 107m␤»
jnthn Do geek owls h00t?
masak std: class masak {}; augment class masak {}; supersede class masak {}
p6eval std 30054: OUTPUT«ok 00:01 105m␤»
20:01 ash_ joined
TimToady the version is lying again 20:02
ash_ ping pm? or perlpilo? 20:05
hmm
i wish i could spell
s/perlpilo/perlpilot/
TimToady std: supersede class Int {...} 20:07
p6eval std 30054: OUTPUT«ok 00:01 105m␤»
TimToady ...
20:08 supernovus joined
masak std: class class {}; class supersede {}; supersede class class {}; supersede class supersede {} 20:09
p6eval std 30054: OUTPUT«ok 00:02 105m␤»
ash_ masak, that looks scary
masak ash_: sorry about that :) just trying to be deliberately evil.
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...
supernovus masak: being deliberately evil is a good way to find cool new feat... err bugs...
masak ash_: I understand.
jnthn rakudo: class class { }
p6eval rakudo f04eb8: ( no output )
masak jnthn: already tried that one long ago :P
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)␤»
jnthn aw.
:-)
masak supernovus: actually, some cool parts of Perl 6 have been 'discovered' by pretty much that process. :)
supernovus: so, ready to do some evil Tardis hacking? :)
oh wait. sorry.
masak immediately learns to keep supernovus and snarkyboojum apart 20:12
supernovus: sir, I wish to compliment you on your impressive web app.
jnthn They both being with an "s", how different can they be?
*begin
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
masak supernovus: you're not just lue with another nick, are you? :P
masak 's recipe for combatting his own confusion: create more confustion 20:13
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.
it gives me something to read :)
[backlog] ooh, TimToady++ implemented the MONKEY_TYPING constraint! \o/ 20:15
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:16 riffraff left
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
masak oh no poor ducks 20:18
ash_ well, as long as they quack properly its okay
masak ash_: we try to avoid punching animals. having a monkey sit down at a typewriter is OK, though.
20:18 riffraff joined
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...)
TimToady
.oO(DUCK_TAPING)
masak if you thought Camelia was hard to explain to your boss, try DUCK_PUNCHING...
supernovus: that is the plan. 20:20
supernovus: ooh, you nicked code? good for you!
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
vamped duck taping would also be cruel :p
20:21 krr joined
masak November definitely errs on the practical side, sometimes embarassingly so. 20:21
s/side/side of things/
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
(and given what CGI is and does, you probably should consider the alternatives)
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.
ash_ kinda like rack from ruby then? or wsgi from python, Web.pm will be a generic interface to the web
masak I don't know what SCGI is. maybe you could explain it sometime.
ash_: the core of Web.pm is shamelessly cribbed from Rack. 20:24
ash_ sweet
maybe you could get it to work with rack then :P
i know people have used ruby rack for python projects before
masak we haven't deviated from Rack compatibility yet, I think.
ash_ its kinda amusing, python web projects being hosted via a ruby server
TimToady wow, an amazing number of tests do augment/supersede without a 'use MONKEY_TYPING' 20:25
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).
TimToady: those naughty tests/
s[/][.]
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...
TimToady std: s[/][.]
p6eval std 30054: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/12WXstxPfG line 1:␤------> s[⏏/][.]␤ expecting regex atom␤FAILED 00:01 109m␤»
masak supernovus: we've all done that. 20:27
TimToady: it was a p5 substitution! :P
TimToady this is #perl6!!!
masak hangs head in shame
rindolf It's also sed.
masak I... I really meant s[ '/' ] = '.'
std: s[ '/' ] = '.' 20:28
p6eval std 30054: OUTPUT«ok 00:01 106m␤»
masak rakudo: s[ '/' ] = '.'
p6eval rakudo f04eb8: OUTPUT«Could not find non-existent sub &s␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak also known as 'could not find special syntax' :) 20:29
ash_ rakudo: 'hello world/'['/'] = '.';
p6eval rakudo f04eb8: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)␤»
masak ash_: that looks like a Rubyism.
ash_ eh, probably is, thats a language i know pretty well, so it sneaks into a lot of my stuff 20:30
rakudo: my $a = 'hello world'; $a['/'] = '.'; say $a;
p6eval rakudo f04eb8: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)␤»
masak hm. 20:31
I started to augment the Str class to accomodate for the above behaviour...
...but it's just too weird. :)
TimToady std: supersede class Str {...}
p6eval std 30054: OUTPUT«===SORRY!===␤Can't supersede without 'use MONKEY_TYPING;' at /tmp/1woMYkQ5b1 line 1:␤------> supersede⏏ class Str {...}␤FAILED 00:01 105m␤»
TimToady there we go
masak std: supersede role Str {...}
p6eval std 30054: OUTPUT«===SORRY!===␤Can't supersede without 'use MONKEY_TYPING;' at /tmp/fMAKR8ICLx line 1:␤------> supersede⏏ role Str {...}␤FAILED 00:01 105m␤»
masak std: use MONKEY_TYPING; supersede class KitchenSink {...} 20:32
p6eval std 30054: OUTPUT«ok 00:01 105m␤»
masak :)
TimToady std: class class {}; class supersede {}; supersede class class {}; supersede class supersede {}
p6eval std 30054: OUTPUT«===SORRY!===␤Can't supersede without 'use MONKEY_TYPING;' at /tmp/sYcOCDqmed line 1:␤------> class {}; class supersede {}; supersede⏏ class class {}; supersede class superse␤FAILED 00:01 105m␤»
TimToady though actually it's testing it in the wrong place
and we should probably check it on MOP tweaking as well 20:33
masak to catch any sneaky monkies.
TimToady decommuting &
20:34 nacho left
jnthn Dunno that the MOP tweaking will be easy to enforce. :-/ 20:34
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.
Tene Okay.
After that, we need to get rakudo using the HLL interop API.
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.
jnthn Ah, OK. 20:37
The way we had it in alpha is not a Good Way Forward?
Tene *I* was pretty happy with what we had before. 20:38
jnthn Oh.
Who isn't?
Tene In fact, that's what's still implemented in the Parrot tree.
jnthn So, make Rakudo dependent on it.
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.
jnthn Ah. 20:39
s/dependent/use/
:-)
jnthn is less sure about disagreeing with Pm's calls :-)
Tene Well, the problem there is that NQP registers itself as the compiler for the 'parrot' languae. 20:40
jnthn ...
Oh.
That sounds...awkward.
Tene Well, registers a compiler that it builds.
not the NQP compiler itself.
jnthn As in, breaks :from<parrot>
Oh, I see
OK, maybe that's sane-ish then? Or not so?
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
Also, the old implementation is still in the place that the load_language op will look in, runtime/parrot/languages/parrot/parrot.pir
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:42
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
The latter being the new HLL API implementation in NQP
jnthn Ah.
Tene So, there's some stuff that needs de-tangling.
jnthn Yes, sounds like it.
Grr. I was hoping it was going to be simple to get :from<perl5> wired through to blizkost again.
(e.g. by putting back what was in alpha) 20:44
But sounds not. :-(
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.
I didn't realize it had changed, tbh. 20:46
20:46 Patterner left
Tene But, now I can say "jnthn told me to do it". 20:46
jnthn lol
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. :-)
jnthn How different is the API?
Tene jnthn: Very little.
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?
(the new way)?
(is that very little difference, or very little in common?)
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.
Tene Very little difference. Just enough to be incompatible, kinda.
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.
Tene The problem is that I want to do it right, and get Rakudo set up properly for HLL interop at the same time.
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.
and de-tangling Perl6::Compiler to inherit from HLL::Compiler isn't completely trivial. 20:50
Perl6::Compiler currently has an 'import' method that does something different from what HLL::Compiler's does.
and the issue of which declaration actually works.
It's not *too* hard, just not trivial. 20:51
20:51 nacho joined
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.
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
Which is do-able. 20:53
20:53 cotto_w0rk left
Tene Somewhere in there, the 'parrot' language probably needs to be replaced with just a :load sub that loads NQP 20:54
20:54 mberends joined
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.
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.
jnthn yayitsmberends! 20:55
Tene jnthn: That's great. I was avoiding working on this until that stuff in rakudo had settled down.
masak lolitsmberends!
20:55 Chillance joined
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:55
supernovus: let me dig up the most important changes of Temporal Flux for you.
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.
Tene: There's still bits to do, like the tagged imports and stuff. 20:57
Tene: But S11 looks like it needs some love on those ATM anyway.
Tene Sure, but the overall architecture isn't likely to change, yes?
jnthn I've no plans to change it.
:-)
Tene Great.
20:57 cotto_work joined
Tene Tonight is... busy. this weekend is mostly free for me, I think. 20:58
20:58 bluescreen left
jnthn Cool. 20:58
20:58 rgrau left
jnthn Tene++ 20:58
20:58 riffraff left
mberends hello masak, nice to see several of your older projects become active again with new contributors :) 20:58
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 :-)
jnthn supernovus: It's being worked on. :-) 21:00
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>; ... }
That's what I usually end up doing for parrot libraries in Perl6
masak supernovus: github.com/masak/temporal-flux-perl...mporal.pod
supernovus: starting from Gregorian::DateTime and on. 21:02
supernovus: (I'm pretty sure I don't like the name Gregorian::DateTime, now that I see it again.)
supernovus adds to list of things to do: learn C, learn C++, learn PIR, learn PMC.
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
jnthn: if you'd like to look over them.
21:03 rgrau joined
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.
Tene jnthn: I'm gonna go work on $otherjob now too
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. :-)
masak supernovus: github.com/masak/rakudo/blob/master/temporal.t 21:04
supernovus: github.com/masak/rakudo/blob/5c4c82...emporal.pm
those three URLs constitute all my contributions so far. 21:05
I'd be very happy if something could be salvaged from them. I think they're pretty solid.
jnthn masak++, supernovus++ # taking on Temporal
I didn't even understand half of what was written in p6l in the recent threads.
masak jnthn: me either, to be honest. 21:06
jnthn: but since I strive for simplicity... :)
jnthn masak: IMNSHO, those things belong in modules.
supernovus I commonly use the TimeDate and DateTime modules from Perl 5. I have a great interest in being able to use:
mberends hides behind a copy of last year's calendar
masak jnthn: nod.
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:07
anything else will end up being half measures. 21:08
IMNSHO.
21:08 ash__ joined
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.
Go for it!
21:09 bluescreen joined
jnthn And yes, code speaks volumes louder than bikeshedding. 21:09
masak my requirements are simple: 21:10
I want to be able to easily talk about today's date.
I want to be able to easily talk about a given date.
same with times.
I want to be able to do time arithmetics, to the extent it makes sense to do so.
TimToady if you want to steal Date and Time for the normal gregorian calendar, I'm fine with that
masak TimToady: \o/
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.
jnthn For example, I just wrote:
var StartTime = DateTime.Now;
var Results = ...;
var ExecutionTime = (int)DateTime.Now.Subtract(StartTime).TotalMilliseconds;
It'd be disappointed if it wasn't something close to that neat in Perl 6.
21:11 ash_ left, ash__ is now known as ash_
masak jnthn: aye. 21:11
jnthn (or better) 21:12
:-)
TimToady well, civic units are not necessarily well behaved in terms of Duration
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
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:12
not to mention half a month. 21:13
TimToady you can't even subtract to civil times and get microseconds across a leap second
*two
jnthn How very...uncivil.
TimToady well, okay, I'm confusing civil seconds with POSIX seconds...
masak TimToady: definition time. 'civil time' means 'the time that masak uses in his daily life', yes?
or civilians in general. 21:14
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.
TimToady and those are Instants and Durations
masak good.
it'll be necessary to make exactly that distinction in the docs.
"If you want monotonic nearly-fixed-rate time, use Instant and Duration." 21:16
TimToady whereas Dates and Times are culturally and locationally bound
japhb I'm just saying, it needs to be possible (which it clearly is, from the specs), and should be easy.
masak "If you want messy, worldly, fuzzy, fussy civil time with dates and stuff, use Date and Time."
TimToady even within the gregorian system
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
masak TimToady: well, under some datetime arithmetics I do expect exactly that.
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.
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. ;-)
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
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!
TimToady civil time is allowed to have snap-to-grid semantics :)
masak exactly. 21:20
it's even expected some of the time.
TimToady well, snap to it!
masak I'm not at all helped by my calendar app being very prissy about seconds when I'm switching months.
TimToady grid yourself for battle 21:21
masak "What time is it? Pun time!"
TimToady ippun is either one minute or one pun in Japanese :) 21:22
masak how appropriate.
I hope to see in S32 at some time the phrase "Civil time is allowed to have snap-to-grid semantics." :) 21:23
TimToady would you like a commit bit? 21:24
masak nah, sounds too hard.
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.
masak I'll just branch off and create my own Perl 6 instead.
supernovus: as frettled explained once, initializing a civil DateTime from a tai stamp involves implementing a scary graph, IIRC. 21:26
21:26 arthur-_ left, arthur-_ joined
pmurias www.cs.brown.edu/people/acb/codebubbles_site.htm seems interesting 21:26
masak supernovus: in my sekkrit reimplementation, the API for creating/querying dates, times and timelengths was a large subset of ISO8601. 21:27
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
p6eval rakudo f04eb8: OUTPUT«IO()␤»
sorear returns
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?
TimToady "Line too short, padded with nulls at foo line 42"
sorear Tene: also, when you say use SQLite3:from<parrot> and it works... where is the binding code?
masak sneezes
TimToady masak: yes, but that's no guarantee they work right
masak TimToady: ok. 21:30
is a filehandle also a kind of IO?
TimToady yes
and maybe even a qp{} path
masak we still have those? :/
TimToady for the moment 21:31
masak sometimes I wish the things that the p6l dream up would automatically end up in external modules... :/
TimToady yes, well, IO.pod is certainly in the odd state of being simultaneously overengineered and underengineered... 21:32
masak as is Temporal.
and S19.
21:32 arthur-_ left
TimToady I've been trying to get ingy to rewrite IO.pod for us, but he's too sane. 21:34
21:34 krr left, Su-Shee left
jnthn tries to remember which one S19 is 21:34
Command line arghs?
masak yaaargh.
jnthn :-/ 21:35
masak I'd love to have them, but I look at S19 and think "that's... a bit engineered"
jnthn Yes, I kinda suspect nobody has touched implementing anything because somebody has a stalled grant to work on that. :-/
At least, that's why I've held of looking at that area.
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: github.com/tene/perl6-sqlite
sorear yes
I read it
21:37 nacho left
sorear and the "you're calling code which AFAICT doesn't even exist" alarm went off in my head 21:37
Tene sorear: I don't understand. What code doesn't exist? 21:38
sorear SQLite3:from<parrot>
it's not defined anywhere I can find
Tene sorear: runtime/parrot/library/SQLite3.pir in the parrot repo 21:39
sorear ...oh
my find-fu is failing
so what's the story with NQP and 'parrot'? 21:40
(thanks)
jnthn masak: Maybe somebody just JFISOI 21:41
(... Some Of It)
masak jnthn: aye.
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:
"New C<++> metasyntax allows options to be passed through to subsystems"
...you lost me. :( 21:43
later on, there are things like '++PARSER --setting=Perl6-autoloop-no-print ++/PARSER' 21:44
I so do not need delimiters in my option syntax. 21:45
jnthn :-/ 21:46
masak ++/
browsing through S19, most things actually seem fine, expect for the metasyntactic options which seem insane. 21:47
TimToady they're a useful idea from ghc 21:48
masak oh, there's prior art?
I didn't know that.
jnthn ...well, that explains the source of the insanity. <grin>
TimToady and they help prevent overuse of environment variables
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.
masak TimToady: would namespaced options acheive the same effect?
21:50 EvanCarroll joined
EvanCarroll It would be really cool if rakudo.de talked about the sudden shifts in the testing graphs 21:50
masak s[ei][ie]
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 SmokeMachine left
TimToady masak: conceivably 21:51
masak EvanCarroll: yeah, suddenly the graph has an interesting structure :)
TimToady: :)
EvanCarroll the graph seems to imply that spec is only half implimented, with fewer tests than last month, and absolutely 0 failures. 21:52
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
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.
sorear I wonder if this is related to use MONKEY_TYPING
Tene EvanCarroll: there's a "fudging" mechanism used for tests that are known to fail, to mark them as TODO instead
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.
EvanCarroll look at the amount of TODO's from last month and today
masak EvanCarroll: a TODO test is essentially a known failing test.
TimToady and the big picture is that we went through a major refactor
masak EvanCarroll: yes, well, all tests have not been brought back online yet.
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
That's approximately my strategy, at least.
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.
TimToady sorear: we only enabled MONKEY_TYPING checking in STD, which has nothing to do with which tests rakudo passes 21:57
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␤»
TimToady rakudo: say ~(1/1,1/2,1/4...*).batch(10)
p6eval rakudo f04eb8: OUTPUT«1 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.00390625 0.001953125␤»
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.
TimToady rakudo: say(1,1/2,1/4...*).batch(10).perl
oops
p6eval rakudo f04eb8: ( no output )
TimToady rakudo: say (1,1/2,1/4...*).batch(10).perl
masak goodnight, everyone.
p6eval rakudo f04eb8: OUTPUT«(1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512)␤»
colomon TimToady: what are you trying to get at there? :)
jnthn night, masak o/
colomon masak: \o 22:00
TimToady just making sure it stays rational
jnthn masak: Hope the cold is better imorgon. :-)
masak o/
jnthn: yeah, me too. :)
22:00 masak left
colomon TimToady: :) 22:00
TimToady colomon++ btw
colomon I suppose we should be testing that somewhere....
colomon blushes
22:01 ruoso left
colomon I know I've completely mucked up the way "excess" values on the left-hand side of the series are handled. 22:01
(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
I just haven't had the tuits to go in, write tests, and fix it.
TimToady it sort of has to know what the parcel on the left has in it
colomon (Last 36 hours here have been completely insane.)
TimToady: the issue is this 22:03
:
TimToady the note I just added to S02 might have some bearing
colomon rakudo: say (1, 1, 1, 2, 4 ... *).batch(10).perl
p6eval rakudo f04eb8: OUTPUT«Method 'batch' not found for invocant of class 'Failure'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon oh, that's interesting....
well, make it two bugs. :)
TimToady ah, yes, which is why it says "last 3 values" 22:04
22:04 alester left
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)␤»
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
1, 1, 1, 2, 4 ... * is supposed to be 1, 1, 1, 2, 4, 8, 16, etc, right?
TimToady by current spec, yes
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...*
since it's only supposed to take literals into account, not the leftover 9, 90, etc
colomon Right, in that case, I just plain don't know how to implement it.
TimToady that's why I was talking about parcels
colomon Ah! 22:07
TimToady it might yet be proven insane, however
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.
TimToady in general, I think rakudo is still weak on list infixes 22:08
well, essentially, you have a slice
jnthn Is that the **@foo thingy?
Ah.
Rakudo doesn't have much clue on slices yet, I'm afraid.
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.)
TimToady yes, it's like 1,2;10,20;100,200 except with a different operator for ;
22:09 pmurias left
TimToady the lists of a list infix are independent lists, and independently lazy 22:09
it seems like a beautiful thing to me, but then I might be a cannibal in my spare time, for all you know. 22:10
chromatic Cultural relativism has gone too far. 22:11
TimToady I don't eat relatives.
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...
anyway, we were speaking of slices... 22:13
.oO(vs flat bread)
22:17 donaldh joined 22:22 donaldh_ joined, donaldh left 22:23 Psyche^ joined, Psyche^ is now known as Patterner, donaldh__ joined, donaldh_ left 22:27 donaldh__ left 22:32 wknight8111 joined, supernovus left 22:34 quietfanatic joined 22:43 hercynium joined 22:45 arthur-_ joined 22:49 nadim_ left 22:50 jferrero joined, snarkyboojum joined, Trashlord left
sorear When you say 'std:', what underlying interpreter is being used? 23:02
23:03 eternaleye left
ash_ perl5 23:07
the STD.pm is in perl 6 syntax, but it translates it to something perl 5 can understand 23:08
its not actually running the perl 6 code so much, its really just parsing it
snarkyboojum is it gimme5 which translates std into perl5, and viv that runs it?
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.
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:09 bluescreen left
snarkyboojum sorear: ah here you go - www.perlfoundation.org/perl6/index.cgi?viv 23:10
23:10 nihiliad left
snarkyboojum gimme5 is some serious perl 5 :) 23:11
ash_ viv translates the perl 6 code into a stack frame, its yaml backed
yaml based* 23:12
viv is written in perl 5 and uses STD.pm (i guess gimme5 too)
snarkyboojum viv is created by gimme5?
snarkyboojum is confused :) 23:13
ash_ ummm i am not sure, i'd have to check the make files
svn.pugscode.org/pugs/src/perl6/viv 23:14
is viv, i am not exactly sure how it works
vill uses viv to run perl 6 23:16
23:16 meppl left
ash_ but i am not sure the status of vill 23:16
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:18
viv can then parse perl6 and output an AST in YAML format 23:19
that seems to be how it works
23:20 vamped left 23:25 bluescreen joined, hercynium left 23:29 iblechbot left, bluescreen left 23:42 [particle]1 joined 23:44 [particle] left
TimToady that's...oversimplified 23:47
gimme5 translates STD.pm to STD.pmc 23:48
viv is just a p5 scripts that says "use STD", but it picks up STD.pmc in preference to STD.pm
jnthn (note that this pmc is nothing to do with Parrot's meaning of PMC.) 23:50
snarkyboojum yeah - was just looking at that (running it on my linux box) 23:53
so viv isn't autogenerated
the wiki seems to indicate that
or perhaps I just misinterpreted :) 23:54
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 :)