Pugs 6.2.8 released! | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by autrijus on 13 July 2005. |
|||
00:20
ycheng is now known as yc
|
|||
brentdax | Okay, thanks. | 00:21 | |
svnbot6 | r5992 | iblech++ | PIL2JS: PIL, PIL::Subs, PIL::PPad: Fix recursive subcalls by backuping and | 00:30 | |
r5992 | iblech++ | restoring vars. I.e. | |||
r5992 | iblech++ | sub foo ($stop) { | |||
r5992 | iblech++ | my $x = 3; | |||
r5992 | iblech++ | if $stop { $x++ } else { foo 1; say $x } | |||
r5992 | iblech++ | } | |||
r5992 | iblech++ | should print 3, not 4. Fixed. | |||
iblech | New JS smoke up: m19s28.vlinux.de/iblech/stuff/not_p...smoke.html | 01:00 | |
Night all :) | |||
mjl69 | "Hello, World!".say(); | 01:01 | |
That's cool (pugs newbie) | |||
no need to study Ruby or Haskell anymore :-) | 01:02 | ||
ingy | seen autrijus | 01:59 | |
jabbot | ingy: autrijus was seen 4 hours 13 minutes 57 seconds ago | ||
ingy | anyone around? | ||
I have to give a talk on pugs in 40 hours and I don't know a thing about it! | 02:00 | ||
Who can help ingy? | |||
Darren_Duncan | hi ... I'm currently at OSCON in room E142, "Conferences for Beginners" ... drop by and meet me in person if you're around | 02:30 | |
ingy | Darren_Duncan: cool, I'm in the Doubletree, room 517 | 02:31 | |
Darren_Duncan | I'm staying Red Lion, 216 | 02:32 | |
but I'm at the center right now | |||
ingy | ok, Let's meet later after I get back from dinner | ||
I need some help | |||
Darren_Duncan | among others in the room are Brian d Foy and Randal Schwartz, I think | ||
ingy | do you have a cell phone? | 02:33 | |
Darren_Duncan | no, sorry | ||
ingy | ok, I'll call your room or check irc | ||
Darren_Duncan | its an interesting talk, though | ||
ingy | :) | ||
Darren_Duncan | try irc first ... | ||
ingy | ok | ||
Darren_Duncan | I try to stay on it | ||
ingy | :) | ||
Darren_Duncan | when I'm online, just to make it easy to coordinate meetings | ||
you were just mentioned here ... a bit of Pugs stuff now | 02:37 | ||
ingy | Ingy Needs You Help => apocalypse.kwiki.org | Pugs 6.2.8 released! | pugscode.org |pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net | 03:01 | |
ingy | Ingy Needs Your Help => apocalypse.kwiki.org | Pugs 6.2.8 released! | pugscode.org |pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net | ||
stevan | hola ingy | 03:10 | |
isnt it a bit early to start writing the talk? ;) | |||
Darren_Duncan | I'm still in OSCON room E142, if any of you want to meet in person | 03:14 | |
stevan, are you at OSCON, or elsewhere? | 03:15 | ||
svnbot6 | r5993 | putter++ | Corrected test count. | ||
stevan | Darren_Duncan: elsewhere | ||
:( | |||
Darren_Duncan: you should fill out an interview for Ingy (apocalypse.kwiki.org/index.cgi?Interviews) | 03:16 | ||
Darren_Duncan | do I just edit the page with the template, or how do I add answers? | 03:19 | |
or, what's the best way? | |||
stevan | no idea, ask Ingy | 03:20 | |
I think you should add your own page | |||
DarrenDuncanInterview | |||
svnbot6 | r5994 | putter++ | slurpy_code_param.t: Corrected typo, plan count. | 03:28 | |
Darren_Duncan | stevan, I added a starter page there ... still have to answer questions | 03:35 | |
svnbot6 | r5995 | putter++ | t/unspecced/p5/array.t: Evaled two tests. But test 1 is still failing under make test (but not when the test is run directly). | 03:47 | |
xinming | how much percentage for Synopsis is completed? I mean the desicision won't be changed again for perl 6 | ||
Darren_Duncan | stevan, I filled out that Ingy interview page | 03:50 | |
Ingy, ditto | |||
seen mugwump | 03:57 | ||
jabbot | Darren_Duncan: mugwump was seen 6 hours 30 minutes 1 seconds ago | ||
brentdax | Do spaces in a character class count? | 04:22 | |
Darren_Duncan | ingy, I'm now back at my hotel | 04:36 | |
mind you, its probably too late to do anything tomorrow, I'll try to stay online in here during the day tomorrow | 04:37 | ||
re tutorials, I'm at Damian's Best OO Practices, and the Postgres Intro | |||
autrijus | ingy: pong | 05:54 | |
Darren_Duncan | hello autrijus | 06:05 | |
autrijus | heya Darren_Duncan. having fun? | ||
Darren_Duncan | sure | 06:06 | |
I'm starting to use a public version control for Rosetta | |||
coral | ?eval my $a = any(1,2); my $b = any(4,8); ($a + $b).pick | 06:07 | |
evalbot6 | 5 | ||
coral | okay then | ||
coral grins | |||
?eval 1.pick | 06:08 | ||
evalbot6 | Error: pick not defined: VInt 1 | ||
coral | ?eval (1 + 2).pick | ||
evalbot6 | Error: pick not defined: VInt 3 | ||
autrijus | ?eval [1].pick | ||
evalbot6 | 1 | ||
coral | ?eval my $a = any(1,2); $a = $a + 0; $a.pick | 06:11 | |
evalbot6 | 1 | ||
coral | hmm | ||
it collapses as late as possible, literally at the human. | |||
?eval my $a; for (1..100) { $a += any(0,1); }; $a | 06:12 | ||
evalbot6 | pugs: out of memory (requested 1048576 bytes) | ||
coral blinks | |||
?eval my $a; for (1..10) { $a += any(0,1); }; $a | |||
evalbot6 | \((((((((((0 | 1) | (1 | 2)) | ((1 | 2) | (2 | 3))) | (((1 | 2) | (2 | 3)) | ((2 | 3) | (3 | 4)))) | ((((1 | 2) | (2 | 3)) | ((2 | 3) | (3 | 4))) | (((2 | 3) | (3 | 4)) | ((3 | 4) | (4 | 5))))) | (((((1 | 2) | (2 | 3)) | ((2 | 3) | (3 | 4))) | (((2 | 3) | (3 | 4)) | ((3 | 4) | (4 | 5)))) | ((((2 | 3) | (3 | 4)) | ((3 | 4) | (4 | 5))) | (((3 | 4) | (4 | 5)) | ((4 | 5) | (5 | 6)))))) | ((((((1 | ||
coral | uh, my apologies | ||
i forgot to .pick | |||
?eval my $a; for (1..10) { $a += any(0,1); }; $a.pick | 06:13 | ||
evalbot6 | 1 | ||
xinming | what about do a 1..1000000 loop and $_.say ? | 06:22 | |
s/do/doing/ | |||
gaal | autrijus, in ruleUsePackage (Parser:580 or so), is there a reason why the two chunks that reference "val" (val <- unsageEvalExp ... and case val of ...) aren't adjacent? does the "option ()" need to be in between them? | 06:34 | |
also, why is that import chunk guarded with an option () at all? It behaves incorrectly, but my Parsec-fu isn't strong enough to say what *should* be there instead. | 06:35 | ||
ingy | hi autrijus | 06:50 | |
nothingmuch | ingyping | 06:51 | |
ingy | hi nothingmuch! | ||
nothingmuch | i fudged Test::Base a bit | ||
did you find the unidiff? | |||
ingy | :) | ||
Darren_Duncan | hi ingy | ||
ingy | hi Darren_Duncan | ||
Darren_Duncan | how late you staying up? | ||
I'm about to nap myself | |||
ingy | not much later I think | ||
Darren_Duncan | lets try to meet tomorrow | ||
I'll be at the Postgresql and best oo practices ones | 06:52 | ||
ingy | nothingmuch: make an interview video! | ||
nothingmuch | interview video? | ||
Darren_Duncan | ingy, I was also the first to sign your interview page | ||
ingy | Darren_Duncan: ok, I'll look for you | ||
Darren_Duncan | stevan suggested it | ||
ingy | Darren_Duncan++ | ||
pasteling | "nothingmuch" at 212.143.92.226 pasted "Test::Base unidiff against 0.43" (144 lines, 3.9K) at sial.org/pbot/12161 | 06:53 | |
gaal wants to see y'alls *modules* | |||
brentdax | What type is an undeclared invocant considered to be? | 06:54 | |
i.e. when I type `method foo($bar) { ... }`, what type is the invocant given? | 06:55 | ||
autrijus | hi ingy | 06:56 | |
ingy | nothingmuch: catch me another time to review these patches | 06:57 | |
autrijus | gaal: the option () is totally bogus | ||
ingy | I think I have a newer version of Test::Base | ||
I thought I released it | |||
hmm | |||
nothingmuch_ | ingy: 0.44 | 06:58 | |
autrijus | brentdax: the type is ::?CLASS. | ||
nothingmuch_ | the feature additions from simple to not that simple: add a plan if running run_compare for the user | ||
(i got burned by lack of plan) | |||
and give the filters a way to skip blocks | 06:59 | ||
gaal | autrijus, ok, what oughtta be there then? for p5 behaviour, "()" should suppress calling the hook | ||
autrijus | gaal: try parse for "verbatimParens whiteSpace" maybe | 07:00 | |
ingy | autrijus: do an interview | ||
autrijus | optional (verbatimParens whiteSpace) ... | ||
brentdax | Hmm, okay. I'm running into the same-method-name bug again, this time in a place where it's not quite as easy to work around. | ||
autrijus | ingy: ok. here? now? | ||
nothingmuch_ | ingy: wtf is an interview? | ||
autrijus | brentdax: minimal test case? | ||
ingy | see topic | ||
autrijus | oh, kwikinterview | 07:01 | |
more like a survey | |||
nothingmuch_ | ah | ||
autrijus | sure | ||
ingy | autrijus: please promote the kwiki | ||
brentdax | Can't derive one. Something along the lines of `class A { method foo ($x) { say "A::foo $x" } } class B { has $.a; method foo ($x) { say "B::foo $x"; $.a=::A.new; $.a.foo($x) } }; B.new.foo('bar')` ought to do it, but there's a missing element. | ||
ingy | my irc server is being shut down :( | ||
brentdax | (The bug would present itself as B::foo being called with an invocant of type A.) | ||
ingy | I'll try to add some questions to the kwiki | 07:02 | |
also if y'all could make 30 second videos, that would be cool | 07:03 | ||
autrijus | let me see | ||
nothingmuch_ | like with a webcam? | ||
i don't have one of those | |||
i can make an audio clip | |||
ingy | ok cool | ||
post a picture of yourself too :) | 07:04 | ||
nothingmuch is cute. | |||
nothingmuch_ | =) | ||
ingy | it will help my talk ;) | ||
nothingmuch_ | it can be like the telephone interviews on the news =) | ||
what will the video contain? answers to those questions? | |||
ingy | ok my server is rebooting now | ||
gaal doesn't even have a mike :( | |||
ingy | yeah | ||
brentdax | (Or rather, B::foo($b, 'bar') followed by B::foo($.a, 'bar').) | ||
ingy | answers to questions | 07:05 | |
gaal | too bad, the throat infection is giving me a sexy voice | ||
autrijus | that is bad how? | 07:08 | |
gaal | i can't send ingy a sample of the sexy voice, because i don't have a mike :) | ||
"optional" doesn't fit here, i think: i want "use ()" to *not* do the hook, and "use" and "use + ruleExpression" to do it | 07:11 | ||
autrijus | yes | 07:12 | |
option (verbatimParens whiteSpace) ... | |||
sorry | |||
gaal | hmm, that gives option (verbatimParens whiteSpace) $ return () for the no-hook | 07:13 | |
svnbot6 | r5996 | autrijus++ | * Clean up box hierarchy; moving toward ADT; about to import metamodel. | ||
gaal | but how do i then do the yes-hook? | ||
autrijus | er no | ||
option (verbatimParens whiteSpace) $ do | 07:14 | ||
exp <- ruleExpression | |||
...yes hook... | |||
hrm, never mind me | |||
obviously it's | |||
verbatimParens whiteSpace <|> do | |||
exp <- ruleExpression | |||
...yes hook... | |||
nothingmuch_ | apocalypse.kwiki.org/index.cgi?Noth...hInterview <-- done | 07:15 | |
brb, i'll do the audio thing | |||
autrijus | booting to win32 for webcam & | ||
nothingmuch_ | uh, i'll brb and then do the audio thing | ||
gaal | but if the stuff between parens is empty, we shouldn't do the yes hook; and also if there are no parens at all. | 07:16 | |
nothingmuch_ | damnit ingy | ||
either expand or don't expand html entities in kwiki | |||
but not both at the same time | |||
oh boy, i'm stupid | 07:17 | ||
autrijus | gaal: no, no-parens-at-all falls into yes-hook withdefault import | 07:27 | |
gaal: and the <|> bias on the left | |||
so if it's empty paren it would've done nothing | 07:28 | ||
gaal | hmm. | ||
no, that doesn't work. for `use Foo ()` it does, but anything else doesn't parse | 07:31 | ||
it does load the module, but the import hook then fails the parse: | |||
unexpected "Foo" expecting use version, word character, "::", "-", "(" or expression | 07:32 | ||
perlbot nopaste | 07:35 | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "gaal" at 192.115.25.249 pasted ""no" patch that doesn't work" (80 lines, 3.2K) at sial.org/pbot/12164 | ||
autrijus | gaal: | 07:43 | |
use tryChoice | |||
tryChoice [verbatimParens whiteSpace, ...yes hook...] | |||
or alternatively | |||
try (verbatimParens whiteSpace) <|> ...yes hook... | 07:44 | ||
stevan | ingy: interview done,... no video though, I have see if my digital camera can do 30 second clips | 07:48 | |
stevan is off to sleep & | 07:49 | ||
nothingmuch_ | ciao | ||
isn't it like really early in the morning over there? | |||
Aankh|Clone | Sleep well. | 07:50 | |
brentdax watches his leg bounce. | 07:53 | ||
Bawls is...potent. | |||
Yay, page creation works! The rest is just release engineering. | 07:57 | ||
(At least for 0.01.) | |||
Aankh|Clone | Fill in the blanks: ____ 0.01. | 07:58 | |
:-D | |||
brentdax | WWW::Kontent, my Summer of Code project written in Perl 6. | ||
Aankh|Clone | Ahh. | ||
Kewlies. | |||
brentdax | I should probably spend the rest of the night bringing the docs into line with reality. | 08:00 | |
08:01
Aankh|Clone is now known as Aankhen``
|
|||
umbop | morning | 08:18 | |
autrijus | I've done the video | 08:29 | |
it's in avi now; encoding | |||
gaal | autrijus: the two suggestions both work for Foo () and Foo (LIST), but not for Foo; | 08:35 | |
autrijus | well, put the entire thing as optional then. | 08:37 | |
hm, no | |||
wait | |||
are you using | |||
yespart <- ruleExpression; ? | |||
try | |||
yespart <- optional emptyExp ruleExpression; | |||
etc. | |||
gaal | no, i'm not doing that (i think!) | 08:38 | |
*inside* the yespart there's a imp <- ruleExpression | |||
autrijus | right, I mean the imp. | ||
imp <- optional emptyExp ruleExpression | |||
gaal | but then what guards against empty () ? | ||
autrijus | the left bias <|> | 08:39 | |
that will match first | |||
gaal | there's something fundamental i don't grok about Parsec | ||
autrijus | I'm trying | ||
gaal | like, how it works. :/ | ||
autrijus | (\(\)) | (yesPart)? | ||
is how it would look as a regex | |||
the "optional" part is the postfx ? | 08:40 | ||
the <|> is | | |||
gaal | ah, this is getting warmer :) | ||
autrijus | you are basically trying | ||
1. match empty parens. if found, do nothing | |||
2. otherwise, match an expression. if not there, then default to emptyExp | |||
2.1. do something to that. | |||
gaal | is there a 7? :) | 08:41 | |
autrijus | that's all :) | ||
what cannot be spoken should be kept in silence | |||
gaal | okay, in try (verbatimParens whiteSpace) <|> yespart, does the 'try' apply only to verbatimParens whiteSpace, or do everything? | ||
you know, autrijus, i'm scared to ask you if you also know Hebrew | 08:42 | ||
autrijus is glad to find another tractatus head | |||
gaal | so i won't :) | ||
autrijus | the try only apply to the verbatimParens whiteSpace part. | ||
gaal | i like the Ogden translation better ("whereof one cannot speak, one must be silent") | 08:43 | |
s/,/, thereof/ | |||
autrijus | right. I was backtranslating from the chinese version in my mind :) | ||
or rather, crosstranslating. | 08:44 | ||
gaal | optional is like maybe, right? optional defaultVal rule | 08:45 | |
err, no that doesn't compile. :( | 08:46 | ||
autrijus | maybe "option defaultval rule" | ||
optional is shorthand for "option (return ())" | |||
I'm in win32, I don't feel like coding. I'll reboot soon | |||
gaal | i | ||
'll keep nibbling. | |||
?eval my $x = 9; mod(); sub mod() {my $x=1; $CALLER::<%MY::{<$x>}> = 10}; say $x | 08:55 | ||
this loops. | |||
svnbot6 | r5997 | gaal++ | * fix `use Foo` and `use Foo ()` to call and not to call &Foo::import, | ||
r5997 | gaal++ | respectively (thanks autrijus!) | |||
r5997 | gaal++ | * add &no builtin | |||
evalbot6 | (no output) | ||
gaal | oh, i didn't need the braces. | 08:56 | |
but this still loops: | |||
?eval my $x = 9; mod(); sub mod() {my $x=1; $CALLER::<%MY::<$x>> = 10}; say $x | |||
evalbot6 | (no output) | ||
gaal | i'm trying to access the caller's lexical $x. | 08:57 | |
autrijus | yeah, I know that loops. :-/ | 09:04 | |
rebooting | 09:05 | ||
nothingmuch_ | ingy: aborting audio interview | 09:17 | |
i can't get a decent sound | |||
AC + cows being orked is too much bg noise | |||
it just sounds like crap | |||
and furthermore, i sound like crap | 09:18 | ||
"As Luke Palmer said to me "I want to be a superposition."" | 09:19 | ||
luqui++ | |||
use.perl.org/~Ovid/journal/26027 | |||
autrijus | I can't get this avi encoded to mov | 09:58 | |
no matter how I try. :-/ | |||
unless I buy a certain sorenson squeeze, it seems | |||
ffmpeg croaks on me :-/ | |||
dada | ?eval my $sum = 0; my $max = 10; for (1..$max) -> $x { $sum += $_; } $sum; | 10:02 | |
evalbot6 | \55 | ||
dada | why the \? | 10:03 | |
autrijus | because the confusion between lvalues and containers. | 10:05 | |
?eval my $a = 55; $a | |||
evalbot6 | \55 | ||
autrijus | ?eval 55 | ||
evalbot6 | 55 | ||
autrijus | conceptually the '$a' name points to a container that contains 55, not the value 55 | ||
this is cleared up a lot in the runcore :) | 10:06 | ||
s/runcore/new runcore/ | |||
jql | \55 seems kinda constant. :/ | 10:23 | |
jql has perl5 on the brain | 10:24 | ||
it is, I know, but damn | |||
jql changes the value of PI | |||
dada | ?eval my $a = 55; +$a; | 10:26 | |
evalbot6 | 55 | ||
dada | heh | ||
jql | mmmkay | 10:27 | |
10:33
Yaakov_ is now known as Yaakov
|
|||
dada | ?eval my $x = 1; given($x) { when 1 { "one" } when 2 { "two"} default { "doh" } } | 10:35 | |
evalbot6 | 'one' | ||
dada | ?eval my $x = 1; given($x) { when 1 { "one" } when > 2 { "two"} default { "doh" } } | ||
evalbot6 | Error: unexpected "{" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
dada | ?eval my $x = 1; given($x) { when 1 { "one" } when $_ > 1 { "more than one"} default { "doh" } } | 10:36 | |
evalbot6 | 'one' | ||
dada | ?eval my $x = 2; given($x) { when 1 { "one" } when $_ > 1 { "more than one"} default { "doh" } } | ||
evalbot6 | 'doh' | ||
dada | uhm | ||
?eval my $x = 2; given($x) { when 1 { "one" } when $_ > 1 { "more than one"} default { +$_ } } | 10:38 | ||
evalbot6 | 2 | ||
dada | ?eval my $x = 2; given($x) { when 1 { "one" } when($_ > 1) { "more than one"} default { +$_ } } | 10:39 | |
evalbot6 | 2 | ||
dada | is my syntax wrong or is pugs wrong? | 10:40 | |
autrijus | anyone up for Pugs interviews for tomorrow's talk? | 12:52 | |
I've got my movie done. uploading | |||
# apocalypse.kwiki.org/index.cgi?Interviews | |||
clkao | movie! | ||
autrijus | yes. what is oscon without movies? | ||
Limbic_Region | autrijus - your interview isn't filled out? | 13:00 | |
autrijus | Limbic_Region: no, just the movie for now | 13:03 | |
filling in interview now | |||
nothingmuch_ | autrijus: movie++ | 13:07 | |
autrijus | all three formats are up | ||
kolibrie | I don't see where the movie is | ||
autrijus | kolibrie: see topic, click movies | 13:08 | |
kolibrie | ahh | ||
autrijus | I don't know if the mp4 is well supported | 13:09 | |
I hope quicktime can play it | |||
scook0 | autrijus: I've been looking at the shiny new PIL runcore | 13:10 | |
trying to figure it all out | |||
autrijus | scook0: cool. it doesn't run anything yet | 13:11 | |
it's just the foundational types | |||
scook0 | yeah, I know | ||
the lack of context makes it a little harder to understand :) | |||
but I was just wondering: | 13:12 | ||
what's the meaning of 'Cell' vs 'Box', in Perl6 terms? | |||
autrijus | there are no corresponding terms, sadly. | 13:13 | |
a box is an (id, content) pair | |||
scook0 | ok, let me rephrase: | ||
autrijus | a cell is either a mutable or immutable box. | ||
possibly tieable | |||
scook0 | (hmm, this question is hard to ask) | 13:14 | |
I shall have to think a bit more, until I understand exactly what it is I don't know | |||
vkon | I can't find movie... should I be logged in? | ||
QtPlatypus | Is there a way to find out what the keys are on a match object? | 13:15 | |
dada | QtPlatypus: for $0.keys -> $k { ... }, I suppose | 13:16 | |
autrijus | scook0: ok. food, bbiab | ||
gaal | vkon: reload interview page, click Movies | ||
scook0 | autrijus: I'm off to bed now, so I'll ask again another day, after some pondering... | 13:17 | |
autrijus | scook0: ok. enjoy. I'll also throw in more code + comments | ||
food & | |||
vkon | thanks... reloading helped ;) | 13:18 | |
Limbic_Region got audio only on the movie but really laughed at pugs providing new and great ways to shoot yourself in the foot | 13:20 | ||
kolibrie | autrijus: no theora? no time to find appropriate plug-ins for other formats (at $work) | 13:21 | |
dada | ?eval sub good { pop(@_); }; good(1,2,3); | 13:29 | |
evalbot6 | 3 | ||
dada | ?eval sub bad { shift(@_); }; bad(1,2,3); | ||
evalbot6 | Error: Can't modify constant item: VUndef | ||
dada | mmm | ||
wilx | Yay! for the movie! :D | 13:30 | |
xinming | ?eval sub bad ( *@_ is rw ) { shift(@_); }; bad(1,2,3) | 13:35 | |
evalbot6 | Error: Can't modify constant item: VUndef | ||
svnbot6 | r5998 | fglock++ | * Span.pm - tests | 13:52 | |
mjl69 | hi | ||
I can't trip this thing up. It really is better than Perl 5 so far. | 13:53 | ||
say sum 2,3,4; #this is valid Perl6? It works. | |||
I haven't even studied any Perl 6 yet. I'm just making stuff up and it works. | |||
integral | ?eval say [+] 2,3,4 # also works | 13:54 | |
evalbot6 | 9 bool::true | ||
mjl69 | hey, I finally got an error! say sum 2 3 4; #ha, no invisible commas, huh? | 13:56 | |
:-) | |||
integral: cool. It's like right out of the Haskell tutorial I was working through. I am a Perl 6 convert. As a total amateur, I have little invested in 5 anyway (except for a bunch of books) | 14:00 | ||
svnbot6 | r5999 | iblech++ | PIL2JS: Prelude::JS::Bool: (Hopefully) fix ¬ without arguments, not.t fails | ||
r5999 | iblech++ | only 3 tests now. | |||
integral | mjl69: well perl6 being usable for day-to-day scripts and apps is still a way off. The performance for one thing | ||
autrijus | wow, leo implemented lazy-k in parrot. | 14:01 | |
I should think twice before offering mad suggestions to crazy people. | |||
mjl69 | integral: I'll take it as far as is practical. I'm not in a big hurry usually. | ||
integral | lazy-k? | 14:02 | |
autrijus | en.wikipedia.org/wiki/Lazy_K_progra...g_language | 14:03 | |
integral | thanks | ||
autrijus | the quintessential untyped lambda calculus. | ||
or rather, combinator calculus. | |||
svnbot6 | r6000 | iblech++ | * PIL.Tie: Very minor Haddock fixes. | 14:08 | |
r6000 | iblech++ | * Test enhancements: | |||
r6000 | iblech++ | * builtins/arrays/slice.t, builtins/hashes/slice.t: Slices on array/hash literals | |||
r6000 | iblech++ | * var/var.t: Tests for recursive subs stomping on the lexicals of their other | |||
r6000 | iblech++ | instances | |||
r6000 | iblech++ | * PIL2JS: | |||
r6000 | iblech++ | * PIL/Subs: Fix lexical stomping in anonymous Subs. | |||
r6000 | iblech++ | * Prelude::JS::Operators, PIL2JS.js: All operators | |||
r6000 | iblech++ | stringify/numify/booleanify their operators first (gives a small speed | |||
r6000 | iblech++ | penalty though, but at least I ported &prefix:<+> to JS). | |||
r6000 | iblech++ | * Prelude::JS::Array, Prelude::JS::Hash: Hash and array slices, with | |||
r6000 | iblech++ | assignment (@a[@idxs] = @new_vals). | |||
r6000 | iblech++ | * Fix compilation of modules (was broken because the import thing by gaal++). | |||
gaal | oops :) | ||
autrijus | :) | 14:09 | |
vkon | how can one propose patches for inclusion? | 14:10 | |
autrijus | Limbic_Region: you got audio only even for .swf? | ||
vkon: oh, it's easy. you give us your email address, then you'll get a committer invitation mail | 14:11 | ||
and then you commit the patch. | |||
vkon | wow! but how can you assure quality of patches? | ||
autrijus | also, add yourself to AUTHORS. | ||
vkon: the same way as wikipedia :) | |||
xinming | If hashes do carry an intrinsic iterator | ||
what does that mean please? | |||
vkon | way good... could you please add me as [email@hidden.address] TIA! | 14:12 | |
autrijus | invitation sent. welcome aboard! | ||
QtPlatypus | xinming: An intrinsic iterator allows you to step threw the pairs in a hash. | ||
vkon | thanks. I hope I can be helpful. | 14:13 | |
autrijus | "step through" | ||
xinming | A hash reference in a boolean context returns true if there are any pairs in the hash. In either case, any intrinsic iterator would be reset. | 14:14 | |
QtPlatypus: I don't understand that exactly. :-S | |||
autrijus | vkon: ah, you are the WinCE perl5 porter. nice :) | ||
QtPlatypus | xinming: Can I use an example from perl5? | ||
xinming | sure | 14:15 | |
QtPlatypus: sure | |||
autrijus | xinming: for %hash.kv { next if %hash } | ||
xinming: that paragraph means that would be an infinite loop for a nonempty %hash. | |||
vkon | WinCE needs investing more efforts, I hope eventually I'll bring it up-to-date | ||
xinming | autrijus: I can understand that. | 14:16 | |
vkon | autrijus: but initially it was Rainer Keuchel who provided a port... | ||
autrijus | so 'intrinsic iterator' is the invisible "cursor" of %hash that tracks how it is being iterated. | ||
xinming | for %hash.kv -> $key { next unless $key } won't | ||
autrijus | xinming: actually I can argue that neither is infinite loop | ||
where did you see that paragraph? | 14:17 | ||
xinming | Ok, Then, It is a kind of "variable" to keep the current position of a hash key. right? | ||
autrijus | in perl5's concept, right | ||
xinming | how about p6? | 14:18 | |
autrijus | in p6, .kv is supposedly a generator list | 14:20 | |
that generates its next element dynamically whenever demanded | |||
xinming | autrijus: Ok,thanks, I think I understand now. I will check that again. thanks | 14:21 | |
autrijus | np :) | ||
xinming | ?eval my $x = 2; my $t = q:ww/$x/ ; | 14:29 | |
evalbot6 | \'$x' | ||
svnbot6 | r6001 | Stevan++ | Perl6::MetaModel - (p5) - removing all SUPER:: related code. SUPER:: is not really relevant for a true MI environment, it should be some variant of NEXT:: instead. But in order to simplify the metamodel, I removed it all for now | ||
xinming | why not 2 instead of $x ? :-S | ||
Or the string is wrong? | |||
autrijus | my $x = 2; my $t = qq/$x/; $t | 14:30 | |
?eval my $x = 2; my $t = qq/$x/; $t | |||
evalbot6 | \'2' | ||
xinming | ?eval my $x = 2; my $y = 3; my $t = q:ww/$x $y/ ; | 14:31 | |
evalbot6 | ['$x', '$y'] | ||
xinming | In fact, It should generate a list as I thought. | ||
?eval my $x = 2; my $y = 3; my $t = qq/$x $y/ ; | 14:32 | ||
evalbot6 | \'2 3' | ||
Limbic_Region | 6000 commits in 7 months - impressive | 14:35 | |
err - 6000 commits in 6 months - even more impressive | 14:36 | ||
autrijus | :) | 14:37 | |
parrot is still at r8768 | |||
QtPlatypus | Limbic_Region: How is the rate changing? | 14:38 | |
autrijus | QtPlatypus: it's linear | ||
Limbic_Region | there is a graph QtPlatypus - I don't have the link handy though | ||
it maps commits and committers against time IIRC | |||
has anyone written an obfusicator yet? | 14:40 | ||
Limbic_Region thinks that might be a good way of identifying parser flaws | |||
svnbot6 | r6002 | fglock++ | * Span.pm - last change introduced a bug, fixed. | 14:41 | |
iblech | QtPlatypus: linide.sourceforge.net/pugs-svngraph-latest.png | 14:43 | |
QtPlatypus | iblech: Thankyou. | 14:57 | |
autrijus | hm, the interview is hard to do | 15:02 | |
I'll turn to metaphysical mishmash. | |||
ingy_ | hola | 15:05 | |
I am user number 100 | |||
glorious! | 15:06 | ||
I'm having severe irc problems... | |||
it seems the machine I use for irc is refused connection by freenode | 15:07 | ||
autrijus | ingy_: yo. saw the movie? | ||
ingy_ | but for some reason I can connect through this crappy hotel net | ||
autrijus!! | |||
yes! | |||
autrijus | happy? | ||
ingy_ | is this a jit? | ||
autrijus | yes. | ||
totally | 15:08 | ||
ingy_ | for me? | ||
autrijus | yup | ||
ingy_ | I love you | ||
autrijus | thanks, me too | ||
ingy_ | it's fantastic | ||
who did all that cool stuff? | |||
autrijus | you mean the script? | ||
it's from examples/advocacy/motd/pugspraise by ninereasons and other #perl6 folks | 15:09 | ||
everything else is done by yours truly | |||
ingy_ | and the animatated overlays | ||
autrijus++ | |||
autrijus | :) | ||
ingy_ | lambdahumpies++ | ||
do you have time for an interview? | 15:11 | ||
autrijus | you mean the wikiview? | ||
ingy_ | ircinterview | ||
are there others around? | 15:12 | ||
autrijus | ircinterview is fine by me | ||
I'll post the wikiview up | |||
already six wikiviews are up | 15:13 | ||
ingy_ | ok one sec... | ||
autrijus | and mine is up. | 15:14 | |
warning: not what you expected. | |||
ingy_ | that's what I would expect though ;) | 15:15 | |
ingy_ reads... | |||
while I read, please translate this into pugs: apocalypse.kwiki.org/index.cgi?GonzoProgramming | |||
autrijus | er, not sure how | 15:17 | |
svnbot6 | r6003 | iblech++ | * util/svnlog2graph.pl: Adjust scaling again, as we've exceeded r6000. :) | ||
r6003 | iblech++ | * PIL2JS: Fully ported &prefix:<?> to JS. As it is called extremely often (in | |||
r6003 | iblech++ | &statement_control:<if>, &statement_control:<loop> (and thus all other loop | |||
r6003 | iblech++ | constructs), it should give a noticable speedup, resmoking. | |||
autrijus | you mean into perl6 poetry? | ||
iblech: wikiview? :) | |||
iblech | autrijus: Yep, writing currently :) | 15:18 | |
ingy_ | iblech++ | ||
autrijus | cool | ||
ingy_ | autrijus: have you read Fear and Loathing in Las Vegas? | 15:19 | |
autrijus | no | ||
ingy_ | oh hmmm | ||
well it's all about a crazy drug induced hell ride | |||
something like pugs | |||
that paragraph is tha opening line... | |||
I think | 15:20 | ||
so I wanted to translate it into pugs speak | |||
autrijus | ok, I'll try, no promise | ||
ingy_ | like "a whole multi colored collection of uppers, downers, laughers, screamers" | 15:21 | |
like "a whole multi colored collection of hyperoperators, junctions, sigils, twigils" | |||
dada | "a whole pattern-matched collection of..." | 15:22 | |
ingy_ | yeah | ||
QtPlatypus | @drugs = <<uppers downers laughers screamers>>; | ||
ingy_ | we need a big see session | ||
What? No. We can't stop here. This is pugs country. | 15:23 | ||
:D | |||
xinming | what's the difference between symbolic reference and hard reference? | 15:24 | |
QtPlatypus | xinming: I hard refrence is very simmler to a pointer in C. It is a refrence to a storage space in the perl's memory. | 15:25 | |
xinming | and symbolic reference is just a pkg::name::pkg2::name2 right? | ||
ingy_ | Yay. My hotel room just got extended | 15:26 | |
QtPlatypus | More or less. $::{...} | ||
ingy_ | no worries of trying to move this morning | ||
worries delayed 24 hours :) | 15:27 | ||
autrijus | done. | 15:40 | |
apocalypse.kwiki.org/index.cgi?GonzoProgramming | 15:41 | ||
fixes welcome | 15:42 | ||
ingy: is that what you had in mind? | 15:43 | ||
ingy | back... | 15:47 | |
autrijus | shower, bbiab & | ||
ingy | LOL | 15:48 | |
AWESOME!! | |||
autrijus++ | |||
I need to record someone like MJD quoting that... | 15:51 | ||
what's the easiest way to record voice on the mac? | |||
dada | something that begins with "i", like iVoice probably | 15:52 | |
dada isn't a Mac user :-) | |||
ingy | :p | ||
dudley | ingy: GarageBand, if you have it | 15:54 | |
ingy | yeah | 15:55 | |
autrijus | ingy: it now reads two "grammars" of regexes | 15:59 | |
I can record it if you want, but you better find (eg) damian :) | |||
junctions are his idea after all | |||
kolibrie | the last bit that reads: in the depths of a junctive autothreading | 16:03 | |
shouldn't that be: in the depths of a junctive autothread | |||
or: in the the depths of junctive autothreading | |||
autrijus | actually, drop the "a" instead | 16:04 | |
kolibrie | autrijus: very nicely done, by the way | ||
autrijus | thanks :) | ||
come to think about it, we hadn't implemented "a" and "an" | |||
my $hat = a Rabbit sub {...}; | 16:05 | ||
my $lay = an Egg sub {...}; | |||
come to think about it some more, I don't see a great need for it right now ;) | |||
kwiki page updated | |||
dada | can I ask 2 questions? | 16:08 | |
autrijus | yes, you can. what's the other question? | ||
dada | 1. given sub foo { ... }, why does pop(@_) works and shift(@_) no? | 16:09 | |
they should both either fail or succeed, no? | |||
autrijus | right, please write tests :) | ||
dada | ok | ||
2. in a given/when construct, is when $_ > 1 a proper when-case? | 16:10 | ||
autrijus | I think so, yes | ||
dada | (I seemed to recall so, but didn't find mention in the Apo) | ||
autrijus | you may want to put () around them | ||
dada | ?eval my $x = 2; given($x) { when 1 { "one" } when ($_ > 1) { "more than one"} default { +$_ } } | 16:11 | |
evalbot6 | 2 | ||
dada | nope | ||
autrijus | given and when are really orthogonal; you can use one without using the other | ||
dada | you mean I can write if($_ > 1) inside the given? | ||
autrijus | yes. | ||
dada | sure, but maybe this is a pugs bug anyway | 16:12 | |
autrijus | no, I'm pretty sure it's as designed :) | ||
dada | so it's a p6l bug :-) | ||
autrijus | huh? :) | 16:13 | |
dada | I'm going to double-check with p6l anyway | ||
kolibrie | autrijus: I watched the SWF version of your oscon05 video. Very awesome | 16:15 | |
autrijus | sure. A04 has "if" inside given | ||
svnbot6 | r6004 | vkon++ | do not parse arguments after '--'; do not treat '-foo' as '-f' | ||
autrijus | but do doublecheck if it makes you feel better :) | ||
ingy | back | 16:29 | |
hotel net went down | |||
so autrijus | |||
how long until you sleep? | |||
I need to go eat | 16:31 | ||
bbiab | |||
stevan | ingy++ autrijus++ # fear and loathing in Pugs land | ||
ingy | then we can interview | ||
stevan! | |||
stevan | ingy! | ||
Aankhen`` | What video? | ||
ingy | be here in say 2 hours for interview | 16:32 | |
& | |||
stevan | ingy: that will be right in the middle of a conf call, but I will try | ||
autrijus | hum I was planning to nap | 16:33 | |
oh well, I can set alarm so I wake up in 2hr. | |||
Aankhen`` | autrijus: What video is this? | ||
autrijus | Aankhen``: a jit performance of examples/advocacy/pugspraise for ingy's talk | ||
Aankhen`` | Link? | 16:34 | |
autrijus | Aankhen``: see my journal | 16:35 | |
Aankhen`` | OK, thanks. | ||
autrijus | np :) | ||
stevan | autrijus++ # perl6 code -> no worries; | ||
Aankhen`` | Dinner, BBIAF. & | ||
autrijus | stevan: strangely it's also perl5 code | ||
so, no worries about perl 5 entire | |||
s/entire/either/ | |||
nap, bbl (hopefully in time for ircinterview) | 16:36 | ||
& | |||
mjl69 | eval $x = 2; given ($x) {when (1) {say 'one'} when (2) {say 'two'}}; | 16:38 | |
?eval $x = 2; given ($x) {when (1) {say 'one'} when (2) {say 'two'}}; | |||
evalbot6 | Error: Undeclared variable: "$x" | ||
mjl69 | whoops | ||
eval my $x = 2; given ($x) {when (1) {say 'one'} when (2) {say 'two'}}; | |||
whoops again | |||
?eval my $x = 2; given ($x) {when (1) {say 'one'} when (2) {say 'two'}}; | 16:39 | ||
evalbot6 | two bool::true | ||
mjl69 | just trying it out. | ||
?eval my $x = 2; given ($x) {say 'one' when 1; say 'two' when 2;}; | |||
evalbot6 | Error: unexpected "{" expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
mjl69 | why doesn't this work? | 16:40 | |
dada | I don't know if pugs supports postfix when yet | 16:41 | |
mjl69 | will multiple statement modifiers be allowed for Perl 6? | 16:42 | |
dada | I don't think so | ||
mjl69 | say 'one' when 1 if $y for @z; | ||
dada | I vote for no, but maybe I'm wrong | ||
iblech | mjl69: when as a statement-modifier is not yet implemented. Look if there's a test for it and if not, write one? :) | 16:43 | |
mjl69 | oh well. I know some are for and some against. | ||
iblech | dada: You're right, Larry has stated repeatedly multiple statemnet-modifiers are not allowed. | ||
But: | |||
do { ... if ... } for ... | |||
And there's do STMT, i.e. | |||
my $var = do given $foo {...} | |||
dada | so, Larry has multiple statements about multiple statement modifiers? ;-) | 16:45 | |
mjl69 | iblech: thanks. as long as it is planned (when as statement-modifier). it makes sense to be able to write it that way. | ||
iblech | dada: :D | 16:46 | |
gaal | ingy: the kwiki is borked | 16:54 | |
svnbot6 | r6005 | iblech++ | talks/Anatomie_eines_Compilers_am_Beispiel_von_Pugs.latex: | 17:02 | |
r6005 | iblech++ | * Brought the section introducing Pugs uptodate. | |||
r6005 | iblech++ | * Added introductory slide about PIL2JS and added slide showing a PIL tree. | |||
stevan | gaal: it works for me | 17:06 | |
gaal | ah, yes, works now. | ||
stevan | kwiki is kinda buggy like that ;) | ||
17:26
brentdax_ is now known as brentdax
|
|||
ingy is back | 17:58 | ||
well kind of | 18:01 | ||
this cafe network is not usable | 18:02 | ||
need to move | |||
gaal | do they hand out bandwidth depending on the size of your mug? | ||
wilx | Hehe. | ||
stevan | ingy: I am working on a small movie based on the GonzoProgamming text | 18:04 | |
ingy | stevan++ | 18:09 | |
but the net here sucketh | |||
err | 18:10 | ||
nevermind that | |||
but it really does sucketh :) | |||
stevan: I was wanting to get that recorded, so you are doing the ultimate thingy for me | 18:11 | ||
thanks | |||
apocalypse.kwiki.org/index.cgi?Lamb...lInterview | 18:12 | ||
I want to do an interview here on irc with autrijus and others | |||
stevan | I think he is still sleeping | ||
and I am on conf call | |||
ingy | ok, I'll keep all ideas on wiki for now. | 18:13 | |
I still have 24 hours | |||
which seems way to early for jit | |||
but then again I am just the messenger here | |||
not the hacker so much | |||
so I feel justified in my sheer terror | 18:14 | ||
acme__ | autrijus++ | 18:39 | |
18:41
gugod_ is now known as gugod
|
|||
svnbot6 | r6006 | fglock++ | * Set::Infinite - more "Recurrence Span" tests | 18:55 | |
r6007 | iblech++ | talks/Anatomie_eines_Compilers_am_Beispiel_von_Pugs.latex: | |||
r6007 | iblech++ | Almost finished the talk: added section about the problems I've been encountering. | |||
autrijus | ingy: I'm back. | 18:59 | |
hm, I see I'm 30min late | 19:01 | ||
for the irc interview | |||
ingy | hi! | 19:02 | |
autrijus | hi! | ||
shall we? | |||
ingy | we shall? | 19:03 | |
although I might need help with the questions too ;) | |||
ok... | |||
apocalypse.kwiki.org/index.cgi?Lamb...lInterview | |||
Q: What is the basic timeline/milestones of Pugs so far? | 19:04 | ||
autrijus | hm, I believe you have that in your slides | 19:05 | |
ingy | ok fine | ||
autrijus | grep for 'What we have done this month' | ||
that only covers Jun though | |||
and only till 26th, so I can fill in Jul here | |||
ingy | Q: I remember that the first thing you finished was Junctions. How much longer was it until 'say' worked? | 19:06 | |
autrijus | Jun 30 - Test::Builder feature complete | 19:07 | |
Jul 10 - Separate compilation, starting with Prelude.pm | |||
ingy | what is "Separate compilation"? | 19:08 | |
autrijus | the idea that each .pm file can be compiled individually. | ||
stevan | each pugs committer compiles one sub from the prelude | ||
autrijus | sort of like perl5's abandoned .pmc idea | ||
stevan: lol | |||
stevan | like python :) | ||
autrijus | ingy: basically, whenever you use Test::Builder, if T::B is precompiled, then it just loads the compiled form | 19:09 | |
and saves reparsing | |||
perl6 supports full separate compilation, a very good idea that is very long overdue | |||
(it didn't work in p5 partly because loading bytecode is slower than parsing) | |||
Jul 14 - Beginning of Perl 5 evaluator of PIL | 19:10 | ||
er | |||
or s/evaluator/interpreter/. same thing | |||
Jul 17 - Beginning of PIL to JavaScript compiler | |||
Jul 30 - New PIL runcore in Haskell begins | 19:11 | ||
ingy | sorry, massive lag | 19:12 | |
autrijus | Aug 01 - MetaModel implementation in Perl5 bootstrapped without reliance on Perl5's native OO model | 19:13 | |
supposedly, Aug 02 should be "6.2.9 release" but we'll see. | |||
ingy | :) | ||
stevan: describe what is the meta-model | |||
autrijus | (if I missed anything please fill it in) | ||
ingy | what does it mean to me? | ||
stevan | ingy: the metamodel is the underlying structure of classes, roles and instances | 19:14 | |
autrijus | ingy: "print" works on day 15 | 19:15 | |
"say" is day 16. | |||
ingy | so the metamodel is currently implemented in vanilla Perl5? | 19:16 | |
autrijus | Feb 15 and 16 respectively, conveniently | ||
stevan | ingy: and the metamodel defines how those 3 things work together | ||
ingy | how does that connect to pugs? | ||
autrijus | ingy: svn.openfoundry.org/pugs/perl5/Perl...taModel/t/ is a good read for a glance | ||
also stevan has partial implementations of the same metamodel in JavaScript and Java. | 19:17 | ||
stevan | ingy: the metamodel will give Pugs it's objects | ||
autrijus | ingy: the plan is to port MetaModel to Haskell, use it as the OO system for the new PIL runcore, verify its properties some more, then port it again to Perl 6. | 19:18 | |
stevan | basically, using primative structures (scalar, array, hash and code) it constructs the object system | 19:19 | |
throw a little sugar on top and you have perl 6 OO | |||
ingy | can it be used from pugs yet? | ||
stevan | ingy: no, not yet | ||
autrijus | ingy: no, not unless you use perl5:Perl6::MetaModel; | ||
stevan | it is still a perl 5 prototype | ||
autrijus | but that is not terribly useful | ||
ingy | :) | 19:20 | |
stevan | autrijus: not to mention insane | ||
autrijus | that's a given | ||
instanity is &given; the only question is &when | |||
insanity, even. | |||
ingy: so, the metamodel is the key to Perl6's portability | 19:21 | ||
without a metamodel, we are at mercy of whatever objects the runtime feel like to support | |||
stevan | ingy: and when the metamodel is ported to Perl 6, it will be even more portable | ||
autrijus | with a metamodel, the runtime need only to implement a simple non-OO core language. | ||
ingy | talk a little bit about how Pugs can use any Perl5 module | ||
stevan | (++ self-describing-meta-models) | 19:22 | |
autrijus | theoretically instead of porting the metamodel thru Perl5->Haskell->Perl6, we could've done Perl5->Perl6 directly, but that will make the runcore much slower, and makes invariants harder to verify | ||
so is probably not a net win. | 19:23 | ||
stevan | and really, it is a very small core | ||
autrijus | indeed | ||
stevan | once I remove all the rest of the Perl 5 sugar | ||
I ported it to JS in a weekend | |||
ingy | does pugs need special compilation to use Perl5 modules? | ||
stevan | the java port is harder | ||
autrijus | ingy: ok. to use a P5 module, you need to run Makefile.PL with the PUGS_EMBED=perl5 flag | ||
ingy | :) | ||
autrijus | which fails on win32 currently | ||
then you can use perl5:DBI; | |||
it only really works for OO modules. | 19:24 | ||
because shared namespaces and lexical scope is something that the perlembed -- aka Inline::* -- model can't ever support well. | |||
so that's just a stopgap feature; the real solution is compiling Perl6 to perl5vm. | |||
ingy | how is that possible? | 19:25 | |
autrijus | beyond the Real solution, the Complex solution is to compile both perl5 and perl6 to ParrotVM. | ||
stevan | ingy: the Gonzo movie is taking shape, will upload soon | ||
ingy | stevan++ | ||
autrijus | and the Transcendendal solution is to recompile perl5 into perl6. | ||
so we have three paths. | |||
(for seamless p5/p6 interop) | |||
known as PIL/P5, Ponie, LarryPPD. | 19:26 | ||
how is compiling perl6 to p5vm possible? | 19:27 | ||
ingy | right | ||
autrijus | it is simple. we implement an object space -- i.e. a metamodel -- in perl5 | ||
we also implement an alternate set of primitive bindings in perl5, known as the Runtime | 19:28 | ||
(see ext/PIL-Run/ for a prototype) | |||
finally, we write a compiler that takes PIL tree and emit Perl5 source code that calls into the runtime and the metamodel. | |||
exactly as the current PIL2JS is doing | |||
(I also reserve the option to use Acme::Bleach-type module to transparently enable modules to rewrite themselves with cached perl5 representation.) | 19:29 | ||
(but that may be too insane. maybe just keep a .pm5 in the same directory.) | 19:30 | ||
the idea is you should eventually be able to say | |||
use pugs; ...code...; no pugs; | |||
and instead of the current IPC implementation, it will trigger a real, Inline::C type compilation of the ...code... | |||
and save a SHA1 cache... etc etc | 19:31 | ||
ingy | wow | ||
autrijus | that is, Inline::Pugs will treat Pugs as a compiled language that happens to compile to Perl5 instead of XS. | ||
I think we can do all this in pure-perl land | |||
instead of involving XS. | |||
if we do, then we can port the Parser and the PIL compiler from Haskell to Perl6 | 19:32 | ||
thereby recompiling the compiler so it will too become just a pure perl5 cpan module | 19:33 | ||
in which case a Perl5 user will not need a C compiler, but can use Perl 6 in full. | |||
that's my basic plan for interop. | |||
__END__ | |||
ingy | I'm not ignoring you, I'm lagged sometimes | 19:34 | |
baadly | |||
autrijus | that's fine | ||
ingy | so how many "technologies" are currently playing together in the "Grand Borg Interop"? | 19:35 | |
* Parrot | |||
* Perl5 Runtime | |||
... | |||
(this would be a good time to resolve all those P** acronyms | 19:36 | ||
* Javascript | |||
autrijus | and * GHC | ||
ingy | is this list too infinite | ||
putter! | |||
autrijus | no, that's all there is currently. | ||
please see docs/notes/plan | |||
that explains it well. | |||
svn.openfoundry.org/pugs/docs/notes/plan | 19:37 | ||
putter | & :) | ||
ingy | putter: putter apocalypse.kwiki.org/index.cgi?Interviews | ||
do a quick interview for me | |||
autrijus: ok | 19:38 | ||
nnunley: apocalypse.kwiki.org/index.cgi?Interviews | |||
putter tiptoes out to avoid disturbing the interview in progress. | |||
autrijus | putter: I think ingy want you to fill the survey | 19:39 | |
so he can read it out loud in his imminent talk | |||
ingy | nnunley: ^^ what autrijus say | ||
Q: In terms of major pieces of functionality, who is currrently working on what? | 19:40 | ||
Aankh|Clone finishes reading the backlog and jumps up and down in excitement. | |||
19:41
Aankh|Clone is now known as Aankhen``
|
|||
autrijus | ingy: at this moment (things change rapidly), the P5 side is mostly stevan, but putter, mugwump and nothingmuch hacks on it too; the javascript side is entirely iblech. | 19:42 | |
the PIR side has stalled a bit pending leo stabilizing leo-ctx5; previously it was mostly me and putter, but with lots of input from #parrot, leo and chip | 19:43 | ||
my current focus is the new PIL runcore, but I consult with the channel for help, and lots of people chimed in as well. | |||
(the new runcore is in Haskell.) | 19:44 | ||
that's just the parts we mentioned; there are also the parser, build system (gaal++), docs (lots of people), and tests (virtually everybody) | 19:45 | ||
and of course the many many modules. | |||
and the module/example authors are usually driving forces for new features :) | 19:46 | ||
__END__ | |||
ingy | do all the modules in ext actually compile and work? | 19:47 | |
clkao | hi pugsters, svk 1.02 is out. with the growing size of pugs repository, you shall see significant perforamnce increase on push/pull. | ||
ingy | I guess they have their own test suites | ||
autrijus | clkao: yes, I upgraded to trunk yesterday | 19:48 | |
my HD churns a lot less now | |||
clkao grins | |||
autrijus | (I was upgrading from 1.00, so I also benefitted from the leak fix) | ||
19:48
brentdax_ is now known as brentdax
|
|||
autrijus | ingy: yes, and they compile/work as far as their t/ is concerned | 19:49 | |
clkao | autrijus: make sure you ahve the really latest svn::mirror | ||
0.65 on pause incoming | |||
autrijus | roger | ||
ingy | btw, can you easily write Perl6 modules in Haskell? | ||
autrijus | yeah, and we also have infrastructure people working on essential tools, svk in particular ;) | ||
ingy | :) | ||
clkao grins | 19:50 | ||
ingy | autrijus: did you get that last Q? | 19:52 | |
btw, can you easily write Perl6 modules in Haskell? | |||
autrijus | you can't write perl6 modules in haskell :) | ||
however, you can inline haskell code in perl 6 modules and expect the current runcore to recognize it. | |||
ingy | ok cool | 19:53 | |
one last Q for now... | |||
What is the current UI/API between Pugs and Cabal? | |||
Khisanth | does that require the hs-plugin thing? | ||
Aankhen`` | Khisanth: Yes. | ||
hs-plugins. | |||
autrijus | Khisanth: aye | ||
ingy | Khisanth, Aankhen`` : do an interview on the wiki please | ||
autrijus | ingy: the API is p6[cli] | 19:54 | |
Aankhen`` | I'm just helping with modules, I'm not contributing to Pugs directly... | ||
ingy | apocalypse.kwiki.org/index.cgi?Interviews | ||
Aankhen``: that's fine | |||
autrijus | Aankhen``: CPAN is the language, Perl just the runtime :) | ||
Aankhen`` | Heh. | ||
autrijus | Aankhen``: so you are doing the vocabulary :) | ||
ingy | you are still contributing | ||
Aankhen`` | My mistake, I forgot that. :-) | ||
autrijus | ingy: there are talks about IRC meetings, but I don't know if it's been arranged. | 19:55 | |
ingy | ok... I have to run for now. | ||
autrijus | cool. and I'll sleep :) | ||
see you in 10 hours or so | |||
ingy | I'll take this into a rough draft and be back later | ||
autrijus | k | ||
ingy | thanks!!!! | ||
autrijus | np. rock on! | 19:56 | |
ingy | see you in 10!! | ||
or so ;) | |||
putter | autrijus: very quick question. Syn "rx" goes away in PIL2, yes? | ||
autrijus | putter: there's no Syn. | 20:01 | |
in PIL2. | |||
Syn is a parse tree thing. | |||
Limbic_Region | ingy - you still about? | 20:06 | |
you might want to ask autrijus what his plans are now that his 6 month sabbatical is over | 20:07 | ||
at least I would like to know | |||
autrijus | heh. I can answer you | ||
Limbic_Region | right - I figured as much | 20:08 | |
but I am betting a larger audience would like to know | |||
Limbic_Region doubts seriously more than a few know that you turned down funding initially to have the freedom to do what you want and gave yourself six months *mostly* off from $work to see what you could do | 20:09 | ||
since Pugs is all the rage now and it has such visibility - I bet people will be quite interested to know what happens now | 20:10 | ||
so perhaps ingy comes back and backlogs - what's the answer - huh huh huh? | |||
autrijus | sorry, I was in #haskell discussing antibuddha | ||
urchin.earth.li/darcs/antibuddha/README # fun | 20:11 | ||
stevan | nice | 20:12 | |
autrijus | yeah. talking about adopting modperl2 technologies | ||
and enable both single and multiple interpreter | |||
so. my plans | 20:14 | ||
I'm currently getting consulting gigs and try to work so I can fly to icfp & euroscon | |||
Limbic_Region | fwiw - I am still working on that whole "win the lottery thing" | ||
autrijus | I think I'll keep diverting 50%/50% on pugs and $work for the next two months | 20:15 | |
and after I'm back to euroscon, maybe putting more time to $work so I can get another (maybe shorter) sabbatical in early 2006 | |||
this time spending few months in .eu with leo or other lambdas or camels | 20:16 | ||
that's about it for now | |||
Limbic_Region | IIRC, you indicated you weren't opposed to funding now | ||
autrijus | that's right; the tpf page has been udpated | 20:17 | |
so a writeup on my journal pledging for sponsorship prolly won't hurt. | |||
Limbic_Region | there has been a lot of contraversy over who gets funding and what they do with it | 20:18 | |
autrijus | but I can't deliver milestones the same way TPF grants work really -- I can shift priorities, write journals, get releases, publish papers, and that's that | ||
Limbic_Region | I doubt there is anyone out there that would or could question that you wouldn't be productive | ||
but would you still want funding if it meant you didn't have the liberty to completely tear something apart you felt needed fixing | |||
Limbic_Region notes we are a bit out of phase | 20:19 | ||
you are answering questions before they are asked | |||
autrijus | right, must be this time machine thing | ||
let me readjust it a bit | |||
better | |||
now, where are we? | |||
Limbic_Region | was about to ask how much it would take to fund you for a month | 20:20 | |
where you could be at least as productive as if you had a 9-5 hacking pugs that is | |||
stevan | 3 cases of diet coke, 50 packages of Ramen,... | 20:21 | |
stevan calculates ... | |||
Limbic_Region | well - not to inflate autrijus' head but | 20:22 | |
autrijus | Limbic_Region: usd$3k/month is I think what it takes to let me focus completely | ||
Limbic_Region | ok - let me finish my last thought | ||
autrijus | and will also cover travel to people | 20:23 | |
Limbic_Region | 8hrs productivity doesn't equate to 8 hours of work for autrijus - past performance illustrates this - you also have the ability to switch tasks rather easily and not take too long to readjust | ||
autrijus | that's right. so I'm okay with funding come in in 1month units, even. | 20:24 | |
or even partially. (and even not at all. :-)) | |||
Limbic_Region | well, I will come out of lurker status for 1 hr only to summarize this on my journal - feel free to point people to it | 20:25 | |
autrijus | it's just a matter of how much accelleration it's going to effect | ||
putter | does the 3k$us include whatever tax bite .tw takes? | ||
Limbic_Region | I think it is important to know that you are not independently wealthy and that it isn't a lot of money to keep you going | 20:26 | |
s/and/but/ | |||
autrijus | putter: .tw has no tax for foreign wireins. | ||
putter | k | ||
autrijus | putter: very commerce friendly | ||
Limbic_Region: yeah. I calculated 6 months to precisely deplete my savings completely (well, honestly, there's ~usd$3k left), so I'm very not wealthy now. otoh, it's not very hard to find short term works either. but sponsorship would help, too. | 20:28 | ||
Limbic_Region | well autrijus, I think it is important to put that into perspective too | ||
it works out to be about $100 USD / day since I seldom see you take days off | 20:29 | ||
autrijus | *nod* | ||
Limbic_Region | and assuming you only worked 8 hours a day - that would be $12.50 / hour | ||
there are people working at McDonalds making more than that | |||
autrijus | mcdonalds people take days off :) | ||
so you'll be better dividing it by 44 or 42 or whatever working hour is normally | 20:30 | ||
Qiang | they get free diet coke too. ;-) | ||
autrijus | Qiang: that's right! | ||
Limbic_Region | they also pay taxes | ||
so that number would still be a lot lower | 20:31 | ||
autrijus | anyway, that's $18/hr in the ballpark. | ||
Limbic_Region | ok - so even at $18.75 / hr, it is still a huge bargain since the 8hr of work equates to much more productivity then the "norm" | ||
Limbic_Region notes the time and heads for home but will summarize this on his journal tonight | 20:32 | ||
autrijus | and you can argue it accelerate other people and other projects too, etc. | ||
Qiang | autrijus: noticed its 16:33, are you living in the NA timezone now? | 20:33 | |
Aankhen`` | My "interview" is up, hope it helps. | ||
autrijus | Qiang: no, I stayed up to do interview with ingy | ||
and then L~R. I really need to head back now | |||
Qiang: you may like this: apocalypse.kwiki.org/index.cgi?AutrijusInterview | |||
Aankhen`` | Right. | 20:34 | |
G'night. | |||
autrijus | ah, aankhen is in india. didn't know about that | 20:35 | |
Qiang | autrijus: cool. the chinese doesn't show up correctly, but i guess the english is translation of the chinese? | 20:36 | |
that should read. some of the chinese doesn't | |||
autrijus | ah. they are in zh-tw. you'd need tongwen.mozdev or something like that | ||
Qiang | oh. can even show it partially correct in utf-8 | 20:37 | |
tongwen is extention ? | |||
autrijus | yeah | 20:38 | |
that does tw/cn translation | |||
in zh-cn those words would be | |||
å°č½ęµä»„ę¢ļ¼éä¹å¾ęø ćå°č½å®ä»„ä¹ ļ¼åØä¹å¾ēćäæę¤éč ļ¼äøę¬²ēć / ćę²åå Øļ¼ęåē“ļ¼ę“¼åēļ¼ęåę°ļ¼ å°åå¾ļ¼å¤åęććęÆ仄å£äŗŗę±äøäøŗ天äøå¼ć / äŗŗä¹ēä¹ęå¼±ļ¼å ¶ę»ä¹åå¼ŗćčęØä¹ēä¹ęčļ¼å ¶ę»ä¹ęÆę§ćę åå¼ŗč ę»ä¹å¾ļ¼ęå¼±č ēä¹å¾ćęÆä»„å µå¼ŗåēļ¼ęØå¼ŗåęļ¼å¼ŗå¤§å± äøļ¼ęå¼±å± äøć / äøŗę äøŗļ¼äŗę äŗļ¼å³ę ōæ½xE5ōæ½x91 | |||
Qiang: does that look correct? | |||
Qiang | remember that you saying you had the problem where all chinese in irc becomes sqare box. did you get it fixed? i am still getting that | 20:39 | |
squar | |||
autrijus | I got it fixed after reinstalling irssi with recode | ||
oh well. :-/ | |||
clkao grins | |||
Qiang | hm. you didn't have recode before ? | 20:40 | |
autrijus | that's right | ||
Qiang | i am wondering how come we can read utf-8 chinese before even without recode | 20:41 | |
oh well. :-/ guess i will try what you have done | |||
autrijus | have fun. :) I'll sleep now. | 20:42 | |
putter | Good night autrijus. | ||
Steve_p | Ow! My eyes!~;) | ||
Qiang | night. | ||
autrijus | stevan: if you can changelog within the next 12 hours or so, that'd be nice; otherwise maybe delegate to gaal or others; if all fails I'll do it tomorrow once I'm up | 20:43 | |
autrijus waves & | |||
stevan | autrijus: I will take care of it | 20:44 | |
ingy | stevan: how's the video? | 21:25 | |
svnbot6 | r6008 | putter++ | VRule, which formerly appeared as Rule, now appears as Pugs::Internals::VRule, which does a new role Rule. All t/ ext/ and t_disabled/ tests work. This is a preliminary to having additional regex engines. | ||
ingy | stevan: mail me a url | 21:26 | |
lunch& | |||
putter | iblech: I didn't check PIR2JS prior to making the VRule change (r6008). Backing it out is fine if it causes you problems. The change has the unfortunate concequence that /a/.ref is no longer Rule, as specced. Rule was both a role and the pugs internal implementation class. I don't believe the equivalent of String/Str has been specced yet.(?) | 21:35 | |
pasteling | "mxmasster" at 66.113.65.25 pasted "Help with Excel Spreadsheet" (8 lines, 405B) at sial.org/pbot/12181 | 21:36 | |
iblech | putter: No worries :) PIL2JS doesn't do any rx things yet, so I'm absolutely fine with that change :) | 21:37 | |
stevan | ingy: look on the wiki, I posted a URL | 21:42 | |
putter | ok. :) I noticed the js regexp model is regretably limited (no embedded code or named backrefs). A modified pcre backend will transliterate and unpack, but it looks like full rules support will have to wait for the next step, a pure p6 engine... | 21:44 | |
iblech | Right... | 21:47 | |
svnbot6 | r6009 | iblech++ | * docs/notes/plan, Anatomie_eines_Compilers_am_Beispiel_von_Pugs.latex: | 22:02 | |
r6009 | iblech++ | Very minor typo fixes. | |||
r6009 | iblech++ | * PIL2JS: | |||
r6009 | iblech++ | * PIL::Subs: $?SUBNAME, &?SUB and &?BLOCK all correctly reset to their | |||
r6009 | iblech++ | pre-subentry contents when a sub is about to return. This means | |||
r6009 | iblech++ | t/magicals/subname.t passes 3/3 now. :) | |||
putter | I'd like to say op2Match x@(VRule _) y | not y@(VRule _) = op2Match y x but that doesn't work. Thoughts...? | 22:11 | |
iblech | Hm, define op2Match x@(VRule _) (VRule _) = ... and op2Match x@(VRule _) y = op2Match y x? | 22:14 | |
putter | yeah, I tried that next. :) helpfully, ghc gives overlapping definition warnings... (theres a default op2Match x y = ... case). | 22:16 | |
:( | 22:17 | ||
buu | Holy god, what language is that? | ||
iblech | Haskell :) | ||
buu | It's worse than malbolge! | ||
Darren_Duncan | seen ingy | 22:26 | |
jabbot | Darren_Duncan: ingy was seen 59 minutes 36 seconds ago | ||
Darren_Duncan | if anyone's at OSCON, I'm interested in meeting ... I'm currently in Damian's best OO practices, and will attend evening events afterwards | ||
ingy, hopefully today will work (not waiting too long and all) | 22:27 | ||
putter | iblech: courtesy of #haskell, create a guard predicate not_VRule and do op2Match x@(VRule _) y | not_VRule y = ... :) | 22:28 | |
iblech | putter: oooh, nice! :) | 22:29 | |
pdcawley_ | Darren: What's the like? | ||
Damian's talk that is. | |||
Darren_Duncan | great | ||
he's the best speaker I've seen anywhere | 22:30 | ||
also very helpful with questions | |||
pdcawley_ | Yeah. I'm guessing that he's not got worse since I last saw him. | ||
Darren_Duncan | I'm learning/reinforcing things I can apply right away | ||
putter | And available for world-wide training sessions as well... ;) | ||
Darren_Duncan | I also got him to sign my tutorial books and his new Oreilly book | ||
22:31
sili is now known as perlboy
|
|||
Darren_Duncan | he also said a comment I made about his Best Practices talks and books was very insightful and/or that few to none else have said so | 22:32 | |
pdcawley_ | My copy of that's in the post. I'm looking forward to it. | ||
22:32
perlboy is now known as sili
|
|||
pdcawley_ | Ooh.. get you.. what did you say? | 22:32 | |
Darren_Duncan | what I said is that, knowing Damian's heavy involvement in Perl 6 design ... | ||
I said that I thought his recommended practices in Perl 5 was to get us working in ways that would become more natural in Perl 6 | 22:33 | ||
something like that | |||
pdcawley_ | Ah... yes. That wouldn't surprise me at all. | ||
Darren_Duncan | still, his reply said or implied that he hadn't heard anyone, or hardly anyone, realize that | ||
and yes, I came to that on my own | 22:34 | ||
pdcawley_ | Well, if you start writing Perl that looks like Perl instead of warmed over C or whatever, Perl 6 is going to fit your way of thinking really well. | 22:35 | |
I've always thought that the people who were squawking that Perl 6 "doesn't look like Perl" probably didn't know what Perl actually looked like. Which is possibly laying it on a little thick, but not that much... | 22:36 | ||
Darren_Duncan | mind you, I've been making serious efforts to make my Perl 5 look like Perl 6 will (helped by my attempts to write Perl 6) look, so people migrating have the easiest time in using them, and it is easier to keep them in sync | 22:37 | |
pdcawley_ | Higher Order Perl's another good book if you want to write code that's going to be even easier in Perl 6. | ||
Darren_Duncan | don't have that ... who wrote it? | ||
pdcawley_ | Dominus. | 22:38 | |
It's great. | |||
Darren_Duncan | will look for it | ||
pdcawley_ | HOP in Perl'll be great. All the little callbacks he uses that use $_[...] for convenience and with all the extraneous subbiness can get replaced with -> $named_args {...} | ||
Which'll be *lovely* | |||
I WANT POINTY BLOCKS NOW DAMMIT! | 22:39 | ||
putter | With a language as large as p5, people use personal dialects, subsets of features. So it seems at least plausible that for some narrow dialects, p6 breaks a significant portion of their idioms. (putter tries to give people the benefit of the doubt) | 22:50 | |
svnbot6 | r6010 | putter++ | /a/ ~~ "a" now works, rather than only "a" ~~ /a/. iblech++ #haskell++ | ||
putter | Tried to write r6010 in Prelude.pm (one line) rather than haskell (several), but infix:<~~> on VRules just wasnt happening. | 22:52 | |
dudley | hmm. Does perl 5.8.7 build with gcc 4.0? | 22:57 | |
Khisanth | gcc 4.0 sounds annoying already :) | 23:00 | |
dudley | Yep. | ||
I'm getting those annoying linking errors again, but I'm sure it's not parrot this time. | 23:01 | ||
I think I may have built perl5 yesterday with 4.0 | |||
putter | dudley: mac? | 23:02 | |
dudley | yeah, 10.4 | ||
putter | there's a section in INSTALL... | ||
dudley | Yeah, I wrote it. | ||
putter | doh. | ||
dudley | :-) | 23:03 | |
ingy | stevan: Gonzo.mov will not play :( | 23:17 | |
putter | iblech, is there any reason a Parser.hs couldn't possiblyApplyMacro $ App (Var "&rxbare_") Nothing [expr] where macro rxbare_ ($pat) is primitive is safe is defined in the Prelude? | 23:20 | |
ingy | stevan: > md5 Gonzo.mov | ||
MD5 (Gonzo.mov) = a5f410418ea0635201c9e2c5924707bd | |||
iblech | putter: Should work. | 23:21 | |
putter: If it doesn't, maybe fully qualify the subname. | |||
putter | No compatible subroutine found: "&rxbare_" :( Thanks - thought I'd get a reality check before debugging... | 23:22 | |
k | |||
iblech | Hm, have you added &rxbare_ and the end of the Prelude? | 23:23 | |
putter | yes. | ||
iblech | (I tried adding a stub &tied some days ago, to the end of the Prelude, too, and Pugs didn't find it then.) | ||
putter | haven't tried "&*rxbare_" ... in progress... | ||
ah. | 23:24 | ||
cybercobra | newbie question - what's logical err? (err, //) | 23:27 | |
iblech | my $a = undef // 3; # $a will be 3 | 23:28 | |
my $a = $all_other_values // 3; # $a will be $all_other_values | |||
I.e. if the first arg is undef, return the second arg, else return the first arg | 23:29 | ||
sub infix:<//> ($a, $b) { defined($a) ?? $a :: $b } (ignoring the thunkiness of $b) | |||
cybercobra | ahh. thanks. and the pipe operators? (==>, <==) | 23:30 | |
putter | ($a // $b) in p5 is (defined $a ? $a : $b) | ||
Odin- | Pass everything on the blunt end into the 'rest' argument of whatever is on the pointy end. | ||
iblech | I.e. @array ==> map {...} or map {...} <== @array | ||
cybercobra | so it means 'append/prepend the array result on the pointy end to the array on the blunt end'? | 23:32 | |
ingy | hey guys, why does the pugs interpreter sound an alarm constantly? | 23:33 | |
it is also making my readline keys behave very strangely | |||
putter | (@a ==> map {}) is in p5 (map {} @a) | ||
which you can still do. also @a.map:{} | |||
the advantage is @a ==> map {} ==> grep {} ==> @b is clearer than the p5 equivalent. | 23:34 | ||
sortof. | |||
woot. explicit Foo::rxbare_ at both ends works. | 23:37 | ||
iblech | ingy: Hm, pos1/end etc. work *sometimes* strangely here, too | 23:38 | |
ingy | iblech: when I start up the pugs shell, it goes beep beep beep... forever | 23:41 | |
but it still works | |||
except when I hit an arrow key | |||
iblech | weird | ||
ingy | it is repeated | ||
forever it seems | 23:42 | ||
it is very odd | |||
I'm using a mac | |||
with pugs @ 6007 or so | |||
this has been happening for some time though | |||
cybercobra | what's adverbial (:) do? | 23:49 | |
putter | :x is (x => 1) :x(3) is (x => 3) :x<foo> :x[3,4,5] :{} is sub { } | 23:53 | |
iteracts nicely with named arguments. sub foo(+$x,+$y) ... foo :y(12) :x(2); | 23:54 | ||
cybercobra | so, it's like keyword args but w/ a funny syntax? | 23:55 | |
putter | 1 .. 10 :by(2) # which doesnt work yet | ||
cybercobra | ahh, like smalltalk selectors. neat. thanks. | 23:56 | |
putter | yes. it's a shorthand for a pair, which are used for keyword args. | ||
np. | |||
cybercobra | putter: and semi-infinite range (...) ? | 23:57 | |
buu | Holy christ | 23:58 | |
putter | 1 .. Inf ;) sortof. lazy. | ||
cybercobra | okay. that makes sense. | 23:59 |