Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-11-04

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 leo ?eval say bool::true
00:01 evalbot_7830 1 bool::true
00:02 cognominal_ ?eval say 'ok' if 0 but bool::true;
00:02 evalbot_7830 Error: cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode)
00:02 larsen has quit IRC ("later")
00:03 leo ?eval say 'ok' if (0 but bool::true)
00:03 evalbot_7830 Error: cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode)
00:04 leo looks like uniplemented
00:05 evalbot_7830 has quit IRC (Remote closed the connection)
00:05 svnbot6 r7831 | autrijus++ | * change "&c.also(&d)" to "&c.retry_with(&d)" because "also" sounds like doing both, not taking an alternative
00:06 evalbot_7831 has joined #perl6
00:06 cognominal_ I like very much of piggy backing a value of a type different from the base value. It goes very well with concept of context.
00:06 Khisanth why not just .retry()?
00:06 cognominal_ although I am not sure how it will work with objects.
00:08 cognominal_ I mean when the piggy back object is derived from the other one or the other way around
00:13 leo ?eval 0 but bool::true
00:13 evalbot_7831 Error: cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode)
00:18 clkao chip: you goty our keyword thingy sorted?
00:20 leo 22:42 <+svnbot6> r9764 | chip++ | trunk:
00:20 leo 22:42 <+svnbot6> : Update pod svn attributes again, to make them consistent.
00:20 leo seems so (hi clkao )
00:22 clkao hi leo ;)
00:23 justatheory has quit IRC ()
00:23 * leo is just a bit lurkin' here
00:24 chip clkao: yeah, It's OK now.  I am curious how to arrange that .pod files automaticaly have native line endings and a particular list of keyword expansions
00:28 clkao you can set autoprop in ±?.subversion/config to add eol:style=native and others
00:28 clkao gr, pesky british keboard
00:40 justatheory has joined #perl6
00:44 Limbic_Region has joined #perl6
00:53 justatheory has quit IRC ()
00:54 stevan_ has joined #perl6
00:55 justatheory has joined #perl6
00:56 justatheory has quit IRC (Client Quit)
00:57 justatheory has joined #perl6
00:57 justatheory has quit IRC (Client Quit)
01:05 joepurl has joined #perl6
01:05 stevan has quit IRC (Read error: 110 (Connection timed out))
01:12 Limbic_Region has quit IRC (Read error: 110 (Connection timed out))
01:12 justatheory has joined #perl6
01:16 brother_ has joined #perl6
01:22 luqui has joined #perl6
01:28 brother has quit IRC (Read error: 110 (Connection timed out))
01:45 rashakil has joined #perl6
01:51 justatheory has quit IRC ()
01:51 justatheory has joined #perl6
01:52 justatheory has quit IRC (Client Quit)
02:13 stevan_ is now known as stevan
02:13 xinming has quit IRC (Read error: 104 (Connection reset by peer))
02:25 justatheory has joined #perl6
02:25 stevan_ has joined #perl6
02:34 stevan has quit IRC (Read error: 110 (Connection timed out))
02:41 rashakil has quit IRC ("Leaving")
03:11 qwr has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 rafl_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 Lopo has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 meppl has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 Southen has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 stevan_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 justatheory has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 SamB has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 tewk has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 saorge has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 fanf2 has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 gaal has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 sili has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 comet_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 robkinyon has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 skugg has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 pjcj has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 beppu has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 venk has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 featherpaste has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 spinclad has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 pasteling has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 luqui has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 brother_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 dduncan has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 aufrank has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 revdiablo has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 sky__ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 webmind has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 svnbot6 has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 jiing has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 jabbot has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 LCamel has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 QtPlatypus has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 cookys has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 ingy has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 joepurl has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 Khisanth has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 lisppaste3 has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 ruz has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 sahadev has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 kakos has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 knewt has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 cognominal has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 scw has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 geoffb has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 xern has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 ajs_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 clkao has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 typester has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 drbean has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 j0sephi has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 evalbot_7831 has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 dbrock has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 gugod has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 jp-autark has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 twobitsprite has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 wilx` has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 tcliou has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 wolverian has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 Jooon has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 mugwump has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 Juerd has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 hcchien has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 sri_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 locksy has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 smith100 has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 ycheng has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 rep has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 coral has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 integral has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 obra has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:11 buu has quit IRC ("leaving")
03:11 brentp has quit IRC (Success)
03:12 kgftr|konobi has quit IRC (Read error: 104 (Connection reset by peer))
03:18 f0rth has quit IRC (Read error: 101 (Network is unreachable))
03:28 qwr has joined #perl6
03:28 rafl_ has joined #perl6
03:28 rafl_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:28 qwr has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:29 qwr has joined #perl6
03:29 rafl_ has joined #perl6
03:29 qwr has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:29 rafl_ has quit IRC (kornbluth.freenode.net irc.freenode.net)
03:41 buubot has quit IRC (Read error: 104 (Connection reset by peer))
03:41 nothingmuch has quit IRC (Read error: 104 (Connection reset by peer))
03:41 broquaint has quit IRC (Read error: 104 (Connection reset by peer))
03:41 autrijus has quit IRC (Read error: 104 (Connection reset by peer))
03:41 PerlJam has quit IRC (Read error: 104 (Connection reset by peer))
03:42 chip has quit IRC (Read error: 113 (No route to host))
03:42 leo has quit IRC (Read error: 104 (Connection reset by peer))
03:42 orafu has quit IRC (Nick collision)
03:42 dvtoo has quit IRC (Nick collision)
03:42 Gruber has quit IRC (Nick collision)
03:42 nothingmuch has joined #perl6
03:42 buubot has joined #perl6
03:42 obra has joined #perl6
03:42 integral has joined #perl6
03:42 coral has joined #perl6
03:42 rep has joined #perl6
03:42 ycheng has joined #perl6
03:42 smith100 has joined #perl6
03:42 locksy has joined #perl6
03:42 sri_ has joined #perl6
03:42 hcchien has joined #perl6
03:42 Juerd has joined #perl6
03:42 mugwump has joined #perl6
03:42 Jooon has joined #perl6
03:42 wolverian has joined #perl6
03:42 tcliou has joined #perl6
03:42 wilx` has joined #perl6
03:42 j0sephi has joined #perl6
03:42 twobitsprite has joined #perl6
03:42 jp-autark has joined #perl6
03:42 gugod has joined #perl6
03:42 dbrock has joined #perl6
03:42 evalbot_7831 has joined #perl6
03:42 orafu has joined #perl6
03:42 dvtoo has joined #perl6
03:42 f0rth has joined #perl6
03:42 leo has joined #perl6
03:42 Gruber has joined #perl6
03:42 PerlJam has joined #perl6
03:42 broquaint has joined #perl6
03:42 Lopo has joined #perl6
03:42 meppl has joined #perl6
03:42 clkao has joined #perl6
03:42 typester has joined #perl6
03:42 ingy has joined #perl6
03:42 drbean has joined #perl6
03:42 ajs_ has joined #perl6
03:42 cookys has joined #perl6
03:42 LCamel has joined #perl6
03:42 QtPlatypus has joined #perl6
03:42 pasteling has joined #perl6
03:42 featherpaste has joined #perl6
03:42 spinclad has joined #perl6
03:42 venk has joined #perl6
03:42 jabbot has joined #perl6
03:42 xern has joined #perl6
03:42 geoffb has joined #perl6
03:42 beppu has joined #perl6
03:42 scw has joined #perl6
03:42 jiing has joined #perl6
03:42 cognominal has joined #perl6
03:42 svnbot6 has joined #perl6
03:42 webmind has joined #perl6
03:42 pjcj has joined #perl6
03:42 knewt has joined #perl6
03:42 sky__ has joined #perl6
03:42 skugg has joined #perl6
03:42 robkinyon has joined #perl6
03:42 kakos has joined #perl6
03:42 comet_ has joined #perl6
03:42 sili has joined #perl6
03:42 sahadev has joined #perl6
03:42 Southen has joined #perl6
03:42 revdiablo has joined #perl6
03:42 ruz has joined #perl6
03:42 gaal has joined #perl6
03:42 fanf2 has joined #perl6
03:42 saorge has joined #perl6
03:42 aufrank has joined #perl6
03:42 tewk has joined #perl6
03:42 dduncan has joined #perl6
03:42 SamB has joined #perl6
03:42 lisppaste3 has joined #perl6
03:42 Khisanth has joined #perl6
03:42 joepurl has joined #perl6
03:42 brother_ has joined #perl6
03:42 luqui has joined #perl6
03:42 justatheory has joined #perl6
03:42 stevan_ has joined #perl6
03:42 buu has joined #perl6
03:42 brentp has joined #perl6
03:42 kgftr|konobi has joined #perl6
03:42 qwr has joined #perl6
03:42 rafl_ has joined #perl6
03:42 f0rth has quit IRC (Remote closed the connection)
03:42 f0rth has joined #perl6
03:44 kcwu has quit IRC (Connection timed out)
03:44 autrijus has joined #perl6
03:46 chip has joined #perl6
03:49 f0rth has quit IRC (Read error: 104 (Connection reset by peer))
07:45 ilogger starts logging #perl6 at Fri Nov 04 07:45:43 2005
07:45 ilogger has joined #perl6
07:51 dada has joined #perl6
08:33 coral has quit IRC ("&")
08:53 liz6 has joined #perl6
09:25 azuroth has joined #perl6
09:25 saorge has quit IRC ("Leaving")
09:26 azuroth has left
09:54 rafl_ r0nny: IRC isn't synchronous. Just say what you want to say and highlight me. I'll answer when I come to it.
09:55 autrijus liz6: ping
10:01 liz6 pong
10:02 autrijus liz6: a SEE session coming up in see://perlcabal.org/ over S22
10:02 autrijus do you have SubEthaEdit installed?
10:08 liz6 i do now
10:08 autrijus cool, a sec, let me set up connection
10:10 r0nny_ has joined #perl6
10:26 r0nny has quit IRC (Read error: 110 (Connection timed out))
10:30 joepurl has quit IRC (Read error: 110 (Connection timed out))
10:33 hlen has joined #perl6
11:00 webmind does anyone know how quickly the pugs debian package in unstable is updated, or if there is a daily package available somewhere ?
11:06 nnunley has joined #perl6
11:24 joepurl has joined #perl6
11:33 Juerd webmind: rafl probably knows.
11:38 dduncan has quit IRC ()
11:48 webmind then I'll wait when he's back
11:48 svnbot6 r7832 | autrijus++ | * random S22 SEE notes - need far better organization and wordings
11:48 xinming has joined #perl6
11:52 evalbot_7831 has quit IRC (Remote closed the connection)
11:52 evalbot_7832 has joined #perl6
12:13 liz6 has quit IRC ("User disconnected")
12:16 Juerd webmind: Highlight him
12:17 rafl_ webmind: I'm here.
12:18 rafl_ webmind: I'll do daily builds soon. I first want to upload parrot 0.3.1 (6.11) and compile the pugs in unstable with parrot embedding.
12:18 rafl_ webmind: After that I'll upload snapshots to experimental more often.
12:35 iblechbot has joined #perl6
12:35 webmind rafl_, cool thanks :)
12:36 rafl_ webmind: Also interested in Debian development? A Co-Maintainer would be fine.
12:36 webmind rafl_, hat kind of work would that require ?
12:36 webmind +w
12:37 rafl_ webmind: Preparing new packages, snapshots for example.
12:37 rafl_ webmind: pugs is already in a state where making debian packages isn't a big problem, so updates are the main work that needs to be done.
12:38 webmind daily work would be a bit tricky with my schedule.. once a week would be fine though.. dunno if that fits
12:38 * rafl_ changes rooms, brb.
12:38 webmind also not much experience with debian packages.. but if that all is fine, sure :)
12:39 scook0 has quit IRC ("Leaving")
12:46 rafl_ webmind: Indeed. Simply prepare a package from the current svn tree when you have time. I'll check and upload it afterwards.
12:46 rafl_ And add yourself to the Uploaders field in debian/control.
12:47 webmind rafl_, hmk, I'll try and find a machine for that then
12:47 rafl_ webmind: There's feather for example.
12:47 webmind ah yes
12:48 theorbtwo has joined #perl6
12:48 webmind I'll take a look on sunday for this
12:48 webmind currently working
12:50 rafl_ Great!
12:51 elmex has joined #perl6
13:02 Limbic_Region has joined #perl6
13:05 theorbtwo G'morning, Limbic.
13:08 Limbic_Region salutations theorbtwo
13:08 Limbic_Region just going through my morning routine of PerlMonks catchup, use.perl catchup, cnn catchup, etc
13:09 kolibrie has joined #perl6
13:21 larsen has joined #perl6
13:40 rafl_ Does someone know other german pugs developers then iblech?
13:40 rafl_ We want to organize the next german perl workshop and want to invite some pugs and parrot hackers.
13:41 leo oops /me thinks that I should submit a paper
13:41 rafl_ That's good, indeed!
14:00 r0nny_ re
14:01 r0nny_ rafl_: ping? svk? *plzbefast - in 15 min i need to go away 30 min*
14:02 rafl_ I'm in a lecture.
14:02 r0nny_ oh
14:02 r0nny_ today i had a short day - only one of them
14:03 r0nny_ i wish i had a laptop for the lectures
14:03 rafl_ Where do you study?
14:06 r0nny_ fh schmalkalden - germany
14:10 r0nny_ well - neet to go now
14:10 r0nny_ biaw
14:23 elmex has quit IRC ("uni")
14:46 r0nny_ re
14:46 r0nny_ rafl_: ping again?
14:47 rafl_ r0nny_: Highlight me and write what you want. No need to ping me a thousand times.
14:47 r0nny_ ok
14:48 r0nny_ did u get a svk mirror up ?
14:48 rafl_ No.
14:48 rafl_ I'll notify you as soon as I did it.
14:48 r0nny_ then i will try to create one new
14:50 r0nny_ btw - i got a idea for a nice sixpan directoy structure
14:51 r0nny_ package-based instead of author based
15:02 justatheory has joined #perl6
15:19 SamB has joined #perl6
15:24 justatheory has quit IRC ()
15:25 justatheory has joined #perl6
15:25 justatheory has quit IRC (Client Quit)
15:29 Eimi has joined #perl6
15:30 lisppaste3 has quit IRC ("Want lisppaste3 in your channel? Email chandler AT unmutual.info.")
15:30 lisppaste3 has joined #perl6
15:37 aufrank good time of day, all!
15:38 aufrank (morning here)
15:38 kolibrie aufrank: good $time_of_day, to you, too
15:44 xinming ?eval sub haha { $?SUB.say }; haha;
15:44 evalbot_7832 Error: Undeclared variable: "$?SUB"
15:45 kolibrie ?eval sub haha { $?SUBNAME.say }; haha;
15:45 kolibrie ?eval sub haha { $?SUBNAME.say }; haha;
15:45 evalbot_7832 &main::haha bool::true
15:46 justatheory has joined #perl6
15:48 masak has joined #perl6
15:50 lollan has joined #perl6
15:58 Eimi is now known as yawn
15:58 yawn is now known as Eimi
16:05 justatheory has quit IRC ()
16:05 justatheory has joined #perl6
16:05 justatheory has quit IRC (Client Quit)
16:06 elmex has joined #perl6
16:11 aufrank ?eval role A { has $.a } class B does A {} B.new(a => "hi").a
16:11 evalbot_7832 \"hi"
16:13 Khisanth hmm roles are like Java interfaces except they have actual implementations that can be inherited?
16:14 aufrank ?eval role A { has $.a } class B does A {} method C ( $b does A ) { say $b.a } $o = B.new( a => "hi" ); C( $o )
16:14 evalbot_7832 Error: Undeclared variable: "$o"
16:15 aufrank ?eval role A { has $.a } class B does A {} method C ( $b does A ) { say $b.a } my $o = B.new( a => "hi" ); C( $o )
16:15 evalbot_7832 Error: No compatible subroutine found: "&C"
16:15 aufrank ?eval role A { has $.a } class B does A {} my $o = B.new( a => "hi" ); $o does A;
16:15 evalbot_7832 Error: Unknown syntactic construct: Syn "does" [Var "$o",Var ":A"]
16:15 dada has quit IRC ("0xDEADBEEF")
16:16 aufrank Khisanth: that's one view out there right now
16:16 aufrank the term "interfaces with defaults" was used on p6l recently
16:16 aufrank either by Luke or Stevan, I think
16:17 aufrank ?eval role A { has $.a } class B does A {} my $o = B.new( a => "hi" ); if ( $o does A ) { say $o.a }
16:17 evalbot_7832 Error: Unknown syntactic construct: Syn "does" [Var "$o",Var ":A"]
16:18 aufrank ?eval role A { has $.a } class B does A {} my $o = B.new( a => "hi" ); if ( defined $o.a ) { say $o.a }
16:18 evalbot_7832 hi bool::true
16:18 xern_ has joined #perl6
16:42 perlover has joined #perl6
16:42 perlover is there a pug shell?
16:42 kolibrie yes
16:42 PerlJam perlover: yes.  Type "pugs" at your prompt after you've built it
16:42 perlover ok..
16:43 perlover how long does it take to install in general via CPAN shell?
16:43 PerlJam dunno, I've been building from the subversion repository.
16:43 Khisanth how fast is your computer? :)
16:43 perlover 2.8GHz
16:44 PerlJam perlover: pugs takes a while to build unless you build unoptimized.
16:44 perlover It's been running almost 30 minutes
16:44 justatheory has joined #perl6
16:44 PerlJam perlover: no, I take that back ... pugs just takes a while to build  :)
16:44 Khisanth PerlJam: hmm actuall make unoptimized just fails here
16:44 Khisanth and takes a long time
16:45 justatheory has quit IRC (Client Quit)
16:45 perlover so you are saying via CPAN shell it contains unoptimized build
16:45 perlover ?
16:45 justatheory has joined #perl6
16:45 justatheory has quit IRC (Client Quit)
16:46 PerlJam Khisanth: How does it fail?
16:46 PerlJam perlover: no, I'm saying that pugs takes a while to build.
16:46 PerlJam perlover: a *long* while in some cases.
16:46 perlover oh ok..
16:46 Khisanth hrm that was in the log somewhere in here
16:47 perlover is there a "Beginners Perl" free online book equivalent for "Pugs"?
16:47 PerlJam no.
16:47 perlover hmm
16:47 Khisanth not very practical
16:48 perlover what's the good resource to learn the syntax?
16:48 PerlJam Read the Synopses
16:49 aufrank watch what people type into the evalbot ;)
16:49 aufrank ?eval say "hello world"
16:49 evalbot_7832 hello world bool::true
16:49 aufrank see, that was chapter one of the book!
16:51 aufrank there are also some pointers in docs/quickref/
16:51 aufrank in the pugs distribution
16:51 aufrank and code in examples/
16:51 perlover aufrank how do you invoke the docs quickref?
16:52 aufrank if you installed using cpan
16:52 aufrank it is at
16:53 Khisanth PerlJam: would have to rebuild pugs ... and that takes quite a while as well as preventing me from doing pretty much anything on this computer while it's doing that :/
16:53 aufrank whoops
16:54 * perlover still waiting for aufrank :-)
16:55 aufrank try .cpan/build/Perl6-Pugs-6.2.10/docs
16:55 aufrank wherever your cpan keeps its build history
16:56 perlover is that a command line aufrank?
16:56 aufrank but you can also check the repository online
16:56 aufrank http://svn.openfoundry.org/pugs
16:56 aufrank no, that would not be a command
16:57 perlover manually go to the directory?
16:57 aufrank my cpan keeps its build files in a directory call .cpan in my home directory
16:57 justatheory has joined #perl6
16:57 aufrank so I would do something like
16:57 * perlover was thinking in line of "perldoc" for pugs
16:57 lollan has quit IRC (Read error: 104 (Connection reset by peer))
16:58 QtPlatypus perlover: There are people working on it, but its nowhere near usable yet
16:58 aufrank http://svn.openfoundry.org/pugs/docs/
16:58 aufrank http://svn.openfoundry.org/pugs/examples
16:59 * perlover looking at it
16:59 elmex has quit IRC ("leaving")
17:05 perlover got it aufrank
17:05 aufrank enjoy!
17:10 xern has quit IRC ("Lost terminal")
17:12 perlover from quickref:
17:12 perlover for @foo.kv -> $index, $value { ... }
17:12 perlover why ".kv" ??
17:12 perlover what's the meaning of that?
17:12 perlover key value?
17:13 wolverian yes.
17:13 perlover but an array with key and value???
17:13 perlover for %hash.kv -> $key, $value { ... } this seems to make sense to me...
17:14 wolverian you can think of an array as a hash with integer keys.
17:15 perlover I see I see
17:15 justatheory has quit IRC (Connection timed out)
17:16 perlover why we need that since we already can do $foo[$index] ?
17:16 wolverian why do we need perl since we already have assembly?
17:16 wolverian (it's more convenient.)
17:17 theorbtwo Because it's often useful to iterate over both the indeces and the values at once?
17:17 wolverian theorbtwo, indices
17:17 wolverian (sorry :)
17:17 perlover I see
17:17 perlover that's really great..
17:17 theorbtwo How often do you find youself doing for (0..$#foo) {my $v = $foo[$_]; ... }?
17:17 theorbtwo I do it all the time.
17:17 theorbtwo Thanks, wolverian.
17:17 perlover me too
17:17 perlover all the time
17:18 perlover how would you do it with @foo.kv?
17:18 perlover for @foo.kv->$index,$value { dostth($index,$value); } ??
17:18 QtPlatypus ?eval my @array = <<a b c d f>>; @array.kv
17:18 evalbot_7832 (0, "a", 1, "b", 2, "c", 3, "d", 4, "f")
17:19 * perlover pugs testing with CPAN shell is taking too long...
17:20 theorbtwo If you use debian testing or unstable, just apt-get install pugs.
17:22 * xinming prefers compile pugs himself
17:22 xinming s/compile/compiling/
17:23 * perlover with  Mdk 10.1
17:24 xinming on debian, compiling pugs isn't that hard since GHC 6.4 is in testing.
17:25 xinming perlover: If you do a full installation of Mandriva. You might be able to compile pugs too. :-P
17:25 perlover really??
17:25 perlover it comes with Mandriva package?
17:26 aufrank ?eval role A { has $.a } class B does A { ... } method C ( A $obj ) { say $obj.a } my $o = B.new( a => "hi" ); C( $o );
17:26 evalbot_7832 *** ... - not yet implemented     at <eval> line 1, column 37-41
17:26 aufrank ?eval role A { has $.a } class B does A {} method C ( A $obj ) { say $obj.a } my $o = B.new( a => "hi" ); C( $o );
17:26 evalbot_7832 Error: No compatible subroutine found: "&C"
17:27 aufrank ?eval role A { has $.a } class B does A {} sub C ( A $obj ) { say $obj.a } my $o = B.new( a => "hi" ); C( $o );
17:27 evalbot_7832 hi bool::true
17:27 rafl_ xinming: And because there are already pugs packages available ;-)
17:27 aufrank I can use a role as a type in a signature?
17:27 * aufrank needs to look at Stevan's diagrams again
17:28 aufrank ?eval role A { has $.a } class B {} sub C ( A $obj ) { say $obj.a } my $o = B.new( a => "hi" ); C( $o );
17:28 evalbot_7832 Error: No compatible subroutine found: "&a"
17:30 aufrank ?eval role A { has $.a } class B does A {} sub ( $obj ) { if $obj does A { say $obj.a }} my $o = B.new( a => "hi" ); C( $o );
17:30 evalbot_7832 Error:  unexpected "i" expecting ";", statements or "}" reserved word
17:31 aufrank ?eval role A { has $.a } class B does A {} sub C ( $obj ) { if ($obj does A) { say $obj.a }} my $o = B.new( a => "hi" ); C( $o );
17:31 evalbot_7832 Error: Unknown syntactic construct: Syn "does" [Var "$obj",Var ":A"]
17:31 aufrank ?eval role A { has $.a } class B does A {} sub C ( $obj ) { if (A $obj) { say $obj.a }} my $o = B.new( a => "hi" ); C( $o );
17:31 evalbot_7832 Error:  unexpected "i" expecting ";", statements or "}" reserved word
17:32 aufrank ok, I'll stop torturing the bot
17:32 aufrank how do I condition on role-doing?
17:33 aufrank something like if ( $obj does Role) { ... }
17:33 PerlJam aufrank: good question!
17:33 PerlJam If perl is smart enough you may have given the answer.
17:34 theorbtwo I think that's $obj->can(::Role)
17:35 wolverian $obj.does(Role)
17:35 wolverian $obj ~~ Role
17:35 aufrank ?eval role A { has $.a } class B does A {} sub C ( $obj ) { if ($obj can A) { say $obj.a }} my $o = B.new( a => "hi" ); C( $o );
17:35 evalbot_7832 Error:  unexpected "i" expecting ";", statements or "}" reserved word
17:35 perlbot has joined #perl6
17:36 aufrank ?eval role A { has $.a } class B does A {} sub C ( $obj ) { if ($obj can (::A)) { say $obj.a }} my $o = B.new( a => "hi" ); C( $o );
17:36 evalbot_7832 Error:  unexpected "i" expecting ";", statements or "}" reserved word
17:36 perlover has quit IRC ("Leaving")
17:36 aufrank bah
17:36 aufrank I'm doing something wrong
17:38 integral ?eval class A; "foo"
17:38 evalbot_7832 "foo"
17:38 integral ?eval class A {} "foo"
17:38 aufrank ?eval role A { has $.a }    class B does a {}    sub C ( $obj.does(A) ) { say $obj.a}    my $o = B.new( a => "hi" );    C( $o );
17:38 evalbot_7832 "foo"
17:38 evalbot_7832 Error:  unexpected "." expecting word character, "?", "!", trait, "=", "-->", ",", ":" or ")"
17:39 aufrank wolverian: are you catching whatever my error is?  I think I've tried can, does (::A), and .does(A)
17:39 nothingmuch stevan_: i'm waiting....
17:39 stevan_ nothingmuch is by far,.. the coolest perl hacker in the whole world
17:39 * stevan_ stevan
17:39 wolverian ?eval "a".does(Str)
17:39 nothingmuch =)
17:39 stevan_ bah
17:39 evalbot_7832 bool::true
17:39 stevan_ is now known as stevan
17:40 wolverian aufrank, 'class B does A'
17:40 stevan ?eval my $nothingmuch = bool::true; $nothingmuch ? "is cool" : "is not cool";
17:40 evalbot_7832 Error:  unexpected "?" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
17:40 stevan bah
17:40 wolverian stevan, ?? !!
17:40 stevan ?eval my $nothingmuch = bool::true; $nothingmuch ?? "is cool" !! "is not cool";
17:40 evalbot_7832 "is cool"
17:40 wolverian aufrank, anyway, I don't think pugs has roles yet
17:40 aufrank oh
17:40 nothingmuch =
17:40 stevan nothingmuch: even evalbot_7832 things so
17:40 nothingmuch =)
17:40 aufrank that explains part of it ;)
17:40 stevan nothingmuch:  evalbot_7833 may not , but we will have to see
17:41 aufrank do people think if ( $obj does Role) {} should be an okay syntax?
17:41 * xinming wonders if there is a way to overloading the ',' operator...
17:41 stevan aufrank: for what?
17:41 aufrank or is it if ( $obj can Role ) ?
17:41 aufrank conditioning on role-doing
17:41 nothingmuch aufrank: if ( $obj ~~ Role ) { }
17:41 wolverian aufrank, $obj does Role adds the Role to $obj at runtime
17:41 aufrank what if I like does for readability :(
17:41 nothingmuch read out loud: if object matches Role
17:41 wolverian aufrank, you want $obj.does(Role) or ~~
17:41 aufrank ok
17:41 aufrank thanks
17:42 nothingmuch if you use ~~ a few times you'll think "wow, damn readable" =)
17:42 aufrank is can related to $object.does ?
17:42 nothingmuch can is per method
17:42 nothingmuch does is per role
17:42 wolverian never use .can
17:42 nothingmuch isa is per class
17:42 nothingmuch wolverian: how come?
17:42 wolverian larry says you shouldn't. :)
17:42 nothingmuch can I have a link to that?
17:42 nothingmuch (is it to encourage roles?)
17:43 wolverian er.
17:43 wolverian nevermind me
17:43 wolverian I confused .can with .isa
17:43 Limbic_Region . o O ( $Little.Debbie does Dallas )
17:43 aufrank is there a reason that in a signature a role works as a type constraint but in as a conditional it doesn't?
17:43 wolverian I am _way_ too tired.
17:43 xinming hmm, is there a way to overload the , operator? :-P
17:43 * Limbic_Region stands in a corner
17:44 wolverian aufrank, it does?
17:44 nothingmuch aufrank: explain?
17:44 stevan wolverian: I think you also might have confused chromatic with Larry :)
17:44 fglock has joined #perl6
17:44 stevan fglock!!
17:45 fglock hi stevan!
17:45 aufrank ?eval role A { has $.a }    class B does A {}    sub C ( A $obj ) { say $obj.a }    my $o = B.new( a => "hi" );    C( $o );
17:45 evalbot_7832 hi bool::true
17:45 fglock I'm in YAPC::SaoPaulo
17:45 stevan fglock: very nice
17:46 wolverian stevan, probably :)
17:46 aufrank ?eval role A { has $.a }    class B does A {}    sub C ( $obj ) { if ( A $obj) { say $obj.a}  }    my $o = B.new( a => "hi" );    C( $o );
17:46 evalbot_7832 Error:  unexpected "i" expecting ";", statements or "}" reserved word
17:46 aufrank maybe I'm bad at writing conditionals
17:46 aufrank but it looked like sub (A $obj) {} worked like I expected, but if (A $obj) {} did not
17:47 aufrank where A was the role
17:49 nothingmuch fsck
17:49 aufrank bad disk, nothingmuch ?
17:53 gysmo has joined #perl6
17:55 Odin-LAP has joined #perl6
17:58 liz6 has joined #perl6
17:58 aufrank wolverian and nothingmuch, did I explain myself clearly?
17:58 fglock ?eval 1 == 1|2
17:58 evalbot_7832 bool::false
18:05 xinming ?eval any(1, 2) == 1
18:05 evalbot_7832 bool::false
18:06 Khisanth broken junctions?
18:06 xinming my @a = 1|2; any(*@a) == 1;
18:06 xinming ?eval my @a = 1|2; any(*@a) == 1;
18:06 evalbot_7832 bool::false
18:07 Khisanth HMM
18:08 Khisanth ?eval say "MOOOOO" if 1|2 == 1
18:08 evalbot_7832 MOOOOO bool::true
18:09 xinming ?eval my @a = (1,2); any(*@a) == 1;
18:09 evalbot_7832 bool::false
18:09 Khisanth 1|2 == 1 seems to magically turn into (1|2==1).pick
18:09 Khisanth err with the evalbot
18:10 Khisanth since the shell gives (bool::false | bool::true)
18:10 xinming Khisanth: what does the sub pick do?
18:10 xinming randomly pick one?
18:16 Khisanth for actually returns a value?
18:17 Khisanth ah just some weirdness with the shell
18:20 fglock has left
18:22 whiteg has quit IRC (Read error: 104 (Connection reset by peer))
18:23 nnunley has quit IRC (Read error: 110 (Connection timed out))
18:23 gysmo has left
18:23 whiteg has joined #perl6
18:26 evalbot_7832 has quit IRC (Remote closed the connection)
18:26 svnbot6 r7833 | stevan++ | Perl6::ObjectSpace
18:26 svnbot6 r7833 | stevan++ | * more refactoring of the Bootstrap
18:26 svnbot6 r7833 | stevan++ |     - added more tests as well
18:26 svnbot6 r7833 | stevan++ | * added &not to bit
18:26 svnbot6 r7833 | stevan++ | * added Util directory for misc. stuff
18:26 svnbot6 r7833 | stevan++ |    - put S Expression Parser in there
18:26 svnbot6 r7833 | stevan++ |        - with tests
18:26 evalbot_7833 has joined #perl6
18:27 theorbtwo Sounds nifty, stevan.
18:29 stevan theorbtwo: nothingmuch has promised to help write an Attribute Grammer to do codegen of the s-expression version
18:29 stevan he tells me that using AG will make it much more maintainable and flexible :)
18:34 theorbtwo I'm personally wondering how hard it'd be to write a PIR->C compiler.
18:34 stevan probably not too hard,.. using a simple subset of C
18:34 stevan C-- maybe
18:34 theorbtwo Why a subset?
18:35 stevan well PIR is fairly limit AFAIK, so you would (i assume) transform it into fairly simple C
18:35 stevan s/limit/limited/
18:36 theorbtwo Right.
18:36 PerlJam It sounds weird to me to go from PIR -> C
18:36 theorbtwo But people already have C compilers, so I'd just compile to C, and not some other similar language.
18:36 PerlJam backwards in fact.
18:36 theorbtwo Why, PerlJam?  That way your C compiler can (hopefully) optimize the hell out of it.
18:37 stevan I think PerlJam is thinking of PIR as a glorified assembler (which is how I view it too)
18:37 stevan and so it seems like it is backwards
18:38 Limbic_Region theorbtwo - IOW, PIR is not nearly a HLL
18:38 Khisanth that would make it a decompiler :)
18:39 Limbic_Region though I am personally fine with PIR -> C for the optimizations reasons
18:39 stevan theorbtwo: I am hoping we can use the s-exp version of the metamodel and transform that into PIR too
18:40 Limbic_Region PIR -> JITed PASM should be comprable I would hope
18:40 liz6 L~R: that would make much more sense to me too
18:40 PerlJam Limbic_Region: Since we already have the JIT, PIR->C might be a good benchmark for how good/bad it works :)
18:41 liz6 PerlJam: good point
18:41 Limbic_Region exactly
18:42 PerlJam If a PIR->C compiler blows away the JIT, then something is probably horribly wrong :)
18:43 Limbic_Region well - I am not entirely sure that's true right now
18:43 Limbic_Region in a finished product sure
18:43 Limbic_Region but there are still a lot of optimizations that haven't been made that can be made
18:43 Limbic_Region and C has decades of optimizations already
18:44 Limbic_Region it is a good place to judge where we need to get to
18:44 theorbtwo OTOH, it's quite possible that things with more knowladge of the problem-space can get rid of some redundancy.
18:44 theorbtwo (Like repeated dereferences into the same vtables.)
18:45 Limbic_Region PIR -> C may seem un-natural, but that doesn't mean it isn't a worthwhile endeavor
18:47 Limbic_Region does anyone follow the parrot benchmarks?
18:47 Limbic_Region Matt Diep and I put them together
18:48 Limbic_Region http://www.sidhe.org/~timeparrot/graphs/
18:48 Limbic_Region ironically, they are housed on Dan's machine ;-)
18:49 PerlJam I haven't looked in a while.
18:49 * PerlJam looks
18:50 PerlJam I take it the last two ticks on the X axis are mashed together because not enough time has passed yet?
18:50 theorbtwo My thinking with the PIR->C thing is more a learning-exercise then anything else, BTW.
18:51 PerlJam theorbtwo: sure, but it'll find other uses too if some one does it.
18:51 PerlJam Limbic_Region: Do you think you could get a copy of the benchmarks onto feather?
18:52 Limbic_Region PerlJam - yeah, Matt handled the graph piece.  I handled collecting the data and giving it to the database
18:52 Limbic_Region PerlJam - the parrot benchmarks or do the same thing for Pugs or what?
18:52 PerlJam L~R: both!  :)
18:52 PerlJam L~R: but I meant the former.
18:52 PerlJam The latter would be nice too though.
18:52 Limbic_Region I would have to talk to Matt as I don't remember the password for the acct
18:53 Limbic_Region or Dan
18:53 * Limbic_Region will send an email
18:53 PerlJam Are you not on irc.perl.org now?
18:53 Limbic_Region no, using Feather to get to IRC
18:53 PerlJam matt is active on #parrot this minute
18:53 Limbic_Region PerlJam - ask him to join here or just approach him yourself
18:53 Limbic_Region or I will send an email
18:54 Limbic_Region it wasn't a whole lot of code btw
18:54 theorbtwo Hm, the overall trend on those benchmarks is rather disturbing...
18:54 theorbtwo ...though I do notice that they seem to have gotten faster again recently.
18:55 Limbic_Region PerlJam?
18:55 PerlJam yes?
18:56 PerlJam (I can only multitask so fast :)
18:56 PerlJam (talking with matt now)
18:57 Limbic_Region k
18:57 Limbic_Region I just found some old benchmark comparisons of perl5, perl5th, C, etc against Parrot
18:58 G2 has joined #perl6
19:04 Limbic_Region has quit IRC ("CGI:IRC")
19:05 Limbic_Region has joined #perl6
19:07 Limbic_Region PerlJam - I asked matt to send you a link to the files
19:07 PerlJam yeah, I've got them.
19:08 Limbic_Region ok - let me know if you need help deciphering any of the stuff I did
19:08 PerlJam I'll look at re-doing the graphs on feather and then doing the same sorts of graphing for pugs
19:08 Limbic_Region which was pretty much parrotbench.pl, running and collecting the data, and handing it off to the DB
19:08 Limbic_Region matt read the db and generated the graphs
19:08 Limbic_Region s/graphs/graphs and html and whatnot/
19:20 fanf2 has quit IRC (Remote closed the connection)
19:22 elmex has joined #perl6
19:41 svnbot6 r7834 | autrijus++ | * Qualify "Precompiled * does not exist" messages for JS
19:41 svnbot6 r7834 | autrijus++ |   so the user knows it's talking about JS.
19:42 evalbot_7833 has quit IRC (Remote closed the connection)
19:42 evalbot_7834 has joined #perl6
19:47 svnbot6 r7835 | autrijus++ | * fix the 'make ghci' target so it respects the new dist/build/ layout.
19:47 svnbot6 r7836 | autrijus++ | * INSTALL - Note that we'll require Parrot 0.3.1 for next release.
19:47 svnbot6 r7837 | autrijus++ | * Now that PGE::Hs is part of parrot, remove the
19:47 svnbot6 r7837 | autrijus++ |   inlining fix from src/pge/.
19:47 svnbot6 r7837 | autrijus++ |   (also need to hook into the new PGE S/R parser.)
19:48 evalbot_7834 has quit IRC (Remote closed the connection)
19:48 evalbot_7837 has joined #perl6
19:49 Limbic_Region autrijus - you about?
19:50 liz6 I think autri is in hyperfocus mode...
19:51 Limbic_Region ah, nevermind then
19:51 autrijus yes I am :)
19:51 autrijus (fixing prelude generation)
19:51 geoffb Rule #1:  DO NOT MESS WITH HYPERFOCUS MODE
19:51 autrijus the precomp_prelude:false was broken.
19:51 autrijus and then will finish the obj-serialization code during compilation
19:51 autrijus that will finally get class Foo {...}  outputted into correct PIL.
19:51 Limbic_Region well - I have been trying to find out who, if anyone, knows why portions of Makefile.PL are so unportable
19:51 Limbic_Region and why the non-portability hasn't been raised as an issue
19:51 autrijus you can use "svk blame"
19:52 liz6 Schwern?
19:52 autrijus I will blame rafl in general, but that may not be fair.
19:52 geoffb And I might add, that's not just for autrijus -- that's decades of research right there.  (See, and now you don't have to read 4 decades of human efficiency papers  :-) )
19:52 Limbic_Region *shrug* - someone asked for help in making the PUGS_EMBED stuff more portable and in doing so I kept finding more and more stuff that was b0rk
19:53 Limbic_Region I didn't want to make extensive changes since I don't have a system to even test if they worked
19:53 autrijus is anyone here who found precomp=true annoying? :)
19:53 autrijus I've got precomp=false working
19:53 autrijus meaning it won't take any time/memory to compile Pugs.Run
19:53 autrijus but startup has a 3sec penalty here.
19:54 autrijus so probably not for testers.
19:54 Khisanth you can blame a fish named Roger instead :)
19:54 autrijus but very good for development :)
19:54 Limbic_Region anyone interested can look at builds 7761-7763 for examples of the portability issues
19:55 geoffb autrijus++ , thanks for giving us both options
19:55 geoffb (er, again)
19:57 autrijus Limbic_Region: sorry, neck deep in OO here
19:57 autrijus maybe someone else :)
19:57 Limbic_Region autrijus - no worries
19:57 svnbot6 r7838 | autrijus++ | * Previously, this setting in config.yml was broken:
19:57 svnbot6 r7838 | autrijus++ |     precompile_prelude: false
19:57 svnbot6 r7838 | autrijus++ |   reason is that the "null" Prelude was not evaluating
19:57 svnbot6 r7838 | autrijus++ |   Prelude.pm as it should; a pugs executable built this
19:57 svnbot6 r7838 | autrijus++ |   way could not access the Prelude (which means no regex
19:57 svnbot6 r7838 | autrijus++ |   and rules support).
19:57 svnbot6 r7838 | autrijus++ |   Setting precompile_prelude to false will keep Pugs.Run
19:57 svnbot6 r7838 | autrijus++ |   compilation from gobbling up huge amount of memory.
19:57 svnbot6 r7838 | autrijus++ |   On the other hand, this causes a 3sec penalty on startup
19:57 svnbot6 r7838 | autrijus++ |   on my laptop, so it's maybe not for testers.  I wonder
19:57 svnbot6 r7838 | autrijus++ |   if we should display this option more prominiently though.
19:58 Limbic_Region I have thrown it out there 3 or 4 times already - no takers
19:58 autrijus Limbic_Region: by "portability" you mean "win32 isn't happy"?
19:58 Limbic_Region autrijus - no
19:58 Limbic_Region I mean that differences in filesystems were not considered
19:59 Limbic_Region presumably Parrot and Pugs are supported on more than just Win32 and *nix
19:59 Limbic_Region Mac for instance
19:59 autrijus oh, you mean File::Spec
19:59 autrijus Mac is *nix
19:59 elmex has quit IRC ("leaving")
19:59 Limbic_Region Mac can be *nix
19:59 autrijus and Win32 has emu for "file/sep"
19:59 autrijus so both case no worries
19:59 autrijus we can't build on OS9 no matter what.
19:59 autrijus that left VMS
19:59 autrijus which doesn't have haskell
20:00 Limbic_Region OS2?
20:00 autrijus so I'm not too worried :)
20:00 Limbic_Region :P
20:00 stevan Limbic_Region: I doubt many people use OS 9 still (at least those in our audience)
20:00 autrijus OS2 also has emu for "f/s"
20:00 autrijus hey stevan.
20:00 stevan hey autrijus :)
20:00 autrijus stevan: general strategy discussion with you a bit, then I'm going offline to hack :)
20:00 Limbic_Region all I am saying is that paths were hard coded to use / as file separators
20:00 autrijus you have 10mins?
20:00 stevan autrijus: sure
20:00 autrijus Limbic_Region: ack, but in practice I think it's okay.
20:01 autrijus I'm not against File::Spec
20:01 Limbic_Region anyone have an opinion on a good book for code generation - On Lisp?
20:01 autrijus but this is build system, not svk :)
20:01 clkao hai
20:01 stevan Limbic_Region: generating LISP or any code?
20:01 autrijus stevan: okay. consider "sub foo { ... } BEGIN { foo() }"
20:01 autrijus in py and rb this is comp time error
20:01 geoffb Limbic_Region, as an odd bit of trivia -- internally, the MS API's have supported both \ and / for path sep, back into the DOS days.  It's the command shell that's been broken forever.
20:01 stevan yuk,.. ok
20:01 aufrank stevan-- seems like chromatic _isn't_ thinking roles can be implicitly done ;)
20:01 autrijus as they desugar to := not ::=
20:02 Limbic_Region stevan - any code likely (questioning by proxy)
20:02 autrijus but p5 desugar to ::=, and I think p6 is same
20:02 stevan Limbic_Region: sorry,.. no idea
20:02 autrijus so class closure is fully built, just not executed, in comptime
20:02 Limbic_Region diotalevi asked and I figured #perl6 was better place to ask then the Monastery CB
20:02 autrijus because we know that "class Foo {...}" desugars same way as "sub foo {...}"
20:03 autrijus same for roles.
20:03 autrijus so my plan is to serialize comptime Opaque into PIL stream
20:03 autrijus and thaw them back at INIT time
20:03 autrijus this is backend agnostic
20:03 autrijus so each runtime is to handle it
20:03 autrijus and perform cls/role injection
20:04 autrijus as an example
20:04 autrijus the p5 codegen upon seeing a program with "class Foo { ... }"
20:05 autrijus will gen p5 code that contains BEGIN blocks that hooks into the MM and set up the class before any userland code is run
20:05 autrijus same for js -- populating objspace is to be done before INIT
20:05 evalbot_7837 has quit IRC (Remote closed the connection)
20:05 autrijus so in a way we carry the result of BEGIN over to runtime
20:05 autrijus before it is run, as the initial objsp.
20:05 autrijus makes sense?
20:06 evalbot_7838 has joined #perl6
20:06 autrijus (this is markedly different from rb/py)
20:06 * stevan is thinking
20:07 stevan so class Foo {} is really BEGIN { set_up_objspace(); } INIT { class Foo {} } ?
20:08 autrijus it creates the ::Foo object and binds it inside the compiler's objspace
20:08 stevan I think the only thing we need to carry from BEGIN to runtime would be ::* (the root namespace) and the top level environment
20:08 stevan autrijus: yes, i think that makes sense
20:08 autrijus and the codegen need to thaw that before running user code
20:09 stevan why "thaw" it?
20:09 autrijus because compiler and runtime are conceptually separate
20:09 autrijus there is a PIL layer between them
20:09 stevan oh
20:09 autrijus also, I don't think ::* works
20:09 autrijus because you have lexical classes
20:09 stevan true
20:09 autrijus which are also comptime objects that needs to survive
20:09 autrijus (this is new ground btw. perlcc doesn't handle it well and YARV/yc doesn't handle BEGIN at all)
20:10 Limbic_Region has quit IRC ("tiuq\")
20:10 stevan I was sort of thinking that class Foo {} would turn into ::Foo = Class.new(name => 'Foo'); ::Foo.superclasses(Object),.. etc
20:11 autrijus and afics py doesn't even have BEGIN
20:11 stevan if you can translate that to PIL and then the INIT phase could just "run" that?
20:11 autrijus but then composition failure will be runtime
20:11 autrijus and we don't want that
20:11 autrijus (I think.)
20:11 stevan true
20:12 autrijus I think all composition is to take place in compiler
20:12 stevan well its in that grey area of INIT time
20:12 autrijus and runtime received composed obj
20:12 autrijus er, consider
20:12 autrijus pugscc -e "...some code that has class composition bug..." -o foo.exe
20:12 autrijus we'd like it to die there
20:12 autrijus not
20:12 autrijus ./foo.exe
20:12 autrijus there
20:13 stevan true
20:13 stevan hmm
20:13 autrijus and compile time already need to eval any p6 code anyway
20:13 stevan so maybe compile time performs a dry run?
20:13 stevan is that what you are thinking?
20:13 autrijus I'm thinking compile time does everything.
20:14 autrijus and the serialized opaque class needs to be recognized by runtime
20:14 autrijus opaque class object that is
20:14 stevan ok, that should be possible
20:14 autrijus note this is not at all different form
20:14 autrijus my $x ::= BEGIN { SomeClass.new }
20:15 autrijus in which case the obj has to survive
20:15 autrijus okay, so I'll work out a basic serialization
20:15 autrijus and see if I can hook into p5.
20:15 stevan now, will classes and objects and the MM be runtime accessible?
20:15 autrijus yes
20:15 autrijus just like you can manip $x
20:15 autrijus during runtime
20:16 autrijus so there's a MM during comptime
20:16 stevan ok,.. this is making more sense now
20:16 autrijus and a MM during runtime
20:16 liz6 BEGIN doesn't return anything in p5
20:16 autrijus the comptime one can only be manip using explicit BEGIN and modules (which is also a form of BEGIN)
20:16 autrijus liz6: yeah, but they are specced to do so in p6 -- and it's a fine difference...
20:16 autrijus my $x; BEGIN { $x = SomeClass->new }
20:16 autrijus is the same with p5
20:16 liz6 true
20:16 autrijus so the comp time checking is just with static info
20:17 autrijus then at runtime you can totally demolish the MM
20:17 * stevan is thinking back to the PyPy FlowObjectSpace
20:17 autrijus and take responsibility of the errors that causes
20:17 autrijus can't blame compiler for that
20:17 stevan is that similar to what we need to compiler to do?
20:17 autrijus yes
20:17 stevan ok
20:17 autrijus but note that if you fiddle MM in comptime
20:17 stevan you deserve what you get?
20:18 autrijus the question is whether comp need to freeze ::Object as an opaque.
20:18 autrijus think about it seriously a bit :)
20:18 autrijus if at comptime, you extend Object, then at runtime that method should probably be still valid?
20:18 liz6 feels like that to me...
20:18 stevan well if the comp time runs the MM bootstrap,. the runtime shouldnt need to do the same
20:18 autrijus right!
20:19 stevan since all the MM objects will just "be"
20:19 autrijus that's a scary but somehow reassuring thought :)
20:19 autrijus yup
20:19 stevan I like that too
20:19 autrijus then we can move the work you do to p6space
20:19 stevan bootstrap should only need to be done once
20:19 autrijus and just do it once there
20:20 autrijus and the runtimes just provide the kernelobjs, intrinsics, etc for the thawed MM objs to bind to
20:20 stevan but wait,.. then we are compiling the MM everytime
20:20 autrijus they can be part of prelude, so to speak
20:20 autrijus so precomp
20:20 stevan ok
20:20 stevan yeah
20:20 autrijus so do you think we should attempt to do that the Right Way once?
20:20 autrijus i.e. in p6 as part of Prelude/MM
20:20 stevan you mean write the MM in p6?
20:20 autrijus I can provide the Core stuff from hs space
20:20 autrijus so it's just porting MetaModel/Bootstrap.pm to p6 mostly
20:21 stevan hmm
20:21 larsen has quit IRC ("later")
20:21 autrijus using just the single sendmsg prim
20:21 autrijus which would be builtin
20:21 larsen has joined #perl6
20:21 autrijus anyway, I think I'll first get the compiler serialization part done
20:21 * stevan has pretty much eliminated all control structures from Bootstrap.pm now
20:21 autrijus for objs
20:21 * geoffb votes for the autrijus idea, based on less work to support a new backend (don't even have to port the MM code)
20:22 autrijus geoffb: yup
20:22 autrijus and then I'll port Core::* shim over the current runcore
20:22 stevan yeah I like that part too
20:22 autrijus (no need for new runcore here)
20:22 autrijus and then it's just writing src/perl6/Prelude/MM.pm
20:22 autrijus based on Bootstrap.pm
20:22 geoffb I love this . . . it's getting so I might actually be able to write a backend myself.  That makes me happy.  :-)
20:22 autrijus geoffb: B::Generate? :)
20:22 geoffb :-)
20:23 stevan autrijus: yes, this is a sane plan, and I think this is the correct course
20:23 autrijus stevan: okay, then my two days of zero-commit-pure-thinking isn't in vain :)
20:23 stevan I am going to work out the kinks in the current p5 version first though
20:23 autrijus sure, I'll ping you when I get the sendmsg prim and runtime opaque hook there
20:24 stevan autrijus: as I always say "back of the head thinking time is still billable hours"
20:24 stevan autrijus: ok, so we can toss out the s-expression intermediate language idea right?
20:26 stevan autrijus: nothingmuch was going to write an Attribute Grammer to translate the s-exp version of the metamodel
20:26 * stevan was kind of looking forward to writing this again in psuedo-scheme
20:27 geoffb Just because it's not going to be used now, doesn't make it a worthless exercise . . . .
20:27 autrijus I think it is still interesting, myself :)
20:27 stevan geoffb: I am all about writing silly stuff that will never be used :)
20:27 autrijus because it will let us reason about the MM in a more rigorous way
20:27 geoffb stevan, heh
20:27 stevan autrijus: true
20:28 stevan ok,.. I will let nothingmuch decide if he wants to continue (he is backlogging as we type I think)
20:28 autrijus also, pmichaud mentioned he'd like to write a parse tree evaluator for perl6
20:28 autrijus on top of parrot/pge
20:28 stevan yeah I saw that
20:28 autrijus so we'll maybe finally have independent implementations
20:29 autrijus and common MM boot code is going to be useful to him :)
20:29 stevan ok
20:29 autrijus (as he can ->PIR that)
20:29 stevan he can write an AG to ->PIR it too
20:29 stevan since Allison has the L::AG in PIR now
20:29 autrijus I thought he was not the one into AG, but I'm not sure :)
20:30 stevan i think luke, allison and Larry are the AG fans
20:30 autrijus okay, I'm off to work. wish me luck :)
20:30 stevan autrijus: sounds good,..
20:30 stevan autrijus++ # to bad we can't get paid to do this shit :)
20:30 stevan (and by that I mean, not have to keep day jobs)
20:31 autrijus liz6++ # hosting for my stay, food, commuting, et al
20:31 geoffb .oO( Perl 6, Inc. )
20:31 autrijus I'm not keeping day jobs :)
20:31 stevan yes liz6++
20:31 geoffb Sortof like JBoss, Inc.
20:31 * autrijus waves and goes back to mad haxx0ring
20:31 * stevan has to keep the day job, otherwise my wife would kill me :)
20:31 geoffb cya, autrijus
20:31 aufrank bye autrijus
20:32 * stevan goes to commit the latest bunch of stuff
20:32 autrijus I'll wait for that before I disconnect :)
20:32 nothingmuch where do i fit in, hypothetically?
20:33 stevan oh autrijus, i made the c3 linearization into a core type
20:33 stevan C3->new($self)->linearize
20:33 autrijus liz6: btw, the books shipped _just now_, so I can't possibly have it -- make it my presents then :)
20:34 autrijus stevan: and the reason not to do it as a kernel method is...
20:34 stevan autrijus: implementation detail,.. it can be either one
20:34 autrijus k, sure
20:34 stevan as long as I dont have to re-write it without control structures :)
20:34 nothingmuch ?
20:34 stevan and pure message sends
20:34 autrijus just commit whatever you have so I can go offline :)
20:35 nothingmuch autrijus: how do I apply an svn patch using svk, and keeping all the propedits, etc?
20:35 autrijus nothingmuch: you can write stuff to extract sexp callgraph from Bootstrap.pm, and then transform that callgraph into p6 :)
20:35 nothingmuch uh
20:35 autrijus or to haskell, or to pir, hmm.
20:35 nothingmuch hmm
20:35 autrijus nothingmuch: I don't know of a way. ask clkao
20:36 nothingmuch asked on #svk, no asnwer
20:36 autrijus prolly impossible then
20:36 * nothingmuch is torn between redoing Catalyst auth and this
20:36 autrijus you can also hack svk to accept svn patch format...
20:36 autrijus but anyway, which ever funnest to you :)
20:36 nothingmuch what about svk patches?
20:36 * stevan is fighting svk at the moment,.. should be commited soon
20:37 autrijus they are Storable.
20:37 autrijus or rather FreezeThaw
20:37 nothingmuch okay
20:37 nothingmuch svk patch --cat foo # somewhat like svn patch output... what do I do with this?
20:37 autrijus you can hand it to lwall's patch, or send it over to another svk person to do svk patch apply.
20:38 nothingmuch oh
20:38 nothingmuch apply - < ...
20:38 nothingmuch --apply foo.patch didn't work, it complained about ~/.svk/patches/foo.patch.patch, so I thought I needed to first import
20:38 nothingmuch thanks
20:39 nothingmuch okay
20:39 nothingmuch i think i'm going to do this:
20:39 nothingmuch play around with catalyst auth for a bit more
20:39 nothingmuch because we're making beautiful progress
20:39 nothingmuch and then i'll write the AG to produce an easier to use AST into p6
20:39 stevan anyone know how to cleanup a bunch of stalled svk locks?
20:39 nothingmuch and then convert sexp tree to that AST
20:39 nothingmuch svk cleanup
20:39 nothingmuch ?
20:40 stevan doenst seem to eb working
20:41 liz6 has quit IRC (Read error: 110 (Connection timed out))
20:42 aufrank try detaching?
20:43 autrijus svk cleanup -a
20:43 nothingmuch stevan, autrijus: does my plan make you happy?
20:43 stevan nothingmuch: yes
20:44 nothingmuch okay =)
20:44 stevan btw - did I mention you were the coolest perl hacker ever?
20:44 nothingmuch note that I am pretty dumb this weekend
20:44 nothingmuch my skin is misbehaving again
20:44 nothingmuch and antihistamines are not good in combination with the mind
20:44 nothingmuch plus i feel spent
20:44 nothingmuch so if i don't finish today, don't be surprised
20:44 nothingmuch i'll give it my all tomorrow
20:44 stevan it worked!!!
20:44 autrijus woot
20:45 * autrijus pulleth
20:45 stevan but wait one second,.. i need to add the new files too
20:45 nothingmuch Morricone RMX++
20:46 stevan autrijus: ok,.. pull now (r7840)
20:47 evalbot_7838 has quit IRC (Remote closed the connection)
20:47 evalbot_7839 has joined #perl6
20:47 stevan oops
20:47 stevan LOL, I put the new file back in the wrong spot :)
20:49 stevan ok,.. all fixed now
20:49 * stevan goes and refills his coffee
20:49 svnbot6 r7839 | stevan++ | Perl6::ObjectSpace - damn svk is driving me nuts
20:49 svnbot6 r7840 | stevan++ | Perl6::ObjectSpace - adding the C3 type and some more tests
20:49 svnbot6 r7841 | stevan++ | Perl6::ObjectSpace : me--
20:49 clkao what happened to svk?
20:51 autrijus stevan: finally fine now? I can go offline? :)
20:52 stevan yes
20:52 stevan clkao: nothing,.. problem between svk and chair
20:52 evalbot_7839 has quit IRC (Remote closed the connection)
20:52 evalbot_7841 has joined #perl6
20:53 * autrijus waves... &
20:53 * stevan waves back
20:54 liz6 has joined #perl6
20:55 geoffb AAAAAUUUUGGGGHHH!  Emacs on Cygwin X is pissing me off!
20:55 geoffb (Having to use Windows for $contract)--
20:58 stevan geoffb: just use notepad ;)
20:58 geoffb stevan, I'm running the Emacs on a remote box, just using Cygwin X for local display . . . but apparently Emacs doesn't like this much, as it keeps crashing with X protocol errors.
20:59 aufrank geoffb: I've had decent luck with the fullbin build at http://mirrors.usc.edu/pub/gnu/emacs/windows/
20:59 aufrank if you can run it locally, that is
21:01 geoffb aufrank, thanks for the link.  Can't use it in this instance (heaven forbid I have SSH VFS access . . . ), but may get used another time
21:02 aufrank geoffb: I think you can get that same build on any of the gnu mirrors
21:02 geoffb aufrank, nod, thx
21:11 * liz6 wonders whether autri is still awake...
21:12 geoffb liz6, no worries, he commits faster asleep anyway
21:12 stevan he really does sleep with that laptop IIRC,..
21:23 SamB geoffb: emacs doesn't seem to much like running locally under Cygwin's X either...
21:23 geoffb *sigh*
21:24 SamB at least not in the mode where each toplevel X window gets its own toplevel win32 window...
21:24 SamB it runs fine for me, but it keeps popping up tooltips when it is minimized...
21:25 nothingmuch ?eval say "zsh" xx 10000000000
21:25 evalbot_7841 pugs: out of memory (requested 1048576 bytes)
21:25 nothingmuch ?eval say "zsh" xx 1000
21:25 evalbot_7841 zshzshzshzshzshzshzshzshzshzshzshzshzshzshzshz​shzshzshzshzshzshzshzshzshzshzshzshzshzshzshzs​hzshzshzshzshzshzshzshzshzshzshzshzshzshzshzsh​zshzshzshzshzshzshzshzshzshzshzshzshzshzshzshz​shzshzshzshzshzshzshzshzshzshzshzshzshzshzshzs​hzshzshzshzshzshzshzshzshzshzshzshzshzshzshzsh​zshzshzshzshzshzshzshzshzshzshzshzshzshzshzshz​shzshzshzshzshzshzshzshzshzshzshzshzshzshzshzs​hzshzshzshzshzshzshzshzshzshzshzshzshzshzshzsh​zshzshzshzshzshzshzshzshzshzshzshzshzs
21:25 sri_ :)
21:26 nothingmuch ?eval say "zsh " xx 1000
21:26 evalbot_7841 zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh zsh
21:26 nothingmuch there, that's more like it
21:26 nothingmuch now back to #catalyst
21:26 kolibrie has quit IRC ("leaving")
21:27 sri_ every channel should have an eval-bot
21:27 SamB ?eval say "zsh " xx 1000000
21:27 evalbot_7841 pugs: out of memory (requested 1048576 bytes)
21:28 SamB sri_: well, not every channel has a suitable language of choice
21:28 SamB and then there are the security issues...
21:29 beppu zsh
21:29 beppu the shell of the gods
21:29 * aufrank starts weekend
21:29 aufrank see y'all around
21:30 aufrank has quit IRC ()
21:39 xern_ is now known as xern
21:41 dduncan has joined #perl6
21:44 stevan has quit IRC ("Leaving")
21:44 hughes has joined #perl6
21:44 hughes has left "Leaving"
21:45 rashakil has joined #perl6
21:53 dduncan openfoundry appears to be down again
21:54 dduncan seen autrijus
21:54 jabbot dduncan: autrijus was seen 1 hours 2 minutes 54 seconds ago
21:54 geoffb dduncan, aut* is offline so he can hyperfocus on code
21:54 dduncan okay
21:54 geoffb hi, btw
21:55 dduncan the IRC person list said he was online, but maybe you mean "he's trying to ignore"
21:55 geoffb dduncan, he leaves his IRC connection up on a screen on a server somewhere, and just detaches from the screen session when he logs off
21:56 dduncan I C
21:56 geoffb heh -- /me just came across a server named "SIN"
21:57 dduncan well, I will be switching to svk sooner rather than later for the offline commits ... but the last attempt yielded a bunch of issues so I deferred it
21:57 geoffb don't defer any longer -- just make your woe clkao's problem.  :-)
21:58 dduncan my main issue seems related to dependencies ... my system has those necessary for the svn client, but may be missing some for the server
21:58 dduncan and svk needs the server
21:58 geoffb dduncan, distro?
21:59 dduncan Mac OS X 10.3.9
21:59 dduncan it may be simple to fix ...
21:59 geoffb Hmmm, I thought svk was packaged for Mac OS X . . . hmmm, 10.4 only?
21:59 geoffb #svk should be able to answer that
21:59 dduncan but I'm the kind of person that tends to abort actions if they don't go as easily as I pre-anticipated
22:00 dduncan in this case, I expected that there wouldn't be any dependency issues
22:00 G2 has quit IRC ("oops")
22:00 dduncan now I know that there are, I'll attack it again with the expectation of having to deal with those
22:01 renormalist has joined #perl6
22:01 dduncan the svk package that includes binary svn server does expect 10.4
22:01 geoffb nodnod
22:01 geoffb bleah
22:01 autrijus ...was surprisingly easy.
22:01 geoffb 10.4: yet another thing to spend my hard earned cache on
22:02 geoffb sigh
22:02 * autrijus commiteth :)
22:02 dduncan I decided it would be easier to install svn and svk-only separately
22:02 geoffb autrijus, rock on!
22:02 autrijus gawd I miss coding.
22:02 dduncan so that's what I will do this time
22:02 geoffb autrijus, so do it more.  I promise we won't mind.  ;-)
22:02 autrijus it doesn't help that foundry is down tho :)
22:02 dduncan autrijus, is openfoundry working for you?
22:02 dduncan no
22:02 autrijus dduncan: no, it's another of those weekend repair I guess
22:03 autrijus which would mean 36hr again.
22:03 autrijus or 24 if we are lucky.
22:03 dduncan I'm going to try and install svk in the mean time
22:03 geoffb What in the world are they doing on a regular basis that involves taking a DC down for 36 hours?
22:03 autrijus geoffb: key is they are academy research facility without a DC
22:03 geoffb ah
22:03 autrijus so it's all normal research computer facility
22:03 autrijus like university, even less
22:04 geoffb And no DC-experienced admin staff to lead them along the no-downtime path, I suppose . . .
22:04 autrijus indeed -- they had heat dissipations problems a while ago -- maybe fixed now, but to them "downtime during weekends" is something that's probably acceptable
22:04 * dduncan back in a bit, will backlog
22:04 autrijus which is of course very annoying :/
22:05 geoffb nodnod
22:05 autrijus oh well. I'll commit to svn.perl.org
22:05 geoffb especially since that's when many day-job-having people want to do their OSS hacking
22:06 autrijus to their credit it's been a while (a couple months?) since they do that
22:06 autrijus anyway... less distraction for me then
22:06 * autrijus hacks on :)
22:09 autrijus btw, I'll copy PIL1.hs to PIL2.hs
22:09 autrijus and then start adding the long-delayed renovations to them
22:10 autrijus (compile time obj serialization, my() lifting, unification of PSub and PCode forms, sand (chip-esque) pad handling)
22:10 autrijus this is so I won't break the JS and P5 backends
22:10 geoffb Hmmm, Perl 6 style question:  If you have an API with a pile of functions, each of which has an identical optional param (or two), which API users will almost always want to leave as the default value, *BUT* it's important that the multiple clients not tromp on each other, how do you write the API?
22:10 autrijus and I'll do Hs and PIR from there
22:11 autrijus once it's proven to work, JS and P5 can switch over.
22:11 autrijus geoffb: english doesn't work. try code :)
22:11 geoffb I mean, just coding the same optional params and defaults into each function is a MASSIVE D.R.Y. violation . . .
22:11 geoffb Hmmm, I'm wondering out loud how the code should look, but let me try:
22:13 geoffb Let's say you have subs as follows:  sub foo(+$a = 1, +$b = 2, ...others...) {}  sub bar (+$a = 1, +$b = 2, ...others...) {} and so on, how best to design that?
22:13 geoffb All functions take the same two optional params, with the same two optional defaults.
22:13 autrijus mm who controls svnbot6?
22:13 geoffb So writing as I did would be bad style, essentially editor inheritance.
22:14 geoffb Making a singleton with state sucks, because then it's not safe with multiple users.
22:14 autrijus changes topic to: openfoundry down, fallback: http://svn.perl.org/perl6/pugs/trunk/ | -Ofun: http://xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: http://paste.lisp.org/new/perl6 or http://sial.org/pbot/perl6
22:15 geoffb Making an OO API that requires a new object to be created for each new user sucks, because then handing the object off to other users to use asynchronously is inconvenient.
22:15 * geoffb masticates thoughtfully
22:15 iblech has joined #perl6
22:15 autrijus +$a means what now?
22:15 iblech xinming: pong
22:15 geoffb Maybe the answer is just to macroize the API source
22:15 autrijus (named is now :$a)
22:15 iblech Khisanth: pong
22:16 autrijus iblech: hey!
22:16 geoffb autrijus, sorry, I'm out of sync with P6L
22:16 geoffb :$a then
22:16 autrijus iblech: do you control svnbot6?
22:16 iblech autrijus: I do, will restart svnbot
22:16 autrijus cool, thanks
22:16 svnbot6 has quit IRC (Remote closed the connection)
22:16 autrijus iblech: have you seen my discussion with stevan re compiler side booting?
22:16 iblech autrijus: not yet, currently backlogging
22:17 autrijus geoffb: how does foo and bar relate?
22:17 svnbot6 has joined #perl6
22:17 svnbot6 r6467 | autrijus++ | Perl6::ObjectSpace - damn svk is driving me nuts
22:17 svnbot6 r6468 | autrijus++ | Perl6::ObjectSpace - adding the C3 type and some more tests
22:17 svnbot6 r6469 | autrijus++ | Perl6::ObjectSpace : me--
22:18 geoffb For concreteness, this problem occured to me with some Perl 5 code in which I found myself writing a number of database-using components to take an optional $dbh argument, which almost always defaults to the current global cached database handle, but can be overrided for testing and other special uses.
22:18 geoffb And I wondered how I would do that cleanly, given the full power of P6 before me.
22:19 geoffb autrijus, so I guess in this case "foo and bar are both functions that do something with/to the database"
22:20 Khisanth iblech: hrm?
22:20 autrijus geoffb: I would just use temp $dbh :)
22:20 autrijus <- of the "you are using globals, all hopes are off" school
22:20 iblech Khisanth: IIRC you have pinged me; if not, sorry
22:20 Khisanth you have highling on "blech"? :)
22:21 autrijus iblech: I could use some sanity checking for the booting if you have 10mins
22:21 iblech autrijus: Sure :)
22:21 geoffb autrijus, I was intentially vague in the beginning, because I didn't want to bias in favor of globals.  :-)
22:21 iblech Khisanth: No ;) I must have misread something
22:21 Khisanth heh
22:22 autrijus geoffb: but this is a case of implicit parameters
22:22 geoffb autrijus, I suppose so.
22:22 autrijus which is traditionally solved with shared vars (like my$dbh in parent scope)
22:22 autrijus and temporization
22:23 autrijus it's the same in Haskell -- you can use implicit vars that way, but somehow people all flock to Reader monads when there are more than one around
22:23 svnbot6 r6470 | autrijus++ | * Compile-time objects now survives "./pugs -CPugs" compilation.
22:23 svnbot6 r6470 | autrijus++ |   This means the line below works now:
22:23 svnbot6 r6470 | autrijus++ |     pugscc -e 'class F {}; my $x ::= F.new; say $x'
22:23 svnbot6 r6470 | autrijus++ |   Previously, the ::= would prevent compilation because we
22:23 svnbot6 r6470 | autrijus++ |   did not have a serialization protocol for VObject types.
22:23 svnbot6 r6470 | autrijus++ |   (This work is going to be carried over to PIL.)
22:23 iblech autrijus: Serializing classes to PIL etc. is sane, I think
22:23 svnbot6 r6471 | autrijus++ | * pugscc: chase the s/MainCC.mainCC/Main.main/ change
22:23 svnbot6 r6471 | autrijus++ |   as the now-cabalized Pugs package no longer exports "main".
22:23 geoffb Hmmm, yeah, I suppose so.  I'm so used to not using "local" in P5 for anything but $/ , that I forget that dynamically scoped localization is even possible sometimes.  :-)
22:24 autrijus geoffb: p6 lets you temp lexicals, so they no longer comflict
22:24 geoffb Perl6++ # Ah, just so damned nice
22:25 autrijus but in this case, maybe you want to export that lexical across packages, essentially making it a package our()
22:25 autrijus or you may not, since it's just a private cache. either way temp() works
22:25 * geoffb hates answering the phone in the days before an election -- likely as not to get phone spam from a PAC
22:26 autrijus iblech: in that case, the opaque data for ::Class and ::Object would be exported by the compiler
22:27 nothingmuch seen mugwump?
22:27 jabbot nothingmuch: mugwump was seen 1 days 20 hours 51 minutes 27 seconds ago
22:27 iblech autrijus: yep
22:28 autrijus so the runtime-supported objspace remains decided non-MM
22:28 svnbot6 r6472 | autrijus++ | * Adds support for "./pugs -BPugs -e ...", which just takes
22:28 svnbot6 r6472 | autrijus++ |   -CPugs output and feed to the "runghc" executable in PATH.
22:28 autrijus (but is still uniform across backends -- I mean the prims and intrinsics)
22:28 autrijus then they just have to implement the load protocol to populate the objspace with the compile time obj data
22:29 autrijus and _then_ enters main
22:29 autrijus the good thing about it is that each closure, including their OUTER relationship etc, would be part of the serialized protocol
22:29 autrijus eg, a Code obj may just have a "has $OUTER" pointer to outer.
22:29 autrijus ($OUTER, not $.OUTER, as it's private)
22:30 iblech nodnod
22:30 autrijus then the static extent problem of closures is automagically fixed
22:30 autrijus okay, thanks for the sanity check -- anything else you want from PIL?
22:31 iblech no, I think this strategy will solve all of our problems :)
22:32 iblech (And cp PIL1.hs PIL2.hs is a very good idea, too)
22:32 autrijus okay. sorry for the long wait :)
22:32 autrijus I'll preserve names in PIL1.hs as much as possible
22:32 autrijus to minimize transition costs
22:33 iblech np :) /me anticipates the weekend :)
22:33 autrijus :) offline haxx0r &
22:36 iblech sleep... FYI, I'll probably be able to hack on Sun and Wed-Sat.
22:36 iblech Night all! :)
22:36 iblech has quit IRC ("sleep &")
22:36 whiteg has quit IRC ()
22:37 dduncan fyi, my current thoughts are that it may be simpler to actually implement a simple database in perl 6 than try to connect to one externally, such as MySQL, so I may be "porting" the likes of Memory or CSV first
22:38 autrijus that sounds good
22:40 * geoffb swears at Oracle
22:40 * geoffb is having a bad proprietary software day
22:41 geoffb Of course, all days that I have to deal with them are bad proprietary software days . . . .
22:46 r0nny_ has quit IRC (Client Quit)
22:46 svnbot6 r6473 | autrijus++ | * Repo copy PIL1 to PIL2 for the long-much-overdue PIL2
22:46 svnbot6 r6473 | autrijus++ |   refactoring.  The goals are:
22:46 svnbot6 r6473 | autrijus++ |   - Compile time object serialization
22:46 svnbot6 r6473 | autrijus++ |   - Lexical hoisting
22:46 svnbot6 r6473 | autrijus++ |   - Static creation of Code objects with scope (no PSub forms)
22:46 svnbot6 r6473 | autrijus++ |   - Full Cxt information
22:46 svnbot6 r6473 | autrijus++ |   - PIL2 is *after* type erasure -- *no* static type annotation
22:46 svnbot6 r6473 | autrijus++ |     should be left after that -- it's somewhere between F<: and ANF,
22:46 svnbot6 r6473 | autrijus++ |     so to speak.
22:46 svnbot6 r6474 | autrijus++ | * Add DrIFT-generated source of PIL2.hs.
22:50 autrijus in p6, aside from "labelable", what distinguishes a statement from an expression?
22:50 autrijus (or, same question, but for p5)
22:50 autrijus p5 uses stmt number for lexical scoping, but that no longer applies
22:51 autrijus maybe the Stmt form can go away.
22:51 autrijus mm, wait, it's also used for hints.
22:51 autrijus eg "use strict" applies to a set of stmts
22:52 autrijus you can't say "f() * g()" but with the g() part being strict
22:53 * autrijus ponders some more
22:54 iblechbot has quit IRC (Read error: 110 (Connection timed out))
22:55 geoffb autrijus, um . . . why does that matter?  The same care you take not to put a label on a subexpression applies to not putting a hint there, yes?
22:56 theorbtwo autrijus: Just because there's no syntax for f() * g() with g being strict doesn't neccessarly neccessitate that the lower layers can't express it.
22:57 geoffb and what theorbtwo said, also
22:58 theorbtwo In p5, statements might not participate in the "function returns value of the last statement" rule.  (Last I heard, p5p was debating it.)
22:59 geoffb huh?
22:59 theorbtwo That was more or less what I gleaned, too, geoffb.
22:59 geoffb That statement (NPI) didn't make sense to me
22:59 geoffb heh
23:00 theorbtwo What does sub {'foo'; if (shift) {0} else {1}} return?
23:00 clkao autrijus: svk is driving you nuts as well? how so?
23:00 Eimi has quit IRC ("Leaving")
23:01 geoffb clkao, it looked like a copy of the commit messages from stevan
23:01 theorbtwo Apparently, a strict reading of the new language in the perl 5 documentation says that it returns 'foo';.
23:01 theorbtwo ...but this whole bit is probably best ignored.
23:01 svnbot6 r6475 | autrijus++ | * Repo copy Pugs.CodeGen.PIL to Pugs.CodeGen.PIL2
23:01 svnbot6 r6475 | autrijus++ | * Also rename CodeGen.PIL to CodeGen.PIL1
23:01 geoffb theorbtwo, why did it get changed in the docs?
23:02 theorbtwo I'm not real clear on that.
23:02 theorbtwo I should just dig up the thread.
23:02 geoffb :-)
23:02 autrijus clkao: no, relayed commit
23:03 autrijus ?eval sub {'foo'; if 0 {0} else {1}}.()
23:03 evalbot_7841 1
23:03 autrijus same in p5
23:04 autrijus theorbtwo: so.. :)
23:04 theorbtwo http://groups.google.com/group/perl.perl5.po​rters/browse_thread/thread/c552c27a15505436/​215734e79ea98d94?lnk=st&amp;q=perl5+%22last+​expression%22&amp;rnum=2#215734e79ea98d94, search for "sub return values" is a place to start on the p5p thing.
23:04 theorbtwo I mostly agree with Yves that the whole thing is a debacle.
23:04 theorbtwo autrijus: So ignore the differece between statements and expressions, if any, if it makes things easier on you.
23:05 autrijus geoffb: I'm merely wondering if there's something to gain if we restrict that labels and hints can only be placed on stmt in PIL
23:05 autrijus I can't think of one, except that people who label subexpressions will have a harder time doing PIL->P6.
23:06 theorbtwo One thing that we do gain is that backends don't have to worry about it.
23:06 autrijus well, yes, there's that.
23:06 autrijus which should be reason enough
23:06 autrijus since very few backend allow you label subexpressions.
23:06 geoffb autrijus, but noone is supposed to write PIL by hand -- if the compiler does something silly like that, it's a different problem.
23:06 clkao autrijus: need your tailor snapshot work
23:06 autrijus PIR being now
23:06 autrijus the only one -- but that's because it doesn't have subexpressions :)
23:07 autrijus geoffb: problem is people do write comp and macro that can manip pil tree
23:07 autrijus so whatever tree user macro can gen need to be handled by the runtime
23:07 geoffb autrijus, point taken.
23:07 autrijus so a new form there is a new burden to codegens
23:07 geoffb Hmmm.
23:07 autrijus clkao: I don't think I have anything useful at the moment. :/
23:07 clkao the wip would be fine
23:08 clkao you didn't kill your laptop after that, no?
23:08 geoffb autrijus, maybe the solution then is to leave statement in, get our current backends on to PIL2, and then see how much pain is incurred in them to accept statement-free PIL syntax.  It just seems like the kind of question that can only be answered by trying
23:08 geoffb but a two-phase approach seems sane.
23:09 autrijus clkao: http://perlcabal.org/~autrijus/tmp/cvsync.tgz
23:09 autrijus clkao: all state is lost in my brain
23:09 clkao bah
23:09 clkao domo
23:09 autrijus geoffb: PIL1 has Stmt form
23:09 Juerd Feather may be down for any(15..30) minutes tomorrow
23:10 geoffb autrijus, I know.  I meant "Keep that Stmt form in PIL2.  Then once all backends are on PIL2, we can experiment with no Stmt in PIL2.5"
23:10 geoffb Did that make more sense?
23:10 geoffb Perhaps I am too conservative with such changes
23:11 autrijus no, I think that's fine. thanks
23:11 theorbtwo Hm, are we keeping the p5 convention that statements have line-numbers and the like attached to them, or do we have positions more common still, like we did in the fairly-early days?
23:12 autrijus theorbtwo: all expressions have ranges with them
23:13 autrijus that supercedes line numbers
23:13 autrijus which is much better anyway -- unless you want to support "goto LINE", in which case it's going to take a bit macro foo.
23:13 theorbtwo You mean with a line number?  That's just crazy talk.
23:14 autrijus http://search.cpan.org/dist/Acme-Goto-Line/
23:15 autrijus in DrIFT-enabled PIL1 though, only Stmt has ranges
23:15 autrijus going to fix that in PIL2
23:15 * theorbtwo grrs at debian's squid package.
23:16 theorbtwo (It has a tendency to go down for a while during long apt-get upgrades.)
23:17 * geoffb seriously dislikes packages that take down network services early in the upgrade . . . the worst were early iptables packages
23:20 geoffb "We'll just disable your firewall while we upgrade X, KDE, Gnome, LaTex, and Emacs.  No worries."
23:24 rashakil has quit IRC (Remote closed the connection)
23:26 svnbot6 r6476 | autrijus++ | * Support for "./pugs -C PIL2".
23:26 svnbot6 r6476 | autrijus++ |   Currently, "-C PIL" and "-C PIL1" both maps to PIL1,
23:26 svnbot6 r6476 | autrijus++ |   but some day "-C PIL" may change to PIL2.
23:30 lisppaste3 has quit IRC ("Want lisppaste3 in your channel? Email chandler AT unmutual.info.")
23:30 lisppaste3 has joined #perl6
23:30 * theorbtwo wonders why pugs -CPugs Prelude.pm works, but pugs -CPIL Preulde.pm dies with an error concerning two variables that do not (explicitly) exist, and no position information.
23:31 autrijus theorbtwo: hm? I get
23:31 autrijus *** Compile error -- invalid Pugs.PIL1.PIL_Expr:
23:31 autrijus Stmts (App (Var "&postfix:++") ...
23:32 theorbtwo    Stmts (App (Var "&postfix:++") Nothing [Var "$?FIRST_RUN"]) (Syn "=" [Var "$?FIRST_RESULT",App (Val (VCode (MkCode {isMulti = False, subName = "", subType = SubBlock, subEnv = Nothing, subAssoc = "pre", subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkType "Any"), subLValue = False, subBody = Noop, subCont = Nothing}))) Nothing []])
23:32 theorbtwo I was talking about $?FIRST_RUN and $?FIRST_RESULT.
23:33 autrijus they are desugaring FIRST blocks.
23:33 theorbtwo Aaah.
23:33 autrijus (Pugs.Parser.vcode2firstBlock)
23:34 theorbtwo What's the error with that, though?  I thought most of the -C options just printed the output somewhat differently.
23:34 autrijus er no, -C* is using PIL
23:34 autrijus but -CPugs is special
23:34 autrijus it's not going thru compilation, just serializing the compiler state
23:35 nothingmuch seen stevan?
23:35 jabbot nothingmuch: stevan was seen 2 hours 22 minutes 57 seconds ago
23:36 theorbtwo OK, I think I see.
23:48 theorbtwo Hm, how different is PIL2 planning on being vs PIL2?
23:48 theorbtwo Er, s:2nd/PIL2/PIL1/
23:49 theorbtwo I'm planning, at the moment, on writing a PIL1 (Perl5 dumping) to C compiler in perl5.
23:49 theorbtwo I'm wondering how difficult it will be to port that to PIL2 when it comes about.
23:49 autrijus perhaps not difficult at all
23:50 autrijus since it's designed to simplify the hoops iblech/rafl/putter had to jump thru during the codegen
23:50 autrijus though we really assume a runtime RTS
23:50 autrijus and a RTS-less C would be Very Interesting
23:51 theorbtwo Not sure what you mean by RTS here.
23:52 theorbtwo You mean the ability to eval STRING?
23:54 rafl_ autrijus: blame me? For what?
23:54 liz6 has quit IRC ("User disconnected")
23:54 autrijus rafl_: nothing at all
23:54 rafl_ autrijus: But I'm surely responsible for something! :-)
23:54 autrijus I saw "platform specific bits in Makefile.PL" and recalled just two incidents in Makefile fragments
23:54 autrijus both from you
23:54 autrijus so I naturally thought that
23:54 autrijus it turns out L~R is talking about not using File::Spec
23:55 autrijus which is a bit silly as all our target platform afaics supports "/" as separator
23:55 autrijus so nothing to do with you :)
23:56 theorbtwo We don't try to work on VMS?
23:56 geoffb Parrot might, but that's Dan's doing.
23:57 theorbtwo Nod.

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

Perl 6 | Reference Documentation | Rakudo