pugscode.org <<Overview Journal Logs>> | You have safely opened the door to many Perl 6 hackers. | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X r1641 (426/4157) | Win2k r1631 (457/4163) Set by stevan on 8 April 2005. |
|||
putter | default and implicit seem to figure large in descriptions. | 00:00 | |
ninereasons | default_var.t ? | ||
under t/var/ ? | |||
kungfuftr | default placeholder? | 00:01 | |
putter | maybe default_scalar? @_ apparently being called the default array... | 00:02 | |
ninereasons | how about placeholder.t ? | ||
good point, putter | |||
putter | "default scalar variable" seems to be a phrase in use. | 00:04 | |
kungfuftr | hhhmmm... wonder if perl6 is going to have a nicer replacement for @ARGV | ||
ninereasons | I thought 'svn ci <files> ' would check in files that didn't exist before? | ||
putter | svn add first. (having hit that earlier this evening) | 00:05 | |
ninereasons | ah. that worked | ||
r1663; and only two hours to code what ... 20 lines? | 00:07 | ||
ninereasons hangs his head | |||
shapr | running code is good code | ||
ninereasons | thanks for the hug :) | ||
shapr grins | |||
stevan | putter: nothingmuch's smoker may not be up to date,.. be sure to check the revision number (if you havent already) | 00:08 | |
putter | manager: "You spent the entire day and only wrote only thirty lines of this hasscalle code? You were much more productive in Java." Sigh. | 00:09 | |
ninereasons | @*ARGS is not nicer, in my opinion, kungfuftr | ||
shapr | putter: haha! | ||
That sounds like my life. | |||
ninereasons | kungfuftr, but that's what it is. | 00:10 | |
kungfuftr | ninereasons: yar, though i suppose it can always be overridden to have handy methods, etc | ||
ninereasons | indeed. "no builtins except lambda" | 00:11 | |
someone said | |||
kungfuftr | "Knightrider, the kindergarden years"... Kit: "No michael, we are not nearly there yet." | 00:12 | |
++.assuming(2) | 00:13 | ||
*sigh* i wish i had faster hardware... new installs are always a git | |||
ninereasons | a statement like that must make someone like shapr pretty happy (?) | ||
kungfuftr | *blink* | 00:14 | |
ninereasons | shapr "..except lambda" | ||
shapr | ? | 00:15 | |
shapr throws lambdas | 00:16 | ||
This is my throwing lambda of DOOM! | |||
ninereasons is not even sure what a lambda is, really :) | 00:17 | ||
shapr | it's this little critter that comes from Alpha Centauri... | ||
ninereasons | a shapeshifter | ||
shapr | Actually, a lambda is a greek letter, and it's part of the lambda calculus. | ||
kungfuftr | sheep rapists | ||
shapr | yow | ||
ninereasons | lamb - da ; I get it | 00:18 | |
kungfuftr | perl 6, it's getting there... FOR ME TO POOP ON! | ||
shapr | who said no builtins except lambda? | ||
ninereasons | Larry, somewhere | ||
or something near that | 00:19 | ||
(very near, if I recall) | |||
shapr | That's pretty cute. Lambda calculus is pretty close to that. | ||
It has three builtins. S, K, and I. | |||
putter | hmm. if we could write p6 objects with compile-time inline haskell and/or C code, then various "builtins" in Prim.hs could be pulled out. Prelude.pl? ;) | 00:20 | |
ninereasons | I'd say that this reminds me of Wittgenstein, if I understood Wittgenstein | 00:21 | |
shapr | I've heard of him. | ||
stevan | shapr: and can't you make I out of S & K | ||
shapr | stevan: yup | ||
and you can make all of them out of X | 00:22 | ||
but it's really convoluted | |||
stevan | shapr: you go girl | ||
shapr | hey, I'm a guy. | ||
stevan | yeah right, and so it ingy | ||
putter | any reason for testgraph.pl to continue not containing a date stamp in its body? (someone doing autodiffs, etc?) | ||
shapr | Is ingy a guy? | 00:23 | |
Brian is usually a male name. | |||
kungfuftr | putter: it's in the title, is good enough | ||
shapr: yup | |||
stevan | shapr: ingy has a habit of referring to boys as girls sometimes | ||
on the internet, no one knows your a dog | 00:24 | ||
kungfuftr | stevan: except al gore, he invented everything | ||
ninereasons .oO hopes no one discovers he's a dog | |||
stevan | woof | ||
putter | kungfuftr: who looks at titles? (I sure hadn't been.) | 00:26 | |
kungfuftr | putter: me | 00:27 | |
=0) | |||
kungfuftr will be redoing lots of the test stuff tomorrow once my freebsd install is all sorted | 00:28 | ||
ninereasons | I've noticed that occupant count goes down, when autrijus isn't about the place. maybe a timezone coincidence. maybe he's a rockstar. | 00:29 | |
shapr | he's a rockstar, no doubt about it. | ||
kungfuftr | search.cpan.org/~dland/Acme-DonMart...nMartin.pm # excellent! | 00:30 | |
putter | kungfuftr: so I should punt on adding a gmtime stamp to the top of the body? | 00:35 | |
hmm... YAML make test quickly eats a GB of memory and becomes a swap stress test. eep. | 00:37 | ||
shapr | yow | 00:38 | |
kungfuftr | putter: yar... go for it | ||
putter | k | ||
kungfuftr | punt on? you mean "put off"? | 00:39 | |
putter | yes. "punt on" === "put off" *g* | ||
kungfuftr | k | 00:40 | |
nn | |||
putter | now if only I could test it I'd be a happy camper... | ||
nn? | 00:47 | ||
crysflame | putter: wow, neat | 00:48 | |
fsvo "neat" | |||
WOW | |||
this is incredible! | |||
kungfuftr++ # thank you! | |||
kungfuftr | *blink* huh? | 00:49 | |
has my evil twin been selling sex toys again? | |||
crysflame | Acme::DonMArtin | 00:50 | |
kungfuftr | ah | ||
ninereasons | oh man, that's funny. | 00:55 | |
putter | kungfuftr: it's in | 00:56 | |
crysflame: i'm not sure which/what was neat, but thanks. | |||
kungfuftr | bah, can't believe i can't get pugs to build... hhhrrrmmm... | 00:58 | |
crysflame | wuzzat? are you dland? | 00:59 | |
kungfuftr | crysflame: please english speaking you be | 01:00 | |
crysflame | kungfuftr: is putter DLAND of CPAN? | ||
he seems to be appreciating my complimentary statements | 01:01 | ||
kungfuftr | no idea, tbh | ||
crysflame | as indicated by his most interesting which/what conglomeration | ||
okay, enough english. | |||
putter | crysflame: re dland, no. re appreciating, "putter: wow, neat". | 01:06 | |
crysflame | oh. YAML make test. it was sarcasm :| | 01:47 | |
i can't think of why YAML would do that, but i don't know it at all, either | 01:48 | ||
putter | ah... | 01:49 | |
stevan | part of the YAML test issue is that YAML cannot stream, so building some of them hogs a lot of memory | 01:50 | |
putter | 1+ GB!?! At this point I have a new global default hypothesis... if it didn't work, its an x86_64 problem. :/ | 01:51 | |
I added looking into the problem to my infinite todo list... but that was full, so it fell off... | 01:52 | ||
enough ghc unicode fun for today. g'night folks. | 01:54 | ||
elmex | ? | 02:20 | |
yinjieh | www.freebsd.org/cgi/query-pr.cgi?pr=ports/79704 # parrot vm ports | 03:27 | |
Anyone who is interested in it can give it a try :) | 03:28 | ||
autrijus | yay! | 04:32 | |
ingy | hi autrijus | ||
autrijus | hey. how's going man? | 04:35 | |
ingy | good | 04:36 | |
I'm taking some time out from hacking | |||
I'll likely get back into it tommorrow | |||
I want to get real Kwid support into pugs | |||
autrijus | woot! | 04:37 | |
as in kwid2html via perl5? | |||
or something more drastic? | |||
s/kwid2html/any2kwid+kwid2any/ | |||
ingy | right, with built in pugs installation | ||
autrijus | woot! | ||
ingy | well I have to do it first | ||
when is the next pugs release | 04:38 | ||
autrijus | ingy++ | ||
it's 48 hours from now | |||
ingy | :P | ||
ok good | |||
perfect | |||
can I relase Perl6::Makemaker as planned? | 04:39 | ||
or do you want Perl6-Pugs-Makemaker | 04:40 | ||
actually i think the module needs to be Perl6::Makemaker | 04:42 | ||
the dist can be anything but Perl6-MakeMaker is best prolly | |||
gah, you already released it autrijus | 04:45 | ||
Khisanth | aren't all the Perl6:: modules going to need renaming after perl6's release? | ||
ingy | oh wait... | 04:46 | |
Khisanth: no, because they are all written in Perl 5 | |||
so they will just fade away if anything | |||
autrijus: I see, those modules are indexed from Perl6-Pugs | 04:49 | ||
autrijus | yup. | 04:54 | |
I think it makes sense | 04:55 | ||
so just hack lib/Perl6/MakeMaker.pm away | |||
and let it update with each weekly pugs release? | |||
I see little benefit in separating it out currently | |||
but maybe I missed something | |||
ingy | I thought we would have Perl6-Pugs-6.141 require Perl6-MakeMaker-6.141 | 04:58 | |
then we don't have to bundle ever Perl6- module inside pugs like Perl6-Bible say | 04:59 | ||
ingy thinks ... | |||
autrijus | sure but well, the point of deps is that some people may choose not to install it | 05:00 | |
ingy | or maybe we should bundle Perl6-Bible inside Perl6-Pugs | ||
autrijus | but P6::MM makes no sense without P6::Pugs | ||
whilst P6::Bible makes lots of sense | |||
independently | |||
if there is another P6 implementation about | |||
then it makes sense to factor P6::MM out | |||
and have both implementation depend on it | |||
or, if P6::Pugs has a slow release cycle | |||
then it may make sense for P6::MM have a faster one | 05:01 | ||
but as things currently stand, neither of above is true | |||
ingy | yes but P6::Pugs doesn't need to require ::MM | ||
autrijus | so factoring out P6::MM complicates the installation | ||
without apparant benefit | |||
it doesn't? I want ext/ to eventually use ::MM | |||
instead of M::I::P | |||
ingy | oh... | 05:02 | |
I wasn't aware of that | |||
autrijus | otherwise moving modules/ into ext/ will be bothersome | ||
ingy | that's a little tricky... | ||
autrijus | yeah, so it doesn't need to happen right away | ||
but with that in mind, I don't see having a separate ::MM as a benefit | 05:03 | ||
ingy | it's actually easier to do that if Perl6::MM is taken outside | ||
because the prereqs get installed at Makefile.PL time | |||
autrijus | so, you said Pugs doesn't need to require MM | ||
but with that plan, we do require MM anyway | |||
ingy | well that was before you wanted ext to use it | ||
autrijus | 12:58 < ingy> I thought we would have Perl6-Pugs-6.141 require | 05:04 | |
Perl6-MakeMaker-6.141 | |||
autrijus looks slightly confused | |||
ingy | right, and then it will get installed in time for ext stuff | ||
if it is in build_requires() | 05:05 | ||
autrijus | *nod* what's bad about adding lib/ as a include path | ||
currently installing pugs needs no other cpan modules | 05:06 | ||
so unless there's a considerable benefit | |||
I'd like not to require other CPAN modules | |||
ingy | well the Perldoc tools do require other modules | ||
autrijus | ok... | ||
ingy | it is a path of insanity to try to avoid other modules | 05:07 | |
autrijus | sure | ||
ingy | that's what code is there for | ||
not to go nuts or anything | |||
autrijus | alright. so you forsee Perldoc as part of pugs or not? | ||
ingy | well for now using lib is probably fine | ||
I'll hold off | |||
um | |||
autrijus | *nod* all i'm saying is that | ||
I'd be willing to depend on other stuff and roll a Bundle::Pugs | 05:08 | ||
as soon as there is a considerable benefit to do so | |||
ingy | I see Pugs build_requires('Perldoc') | ||
autrijus | avoiding premature optimisation etc | ||
why do we require that at build time? | |||
making manpages? | |||
ingy | yes | ||
autrijus | manpages of what? | 05:09 | |
ingy | whatever manpages pugs installs | ||
unless Pugs has no Pod/Kwid | |||
autrijus | sure. | ||
it's fine to have Pod :) | 05:10 | ||
ok. as soon as there's installable Kwids in Pugs | |||
we build_depends on Perldoc | |||
that's sane | |||
we may also consider include(), but I'm fine with either. | |||
before that happens, I'm fine with recommend() perldoc. | |||
ingy | okok | 05:11 | |
going out now... | |||
good luck! | |||
autrijus | :D | ||
hrm | 05:14 | ||
s:perl5{%([\da-fA-F][\da-fA-F])}{chr(hex($1))} | |||
ah. right. :e doesn't yet work in regex | |||
that's sad. | |||
but wait... | |||
s:perl5{%([\da-fA-F][\da-fA-F])}{{chr(hex($1))}} | 05:15 | ||
that should work, no? | |||
yeah, it works | |||
stevan: I'll fix your code :D | |||
stevan: so it turns out you can use | 05:17 | ||
$decoded ~~ s:perl5:g/%([\da-fA-F][\da-fA-F])/{chr(hex($1))}/; | |||
freely | 05:18 | ||
hi Qiang_zh! | |||
autrijus loves the fact that there's no s///e anymore | 05:19 | ||
hurray for sanity | |||
Qiang_zh | hello, autrijus :) | 05:20 | |
autrijus | =) you coming to YAPC::NA, right? | 05:23 | |
I hear there's a perl 6 roundtable the day before the conference | |||
not sure of the details yet | |||
Qiang_zh | i guess. this would be my first time | 05:24 | |
autrijus | nice! | ||
Qiang_zh | toronto is hot already. you guys will have a good sweat during the hackthon :) | ||
autrijus | yapc++ | ||
the host mentioned skiing | |||
Qiang_zh | hmm.. beer | ||
autrijus | which does not connect with "hot" in my mind | ||
Qiang_zh | oh ??!! | ||
autrijus | yeah. we are going to this cottage far away (90 mins on highway) from toronto | ||
apparently well suited for outdoor activitities | 05:25 | ||
Khisanth | 90minutes up a mountain? :) | ||
Qiang_zh | he did mention the canoe tho. | ||
autrijus | that sounds like possible | ||
that too | |||
Khisanth | which contradicts the snow a bit | ||
Qiang_zh | summer is much more fun than winter time. there are lots activities around the town as well. | 05:26 | |
autrijus | wonderful. | ||
Qiang_zh | enough snow already :) | ||
autrijus | I'm thinking of staying a bit longer | ||
maybe come to vancouver after that | |||
but it's not fixed yet | |||
Qiang_zh | when u going to be here ? | ||
autrijus | 23th of june iirc | ||
Qiang_zh | cancouver is nice too. | 05:27 | |
for travel or | |||
autrijus | maybe staying a bit and enjoy the weather, which is reputed to be nice | 05:28 | |
Qiang_zh | YES! | 05:29 | |
autrijus | ok. now lunch, and then _really_ work on this IType thing | ||
Qiang_zh | the people from perlchina wanted me to write some jounal about the conf. i think you can write some too ;D | ||
1:30pm now. | 05:30 | ||
autrijus | yeah. I wake up late :) | 05:31 | |
Qiang_zh | autrijus: are you going to be preoccupied with hackathon as soon as you arrived ? | 05:33 | |
or occupied .; | 05:34 | ||
autrijus | I think so | ||
I arrive on 23th, then go straight to the cottage | |||
Qiang_zh | er. guess we will meet during the conf. | 05:35 | |
autrijus | are you @ toronto or vancouver? | 05:36 | |
Qiang_zh | toronto | 05:37 | |
autrijus | oh cool. then maybe I can stay a couple days after the conf | ||
Qiang_zh | that would be nice ;) | ||
hopefully i will move out to a bigger apartment by then (my parents going to visit me around july :) | 05:38 | ||
welcome to crash . hehe | |||
autrijus | :D | 05:40 | |
noted. we'll see :) | |||
Qiang_zh | for sure. | ||
i think i am going to get a beer... hot hot... | 05:41 | ||
autrijus | cool. and I'm going to get lunch | 05:42 | |
bbiab & | |||
Alias_ | Goddamned it I hate Win32 file locking | 06:46 | |
Khisanth | s/ file locking// | 06:50 | |
yinjieh | good | ||
Alias_ | heh | 06:52 | |
I quite like much of Windows... | |||
It's relatively stable, it's got great application availability | |||
It makes the everyday tasks relatively simple and relatively tolerable | |||
Khisanth | ack! please tell me "is dis(...)" has been renamed ... | 07:03 | |
autrijus | greetings | 07:16 | |
Corion | yawn | ||
autrijus | examples/hashes/simpleiter.p6 restored to its full glory | 07:17 | |
trailing comma, no parens around condition | |||
hey Corion | |||
Corion | Hi autrijus ! Good that you remind me - I have to fix some of my tests too so they now use a trailing comma instead of a prefix comma :) | 07:18 | |
autrijus | :D | ||
and drop the silly parens around | |||
for %h.kv | |||
if $thing.meth | |||
Corion | autrijus: I moved sleep() for Win32 to use threadDelayed() and will write a test that checks that async() and sleep() work well together | ||
autrijus | good. so threadDelayed() work as expected? | ||
Corion | (likely this will mean to move threadDelay() for Unix as well) | ||
autrijus | "Note that the resolution used by the Haskell runtime system's internal timer is 1/50 second, and threadDelay will round its argument up to the nearest multiple of this resolution." | 07:19 | |
that looks ok | |||
gaal | hi there. ooh, lots of activity. | ||
autrijus | yo gaal. | ||
15:17 < autrijus> examples/hashes/simpleiter.p6 restored to its full glory | |||
15:17 < autrijus> trailing comma, no parens around condition | |||
Corion | autrijus: "as expected" is a bit big. I had to use a magic number of 1000000 to multiply the argument, dunno why - maybe it takes something larger than microseconds. | ||
autrijus | Corion: so, sure, go ahead and move to threadDelayed | ||
Corion | autrijus: I want to write a test first :) | 07:20 | |
autrijus | hm? it's just microsec | ||
go ahead :) | |||
I'll test thrDel on unix | |||
Corion | autrijus: Yeah - it took me some "experimenting" to check why my "sleep(1)" didn't seem to work ;) | ||
gaal | there's a small bug in hangman, when you press enter w/o a letter. an unugly solution needs both next and NEXT :) | ||
autrijus | Corion: it's documented as microsecond | 07:21 | |
and a microsecond is 1/1000000th of a sec | 07:22 | ||
so that looks sane | |||
Corion | autrijus: Ah. Then I was just tired yesterday ;) | ||
autrijus | op1 "sleep" = boolIO (threadDelay . (* 1000000)) | ||
I think I'll go with this. | |||
(function composition)++ | |||
gaal: why NEXT{} ? | 07:23 | ||
gaal | to cls | ||
Corion | autrijus: I have (in Compat.hs) sleep = threadDelay $ (*) 1000000 x | ||
:) | |||
ah - I forgot the "x" on the lhs | |||
autrijus: but yours is more spartanic :) | |||
autrijus | the term is "point-free". | 07:24 | |
or, "pointless". | |||
Corion | :) | ||
autrijus | r1674 has the sleep/threadDelay. | ||
tests still (actually more) welcome | |||
gaal | www.willamette.edu/~fruehr/haskell/...ution.html for anyone who hasn't seen it | ||
autrijus | yeah, it's a classical read :) | 07:25 | |
gaal | i understand about three or four of those :( | ||
Corion | gaal: I found that yesterday - very nice thing ;) | ||
autrijus | sad thing is that after my dive into GADT I now understand all of them :-/ | ||
Corion | gaal: Ah well - it gives you a good chance to see where you stand ;)) | ||
gaal | points-free is mentioned there, which is why i was reminded | ||
Corion | autrijus: I pity you - well, not really :) But I like the idea of creating static types to calculate the factorial :) | 07:26 | |
gaal | yes, it is useful that way. i don't think the author was being (exclusively) silly. | ||
autrijus | maybe we need that for perl6 as well | ||
but not factorial ;) | |||
need something more exciting | |||
Corion | autrijus: Maybe grep() ? :) | ||
gaal | actually it's more than four that i understand :) but yeah | 07:27 | |
web servers :) | |||
Corion | That reminds me - maybe I should devote today to porting (more of) perlrun. Or maybe writing a stupid database for Perl6. Or HTTP::Proxy. So many choices, so little time :( | ||
gaal: Heh. "use HTTP::Server::Simple; HTTP::Server::Simple->run()" | 07:28 | ||
Good start and end for a server ;) | |||
autrijus | rumour has it that there will be a JA*H around Austrian/French Perl workshop :) | ||
gaal | use Problem::Halting; Problem::Halting.solve() | ||
Corion: databases reeeeallly want an abstraction layer. | 07:29 | ||
there's no tie interface yer, is there? | 07:30 | ||
autrijus | join('',map {chr(any(0..2**32-1))} 0..2**32-1).eval | ||
Corion | gaal: Yes, but I want to toy around a bit with cursors, to see what parts of DBI can be revamped a bit | ||
gaal | berk db is a cool thing to have | ||
hahaha | |||
Corion | gaal: I'd want a pure Perl SQL DB, so Perl always has a SQL DB, even if it's dead slow :) | 07:31 | |
gaal | autrijus: in p5, if you run that, you'll get a core dump. | ||
i mean if you run its moral equivalent. | |||
that's neat -- but i insist we want it over DBI. | |||
autrijus | Corion: well once theorbtwo finished his hs-plugin diving | 07:32 | |
we can bundle SQLite with pugs | |||
I know I want that | |||
gaal | so my riddle is, *why* would that crash on p5? | ||
Corion | gaal: DBI can come later :) | ||
gaal | SQLite++ | ||
autrijus | gaal: because it evals "dump" ? | ||
Corion | autrijus: Oooo - that is even better ! | ||
gaal | t | ||
:) | |||
gaal wants gtk | |||
Corion | although it goes with the "bloated core" territory. But having SQL built in is good IMO :) | ||
autrijus | I think bundled SQLite is major win | 07:33 | |
it's not that bloated | |||
and enables many wonderful uses. | |||
gaal | 30kloc of c | ||
Corion | autrijus: Yep - it's one small C set | ||
autrijus | it's the same idea of how perl5 bundled SDBMFile | ||
SQLite is the SDBMFile of our age. | |||
gaal | berk is even faster, btu then you have to choose a version. | ||
autrijus | and you can't sql a berk. | 07:34 | |
gaal | will yaml be in the core? | ||
Corion | ... and we can't distribute berkleyDB with Pugs, no? | ||
autrijus | there will be no core :D | ||
Corion | autrijus: "no core" means problems for those without a (C) compiler... That's why I started out with a pure Perl DB ... | 07:35 | |
autrijus | but if there is something like a base sdk or something, I think yaml belongs there | ||
Alias_ | I like the idea of a base SDK | ||
autrijus | Corion: sure, but maybe we ship precompiled sdks too | ||
with pbc it may even be sane | |||
Alias_ | The current Perl core is arguably too small | ||
autrijus | but it's handwavy at this point :) | ||
Corion | Alias_: :) | ||
autrijus | and arguably too bloated at the same time. | ||
Alias_ | autrijus: Too bloated for "Core", too small for an SDK | 07:36 | |
autrijus | exactly. | ||
autrijus ponders resurrecting [email@hidden.address] | |||
but I need to work on IType now :) | |||
gaal | it'd be real neat if we had a minip6, like today's tinyperl that fits on a bootable diskette | ||
Alias_ | diskette? | ||
gaal | then again everybody has disk on keys today | ||
i think it does, Alias_. | 07:37 | ||
Alias_ | floppies will be obsolete by the time Perl 6 comes out | ||
autrijus | sadly pugs is 4M and parrot is 8M. | ||
Alias_ | Not just unused, completely unavailable on most PCs | ||
USB drives are replacing them (finally) | |||
gaal hopes so | |||
but hardware changes slowly | |||
autrijus | brb... | ||
Alias_ | in another year, I predict Dell won't include a floppy by default | 07:38 | |
gaal | Dell != computers in classrooms all over the world | 07:40 | |
There were still Apple ][s in the early 90ies | |||
it would be sweet to create a learner's dialect for perl6 | 07:41 | ||
i always wanted a "use stricter" mode in p5 to teach newcomers with. | |||
autrijus | like Helium? | ||
autrijus likes Helium | 07:42 | ||
gaal | Helium? | ||
autrijus | www.cs.uu.nl/helium/ | ||
like PLT DrScheme but for Haskell | |||
excellent learning tool | |||
gaal | hey, i can use that! | ||
autrijus++ | 07:43 | ||
looks like Hugs so far... | 07:46 | ||
Khisanth | autrijus: perl6 is going to be >= 12MB? :) | 07:49 | |
gaal | hmmm, actually i'm sorry i raised the subject, this is prollly not something to be worrying about so much now :/ | ||
autrijus | Khisanth: but parrot will trivially have a share-vm mode | 07:50 | |
so it will be the same 8MB in memory for arbitary number of processes | |||
that's imho good design. | |||
Khisanth | that sounds quite nice | 07:52 | |
Alias_ | autrijus: I'm seeing something funny with the M:I install of PPI | 07:54 | |
autrijus: Check out www.nntp.perl.org/group/perl.cpan.testers/194069 | 07:55 | ||
autrijus | where's Test/ClassAPI.pm ? | ||
Alias_ | inc | ||
autrijus | and inc/ is not in the path | 07:56 | |
weird. | |||
Alias_ | right | ||
autrijus | this is however 0.05x code :-/ | ||
so maybe you want to file a bug against cpanplus | |||
Alias_ | 0.05x?? | ||
autrijus | <- generally clueless about cpanplus 0.05x | ||
does it work with manual maketest | 07:57 | ||
without an installed T::CAPI? | |||
Alias_ | not sure | ||
I'm assume that if inc isn't going on the list, quite possibly | |||
autrijus | try duplicating this error, then. | 07:58 | |
Alias_ | quite possibly doesn't work that is | ||
autrijus | I'm sorry -- my mind is in Tie* right now | ||
Alias_ | oh, ok | ||
The fact that inc doesn't make it over seems like a standalone problem in any case though | |||
What does M:I do normally to ensure it is available | 07:59 | ||
Corion has been disenchanted by CPANPLUS | 08:00 | ||
pugscode.org <<Overview Journal Logs>> | You have safely opened the door to many Perl 6 hackers. | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X r1641 (426/4157) | Win2k r1675 (288+2unex/4184) | 08:01 | ||
autrijus | can you investigate and kill the 2 unex? | 08:07 | |
Corion | autrijus: Will do | 08:11 | |
autrijus looks at | 08:14 | ||
class IArray a where | |||
fetch :: a -> Int -> Eval Val | |||
store :: a -> Int -> Val -> Eval () | |||
fetchSize :: a -> Eval Int | |||
storeSize :: a -> Int -> Eval () | |||
and cringes | |||
ah the joy of tied magics | 08:15 | ||
instance (IArray a, IHash a) => PseudoHash a where ... | 08:16 | ||
autrijus grins | |||
shapr gives pugs "fastest time from research to real use" sticker | |||
Corion | shapr: 5 years is fast? :)) | ||
shapr | I was thinking of GADTs really. | 08:17 | |
autrijus | shapr probably means GADTs and STM and TH2 | ||
shapr | Yes, and STM and TH2 | ||
Corion | ah ;) | ||
I just read yesterday that Control.Concurrent is "experimental" - should that worry me for putting it into Pugs? | |||
autrijus | nope. | ||
it means that we have little hope of running Pugs on Hugs. | 08:18 | ||
or on NHC. | |||
but that's okay, we are doomed anyway | |||
Corion | autrijus: Too bad :) | ||
shapr | doomed? | ||
Corion | Ah - somebody made "undef @array" work - that's one of the unexpected successes | 08:19 | |
autrijus | that'd be me | ||
shapr: doomed to only run on ghc | 08:20 | ||
Corion | autrijus++ # making stuff work | ||
shapr | oh. that not bad as doom goes. | 08:23 | |
At the Haskell Workshop 2003 there was a presentation with the slide "Haskell, defined by GHC?" | 08:24 | ||
autrijus | heh. I like hugs too | 08:25 | |
very embeddable and fast | |||
(fast as in compilation) | |||
shapr | The Haskell standard moves slowly, but GHC moves like greased lightning. | ||
Corion | shapr: Ah we'll see that with Perl6 too. "Perl6, defined by Pugs?" :-) | 08:26 | |
But that's better than "Perl6, defined by Haskell?" :-) | |||
shapr | haha | ||
autrijus | lol | ||
Corion | ... which might also happen, if the Haskell community decides to embrace and extend Perl6 development ;-))) | ||
shapr saves that quote | |||
autrijus | yeah. it's not yet clear whether Perl 6 will be reimplemented from scratch or translated from pugs. | 08:27 | |
I tend not to worry too much about that. | |||
Corion | autrijus: Perl6 will (have to) use Pugs/Haskell. I mostly wonder if Perl6 will ever move onto Perl6 or always stay with Haskell. | ||
Having PhDs work on the base language and provide a kickass compiler for Perl6 might be better than having p6p :-) | |||
... but having too much lambda in our camel might be detrimental too :))) | 08:28 | ||
shapr | The only worry with the Haskell community is that they'd help you write pugs, then interview everybody about their experience with domain specific languages, and debate the results using terms I've never heard before. | ||
Corion | shapr: As long as I can run the results, who cares? :) | 08:29 | |
autrijus | Corion: I think p6 will need to move to p6 anyway. the question is | ||
is the p6 generated automagically from pugs source | |||
or is it rewritten from scratch. | |||
(or, 3rd route, generated by having GHC target parrot) | 08:30 | ||
Corion | autrijus: I think it will (have to) start out from a generated source, Pugs/Haskell -> P6. | ||
autrijus | that's what I think too. | ||
Corion | autrijus: "rewritten from scratch" will not happen IMO, at least not quickly. You know Larrys saying "It's easier to port a shell than a shell script" :-) | 08:31 | |
autrijus | pmichaud is still planning to go that wroute though. | ||
last I heard | |||
Corion: that's a very acute observation | |||
and all too true :) | |||
shapr agrees | |||
Corion | autrijus: But nobody will want to hack in Parrot code. At least not something as complex as Perl. That's ugly close to still hacking in C. | ||
autrijus | Corion: sure, but the "from scratch" idea is to write the p6c in p6 | 08:32 | |
Corion | autrijus: I find myself often thinking whether it's better to port the script or the shell :) | ||
autrijus | then use pugs to compile it | ||
then use itself to compile it | |||
Corion | autrijus: Ah, yeah. I would write the "compiler"/"converter" in Perl6 of course. But that's because I know Perl6 :) | ||
Or Perl5, which is close enough anyway. | |||
autrijus | right. | ||
except writing a compiler in p5 is exercise in madness. | 08:33 | ||
p6 will be much better :) | |||
Alias_ | It's bad enough writing a tokenizer/lexer in P5 | ||
gaal | This is the Puissant Perl Compiler, version 6.0 | ||
Corion | autrijus: I've written a compiler in Turbo Pascal (4 and/or 6), so I know enough about it :-) | ||
shapr | Writing parsers in Haskell is pleasantly simple. | 08:34 | |
Alias_ | I like this idea of pluggable bits | ||
Corion | gaal: Naah - this is the Perl Unlimited Golfcourse Supercute | ||
Alias_ | So what if we have p6h doing the P6->Parrot | ||
Someone else can write p6p6 later an do a better job. | |||
And if not... well then we welcome our new lambda overlords | |||
Corion | Alias_: Parrot code is something not to be touched by human hands IMO. At least not for large scale development | 08:35 | |
shapr snickers | |||
autrijus | it's quite pleasant as assembly goes, really. | ||
Corion | lambda (overlords): overlords + 1 | ||
Alias_ | "Perl 6 - Connecting Haskell with reality!" | ||
shapr laughs | |||
Corion | autrijus: Sure, but developing in (any kind of) assembly language, when you want multisubs, pattern matching on parameters etc. ? | 08:36 | |
autrijus | o/~ I've been taught assembler / in my second year of school / it's kinda like construction work / with a toothpick for a tool o/~ | ||
shapr | haha, where's that from? | ||
Alias_ | Because as far as I can tell, Haskell is a language only a PhD in Maths could love | ||
Corion | autrijus: :) | ||
autrijus | shapr: "eternal flame". you'll *love* it. | ||
Corion | Alias_: I only have a master thesis in math, but I like it, true :) | ||
shapr | I don't have any classes in either math or cs :-( | ||
Alias_ | I'm convinced people just don't naturally think in functional terms | ||
autrijus | right. because of this Alan Turing guy. | 08:37 | |
Alias_ | imperative yes, exceptions sure... | ||
Corion | Alias_: Ah, you know - "The programmers in functional languages know the value of everything but the cost of nothing" | ||
autrijus | wouldn't be like that if all we have is Church machines | ||
Alias_ | autrijus: I mean when you teach somebody to do something non-computery | ||
shapr | I think that either programming itself is unnatural, or that functional is just is natural as imperative. | ||
Alias_ | autrijus: You provide lists of "do this, then do that" instructions | ||
Corion | Alias_: I think in many ways. I think functional, imperative, but sometimes I also think in the logical way of Prolog. | ||
Alias_ | autrijus: And you say things like "If this happens, then do that" | 08:38 | |
autrijus | shapr: but the vocabulary is largely set by von neumann and turing | ||
in the CS field anyway | |||
Alias_ | Corion: But you have a masters in Maths.... you have trained to think in brain-bendingly different ways | ||
Corion | Alias_: No - not always. Functional is also very useful, or when reasoning about stuff, you never think of the symbol manipulations themselves. | ||
autrijus | Alias_: I think as far as "naturalness" goes, make / prolog is perhaps most intuitive | ||
"to do this, I need to to these first" | |||
Alias_ | ugh | 08:39 | |
autrijus | that is also why SQL is popular. | ||
since you don't need to tell it how to do things. | |||
Corion | like "father(X,Y) :- child(Y,X), male(X)" | ||
Alias_ | autrijus: That's not a good way to teach | 08:40 | |
Corion | also, for stuff that has no direction of data flow and is merely a collection of facts you can query (like Prolog and SQL), imperative and functional programming are ugly. | ||
Alias_ | autrijus: I'd argue that's more a case of "If you want to do Foo, check that Bar" | ||
autrijus | Corion: I think you'll like Curry. I'm fascinated by Curry | ||
Alias_: sure | |||
Alias_ | Because Bar isn't done... they have to do Bar naturally... but they don't think that way | ||
Corion | Alias_: But that's an incredibly convoluted way to declare things. | ||
Alias_ | Corion: That's how most people think | ||
shapr | For me at least, I found functional programming mostly by myself while using Python. I started writing my Python code such that it had no side-effects, only one return point, and I realized I wanted to do more like that. | ||
Alias_ | Every given somebody directions? | ||
Corion | Alias_: But that's not how I want to tell people stuff. Programming is like telling people stuff. And I want to tell them how it is and how it should be in the end, and not care about what they do in the middle. | 08:41 | |
Alias_ | "Do this, do that, do the other. Keep going for a while. When you see foo, turn right | ||
shapr | A friend of mine saw some of my Python code and said something like "You must like Haskell" and I said "What's that?" | ||
Alias_ | Corion: That doesn't really scale | ||
autrijus | Corion: www.informatik.uni-kiel.de/~curry/examples/ # grep for "logic" | ||
Corion | Alias_: "Here is the map. You are here. Go there. Goodbye." | 08:42 | |
Alias_ | Corion: Big business and governments have procedure manuals and governance and so on | ||
Corion: Who knows what might happen if you did that. Most will go the right way, some will go the wrong way. Someone will get lost in the bush and need rescuing | |||
autrijus | ...but they also have Laws and laws are logic programs. | ||
Alias_ | autrijus: There's a reason nobody understands the law either | ||
Corion | Alias_: I know. I do these. That's why I hate hate hate that. Because they want the stuff described in little detail while even the people doing the stuff have implicit dependencies in their lists, and the implicit dependencies make sense. | ||
autrijus | Alias_: you think people understand procedure manuals? :D | 08:43 | |
Corion | err - s!little detail!very detailed! | ||
Alias_ | autrijus: Yes, because they give simple steps. McDonalds would collapse if they couldn't :) | ||
Corion | Procedure manuals are for the auditors and nobody else. | ||
autrijus | oh. they follow them just fine. | ||
but _understand_. | |||
Alias_ | autrijus: Does your CPU need to understand? | ||
autrijus | Alias_: we are coders not CPUs. | 08:44 | |
Corion | Alias_: I don't want to speak to my CPU | ||
Alias_ | Anyways | ||
autrijus | as coders we need to understand what we're writing :) | ||
Alias_ | The closer to normal human ways a language is, the easier it is to understand, and thus write | ||
autrijus | Alias_: I agree. | ||
and normal human language is a mess | 08:45 | ||
shapr laughs | |||
Alias_ | not language, "ways" of thinking | ||
autrijus | mixed with imperative, logic, functional, data-driven ways. | ||
shapr | We should use COBOL then. | ||
autrijus | just see #perl6 log for the evidence :D | ||
Alias_ | shapr: I've actually been wondering if a COBOL -> Parrot compiler would be a good idea | ||
Might let big old things run on new gear | |||
COBOL with access to CPAN, imagine it! | |||
autrijus | this "natural language is a mess, programming language needs to be like that" is raison d'etre of perl :) | ||
...and that's also why english is more popular than lojban, and perl more popular than haskell. | 08:47 | ||
shapr | xu do tavla mi fo la lojban | ||
autrijus | (I do like lojban better, so that is not meant as an insult) | ||
Corion | lojban ? | ||
autrijus | Corion: the least broken of human languages | ||
Alias_ | s/broken/human/ ??? | 08:48 | |
autrijus | # en.wikipedia.org/wiki/Lojban | ||
Corion | autrijus: Ah. Something like Esperanto, then ... | ||
shapr | mi djica lenu gunka prali mi | ||
autrijus | no, esperanto is common lisp :D | ||
Corion | autrijus: :))) | 08:49 | |
autrijus | from the wikipedia article about lojban: "It has no irregularities or ambiguities in spelling or grammar" | ||
Corion | autrijus: I guess the only way to promote it would be to write a text adventure/MUD for it :) | ||
shapr | lambdabot had lojban support for awhile. | ||
Corion | ... but at least one could do NLP there then | ||
Ah. I should write an irc bot in Perl6 :) But we don't have coroutines yet, do we ? | 08:50 | ||
autrijus | oh wow. jbo.wikipedia.org/wiki/Ralju_papri | ||
Corion: we have async{} | |||
you want shared mvar? | |||
or do you just want lazy gather/take? | |||
shapr | lojban is pretty simple, it's a small language with a simple and regular structure. I wouldn't say that it's unambiguous, but it does have some neat concepts to teach. | 08:51 | |
Alias_ | So basically, Lojban has no evolutionary adaptiveness at all? :) | ||
Corion | autrijus: Yep, but I want-need to do synchronized stuff, and async{} has no way of resynchronizing :) | ||
Alias_ | Like loglan? | ||
autrijus | Corion: try writing some pseudocode, commit them in examples/, and we'll see about it :) | ||
shapr | loglan was the original, but James Cooke Brown was the dictator of that community, so the lojban people split off into their own community. | ||
autrijus | Corion: also try to find out how coro is meant to happen in p6. | 08:52 | |
Corion | autrijus: I have such pseudo code, I only need to convert it to p6 :) | ||
autrijus | but if not specced, use Coro.pm as entry | ||
shapr | loglan never really got anywhere, lojban really did. | ||
autrijus | cogood. do so :) | ||
Corion | autrijus: Ah, yeah. I'll orient myself at Coro to do so :) | ||
Alias_ | shapr: Still... the problem with designing a language is that you don't much chance to evolve. You just tend to die out | ||
I like Perl in that sense. Because you can do the big things different ways, you get a nice Darwin tick of approval | 08:53 | ||
shapr | lojban had a static structure for five years so people could learn it, then they went evolutionary. | ||
Alias_ | So there are dialects? | ||
shapr | James Cooke Brown started on loglan in ... the late 1950s or the late 1960s? I forget exactly when. | 08:54 | |
Alias_ | Q: How many Lojbanists does it take to change a broken light bulb? | 08:55 | |
A: Two: one to decide what to change it into, and one to figure out what kind of bulb emits broken light. | |||
shapr snickers | |||
Anyway, part of my motivation for learning Haskell was to write a compiler for lojban. | |||
lojban has a yacc grammar. | 08:56 | ||
Corion | shapr: Ewww. :) | ||
shapr: But then, I got into Perl because I wanted to replace a shell script that created a website index with something faster. :) | |||
shapr | In the meantime I've decided that's totally the wrong way to get a spoken programming language. | ||
Corion | ... the reasons that drive us to go into the directions we do... | ||
shapr: Ah, but you don't need a spoken programming language other than "Kill All Humans". | 08:57 | ||
shapr | At this partcular junction, I'd rather write more on pugs. | ||
shapr looks at the smoke tests | 08:58 | ||
Alias_ | Corion: And possibly, "You will be assimalated/recycled" | ||
Corion | pugscode.org <<Overview Journal Logs>> | You have safely opened the door to many Perl 6 hackers. | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X r1641 (426/4157) | Win2k r1678 (287/4185) | 08:59 | |
Alias_ | I like the idea that while English has lasted 1000ish years, Loglan lasted, what, 30? | 08:59 | |
Corion | Oook | ||
shapr | Oook? Oook! | 09:00 | |
Alias_ imagines lojban rap | |||
shapr | I would argue that English hasn't really lasted that long. Can you read the original Chaucer? | 09:01 | |
Corion: www.dangermouse.net/esoteric/ook.html | |||
Corion | shapr: See Acme::Ook at search.cpan.org/~jhi/Acme-Ook-0.10/...cme/Ook.pm - written by Jarkko Hietaniemi, master librarian of Perl :) | 09:02 | |
Alias_ | shapr: I can probably make a pretty good stab at it | ||
autrijus | hrm, a metalanguage can last longer than its specific implementations. | 09:03 | |
Corion | autrijus: Lisp 4 life, dawg! | ||
autrijus | exactly. | ||
Alias_ | It's all evolution | ||
autrijus | I was thinking about the common Han ideograph interface | 09:04 | |
all spoken language at its invention time (some 3000~4000 years ago) has died | |||
yet we can read all their books | |||
Corion | ... a bit larger perspective than Lisp, true :) | ||
shapr | hm, that's nifty | ||
autrijus | that also enables me to read japanese books and vice versa | ||
despite that fact that the grammar structure and pronounciations are completely different. | 09:05 | ||
Corion | BTW, on Win32, there is still a segfault ... | ||
autrijus | lisp 4 life indeed | ||
(or *gasp* xml for life) | |||
Corion | autrijus: ASCII 4 life ! :) | ||
\o/ | |||
Alias_ | autrijus: Yes, I find the separation of written and spoken languages to be quite novel | 09:06 | |
autrijus | $ grep -B 3 stay src/UTF8.lhs | ||
/ | __ ___ __ __ | |||
/ ^| // /__/ // // | |||
/.==| \\ //_ // // | |||
It's // || // \_/_//_//_ and it's here to stay! | |||
clkao | orz | 09:07 | |
Alias_ | autrijus: Although admittedly I understand far less of the details than I would like to | ||
autrijus | Alias_: en.wikipedia.org/wiki/Hanzi | ||
Alias_ | autrijus: That invokes a time exception | ||
ENOTIME | |||
autrijus | too bad. | ||
shapr | So you think ascii is the next Han ideograph? | 09:08 | |
Alias_ | autrijus: Also, I simply lack the overwhelmingly current use for the knowledge | ||
autrijus: I tend to be very driven by practical goals | |||
autrijus | shapr: no, Unicode it is | 09:13 | |
autrijus forsees 64bit unicode for the entire sentient galaxy | |||
Alias_ | Yeah right, like you can encode the electrosmell communication of the low gravity gassbag cows of Zeta 14 in your primitive visual encoding medium | 09:16 | |
autrijus | say, would you prefer "AV.fetch" or "IArray.fetch" ? | 09:17 | |
I wonder whether I should call them AV/HV/SV/CV/GV | |||
or IArray/IHash/IScalar/ICode/IHandle | |||
Alias_ | I prefer the legible version | 09:18 | |
autrijus | I'll make it so then | 09:19 | |
Alias_ | How anyone manages to learn XS given those horrible names is a mystery to me | ||
Corion | Alias_: It's an acquired taste I think :) | 09:32 | |
... but then, I hack on XS like I hack on Pugs, except that XS gives me more segfaults. | 09:34 | ||
autrijus | IType first cut landed | 09:43 | |
dinner & | |||
10:24
castaway_ is now known as castaway
|
|||
shapr | hiya Ovid | 10:46 | |
Ovid | Hi there. | ||
theorbtwo | Allo, Ovid. | ||
shapr | Ovid: I think you're right about Rob. I continued the discussion in private email and the conclusion was the same. | ||
Ovid | It's kind of sad. He seems really bright, but he has some blocks. | 10:47 | |
castaway waves at Ovidius. | |||
Ovid | Though I confess that was a little harsh with him. | ||
Hi castaway. | |||
shapr | From later discussions with him, I think you weren't harsh. | 10:48 | |
castaway | (and the rest) | ||
rindolf | Hi all! | 10:49 | |
shapr | hiya shlomi | ||
rindolf | Can anyone explain to me what Perl 6 Class Roles are? | ||
shapr: hi. | |||
shapr goes unicycling | |||
elmex | interfaces? | ||
rindolf | elmex: you mean like interfaces in Java. | 10:50 | |
rindolf opens the latest Apocalypse | |||
elmex | rindolf: no | ||
castaway | its the "can do" relationship.. | ||
elmex | rindolf: like interfaces in Perl6 | ||
castaway | (iirc) | ||
metaperl | rindolf, chromatic's CPAN module has some good links on Role-based oop | 10:51 | |
Ovid | I have to confess, when I read through his "extremeperl" web site, I had a few good laughs. My favorite was when he wrote "Do the simplest thing that could possibly work (DTSTTCPW) means you implement the first idea that comes to mind." | 10:52 | |
metaperl | the idea is to separate a superclass's roles as instance factory and re-use mechanism | ||
no, that makes sense to me Ovid | |||
castaway | Hmm, no, thats just the simplest thing that occurs to you at the time.. ,) | ||
metaperl | just dive in... top-down | ||
Ovid | rindolf: read Class::Traits and you'll understand. | ||
metaperl: it makes no sense because it's wrong. | 10:53 | ||
castaway | I often do that, and come back later with a better view of the project, and redo parts that suddenly make sense another way | ||
osfameron_ | the simplest thing that could possibly work isn't always the most obvious | ||
metaperl | pastebot? | ||
paste? | |||
osfameron_ | for example, I saw the example of implement fn sqr() | ||
for value 0 or 1, the simplest thing that would work is to return the input unchanged | |||
it's only from 2+ that your tests fail and you'd have | 10:54 | ||
to actually implement input*input | |||
Ovid | Actually, the first thing that occurs to me when I face a problem is often something quite complex that covers various contigencies. I have to remind myself to keep things simple. | ||
rindolf | Ovid: not Class::Roles ? | ||
metaperl | Ovid, do you mind critiquing a question of mine to the template toolkit list? Here it is: rafb.net/paste/results/CXwCjP91.html | ||
castaway | indeed, Ovid | ||
Ovid | No. Trying to remember, but "traits" was a term already used in Perl6, so they had to be renamed roles. | ||
metaperl: first, a confession: I came home a bit tipsy, so I'm tipsy now. However, your question seems somewhat reasonable, but as far as I know, TT is not going to handle a stream. | 10:56 | ||
metaperl | I hope to God it does... no... it needs to create a stream of XML output... Mason can do it... | 10:57 | |
I realydont want to use Mason | |||
Corion | Ovid: Being drunk on irc is common courtesy | ||
Ovid | I've not tried to use TT that way. | ||
Corion: yeah, I figured this wasn't too unusual :) | 10:58 | ||
metaperl: I don't blame you. I know Mason, but I prefer TT myself. | |||
metaperl | Bricolage is written Mason right? | 10:59 | |
Ovid, do you telelcommute to work at Kineticode? Arent you in AZ and isn't David Wheeler in San Francisco? | |||
Ovid | No. Mason is merely one of the "burners" Bricolage can write to. We have a TT output channel, too. And actually, I live in Portland and -- by an odd coincidence -- David a few blocks away. | 11:00 | |
Correction, we have a TT "burner", too. | 11:01 | ||
Bleh. My grammar sucks right now. | |||
metaperl | Ovid, you know we have a CGI::Prototype mailing list? with GMANE feed | 11:03 | |
Ovid | Nope. I just unsubscribed to a couple of lists because I'm on too many as is. | 11:04 | |
metaperl | hey you live in the same town as merlyn? wow | 11:05 | |
wonder they haven't renamed in Randalville | 11:06 | ||
Ovid | Yeah. And just to up the ante, my roommate is Schwern :) | ||
theorbtwo | Ah, but you are the most famous of them: Ovid, world-renowned crime-fighter. | 11:07 | |
Ovid | They're better at Perl, though. That pays more in the long run. | ||
metaperl | Ovid, are you serious? Are you a college student? and Schwern is too? | 11:08 | |
Ovid | Nope. Not a college student. Neither is Schwern. | ||
metaperl | you mean Schwern works at Kineticode too? | 11:09 | |
Ovid | No. He's just my roommate. | ||
Corion | metaperl: When two men share a room, it's not always that they work together. | ||
castaway | (or do other things ,) | 11:10 | |
Corion | castaway: Whatever your dirty imagination suggests ;) | ||
castaway attempts to look innocent. | 11:11 | ||
Ovid, YAPC? | |||
Ovid | No, no. It's a two-bedroom apartment :) | ||
Corion | Hmmm. Should Perl6 have eigenstates() ? How else do I get at all the instances of a junction? | 11:12 | |
Ovid | castaway: Schwern might go. I've got a tight schedule with my 20 year high school reunion and I'm debating if I should go. | ||
theorbtwo | IIRC, .states, something like that. | ||
Corion | theorbtwo: Ah | ||
(except that object methods aren't in yet :) ) | 11:13 | ||
I'm thinking of creating a nice "real world" example by doing the "expand 1-10 to 1,2,3,4...,10" thing with junctions | |||
That is, parse a glob spec into junctions, and then output the eigenstates of the junctions. | 11:14 | ||
& # shopping | 11:15 | ||
metaperl | www.metaperl.com/talks/p6-fp-slurpy/ | 11:31 | |
"Slurpy Sub Parms, Multi Subs and Perl 6 Functional Programming" --- my upcoming Perl Mongers presentation | |||
metaperl hits the sack | 11:36 | ||
kbrooks | hey | 12:03 | |
:) | |||
stevan | autrijus: I refacted out another hack in CGI,.. to use the s:perl5:g//{}/ | 13:08 | |
kbrooks | wtf | ||
stevan | autrijus: I also looked at kv.t last night,.. you were talking about Pairs doing the [[a, 1]] stuff right? because it looked like hashes were coded correctly | ||
pugscode.org <<Overview Journal Logs>> | You have safely opened the door to many Perl 6 hackers. | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X r1682 (281/4184) | Win2k r1678 (287/4185) | 13:36 | ||
autrijus | yo! | 13:59 | |
stevan: I refactored your refactoring | |||
it now reads | |||
$encoded ~~ s:perl5:g/([^-.\w ])/\%$dec2hex(ord($1))/; | |||
which imho is even more readable :) | |||
hrm, junction states is .values | 14:00 | ||
not .states | |||
autrijus backlogeth | |||
castaway | afternoon autrijus | 14:01 | |
theorbtwo | Mornin, autrijus. | ||
autrijus | heya castaway. | 14:02 | |
masak | hello autrijus | ||
autrijus | I wonder if anyone will want reduce() implemented. | ||
autrijus is still hacking on the IType stuff... looking good | |||
Corion: $junction.values works now iirc | |||
theorbtwo | Oh, 6 hours later. Evenin', autrijus. Afternoon, Corion. | ||
Corion | autrijus: Yay! :) | ||
castaway | you were going to give theorbtwo a hand | ||
theorbtwo | Who was? | ||
Corion | Me ? | ||
theorbtwo | And with what? | ||
castaway pints at autrijus | 14:03 | ||
Corion | (I wouldn't know what and how) | ||
but junction.values() working means I can/have to rework some of my tests! | |||
Yay! :) | |||
BTW, I haven't seen any "licensing" issue discussed here, but I assume all stuff is dual-licensed, corresponding to the dual nature of Pugs/P6, right? Or at least BSD licensed - I don't care about any other license :) | 14:04 | ||
autrijus | so far yes. | ||
it's either Artistic2/GPL, or BSD. | |||
theorbtwo | It's dual Artistic/GPL. | ||
autrijus | and Artistic2 is compatible with Artistic1 as far as I understand | 14:05 | |
theorbtwo | It's the top half of README. | ||
Corion | That's cool (all my code is BSD-licensed anyway, and I assume that all contributors to Perl handle it the same) | ||
castaway read that as "top shelf" ;) | |||
Corion | theorbtwo: Bah - who reads the README anyway? :)) | ||
castaway | people who want to know such things | ||
autrijus | but with theorbtwo's work, we may or may not include hs-plugins which is LGPL. | ||
theorbtwo , apparently. | |||
castaway | oh! my ghc compile finished! | ||
autrijus | but I think it's safer to list it as an optional external dependency. | ||
castaway | (it only took about 8 hours | ||
autrijus | (esp. before its building problems are resolved for more platforms) | 14:06 | |
Corion | autrijus: Ah, LGPL is OK too, or rather, OK for the moment. I saw what I think is a delayed April Fools' joke on /. regarding the GPLv3 that requires all GPL users to pay money to Stallman | ||
autrijus | oh. we explicitly use GPLv2. | ||
none of the "or above" clause. | |||
so v3 will not apply. | |||
Corion | autrijus++ | 14:07 | |
autrijus | =) | ||
Corion | (it would kill all secret use of open source software at my place for sure) | ||
autrijus | I can see the use of that. | 14:08 | |
but I don't see it suitable to Pugs. | |||
theorbtwo | There's more stupid GPL3 reporting on /. today, BTW. | ||
I'm not sure how much is /. distorting and how much is the FSF being stupid, though. | |||
autrijus | both at MAXINT. | 14:09 | |
theorbtwo | Quite possibly. | ||
autrijus | oh btw, can someone check if asavige's slice test on p6c is made into t/? | ||
Corion | theorbtwo: I still think it's an April Fools Joke, either 8 days late or 357 days early. | ||
autrijus | I'm going to check in IType tonight, so the more tests for corner cases, the better | ||
Corion | But I can see how it irks Stallman to see companies profiting from GPL software. | 14:10 | |
autrijus | (basically it's a rewrite of most things in AST.hs) | ||
Odin-LAP | Uh. Is the GPLv3 out, or..? | ||
autrijus praises a certain strong typing system for making complete rewrites trivial | |||
Corion | Odin-LAP: No, only stupid FUD discussion of it on slashdot, News For Nerds, News that have reported elsewhere already. | ||
Odin-LAP | (Slashdot, of course, is plain stupid.) | ||
Aight. | |||
autrijus | in concrete terms, it means that %ENV{FOO} = 'bar' will Actually Work. | 14:11 | |
Corion | autrijus++ # %ENV<FOO> = 'bar' | ||
castaway slaps gentoo. (the subversion package cant be found by searching for "svn") | |||
Corion | autrijus: now or tomorrow? | ||
autrijus | <FOO>. right. | ||
Corion: tonight :) | |||
autrijus is still haxx0ring | |||
Corion | autrijus: "tonight" by you means in the next 8 hours, correct? | ||
autrijus | 5 hours, more likely | ||
as it is past 10pm here | |||
Corion should get XWorld or something like that, and combine it with an irc plugin so he has an easy overview over where everybody is :) | 14:12 | ||
(together with, say, GeoIP :) | |||
theorbtwo | Corion: Steal code from desert-island.dynodns.net/perl/pmplanet.pl | ||
You might want to change the projection, though, considering the sort of audiance we get around here. | 14:13 | ||
Corion | theorbtwo: Yes :) It'll still need to be "fed" (via http requests?) from chatzilla and/or a bot I have to write, and I'd like the display to use OpenGL, but other than that, that's already it :) | ||
#perl6 is All Pugs, All The Time. :) | |||
theorbtwo | I'm not sure opengl is quite applicable. | 14:14 | |
Corion | BTW, I think I have worked out (on paper) how I'd like coroutines to behave, both in implementation and in syntax. But I need to do some sample code to see how well it works out :) | ||
theorbtwo: How not? I've done OpenGL from Perl (5 though) | 14:15 | ||
castaway slaps the CNN voice over person "King & Queen are just departing .. " stupid man | |||
theorbtwo | To render to a PNG or JPEG? | ||
Corion | theorbtwo: Ah, I just want it on my desktop :) | 14:16 | |
theorbtwo | Oh. | ||
xplanet is still good for you -- it uses GL when it renders to a display. | |||
theorbtwo ponders again integrating pmplanet with google maps somehow. | |||
Hm, possibly make the name a link to the homenode on the LHS and google maps on the RHS. | 14:19 | ||
theorbtwo ponders making a graphviz graph of the british royal family and donating it to wikipedia. | 14:20 | ||
Corion | Hmm. $_.states() doesn't seem to work, or maybe I'm doing it wrong. | 14:23 | |
autrijus | .values | ||
not .states | |||
Corion | D'oh | 14:24 | |
theorbtwo | Corion: Don't put too much trust in my memory of details. | ||
Corion | And say($junction) doesn't quote the juncted stuff, if it's a string :) | ||
theorbtwo can't detail what he ate for dinner. | |||
Corion | $_.values() gives me pugs: Cannot cast into VSub: VList [] | 14:25 | |
autrijus | quote? | ||
pugs> say(any(1,2,3).values) | |||
123 | |||
oh bah. parsefail | |||
fixing | |||
(.values different from .values()) | |||
Corion | say(any('-foo', '-e1')) gives unquoted strings | 14:26 | |
autrijus | why should it quote? | ||
am I missing something/ | |||
? | |||
Corion | autrijus: D'oh - I was thinking like Data::Dumper, where I should have been thinking like print $/; | 14:27 | |
... I should shut up and code instead | 14:28 | ||
autark-jp | my $b = any(1..10).values(); $b[9] | ||
what kind of variable is $b? | |||
autrijus | data dumper is .perl | 14:29 | |
autark-jp: it is currently a variable holding a list | 14:30 | ||
it will soon become a Scalar variable holding a reference to an array. | |||
or rather, Array. | |||
autark-jp | ah | 14:32 | |
Corion | Bah. my @examples = map { $_ } (@ex); # doesn't work | ||
for @ex -> $e { push @examples, $e; }; # works | |||
autrijus | right. that's a known parsefail. | ||
you want either | |||
my @exa = @ex.map:{$_} | |||
or | |||
my @exa = map {$_}, @ex; | 14:33 | ||
sorry for the inconvenience. | |||
Corion | Oh. And joined junctions seem to need recursive unwrapping - is that by design ? pugs -e "my @e=map{$_.values()},(any<a b>~','~any<c d>); say +@e" # gives 2 ?instead of? 4 | 14:37 | |
autrijus | say((any<a b>) ~ (any<c d>)) | 14:39 | |
is 4 values | |||
I know | 14:40 | ||
any<a b>~',' | |||
is parsed as | |||
any(<a b>~',') | |||
which is I think correct. | |||
so you need to be less cute and use | |||
any(<a b>) | |||
metaperl | oooooooooooooooooooooooooooooooooos | 14:51 | |
theorbtwo | That's some very open source. | ||
metaperl | lol | 14:52 | |
it's very odd | |||
my laptop keyboard sticks on the o key when the machine comes out of sleep and on reboot | |||
theorbtwo | odd. | ||
metaperl | all the time... and I dont put down the monitor on the keypad (no physical pressure whatsoever) | ||
autrijus | yay! | 14:53 | |
metaperl | here are the slides to my upcoming perl mongers talk on p6 slurpy list parms: www.metaperl.com/talks/p6-fp-slurpy/ | ||
autrijus | * `map { ... } @list` now correctly parsed. | ||
r1687, enjoy. | |||
theorbtwo | Cool, autrijus. | ||
autrijus | metaperl: "When are slurpy list parameters useful?" | 14:54 | |
Corion | autrijus: Gah. Just when I commit my changed tests, you make me update them again ? :)))) | ||
autrijus | metaperl: "everybody in perl65 uses a slurpy *@_" | ||
Corion: that's called Progress | |||
cognominal | pugs> print ord '\n' | ||
92bool::true | |||
autrijus | s/perl65/perl5/ | ||
cognominal | this is odd | ||
autrijus | Corion: not so; it prints 92, then returns true | ||
cognominal | or do I miss something? | ||
autrijus | err | ||
s/corion/cogniminal/ | |||
Corion | \\ has the ord 92 | ||
:) | |||
autrijus | right. | 14:55 | |
pugs> ord "\n" | |||
10 | |||
metaperl | well, that wont be the way to use it in p6.... | ||
autrijus | so it seems that you are saying | ||
"When are slurpy _scalar_ parameters useful?" | |||
in which case I largely agree. | |||
cognominal | oops. thx. I deal with too many languages. I am terminally confused | 14:56 | |
metaperl | ah.... ok | ||
autrijus | I wonder which language allows you to write '\n' :) | ||
Corion refrains from running perl -i.bak -pe "s!(?<map\{.*?}),!!" :) | |||
autrijus | why not? :D | ||
theorbtwo | '\n' would work in C, and probably Haskell. | ||
Odin-LAP | Single quotes don't interpolate in Perl, of course. | 14:57 | |
theorbtwo | (Of course, it's not the same as "\n" in either of those languages.) | ||
Odin-LAP | Which is the problem here. :D | ||
autrijus | oh. right. | ||
Corion | autrijus: Because I think that other (test) authors should do it themselves, to see what new features are available. | 14:58 | |
:) | |||
Hmm. Maybe I should still be evil :) | |||
ninereasons | autrijus, didn't I read somewhere that `map { ... } @list` will now be written as `map { ... }, @list` #(comma) ? | 15:09 | |
autrijus | ninereasons: no. | ||
map 123, @list; | |||
will now be written as | |||
map {123} @list | 15:10 | ||
or | |||
map {123}, @list; | |||
ninereasons | ah.. | ||
autrijus | i.e. autothunking is verboten | ||
but the comma is still optional after block | |||
theorbtwo | s/still/now/, I think. | ||
ninereasons | that was it. | ||
autrijus | theorbtwo: well, in perl5 it is optional. | 15:11 | |
as long as you have & in your prototype. | |||
theorbtwo | No, in perl 5 there are two forms of map, one with a comma, one without. | ||
In perl 6, there is one form, with an optional comma. | |||
autrijus | you are correct. | ||
hrm. | |||
map -> $x { $x } 1,2,3; | |||
this is okay (and works in pugs) | |||
what about a proper sub? | 15:12 | ||
map sub ($x) { $x } 1,2,3; | |||
ninereasons | that last one is very perlish looking | ||
theorbtwo | map wasn't fully unified with other functions with a prototype beginning &. | ||
autrijus | it now works but should it? | ||
i.e. should commaless blocks extend to subs? | |||
theorbtwo | AFAIK, sub ($x) {$x} should work everwhere -> $x {$x} does. | ||
autrijus | or just pointy and bare? | ||
alright. I'll keep it so. | |||
cognominal | pugs> loop { print "."; } | 15:13 | |
pugs: src/Eval.hs:292:12-41: Irrefutable pattern failed for pattern [pre, cond, post, body] | |||
autrijus | ooh irrefutable. | 15:14 | |
autrijus fixes | |||
theorbtwo | .oO(I've got your irrefutable /right here/! To the moon, baby, to the moon!) |
||
cognominal needs to learn svk or subversion. so far he has pulled plugs using wget -np -mk | 15:15 | ||
castaway | plugs? ;) | ||
cognominal | pugs! | ||
Corion | cognominal: :) svn up svn.openfoundry.org/pugs | ||
theorbtwo | plugs is something else (under CVS, not SVK). | 15:16 | |
Corion | Or whatever the first incantation is. Possibly svn co svn.openfoundry.org/pugs/ ~/pugs/ | ||
cognominal | I hope by the end of the we, I will have a pentomino solver coded in perl6 | ||
theorbtwo | svn co svn.openfoundry.org/pugs/ | ||
cognominal | pentoninos are my hello world. | ||
Odin-LAP | Will put it in a directory pugs/ under the current one, IIRC? | 15:17 | |
theorbtwo | Correct, Odin. | ||
cognominal | even won a TPJ obfuscation contest with a pentomino solver | ||
theorbtwo wonders what the LAP is for. | |||
Odin-LAP | Laptop. | ||
theorbtwo | Ah. | ||
castaway | original. | ||
Odin-LAP | castaway: So very, don't you think? ;p | 15:18 | |
autrijus | cognominal: loop{...} fixed. thx | ||
cognominal | can you give me direction on how to understand Parser.hs. I am familiar with Parse::Yapp and Parse::RecDescent | 15:19 | |
autrijus | sure | 15:20 | |
read www.cs.uu.nl/~daan/parsec.html | |||
download that 2.0 | |||
read the examples in it | |||
cognominal | btw I am reading about monads right now | 15:21 | |
thx | |||
autrijus | you don't quite need to grok monads to use parsec. | ||
metaperl | actually the examples are flawed | ||
autrijus | parsec is da bomb :) | ||
metaperl | they import Parsec | ||
but for ghc you need to import Text.Parser.Combinators or something like that | |||
cognominal | so you adpated parsec for pugs? | 15:22 | |
metaperl | I emailed daan about that and he said he would look at it but he pointed me to the fact that the examples are part of GHC as well | ||
autrijus | part of GHC srcdist. | ||
metaperl | no, Parsec ships with GHC. and Pugs is written using GHC | ||
autrijus | not part of GHC bindist | ||
cognominal | I see a mention in Rule.hs | ||
autrijus | yes, I adapted parsec for pugs. | ||
mainly to add things that p6 needs but parsec does not have in Expr | |||
as well as prepare for making it into Eval monad. | |||
i.e. evaluating-while-parsing | 15:23 | ||
or, in fancier term | |||
cognominal | I like very much that the eval of pugs does not close of my lexicals | ||
autrijus | generating-parrot-assembly-and-loading-them-while-parsing | ||
cognominal | I always hated perldb for that | ||
metaperl | oh, you did? adapted or adopted? oh you _did_ adapt it | ||
autrijus | thank lightstep for that. | ||
cognominal | I even wrote an RGC | ||
I mean a RFC | |||
autrijus | he tweaked the evaluator | 15:24 | |
I think I can derive a continuation instance from that | |||
so the next line picks up the last line's continuation | |||
including the lexical pad etc. | |||
bbiab :) | 15:25 | ||
metaperl | do any of you know of any low-cost hosting solutions | 16:17 | |
elmex | are continuations fast? | 16:19 | |
metaperl | elmex, you might get more feedback on #haskell | 16:20 | |
elmex | thats not a haskell thingie ;) thats a generic thing i guess | 16:21 | |
metaperl | more people know about continuations there than here | ||
elmex | ;) | 16:22 | |
but what is perl going to do with them? | 16:23 | ||
s/erl/erl 6/ | |||
Corion | elmex: Write interesting webservers, for example, and cooperative multithreading | 16:25 | |
Hah. +10 unexpected successes. Whatever magic autrijus did :) Time to promote some tests it seems ;) | 16:26 | ||
elmex | muha | 16:31 | |
Corion | Oh. The +10 unexpected successes are due to me botching a test :( | 16:34 | |
autrijus | rehi. | 17:01 | |
continuation is basically a pointer modification and a goto. | 17:02 | ||
so, extremely fast. | |||
ninereasons | autrijus, did you note from the logs that "say $_" doesn't quite work, yet? | 17:05 | |
autrijus | no. | ||
ninereasons | "say" # implicit $_, rather | ||
autrijus | how so? | ||
pugs> $_ = 3; say | |||
3 | |||
ninereasons | see t/var/default_scalar.t | ||
autrijus | oh. yeah. | 17:06 | |
ninereasons | I wonder whether `for @arr { say "$^f $^b" } will turn out to be more popular than `for @arr -> $f,$b { say "$f $b"}` | 17:08 | |
metaperl | ninereasons: that first expression confuses me | 17:10 | |
what are the "^"s doing? | |||
rgs | implicit parameter binding | ||
ninereasons | they are sort of like autovivified scalars | ||
rgs | like $a and $b in perl 5's sort | 17:11 | |
metaperl | are you slurping the elements of @arr in by 2s? | ||
ninereasons | yes | ||
it's almost identical to the second one | |||
"almost" | |||
metaperl | could you slurp by 3s by adding anther $^variable? | ||
which SYNOPSIS discusses this? | |||
ninereasons | but you'll end up with an error, if the array is "even" | 17:12 | |
metaperl | Perl5 has most of Perl 6 in modules with better edge cases | ||
List::MOreUtils::natatime() does that | |||
and handles uneven amounts gracefully | |||
ninereasons | so, perhaps pugs should too | 17:13 | |
? | |||
metaperl goes sunbathing | 17:14 | ||
too cold for sunbathing, back in I go! | 17:19 | ||
autrijus | IType added. | 17:21 | |
now, do I commit or not | |||
autrijus "make test" just to make sure | |||
cognominal | pugs> for qw( 1 2 3 ) { next if $_ == 2; print $_; } | 17:26 | |
*** Error: No compatible subroutine found: &if | |||
at App "&if" (App "&infix:==" (Var "$_", | |||
2)) | |||
I think this is correct perl6 | 17:27 | ||
autrijus | it is. nullary parsing is borken. | ||
need to write next() | |||
cognominal | ok for me | 17:28 | |
ninereasons | my @z = ( [ 'a1', 'a2' ], [ 'b1', 'b2', 'b3' ]); | ||
my %a = map { @^foo[0] => @^foo } @z ; | |||
cool | |||
{'a1' => ('a1', 'a2'), 'b1' => ('b1', 'b2', 'b3')} | 17:29 | ||
autrijus | I've done ITypes refactoring | ||
but not the casts between them | |||
hence, 100% of the tests are broken. | |||
I wonder if I should commit ;) | 17:30 | ||
autrijus ponders deliberately killing the tree | |||
obra | heh | ||
is this before or after 6.2.0? | |||
autrijus | this is JustInTime for 6.2.0. | ||
basically to get the reference / container / tieable semantic Just Right. | |||
we were using a rubyish "everything is a scalar" semantic | 17:31 | ||
turns out to not cut it. | |||
obra | heh | ||
autrijus | so I went back and emulated fulle perltie. | ||
oh well. guess I'll local branch. | 17:32 | ||
obra | server branch? | ||
or are speculative branches "bad" in pugsland? | |||
autrijus | not seeing a point... it'll be completed tomorrow anyway | ||
it is good for long-term stuff, which this is noe | |||
s/noe/not/ | |||
obra was wondering if it would get completed overnight if it was on the server ;) | |||
eep! I almost autrijused my laptop with a full cup of iced latte | 17:33 | ||
autrijus | eep! | ||
mmm decisions decisions | |||
nah. local branch it is. | 17:34 | ||
# autrijus.org/tmp/itype.patch -- full patch in case anyone want to take a peek | |||
cognominal | arf. I wrote =~ insteand of ~~ | 17:35 | |
wonders what =~ means in perl6 | |||
ninereasons | whatever you want it to mean, I think | ||
autrijus | pugs> $_ =~ 4; $_ | ||
'4' | |||
(parsed as = and ~) | 17:36 | ||
ninereasons | "scalar context" | ||
? | |||
autrijus | "string context" | ||
cognominal | boy, my brain is a mishmash of ocaml, perl5, perl6 and haskell with some sml good mesure | 17:37 | |
ninereasons | sounds like a tasty mishmash | ||
autrijus | clearly you need some Curry too | ||
cognominal | tasty but mishmash nevertheless | ||
does pugs arlready support currying? | 17:38 | ||
autrijus | sure does. | ||
.assuming | |||
hrm. a "tie" primitive is now trivial. | 17:39 | ||
what does larry say about tie again? | |||
cognominal | boy, I am making a presentation titled "experimental perl6" in two weeks. I could almost $title ~~ s/experimental// | ||
autrijus | "But Perl 6 variables are tied directly at declaration time, and for performance reasons may not be tied with a run-time "tie" statement unless the variable is explicitly declared with an implementation type that does the "Tieable" role." | 17:40 | |
english speakers: does this "may not be" mean it is against the spec to make all vars tieable? | |||
ninereasons | sigh. larry sometimes ties my brain in a knot | ||
obra | |||
Appending "is SomeType" to a variable or parameter is the Perl 6 equivalent of Perl 5's | |||
"tie" mechanism, except that the tying is part of the declaration. For example: | |||
Corion | (not an english speaker): Yes. "May not" means "it is not allowed/possible". | 17:41 | |
autrijus | obra: right, that's compile time tie | ||
obra | ah | ||
autrijus | alright then. not big loss. I'll just implement "is Tieable" too. | ||
;) | |||
autrijus loves runtime tie()ing. | |||
obra would love a version of tie that's a pass-through by default | 17:43 | ||
autrijus | what's the good thing about that? | ||
obra | it's more like attach | ||
autrijus | oh. hooks. | ||
yeah. that makes sense. | |||
obra | so. think about the filehandle tieing issue we were talking about for H::S::Recorder | ||
yeah | |||
autrijus | although it's done in p5 already as Tie::Handle | 17:44 | |
Tie::Array etc | |||
just subclass it and throw things to SUPER | |||
cognominal | sub japh (Str $lang) { say "just another $lang hacker"; } perl6Japh() # soooo cool | ||
oops | |||
autrijus waits for a version that actually runs :) | |||
obra | huh. | ||
cognominal | sub japh (Str $lang) { say "just another $lang hacker"; }; &perl6Japh := &japh.assuming("Perl6"); perl6Japh() | 17:45 | |
Ovid | autrijus: has anyone started pleac yet? | ||
autrijus | Ovid: no. want to take a stab? | ||
cognominal: nice! | 17:46 | ||
Ovid | Yeah. I already have a directory structure fleshed out and two example programs. I've commented out the examples that cause pugs to fail. I was going to add a README and then ask if I could check it in. | ||
autrijus | the final () is redundant | ||
Ovid: go ahead and check in under examples/pleac/ | |||
Ovid | How handy. That's where I put it :) | ||
Corion | Ovid: Consider adding your examples to t/pugsrun/*-uppercase-c.t , so they get checked if they still compile :) | 17:48 | |
Ovid | Oh, I'll take a look at that. | 17:49 | |
I'll have to do that later, though. I have to run for a couple of hours and I want to get this commit out the door. | |||
Done. I've got to run. See ya, folks! | 17:55 | ||
autrijus | thanks ovid! | 17:57 | |
ninereasons | what is 'pleac' ? | 18:07 | |
autrijus | pleac.sf.net | ||
see readme | |||
ninereasons | thanks. (making note to regularly review readmes) | 18:08 | |
mjh | is the intention with pleac to port them into whatever the simplest perl6 is that pugs can currently run, or whatever the perl6 spec allows? | 18:11 | |
autrijus | mjh: the former | 18:12 | |
mjh | cool :) | ||
autrijus | but feel free to do the latter too | ||
and mark them with # comments | |||
that's what Ovid did | |||
and I think that's fine. | |||
mjh takes a look at ovid's commit | |||
ninereasons | that would be an interesting structure for a test suite ; | 18:16 | |
instant appeal to perl5 people | |||
mjh | (how much does svn.perl.org/perl6/pugs lag behind svn.openfoundry.org/pugs, out of interest?) | 18:23 | |
autrijus | oops. syncer restarted | 18:24 | |
mjh | lol | ||
autrijus | they are supposed to be synced per minute. | ||
mjh nods. | |||
ninereasons | it's weird to have different subversion version numbers from mirrored sources. is it still like that? | ||
autrijus | yeah. can't quite help | 18:25 | |
openfoundry is the master repos. | |||
svn.perl.org is mainly just for redundancy and backup | |||
ninereasons | it doesn't matter much, because openfoundry is fast | 18:26 | |
autrijus | good to hear that. | ||
ninereasons | but I wondered why svn wasn't used to synch the to repositories. can't that be done? | ||
autrijus | mm? | 18:27 | |
we sync them using svk and SVN::Mirror | |||
ninereasons | s/to/two/ | ||
autrijus | it's svn underneath | ||
we can arguably put a per-commit hook on openfoundry side | |||
to automagically push to svn.perl.org | |||
but ENOTUITS | |||
obra | ninereasons: the issue is that svn version numbers are per repository, not globally unique, no? | 18:30 | |
ninereasons | I guess so. | ||
obra | and for that, someone needs to come up with some very clever new numbering system | ||
ninereasons | yes | ||
obra | or svk needs to be able to tag a copy as "r1234@master" when the copy is made. which it can sort of do now, but only in the commit log | 18:31 | |
autrijus | it's also in the revprop. | 18:32 | |
it's just not displayed. | |||
mjh | svk's a smarter alternative client to the svn client, right? | ||
ninereasons | a perlish svn ? | 18:33 | |
autrijus | right. | ||
mjh | (or does it also use a different server, but backed with the svn db format?) | ||
autrijus | it's a client to svn, but also to cvs and p4 | ||
hcchien | a client but not only for svn | ||
autrijus | it's a bitkeeper-ish VCS. | ||
mjh | very cool | 18:34 | |
obra | svk uses svn as a substrate, but also can read from p4, bk, cvs, svn and write to svn | ||
autrijus | :) I owe much of my productivity on Pugs to svk. | ||
ninereasons | How will we say __DATA__ in perl 6 ? | 18:36 | |
#" (Frees up the = twigil for %= POD doc structures and old __DATA__ stream, ... " | |||
autrijus | =for DATA | ||
=begin DATA | |||
=begin END | |||
ninereasons | =end DATA ? | ||
autrijus | I thought it's endless | ||
not sure. | |||
ninereasons | having an end would make for some interesting self-parsing possibilities, I would think | 18:37 | |
autrijus | sure. | ||
Corion | DATA is endless | 18:39 | |
(IMO) | |||
The Perl parser just stops reading the file. | |||
seek DATA, 0, 0 gets you your source code | 18:40 | ||
ninereasons | is the end optional, or illegal? | ||
Corion | ninereasons: You will end up with a line "=end DATA" in your $DATA filehandle :) | ||
theorbtwo | I thought the =beginning of the END was forever, but the =beginning of the DATA was stoppable. | ||
(I thought that was one reason for changing the syntax.) | |||
(Note the "I thought" -- I do not have a great memory for such things.) | 18:42 | ||
ninereasons | so DATA and END will continue to be synonyms, unless theorbtwo's memory serves? | ||
I never much liked saying <DATA> to read __END__ | 18:43 | ||
autrijus | journal up. | 18:45 | |
see you tomorrow. :-) *wave* & | |||
ninereasons | big day, looking forward to reading your journ | ||
theorbtwo | Oh. See you tommorow. | 18:46 | |
Corion | Oh. One of the t/statements/given tests unexpectedly succeeds! | 18:47 | |
theorbtwo wonders who "jmm" in the list of people going to YAPC::NA is. | |||
Corion | theorbtwo: J McMahon? | 18:48 | |
(that's the only one that immediately springs to mind) | |||
(with these initials, I mean, to my mind) | |||
theorbtwo | Oh, that's possible. | ||
theorbtwo has those initials, but I'm listed sepperately. | |||
James Michael Mastros. | 18:49 | ||
Corion | theorbtwo: Ah - I didn't connect you with those, weirdly enough :) | 18:50 | |
mjh grabs some toast and looks more closely at pleac | 19:18 | ||
how many of pugs' tests should fail (roughly) at make test? | 19:40 | ||
(on svn head) | |||
castaway | none? | ||
mjh | guess i have a problem with my ghc, then | ||
theorbtwo | mjh, it's normal for about 5% failure. | ||
If you look at the end of the /topic, you'll see mildly up-to-date numbers. | 19:41 | ||
(Don't confuse the newbies, love.) | |||
Odin-LAP | Isn't that the chief source of entertainment for "old-timers"? | 19:42 | |
castaway | well, none of the *should* fail, but some do | ||
:) | |||
mjh | theorbtwo: ah, okay; thanks :) | ||
castaway isnt old! | |||
Odin-LAP | Hm. Compared to me, you most likely are. >:) | ||
But I wasn't referring to age. :p | 19:43 | ||
castaway shudders at the thought | |||
neither was I ;) | |||
I'm just a useless lurker | |||
theorbtwo | Aww, you aren't useless, love. | ||
Odin-LAP | Ah, but that's irrelevant. You've been here a while, haven't you? ;> | 19:44 | |
castaway | I dunno | ||
castaway is mostly stalking | |||
castaway huggles theorbtwo. | |||
castaway declares self moral officer ,) | |||
mjh | hrm ;) | 19:45 | |
Odin-LAP hands theorbtwo an assault rifle and several crates of ammunition ... "for self-defense". | |||
castaway | heh | 19:46 | |
Odin-LAP | But then again, this is a perl channel. It's not like there's a lot of sanity around. | 19:47 | |
mjh goes to order takeaway whilst waiting for the remainder of the tests to pass^wfail | 19:49 | ||
ninereasons | "makes hard things possible" | 19:58 | |
pugs> my @z = (['timers',1..3],['factor','a'.. 'c']) ; | |||
pugs> my %hash = map -> @a { @a[0] => @a[1..Inf] } @z; | |||
pugs> %hash<factor>[0][0] # ('a') | 19:59 | ||
pugs> %hash.perl | |||
'((\'factor\' => (\'a\', \'b\', \'c\')), (\'timers\' => (1, 2, 3)))' | |||
it is so cool to be able to do that so easily | 20:00 | ||
it's been years since I've had so much fun with perl (and I've only been in perl for a few years). | 20:08 | ||
%committers{'all'}++ && say $bye | 20:09 | ||
castaway | ;) | 20:10 | |
Corion_ | %committers<all> :) | 20:13 | |
Juerd | That's @committers>>++ | ||
cognominal | btw , what is the shortest way to iterate on a 2 dimensional array? | 20:20 | |
Corion_ | Are there any objections against me using the "-P" command line option to make it the big brother of "-p" ? It would become "while ($_ = =<>) { ...; say }". Or should "-p" use say() ? | 20:24 | |
(if -p uses say(), we need chomping on the input. Otherwise, pugs -pe1 is not cat anymore) | |||
theorbtwo | I'd say -p should autochomp and say, but you might want to ask p6l. | 20:28 | |
I was under the impression that autochomping was the norm. | |||
Corion_ | theorbtwo: Ah - I'll go with your impression then :) | ||
Ovid | So, in working on the Perl6 Cookbook (examples/pleac), I'm coming across plenty of cases where Pugs isn't quite working, yet. Should I add those to the tests? How is this being managed? | 20:33 | |
Corion_ | Ovid: If they are hard parsefails, put them below pugsbugs, otherwise write (maybe todo_) tests for the features and put them where appropriate. Also, keep an eye on the roadmap as to when features are supposed to appear :) | ||
Ovid | OK. Thanks Corion. | 20:35 | |
What about things that aren't causing the parse to fail, but throw an error and halt the program? I don't want to prevent the rests of the tests from running, do I? | |||
Corion_ | Ovid: I write my tests into their own (smallish) separate test files | 20:36 | |
theorbtwo | I think that's a good idea, myself. | ||
Corion_ commits autochomping for -p and -n (and "say" for -p) | 20:41 | ||
20:47
Corion_ is now known as Corion
|
|||
Corion | brb | 20:47 | |
Win32 Pugs segfaults on pugs -e "say NaN**NaN == NaN" - I suspect a memory overflow or something, as it takes about 5 seconds before the program gets terminated | 20:52 | ||
... it doesn't segfault on pugs -e "my$a= NaN**NaN == NaN"; but does so on pugs -e "my$a= NaN**NaN == NaN; say $a" | 20:54 | ||
elmex | this async { } stuff is a thread? or a coroutine? | ||
Corion | elmex: A userspace thread | ||
elmex | uhg | ||
Corion | ... but can be an OS thread too. | ||
elmex | Corion: is that p6 spec? or will that be a coroutine? | 20:55 | |
Corion | elmex: But relatively safe. Calls to external routines, or system() block all threads. | ||
elmex: We simply stole what Haskell offers. The test is under t/unspecced, because it is. | |||
theorbtwo | Corion -- I get a segfault on just pugs -e 'say NaN**NaN' | 20:56 | |
elmex | well, will async {} always create a thread? or will that be a coroutine in future/ | ||
Corion | theorbtwo: Yes, me too | ||
elmex | ? | ||
Corion | elmex: Dunno. Read the specs, if there are any. | ||
theorbtwo | Corion: under linux, so it's not win32-specific. make a test? | ||
Corion | theorbtwo: Yep, I was about to name it "win32", but now it'll just go, hmm - under Pugsbugs ? Or Haskellbugs ? | 20:57 | |
I suspect it's a problem in GHC (but wouldn't know how to check that) | |||
theorbtwo sighs, wonders WTF to do with this hs-plugins problem. | |||
elmex | who wrote examples/network/http-server.p6 ? | 20:59 | |
Corion | elmex: Dunno. Look in the committer log or his journal. Maybe autrijus did | 21:00 | |
theorbtwo | Hm, from the GHCI prompt, (0/0)**(0/0) works (and quickly). | ||
svn blame shows everything being by autrijus r1431. | |||
elmex | where are specs that define what async does?? | 21:01 | |
theorbtwo | Yep, svn log agrees. | ||
elmex | or is async just a hack? | ||
Corion | elmex: I consider it a simple yet convenient hack. Something like it will go into Perl6. | 21:02 | |
elmex | you mean creating threads with async {} ? | 21:03 | |
i would more like async {} to be more like Coro ;) | 21:04 | ||
Corion | elmex: I don't know if you will get threads, or some other method of quasi-parallel, asynchronous execution, but I expect something like this will be available. See also Coro.pm. | ||
Ovid | OK, I confess that I'm not much of an OS guy, so I have a stupid question: if a Perl6 program begins with #!perl6 and I do ./program, I get a "perl6: bad interpreter: No such file or directory", even though I can run it with "perl6 program". How can I run programs with ./program_name? | 21:06 | |
castaway | "perl6" not "pugs" ? | 21:07 | |
theorbtwo | #! needs to be a full path. | ||
Ovid | Yeah, there are plenty of programs out there that begin with perl6. I thought it was odd, but I tried to stick with the convention I was seeing. | ||
theorbtwo | Yeah, the existing convention is pretty meaningless. | 21:08 | |
Ovid | theorbtwo: I was trying not to use a full path because I have /usr/local/bin/perl6 and others have /usr/bin/perl6 | ||
theorbtwo | Try #!/usr/bin/evn perl6 | ||
Ovid | Hrmph. I suppose I can just make a link. | ||
theorbtwo | But most people don't have either. | ||
Ovid | Thanks. I'll change the shebang lines in the Cookbook, then. | 21:12 | |
theorbtwo | Sorry, that's env, not evn. | ||
Corion | The offending, segfaulting tests now get skip()ped, and another test has been added under t/pugsbugs that contains the segfault. | 21:15 | |
... this is still annoying for Win32 users, but such is life | 21:16 | ||
Hmmm. Haskell resp. while($_ = =<>) { ... } doesn't handle eof() gracefully: pugs: <stdin>: hGetLine: end of file - no END blocks run no nothing. Should this go under pugsbugs ? | 21:29 | ||
Ovid | Question: I know there's got to be an easier way to find out if elements in one array aren't in another. I have this: | 21:31 | |
for @a -> $elem { | |||
@aonly.push $elem if $elem == none(@b); | |||
} | |||
Juerd | Ovid: Parens around first $elem are needed | 21:34 | |
Ovid: And you probably want ~~ if @a contains both numbers and strings (and regexes) | |||
(etcetera) | 21:35 | ||
Ovid | Juerd: the parens aren't required. The code works. | 21:36 | |
Juerd | Then that's different from the spec | ||
(IMHO, not requiring parens is saner) | 21:37 | ||
theorbtwo | Mine too, but IIRC there was some potential for ambiguity with no-parens. | ||
Juerd | push @aonly, grep { $_ == none(@b) }, @a; # nostalgia | 21:38 | |
And if @aonly starts empty: | |||
@aonly = gather { | 21:39 | ||
for @a -> $elem { | |||
take $elem if $elem == none(@b); | |||
} | |||
} | |||
:) | |||
In fact... | |||
@aonly = gather { | |||
$_ !~ none(@b) and take for @a; | 21:40 | ||
} | |||
revdiablo | ooh, gather. that's sexy. | ||
Juerd | eh, s/!~/==/ | ||
@aonly = gather { for (@a) { take when $_ == none(@b) } } | |||
Juerd wants some syntax to apply $_ ~~ :) | 21:41 | ||
As with //, where $_ ~~ is also implicit... | |||
perhaps prefix ~~... | |||
theorbtwo | Prefix ~~ is already somewhat taken, though I'm not sure why somebody would want to stringify the stringification of something. | 21:42 | |
Juerd | theorbtwo: That reasoning leads to not having preinc. | 21:43 | |
And since we have preinc, we can also have ~~. | |||
As + is for numbers what ~ is for strings | |||
theorbtwo | Point. | ||
Ovid | Gotta run! Thanks for the pointers, Juerd. :) | 21:45 | |
theorbtwo | G'night, all. | 22:13 | |
mjh | Failed 51/197 test scripts, 74.11% okay. 289/4219 subtests failed, 93.15% okay. | 22:14 | |
i guess that's par for the course at the moment, then :) | |||
Corion | elmex: Look at &?CALLER_CONTINUATION also, for basic coroutine/continuation handling | 22:15 | |
pugscode.org <<Overview Journal Logs>> | You have safely opened the door to many Perl 6 hackers. | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X r1682 (281/4184) | Win2k r1700 (288/4223) | 22:15 | ||
Corion | A short question - &?CALLER_CONTINUATION gives me the context of the caller. How can I store my current context so I can pick up there again without cooperation of the calling sub? | 22:16 | |
... that is, if I do @handlers = &?CALLER_CONTINUATION; ...; for @handlers -> $c { &c->(); xxx }; # how can I get to "xxx" if $c is within a loop and never returns, but calls another subroutine that I know (let's call it get_line()) ? | 22:19 | ||
... in get_line, I'd like to do &dispatch.goto(); but not to the start, but where I last left my state before switching. | 22:20 | ||
Anyway - I'll sleep over that :) | |||
stevan | alright,.. finally 'make optimized' worked for me (OS X) | 22:53 | |
if anyone is having issues with readline.h and readline.c when doing make optimized on OS X,.. install this wxhaskell.sourceforge.net/download/...ine4.3.dmg | 22:54 |