»ö« | 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 loopFAILED 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 1ok 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«16.12323399573677e-17-11» | ||
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«10-11» | ||
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 atomFAILED 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 &scurrent 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 valuecurrent 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 valuecurrent 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 superseFAILED 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 :) |