Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-12-27

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:58 spoop joined perl6
01:26 fayland joined perl6
01:27 fayland_ joined perl6
01:31 fayland__ joined perl6
01:48 gnuvince joined perl6
01:53 Khisanth joined perl6
01:57 Khisanth joined perl6
02:00 fayland___ joined perl6
02:00 fayland___ is now known as fayland
02:00 bonesss joined perl6
02:13 fayland___ joined perl6
02:19 rdice joined perl6
02:25 kisu joined perl6
02:32 EisnersAntonia joined perl6
02:38 EisnersAntonia left perl6
02:42 dmq joined perl6
02:47 fayland____ joined perl6
02:47 fayland____ is now known as fayland
03:07 nothingmuch joined perl6
03:16 lyokato joined perl6
03:19 spoop joined perl6
03:38 kanru joined perl6
03:42 nipotaway is now known as nipotan
04:04 spoopithy joined perl6
04:20 nothingmuch joined perl6
04:20 spoop joined perl6
04:28 LordBrain joined perl6
04:39 avarab joined perl6
05:05 imperator joined perl6
05:16 justatheory joined perl6
05:26 mok joined perl6
05:28 Aankhen`` joined perl6
05:36 luqui joined perl6
05:40 nipra joined perl6
06:09 mok is now known as imperator
06:13 kanru joined perl6
06:15 BooK joined perl6
06:21 RHainsworth joined perl6
06:22 RHainsworth left perl6
07:54 cognominal joined perl6
07:55 stef_ joined perl6
07:55 cognominal joined perl6
08:10 elmex joined perl6
08:23 iblechbot joined perl6
08:24 * gaal mooses
08:27 * gaal notices a moose- (well, reindeer-) related typo in spj's cool chapter on stm and beautiful haskell here: http://haskell.org/haskellwiki/Talk:SantaClausProblem
08:27 lambdabot Title: Talk:SantaClausProblem - HaskellWiki
08:28 pnu joined perl6
09:11 stef_ joined perl6
09:18 b_jonas joined perl6
09:28 ofer1 joined perl6
09:51 integral_ joined perl6
09:54 larsen_ joined perl6
09:55 integral_ is now known as integral
09:57 chris2 joined perl6
09:59 stef_ joined perl6
10:00 stef_ joined perl6
10:16 nipotan is now known as nipotaway
10:24 Lorn joined perl6
10:44 avarab is now known as avar
11:04 kanru joined perl6
11:10 buetow joined perl6
11:13 nekokak joined perl6
11:20 kanru joined perl6
11:24 BooK_ joined perl6
11:39 turrepurre joined perl6
11:54 iblechbot joined perl6
12:04 jiing_ joined perl6
12:06 autark joined perl6
12:30 AtomicStack joined perl6
12:40 ruoso joined perl6
13:07 ruz joined perl6
13:09 RHainsworth joined perl6
13:10 RHainsworth left perl6
13:14 dduncan left perl6
13:36 prism joined perl6
13:42 devogon joined perl6
13:55 b_jonas joined perl6
14:02 b_jonas joined perl6
14:28 [particle] joined perl6
14:35 vel joined perl6
14:41 marmic joined perl6
14:45 bonesss joined perl6
14:53 penk joined perl6
15:33 * bonesss is away: takedown
15:47 meppl joined perl6
15:48 nipra joined perl6
15:53 kanru joined perl6
16:20 kanru joined perl6
16:24 fglock joined perl6
16:27 fglock nothingmuch: would you provide an example on how a simple p5 program using MO should look like (a class declaration, a 'new' method, and instantiation)
16:27 fglock the example/ files don't run here
16:27 nothingmuch the examples run like normal perl 5
16:27 nothingmuch due the native package emitter thingy
16:28 nothingmuch the registry takes care of that bit
16:28 nothingmuch for other things, see t/si.t
16:28 fglock I'm getting 'Can't locate Generate/PMC/File.pm'
16:28 ruoso joined perl6
16:29 nothingmuch http://nothingmuch.woobling.org/cgi-bin/darcs.cgi
16:29 lambdabot Title: Darcs repositories
16:30 fglock thanks
16:31 fglock the t/ files seem to take some time to load - can this be speed up by generating lower level code, or is it not worth the trouble?
16:33 fglock I mean, if mp6 generated "less readable" code, would it possibly be faster?
16:33 nothingmuch the tests do no caching
16:34 nothingmuch otoh, if you write a small .t file for one of the example files the example .pm gets a .pmc generated
16:34 nothingmuch this cannot yet deal with complex class definitions or stuff like imports yet
16:34 nothingmuch but it's as fast as hand written code in every way
16:35 nothingmuch when you load $foo->meta then the original .pm file gets loaded as well, for the meta def
16:35 fglock I wonder if mp6 could generate "pmc-level" mo code
16:36 nothingmuch why bother?
16:36 nothingmuch MO does it for you
16:36 nothingmuch MO takes the meta class bits and installs them into the package
16:36 nothingmuch and then uses data::dump::streamer to serialize the package
16:36 nothingmuch and massages the output a bit
16:36 ashleyb joined perl6
16:38 fglock one reason would be to make it easier to port MO to native mp6
16:39 fglock because it would require less hacks
16:39 nothingmuch uh?
16:40 nothingmuch the data structures describing the meta classes can be serialized as YAML
16:40 nothingmuch and moved from p6 space to p5 space
16:40 nothingmuch there is no pmc-level mo stuff
16:40 nothingmuch there's MO::Emit::P5 which takes meta classes and flattens them into packages
16:40 nothingmuch which is a concept p6 doesn't even have
16:41 nothingmuch in the same sense
16:41 TimToady sorta by design...  :)
16:41 TimToady mostly because I'm proxying for everyone who doesn't want to think about meta classes.
16:42 nothingmuch what does mp6 want to get out of using MO?
16:42 TimToady I'm glad you guys are thinking about it though.
16:42 nothingmuch less code in writing a p5 runtime with OO?
16:42 nothingmuch because the runtime bits of MO are opaque by design
16:42 TimToady we're trying to bootstrap the real P6 compiler.
16:43 nothingmuch well, in that case a port of MO::Compile and some of MO::Run to p6 will be fruitful
16:43 nothingmuch and a port of all of MO::Run + code that replaces MO::Run::Aux on the target platform
16:43 nothingmuch if the target platform is perl 5 then it's ready
16:43 TimToady that plus a translated v6 gets us most of the way there.
16:44 nothingmuch if it's parrot it should be fairly trivial to make a set of responder interface type stuff to talk to parrot's native O
16:44 nothingmuch O
16:44 nothingmuch then the compiler must parse classes, build meta objects at compile time, and make them into responder interfaces which are basically an OO specific compilation unit
16:44 nothingmuch then it serializes that
16:45 nothingmuch and whammo
16:45 nothingmuch even easier wuold be to simply serialize the data structure used to construct the meta class
16:45 nothingmuch and then do the whole meta calc in p5 land with my implementation
16:45 nothingmuch that design is flawed though
16:46 nothingmuch because the whole point is making the meta model separated from the runtime
16:46 nothingmuch makes sense?
16:46 TimToady treating P5 as a form of assembly language, yes. :)
16:46 TimToady you want to express it in something more portable?
16:46 nothingmuch =)
16:46 nothingmuch well
16:47 nothingmuch responder interfaces are in a sense dumbed down meta classes
16:47 nothingmuch i think it's safer to standardize a few of these
16:47 nothingmuch i don't like my ones so much
16:47 ashleyb joined perl6
16:48 nothingmuch ideally the pipeline is that the compiler loads code, uses MO::Compile::* to make MO::Run::*, serializes MO::Run::*
16:48 TimToady Is there a reasonably compromise between what is possible and what is easy?
16:48 TimToady s/y/e/
16:48 nothingmuch well
16:49 nothingmuch the problem is that with p6-on-p5 we're trying to get a bit more goodnbess
16:49 TimToady goodness is good...
16:49 nothingmuch si si
16:49 nothingmuch when it's all purely MO::Run::* then the runtime simply has to support the targetted responder interfaces (natively or using a library or previously compiled code)
16:50 TimToady I mean, how close can we get to the "perfect" interface, and how much do we have to settle for a "perfectible" interface?
16:50 nothingmuch however, to get better results in terms of integration with the host language we want more info in there
16:50 nothingmuch the "perfect" way is perfect for systems which are not p5
16:51 nothingmuch because perl 5 has things like @ISA in the output
16:51 nothingmuch so MO::Emit::P5 digs into the meta class and then makes that more "native"
16:51 nothingmuch we have that
16:51 ashleyb joined perl6
16:51 nothingmuch we can also have an extremely slow runtime which is completely "perfect"
16:51 TimToady I just don't want to get stuck with an interface that is warped towards P5 and then can't be upgraded.
16:51 nothingmuch we can also have a somewhat ugly runtime that doesn't have native perl 5 stuff
16:52 nothingmuch i think the wisest thing is to go in baby steps
16:52 nothingmuch start with MO::Compile only
16:52 nothingmuch and push it all to perl 5 for now
16:52 ashleyb joined perl6
16:52 nothingmuch later we simply move MO to really live inside the compiler
16:52 TimToady we can Officially Break Anything till 6.0.0 comes out.  :)
16:52 nothingmuch i doubt we'll need to
16:53 TimToady whatever gets us to the bootstrap quickest without unnecessary long-term damage...
16:53 nothingmuch this, i think
16:53 nothingmuch the 'damage' in a sense is more work writing other runtime
16:53 nothingmuch s
16:53 nothingmuch but as long as we stop before that starts
16:53 fglock the plan for mp6 is to compile modules to simplified-mp6, and then to native. That's how it supports grammars. I wonder how much slower this would be for MO
16:54 TimToady is simplified-mp6 simpler than mp6?
16:54 nothingmuch i doubt MO comes into play there
16:54 fglock yes, it doesn't support grammars :)
16:55 nothingmuch hmm
16:55 nothingmuch i don't see a problem with it being plugged after simplified-mp6
16:55 nothingmuch whereby mp6 with grammars contains e.g. macros for classes etc
16:55 nothingmuch and simplified-mp6 has BEGIN { $mo_meta_calls }
16:56 nothingmuch then simplified -> native means running the BEGIN stuff, and making sure the resulting data structures simply make it out of there
16:56 nothingmuch as long as native is still p5 that's 0 work
16:56 nothingmuch just serialization
16:56 nothingmuch if we want to support more runtimes we'll have to refactor some
16:56 nothingmuch sounds sane?
16:56 TimToady how much refactoring for, say, parrot?
16:57 nothingmuch fas long as we have hooks for another pass in the compiler before emitting it should be trivial
16:57 nothingmuch again, the diff is that instead of outputting "raw" MO structures we want to output dumber ones, which are more portable
16:57 nothingmuch and the translation from raw to dumbed down is MO itself, plus any custom metaclasses
16:58 ashleyb joined perl6
16:58 TimToady basically moving from definitional toward operational, I guess...
16:58 nothingmuch that is a good way to put it
16:58 nothingmuch of course, operational is also pluggable
16:59 nothingmuch but reaching that stage the person extending operational will almost always want to do a per native-runtime port of the operational stuff
16:59 nothingmuch or it'll be slow
16:59 nothingmuch i have to go make salad
16:59 nothingmuch i hope i helped instead of confused ;-)
16:59 TimToady use a circularity saw on your salad. :)
16:59 * nothingmuch bought a big chef knife
16:59 nothingmuch very sharp
17:00 TimToady avoid digits
17:00 fglock making both parrot and perl5 work at the same time would assure the design is sane...
17:00 TimToady well, saner.  :)
17:00 nothingmuch hehe
17:00 TimToady I'm quite certain there are ways in which Perl and Parrot are similarly misguided.  :)
17:01 nothingmuch that's still a bit further off... will you guys be here in about 1 hour to discuss?
17:01 TimToady might be commuting about then, but likely around give or take 10 minutes.
17:01 * nothingmuch strongly believes that his model will work well in real ASM, his second (or maybe third) love
17:02 nothingmuch okies.. I'll be back
17:02 TimToady compiling P6 to straight ASM would be cool.
17:02 fglock I'll have a meeting soon, then will be around until 3h from now
17:03 fglock I was considering an asm output to mp6, but I guess it's better to start with C first
17:05 fglock and I think audreyt said she would work on the Haskell backend
17:10 fglock http://pugs.blogs.com/photos/visiolization/mp6bootstrap.html - shows how the grammar implementation plugs back into mp6
17:10 lambdabot Title: Visiolization: Mp6bootstrap
17:20 justatheory joined perl6
17:20 wamiks joined perl6
17:33 diotalevi joined perl6
17:39 diotalevi So is there syntax in Perl 6 yet for saying "this next bit is in prolog?"
17:44 fglock I think it's like: eval "...", :lang<prolog>
17:44 diotalevi Oh bummer. Bummer. Bummer. bummer.
17:45 diotalevi Well... eval <<'...', :lang<prolog> wouldn't be so bad though. Maybe?
17:46 diotalevi No wait.... it wouldn't be piles of awesome. I'm back to 'bummer.'
17:50 allbery_b hm, I would have thought there would be something like:  grammar Prolog { ... }   (...)  { use Prolog; ... }   (akin to "use perl5;")
17:50 TimToady macro this_next_bit_is_in_prolog ($ast) is parsed(Prolog) {...}
17:50 diotalevi Oh. Well happy day then.
17:57 TimToady Perl 6 is not a language.  Perl 6 is many languages.
17:57 nothingmuch btw, i'd like there to be an "official" micro perl 6
17:58 nothingmuch which contains just enough features to bootstrap extensible grammars, and the notion of BEGIN etc
17:58 * diotalevi only wanted the Perl 6 that'd let him speak a few languages simultaneously (or at least adjacently)
17:58 nothingmuch that is, the thing without all the "just a macro" features
17:59 nothingmuch which is no fun to work with, but is well defined and easier to port
17:59 TimToady how is this different from mp6?
17:59 allbery_b "official"?
18:00 nothingmuch i thought fglock said a bit earlier that the "simpler" form has no extensible grammars?
18:00 nothingmuch that said, I have another answer: the purpose is slightly different
18:00 nothingmuch miniperl 6 is mini enough to bootstrap
18:00 nothingmuch but is not mini out of minimalism
18:00 fglock it is bootstrapped
18:01 fglock yes
18:01 nothingmuch we could milk a bit more mini out of it, theoretically
18:01 nothingmuch and the reason *I* am interested is that this language interests me
18:01 nothingmuch because it's the mother of all meta languages ;-)
18:01 TimToady seems like the opposite approach to a circularity saw, but maybe you'd write your circularity saw in this eventually...
18:02 nothingmuch it hasn't much to do with it
18:02 nothingmuch it's like a "For later" thing
18:02 nothingmuch it would just be a nice spec layer
18:02 nothingmuch for the language underlying all the ergonomics that is perl 6
18:02 TimToady the problem with designing meta stuff is you never quite know what you'll want to be meta about later...
18:03 nothingmuch well, the language *is* in there
18:03 nothingmuch macro processing, BEGIN { }, the notion of subroutines and data types
18:03 nothingmuch but on the other hand I don't think that e.g. gather/take is part of that
18:04 TimToady and I think the circularity saw is related to that distinction
18:04 Lorn_ joined perl6
18:04 nothingmuch it is related, but it's purpose is different
18:05 nothingmuch because gather/take is very useful for writing a perl 6 compiler
18:05 nothingmuch but gather/take is not very useful when you're extending a core language to make a language that is not anything like perl 6
18:05 nothingmuch you'd have many bits to take away first
18:06 TimToady I don't see how gather/take would be useful for writing P6 and not other things too.
18:06 fglock did you see miniperl6.spec ?
18:07 nothingmuch TimToady: because by design when you make a DSL in perl you are normally "subclassing" the perl 6 grammar
18:07 nothingmuch but for writing non perl 6 related tools maybe you'd rather have a higher base class
18:07 nothingmuch fglock: no, I haven't
18:12 nothingmuch wow, my sister is really talented
18:12 nothingmuch today she didn't come home from school
18:12 nothingmuch so i went looking for her
18:12 nothingmuch in the rain
18:12 nothingmuch now my shoes were drying in the bathroom
18:12 nothingmuch and to thank me she spilled more water into them
18:12 nothingmuch *sob*
18:13 diotalevi Oof!
18:13 diotalevi What a nice sister.
18:13 TimToady I never had a sister...
18:14 BooK joined perl6
18:16 Lorn joined perl6
18:21 fglock nothingmuch: http://svn.pugscode.org/pugs/v6/v6-MiniPerl6/miniperl6-spec.pod
18:30 Lorn_ joined perl6
18:34 TimToady commuting &
18:51 fglock nothingmuch: so do you have a use for mp6?
18:51 nothingmuch not now
18:52 nothingmuch but I will be studying at some point in my future, i'd like a nice putty language to make some weird ones with ;-)
19:31 b_jonas joined perl6
19:53 koye joined perl6
20:08 Lorn joined perl6
20:09 polettix joined perl6
20:10 DaGo joined perl6
20:32 Lorn joined perl6
20:36 marmic joined perl6
20:37 Dr_Pi joined perl6
20:39 Dr_Pi Would I be mistaken if I said pugs is the most important software development project written in Haskell?
20:40 Tene important to who?
20:40 integral .oO( some important bits of Pugs are written in Perl 6
20:41 Dr_Pi Maybe significant might be a better word.
20:41 kolibrie darcs might be considered an important software development project written in Haskell
20:42 kolibrie and is part of the reason pugs uses Haskell (IIRC)
20:50 stevan Dr_Pi: Actually GHC is written in Haskell
20:51 stevan That would probably be the most signifigant, since it compiles Haskell :)
20:51 Lorn_ joined perl6
21:11 elmex joined perl6
21:13 weinig is now known as weinig_
21:13 weinig_ is now known as weinig
21:15 Aankhen`` joined perl6
21:25 allbery_b ghc is certainly the largest.  most significant?  IIRC Deutche Bank hires Haskell programmers --- it occurs to me a financial application for a multinational bank is potentially more significant than ny of the above :)
21:28 Lorn joined perl6
21:33 weinig is now known as weinig|bbl
21:40 DaGo joined perl6
21:44 Lorn_ joined perl6
21:46 stevan allbery_b: that assumes that they use Haskell in a production environment for a financial app
21:46 stevan just cause they are hiring, doesnt mean they are running the bank with it :)
21:46 stevan and of course,.. if they use GHC to compile their Haskell, then it seems we might be back full circle
22:10 xpika joined perl6
22:49 stevan joined perl6
22:53 elmex joined perl6
23:05 weinig|bbl is now known as weinig
23:07 frankg joined perl6
23:09 stevan_ joined perl6
23:11 dduncan joined perl6
23:18 Psyche^ joined perl6
23:32 Psyche^ is now known as Patterner

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

Perl 6 | Reference Documentation | Rakudo