pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:14 araujo left 00:34 wayland76 joined 00:35 araujo joined 00:47 hercynium joined 00:48 eternaleye joined 00:49 alester joined 00:51 nothingmuch left 00:52 felipe left 01:08 Maghnus left 01:11 Ontolog joined 01:14 sri_work_ is now known as sri_work, sri_work left 01:15 sri_work joined 01:19 Exodist left 01:20 eternaleye_ joined 01:24 hercynium left, alester left 01:25 alester joined 01:26 felipe joined 01:31 wknight8111 left 01:35 kanru left 01:39 fullermd joined 01:41 eternaleye left 01:44 justatheory left, aindilis left
wayland76 Hi all. I've just gone from parrot 0.7.1 to 0.8.0, and its definitely an improvement 01:44
I still can't run any of my modules I'm working on, but it's getting closer :) 01:45
01:45 aindilis joined
wayland76 Does anyone know whether gather/take works yet? 01:45
01:45 kanru joined
literal try it? 01:45
wayland76 rakudo: take 1 01:46
p6eval rakudo 31963: OUTPUT[No exception handler and no message␤current instr.: 'take' pc 12997 (src/gen_builtins.pir:8053)␤]
wayland76 how do I interpret that :) 01:47
?
literal rakudo my @list = gather { take "this" } 01:48
rakudo: my @list = gather { take "this" }
p6eval rakudo 31963: RESULT[["this"]]
literal seems to work
wayland76 ok :)
I'm told that it's eventually supposed to work even if the take is in a different sub than the gather 01:49
and that's what I was having trouble with :)
(I'm trying to write an iterator :) )
01:49 abra joined
literal rakudo: sub pick { take "this" }; my @list = gather &pick; 01:52
p6eval rakudo 31963: RESULT[[]]
literal hm
wayland76 great example :) 01:53
Ontolog i've been too busy at work to help :( 01:55
i think once Perl 6 is bootstrapped i can contribute again, it's easier to write things in Perl 6 than PIR
moritz_: if there are some things that need to be written in Perl 6 let me know
01:56 araujo left
wayland76 Ontolog: I don't speak PIR 01:56
But I'm having fun trying to implement some classes in Perl6
Even though I spend a fair bit of time metaphorically cursing the implementation :) 01:57
But it's improving in leaps and bounds :)
Ontolog yes but not quite there yet... still not 'bootstrapped' 01:58
meaning we still can't ditch PIR and write the rest of Perl 6 in Perl 6
PIR is a PITA
wayland76 I think that's what they mean by version 1.0 being ready by Christmas :)
I spent half an hour trying to get a bit of a grip on PIR 01:59
But I quit :)
literal: according to ROADMAP, gather and take "depends on resumable exceptions from pir" 02:00
02:00 abra left
wayland76 literal: Which is probably what's needed to make the example above work :) 02:00
02:00 araujo joined
wayland76 Ok, regex question everyone 02:03
if I write my $M := $s ~~ XML::TOP;
...where XML is a grammar...
Then $M is a regex object 02:04
(ie. PGE::Match)
If I do: my PGE::Match $M = $s ~~ XML::TOP;
I get a type mismatch error, because it apparently wants $M to be a Str instead 02:05
I don't get it :)
02:06 eternaleye_ left
wayland76 I thought := made it point at the container that = would assign to 02:06
sort of like a reference
pasteling "wayland76" at 118.208.174.27 pasted "Code that produces strange results" (57 lines, 1.5K) at sial.org/pbot/32799 02:18
"wayland76" at 118.208.174.27 pasted "Strange results" (24 lines, 832B) at sial.org/pbot/32800
wayland76 Notice how, in the results, going from After 0 to Before 1, it changes $M.WHAT() 02:19
Why is $M changing at all?
(I'm guessing a bug, but it could be my inadequate understanding too :) ) 02:20
02:23 araujo left, wayland76 left, AndyAway left, rhr left, pmichaud left, kcwu left 02:24 araujo joined, wayland76 joined, AndyAway joined, pmichaud joined, kcwu joined, rhr joined 02:26 rhr_ joined, pmichaud_ joined, eternaleye joined 02:28 rhr left, wayland76 left, pmichaud left, kcwu left, AndyAway left, araujo left 02:29 wayland76 joined, AndyAway joined, kcwu joined, araujo joined
wayland76 Network splits :) 02:30
02:36 Alias_ joined 02:39 Alias__ joined 02:40 Psyche^ joined 02:52 xinming left, xinming joined, BinGOs_ joined 02:53 nothingmuch joined 02:58 Alias_ left, Patterner left, Psyche^ is now known as Patterner 03:14 BinGOs left
pugs_svn r22706 | lwall++ | [STD] workaround for misparse of <==, using order to put good before bad on tie 03:26
r22706 | lwall++ | (the real fix needs precedence table knowledge at lexer generation)
03:28 alanhaggai joined
wayland76 Seems like my earlier complaint was related to rt.perl.org/rt3/Public/Bug/Display.html?id=58392 03:29
lambdabot Title: #58392: Recursion and for loops interact badly in Rakudo
04:16 alanhaggai_ joined, alanhaggai left, alanhaggai_ is now known as alanhaggai 04:18 ab5tract joined 04:21 iktome joined 04:23 Bzek joined 04:47 nothingmuch left 04:55 pyrimidine joined
pyrimidine For your consideration: www.acm.uiuc.edu/conference/2008/videos (TimToady's talk at UIUC) 04:56
lambdabot Title: Reflections | Projections 2008 : Videos
04:56 [particle]1 joined
pyrimidine (Lots of other interesting ones as well) 04:56
04:57 pyrimidine left
literal ooh 04:58
05:03 cognominal left 05:11 apeiron_ left 05:17 justatheory joined 05:21 alester left 05:26 alester joined 05:28 justatheory left 05:29 wayland76 left 05:31 aindilis left, eternaleye left, aindilis joined 05:38 wayland76 joined 05:41 REPLeffect left 05:44 baest joined 05:55 eternaleye joined 06:17 elmex joined 06:19 BinGOs_ is now known as BinGOs 06:30 mberends left
iktome perlbot: print "Hello, all" 06:32
06:33 alester left 06:36 ab5tract left 06:39 |Jedai| joined 06:50 pbuetow joined 06:54 adc_Penner joined, ashizawa joined 06:56 Jedai left 07:14 araujo left 07:16 araujo joined 07:20 cosimo joined 07:43 penk joined 07:48 pbuetow left 07:52 adc_Penner2 joined 07:54 adc_Penner left 08:12 adc_Penner2 left 08:24 schmalbe joined, aindilis left 08:31 iblechbot joined 08:45 drbean_ joined 08:55 drbean__ joined 08:56 drbean left 08:58 cognominal joined 09:06 drbean_ left 09:26 Maghnus joined
lizsac holy shit 09:46
i see some crazy output with this script
09:46 cognominal left
lizsac if @array { say "Hello World"; 09:46
}
i take it you don't specify use strict and use warnings in a perl6 script 09:48
hahah that's crazy i got some weird parrot dumps
09:51 cognominal joined 09:53 Ontolog left
lizsac weird 09:56
i don't know what these dumps mean
i'm trying out really simple stuff and i keep getting parrot dumps of some sort
i guess my shit is broken 09:59
schmalbe The error message from parrot kind of says: Please declare @array before using it 10:02
lizsac compiler errors
schmalbe my @array;
if ! @array { say "Hello World"; }
lizsac i did that
schmalbe Are you using Rakudo checked out from Subversion ? 10:03
lizsac yeah 10:04
i compiled it yesterday
supposedly the new one
schmalbe Could you paste the output ? 10:05
lizsac trying to recreate it
i think it was mainly when i tried to put stuff in the top of the file 10:06
like use strict and use warnings
or #!/usr/local/bin/perl6
10:07 beckheng joined
lizsac why does it trip out when i say use strict; ? 10:07
10:07 ejs joined
schmalbe Library loading might not be implemented yet in Rakudo. 10:08
lizsac so no use anything 10:10
schmalbe 'use v6;' works 10:11
10:11 cognominal left
schmalbe use strict; and use warnings; is the default in Perl6 anyways 10:12
lizsac or if i try readline
readline no worky 10:13
i didn't realize things were this barebones
schmalbe 'make spectest' checks out the test suite from the Pugs repository.
lizsac you mean use v6 in perl? 10:14
perl5
schmalbe Somewhere there is a datafile, that says which tests are supposed to be working.
WRT 'use v6;' I mean putting 'use v6;' on top of Perl 6 code and running it with Rakudo 10:15
lizsac what if you don't say use v6;
i don't see any of that in the tutorials
10:15 penk left
lizsac heh 10:16
i can't believe there's no readline
is there some other way to get input from the console?
schmalbe Not using 'use v6;' is OK. 10:17
I think you can read from the filehandle $?STDIN 10:18
lizsac why are they saying in perl6 tutorials to use readline? 10:19
schmalbe Which tutorial ? 10:21
lizsac www.pti.co.il/talks/perl6/perl6-stdin.html 10:22
lambdabot Title: Reading from the keyboard
lizsac heh probably not a good source for perl6 info
schmalbe Not too much things have changed since 2007, so that is OK. 10:26
But the tutorial is based on Pugs, so he probably has used code that worked in Pugs, but not currently in Rakudo 10:27
perlgeek.de/blog-en/perl-6/ is a nice resource 10:28
lambdabot Title: blog | Perlgeek.de Blog :: Category Perl-6
schmalbe t/spectest.data contains the list of spectests that are supposed to be passing 10:31
lizsac well 10:36
i'ma play with ruby rails and see what that is all about
i'm not feeling the perl6 love right now 10:37
10:39 tomyan joined
schmalbe Check back in couple of months. Or take a look at www.perlfoundation.org/perl6/index.cgi?november in the meantime. 10:39
lambdabot Title: November / Perl 6 10:40
literal where is november's source? 10:43
moritz_ literal: github.com/viklund/november 10:44
lambdabot Title: viklund's november at master — GitHub
literal thanks
10:46 novaalpha joined
novaalpha hello. in perl 5 I can do a nice funny thing like $x->()->()->()->(); 10:46
how do I do that in perl 6 ?
moritz_ novaalpha: $x.().().() 10:47
novaalpha thx
(was just wondering)
moritz_ rakudo: sub pick { take 3; }; say gather pick()
p6eval rakudo 31963: OUTPUT[3␤]
moritz_ literal: &pick doesn't execute the sub, and neithr does gather. 10:48
literal but aren't you calling pick() before calling gather there? 10:49
10:49 smg left
moritz_ rakudo: sub pick { take 3; }; say gather { pick() } 10:49
p6eval rakudo 31963: OUTPUT[3␤]
moritz_ literal: good point, I think it needs a block 10:50
std: gather foo
p6eval std 22706: OUTPUT[Unknown routines:␤ foo called at 1 ␤parsed␤]
moritz_ it seems it doesn't
maybe gather is more like a macro than an ordinary sub
11:04 beckheng left 11:14 pmurias_ left, cognominal joined 11:59 just_ joined 12:14 z80ASM joined 12:16 BinGOs left 12:19 smg joined 12:21 BinGOs joined 12:36 Bzek left 12:42 Bzek joined 12:44 z80ASM left 12:48 pjcj left 13:02 alanhaggai left 13:06 ashizawa left 13:25 Lorn joined 13:30 masak joined 13:32 iktome left 13:33 alanhaggai joined 13:34 ruoso joined
ruoso Hello! 13:35
[particle] hi! 13:36
13:37 cognominal left 13:41 Lorn_ joined 13:42 Lorn_ left, cognominal joined 13:54 just_ left 13:57 apeiron joined, ispy_ joined 14:01 mj41 left 14:06 pmurias joined 14:12 mj41 joined 14:13 TJCRI joined 14:14 jhorwitz joined 14:15 eternaleye left 14:23 Exodist joined, Exodist left, Exodist joined 14:26 cognominal_ joined 14:27 cognominal left 14:29 pmurias_ joined
pmurias_ ruoso: hi 14:29
ruoso hi pmurias
pmurias_ ruoso: is there anything besides signatures we need before starting to bootstrap the metamodel? 14:31
ruoso I don't think so... of course as we progress we're probably going to miss one or another runtime feature 14:32
pmurias_ OT my screen turn black after a couple of seconds after i do 'ifup eth1' or the X server restarts (if i'm lucky) 14:33
14:35 novaalpha left
pmurias_ ruoso: btw how should the version of the P6Meta under construction be called? 14:35
ruoso does it need to be a different name? 14:36
pmurias_ it could be placed somewhere else
14:39 kanru left
ruoso hmmm... I think we could just place it in the definitive place already 14:39
14:39 kanru joined 14:40 AndyAway left 14:43 alester joined
pugs_svn r22707 | pmurias++ | [mildew] mildew doesn't brake ¢ in the output 14:46
r22707 | pmurias++ | start of bootstraping P6Meta
ruoso pmurias, in order to use the compiler "as-is"... I think you should presume a variable of some sort that holds the prelude scope 14:51
pmurias_, ^ (consider ghost'ing the other version of you)
14:53 xuser left 14:54 pmurias left, pmurias_ is now known as pmurias
pmurias is going to shut down that irssi tomorrow :) 14:54
ruoso pmurias, maybe we should implement CALLER::<>
then you can make $CALLER::P6Meta := ::p6opaque.CREATE() 14:55
because it's actually something like...
first defining the local name P6Meta, then putting it on the global namespace, and then installing it in the caller scope
pmurias is P6Meta a contextual variable?
ruoso the import'ing of modules kinda does that 14:56
when you "use P6Meta", the import installs the name P6Meta in the caller scope
pmurias the lexical prelude might just expose itself as LexicalPrelude
ruoso during the bootstrap, you mean
pmurias yes
ruoso like $prelude.{P6Meta} := ::p6opaque.CREATE() 14:57
actualyl $prelude.<P6Meta> := ::p6opaque.CREATE()
pmurias $LexicalPrelude<P6Meta> := ::p6opaque.CREATE()
ruoso yeah... that should be ok
and also $RootNamespace<P6Meta> := $LexicalPrelude<P6Meta>;
actually, it would probably be $RootNamespace<*::P6Meta> 14:58
14:58 xuser joined
ruoso so... in resume... 14:59
in summary, I mean...
$RootNamespace<*::P6Meta> := ::p6opaque.CREATE();
$LexicalPrelude<P6Meta> := $RootNamespace<*::P6Meta>; 15:00
my $p6meta := $RootNamespace<*::P6Meta>;
pmurias i ignore RootNamespace for now
ruoso ok... sounds reasonable 15:01
15:11 xuser left 15:13 Alias__ left
pugs_svn r22708 | pmurias++ | [mildew] multiple arguments to a method call are supported 15:14
r22708 | pmurias++ | P6Meta - add_method placeholder
pmurias ruoso: after we have add method and HOW, we can use class P6Meta is also {...} and fill in the other methods right? 15:17
15:18 schmalbe left 15:32 xuser joined 15:36 [particle]2 joined 15:37 pedrob joined
ruoso pmurias, as long as running add_method doesn't require any feature we don't yet implement 15:38
15:39 pmurias left
pugs_svn r22709 | ruoso++ | [mildew] meta methods receive the referred object as the first argument. 15:45
ruoso @tell pmurias... you can't call $p6meta.add_method to add a method in p6meta, because p6meta's how is not p6meta, but pureprototypehow, so you would need to call add_method on pureprototypehow instead 15:46
lambdabot Consider it noted.
ruoso @tell pmurias, I've just realized that if PurePrototypeHow implements add_method in lowlevel, it makes the things a lot easier... we might only need to support a "class Foo meta Bar" syntax of some sort and then it can be the standard class compilation... 15:53
lambdabot Consider it noted.
ruoso TimToady, have you seen the idea I posted here about a syntax for declaring the metaclass for a class?
15:53 [particle]1 left
TimToady I always thought a different class with a different metaclass should define its own keyword, like class vs role 15:54
ruoso hmm... I see.. 15:55
so... metaclass P6Meta { ... } would look sane
TimToady but I don't feel strongly about it, other than to consider it
ruoso actually 'metaclass' is too generic.. 15:56
but something that would refer to the PurePrototype metaclass
TimToady well, if you grab the keyword first... :)
15:57 apeiron left, jfredett left, pasteling left, lumi left, ting left, clkao left, lisppaste3 left
TimToady whether you should overload "class" really comes down to whether you think you have the same api as "class" 15:58
a role is fundamentally different, so it gets a different keyword
ruoso hmm... so that probably means P6Meta should be simply called 'Class' 15:59
TimToady what does your declaration do that an ordinary class declaration doesn't, and vice versa
ruoso it's a pure prototype, with no delegation... meaning that it only looks for methods in its own private space
no inheritance of any form
no real instantiation, only clonning 16:00
TimToady then giving it a name associated with "class" is probably a mistake
from the standpoint of people trying to understand it
[particle] prototype P6Meta
16:00 apeiron joined, jfredett joined, pasteling joined, lumi joined, lisppaste3 joined, clkao joined, ting joined
ruoso prototype Class { ... } 16:01
and then it implements the MOP for a Class
TimToady we already have proto and protoobject, so prototype might be confusing 16:02
ruoso indeed...
[particle] protoclass :)
moritz_ pseudoclass
quasiclass
ruoso but it's indeed a prototype, in the same sense we use
[particle] yes, it is a prototype, for sure 16:03
TimToady metatype maybe
ruoso not really... it's a standard object,
it's simply governed by a different metaclass
in this case, the metaclass is PurePrototypeHow
which simply looks in the methods stored in the current object 16:04
TimToady protoclass does have about the right flavor
ruoso yeah... it's not that bas
*bad
TimToady howness :) 16:05
ruoso ?
TimToady hownow...
just looking for the joke names based on HOW
ruoso knowhow 16:06
[particle] class Class isa protoclass does delegation does instantiation { ... }
TimToady yeah, like that
I like knowhow
[particle] knowhow++
16:06 cosimo left
TimToady huffman coding is right, compared to class 16:07
ruoso are you really considering "knowhow Class { ... }" ?
TimToady why not?
ruoso I don't know...
maybe I was really taking it as joke ;)
16:07 armagad joined
ruoso but 'knowhow' is cool, and relates to PurePrototype 16:07
TimToady you have to understand that I don't think humor and sincerity are mutually exclusive :) 16:08
ruoso :P
one other thing... considering this is part of the prelude
do you think it could ever be a part of the spec? 16:09
TimToady will standard classes be based on knowhows?
ruoso yes... at least in SMOP
it's how it breaks the MOP circularity 16:10
16:10 pedrob_ joined
TimToady it might be one of those things that is optional for an implementation, but if you do it, do it like this... 16:10
ruoso ok, that should be fine... 16:11
TimToady, can it be part of STD.pm?
TimToady and it's possible a different implementation might make it look like there are knowhows, but it's really faking them up for reflective purposes 16:12
I don't see why not, offhand...it's not like it's a word that is going to accidentally conflict with anything else 16:13
16:13 pjcj joined
TimToady so even if an implementation doesn't use it, I don't see a problem 16:13
ruoso right... it's just to make it easier for mildew to compile it
TimToady well, let's put it in for now and see what happens down the road.
16:14 masak left
pugs_svn r22710 | lwall++ | [STD] add some knowhow :) 16:15
TimToady ruoso++
ruoso heh 16:16
TimToady shower & 16:18
[particle] pmichaud_: looks like EXPORT is a method on package, not NameSpace 16:20
...reading S11...
ah, now i see the bit about Foo::Bar.EXPORTALL 16:21
16:26 pedrob left 16:32 ejs left 16:35 justatheory joined 16:38 pedrob_ left 16:53 pbuetow joined
alester I'm going to put up a page that says "Perl 6 is a spec, and Rakudo is the implementation, and please shut up about that you disagree with that." 17:05
moritz_ alester: please say "Rakudo is *an* implementation", not *the* implementation. 17:06
alester sure.
but the key is, i tire of getting shit from PB readers who don't like the decision.
Like I made it up.
moritz_ PB? 17:07
TimToady peanut butter
alester perlbuzz.com/2008/10/perl-6-isnt-ex...rware.html is what spawned the current whining.
lambdabot Title: Perl 6 isn't exactly vaporware - Perl Buzz
alester "They're not waiting for Rakudo 1.0, they're waiting for Perl 6" I hear.
Which I guess is true, literally.
They just don't know they're waiting for Rakudo 1.0.
moritz_ they're waiting because they are too lazy to *work* on it. 17:08
alester "lazy"?
That is a tremendously short-sighted way to look at it, moritz.
moritz_ or too occupied with other thrings
*things
alester LIKE MAKING MONEY?
LIKE RUNNING THEIR BUSINESSES?
moritz_ calm down, I not that not everybody has as much time as I do 17:09
alester It's just a really shitty thing to throw the word "lazy" at people. 17:10
17:10 Jedai joined
moritz_ right, I'm sorry 17:11
pmichaud_ I kinda like the idea of "early adopter edition" 17:13
17:13 pmichaud_ is now known as pmichaud
moritz_ pmichaud_: yes, but I think it's too early now 17:13
IMHO blockers are 1) lexicals 2) list context 3) inititalizations on attributes 17:14
pmichaud I'm working on lexicals now. Like, right this moment.
moritz_ without that real world programming is jsut as pain
I guessed so, yes
pmichaud list context comes after that -- shouldn't be too difficult. 17:15
initializations on attributes I'll do if simple, otherwise jonathan++ will likely do that
moritz_ another (hopefully small item) is that you can't get from an array ref to an array 17:16
pmichaud that gets fixed as part of list context
17:16 adc_Penner joined
moritz_ ok 17:16
pmichaud it's relatively small, except that we're having to re-think rakudo's container model
I already have the draft for that (and have reviewed it with jonathan) -- it's just that implementing it has the potential to break a lot of existing functionality 17:17
i.e., there may be some major code refactoring that results.
moritz_ if you have something where I can help without digging too deep into the parrot internals, please let me know
pmichaud it's all pretty deep in parrot internals, alas 17:18
moritz_ :(
so far I felt that my energy is better invested in the test suite than in digging deep into parrot 17:19
(and my sanity ... )
pmichaud I agree with that.
17:20 pedrob joined
ruoso just love the irc protocol... you can take the cable out for 5 minutes, get back and the connection is still there... 17:25
17:30 abra joined
cognominal_ Perl 6 is not vaporware, it is just vapourware... 17:38
17:47 abra left 17:48 REPLeffect joined 17:51 nothingmuch joined 17:57 Bzek left, zamolxes joined 18:06 pmurias joined 18:09 armagad left 18:11 xuser left
ruoso @tell pmurias, the current bvalue implementation is causing some trouble... I'm working on transforming it into hash_bvalue that holds a reference to the hash and the key, and only does the actual lookup later... 18:12
lambdabot Consider it noted.
18:20 xuser joined, tomyan left, explorer joined 18:21 Southen left 18:27 pmurias left 18:57 jfredett left, xuser left 19:16 xuser joined
pugs_svn r22711 | ruoso++ | [smop] something is very bad around here... the init and destr order is causing a segfault, I am only commiting so other can help me catching this bug... 19:26
r22712 | ruoso++ | [smop] reverting pureprototypehow that was plain b0rk3d after my commit 19:29
19:29 sri_work left 19:31 pedrob_ joined, pedrob left 19:32 pedrob joined
ruoso later & 19:33
19:33 ruoso left
moritz_ @ask azawawi did you write something about your syntax hilighter? a blog or something? if not, I could. 19:37
lambdabot Consider it noted.
19:38 pedrob_ left 19:40 explorer left 19:45 [particle]1 joined 19:50 Ehtyar joined 19:52 perl7 joined, Southen joined
perl7 Anyone has tested parrot 0.8+perl6 on Windows Vista? 19:52
I get this message running perl6.exe: "load_bytecode" couldn't find file 'P6object.pbc' 19:53
20:00 apeiron left 20:01 justatheory left 20:04 [particle]2 left 20:07 apeiron joined
[particle]1 perl7: i released parrot 0.8.0 and rakudo from vista tuesday 20:13
perl7: if you hop over to irc.perl.org#parrot we'll get you fixed up
perl7 thanks!
I installed parrot 0.8 for vista 1 hour ago 20:14
I'm a newbye
jhorwitz hm. i need to load and run PIR in rakudo. right now i'm cheating by using "use" to load it, but it got me thinking. we'll need an implementation-agnostic way to load extensions, like XS's bootstrap in p5. 20:30
20:31 cj left
[particle]1 jhorwitz: can you run it inline? 20:32
or must it be a separate file?
jhorwitz can i run it inline in rakudo? 20:33
that's beside my point, but i'm curious
i didn't see any syntax to do that
but my concern is that we'll have rakudo-specific scripts that other implementations would barf on. 20:34
i'd love to have a "bootstrap" or whatever, that does all the implementation-specific stuff behind the scenes (rakudo could load PIR/PBC, SMOP could do whatever SMOP does, etc.) 20:35
but i didn't see anything like this spec'd out anywhere
pmichaud jhorwitz: my plan is to have a 'Parrot' HLLCompiler that can load libraries and handle symbol importation 20:36
jhorwitz ok, so that would be the backend for this
pmichaud in rakudo, one would do: use Something:lang<Parrot>; or something like that 20:37
[particle]1 jhorwitz: yes, you can run it inline today with {{ PIR HERE }}
jhorwitz my concern is that isn't portable across implementations
20:37 alanhaggai left
[particle]1 but that will become Q:PIR { ... } 20:37
pmichaud across implementations of Perl 6?
jhorwitz right. 20:38
pmichaud I don't know what we can do about that.
jhorwitz that's why i'm proposing a front end to it.
pmichaud clearly some implementations will offer features and advantages that others might not be able to take advantage of
moritz_ the "right" frontend is eval() with the :lang attribute
eval($program, :lang<PIR>); 20:39
around which Q:PIR could be a simple macro (and cheated in Rakudo)
jhorwitz what does SMOP do with that?
i imagining this.... 20:40
moritz_ jhorwitz: fail "parrot not embedded"
moritz_ just wrote a verbose reply to perlbuzz.com/2008/10/perl-6-isnt-ex...rware.html
lambdabot Title: Perl 6 isn't exactly vaporware - Perl Buzz
pmichaud and eval( :lang<PIR>) isn't substantially different from use Foo:lang<Parrot>; in terms of how implementations would react.
jhorwitz let's just use XS's bootstrap as an example.
i could say: bootstrap 'MyModule'
rakduo would know to load MyModule.pbc 20:41
20:41 Nullity joined
jhorwitz ^rakudo 20:41
other implementation might have .so or .dlls to load
20:41 ispy_ left
jhorwitz but that needs to be hidden from the programmer 20:41
am i making sense? 20:42
moritz_ it makes sense, but harbors the danger of too much magic 20:43
jhorwitz no more than "use" already has in rakudo.
i'd just hate to see a bunch of ifdef-like blocks with implementation-specific perl everywhere 20:44
moritz_ would really like a standardized C NCI across implementations
jhorwitz agrees with moritz_
pmichaud note that rakudo's "use" magic is actually defined to some extent by the Perl 6 spec
I didn't make use Foo:lang<...>; up myself
jhorwitz and here i thought you were the creative type. ;-)
pmichaud oh, sorry, it's :from 20:45
so I did make up lang, but not the semantics. :-) 20:46
use Foo:from<Parrot>
jhorwitz ponders that
i ran into this problem in mod_perl6 20:47
i have a perl6 module that requires some PIR help, so i load in that bytecode in the module itself
pmichaud it requires PIR help because Rakudo doesn't support the equivalent operations yet, or because it truly is parrot/mod_parrot specific? 20:48
jhorwitz well, right now it's the former, but i certainly have situations where i want to do lower-level stuff. 20:49
[particle]1 use Foo:from<$?COMPILER>; 20:50
jhorwitz with XS & bootstrap, loading the supporting files (.so, .dll, whatever) is all handled behind the scenes, and the syntax is the same everywhere.
20:52 ZuLuuuuuu joined
jhorwitz i guess i should look at the spec a bit more, get my thoughts together and post to p6l. 20:52
[particle]1: that syntax both scares and intrigues me. :) 20:55
[particle]1 it's the right time of the year for that reaction, jhorwitz 21:04
jhorwitz :-O
21:07 justatheory joined 21:12 araujo left 21:16 adc_Penner left, TJCRI left 21:24 eternaleye joined, perl7 left 21:40 kidd joined 21:46 avar left, avar joined 21:47 pedrob left, pedrob joined 22:05 pmurias joined 22:12 pbuetow left 22:19 pedrob left 22:20 iblechbot left 22:22 pedrob joined 22:25 pedrob left 22:42 pmurias left 22:52 Exodist left 22:53 hercynium joined, hercynium left 23:03 eternaleye left 23:08 ruoso joined 23:16 rhr_ is now known as rhr 23:26 elmex left 23:32 ZuLuuuuuu left 23:37 PZt left 23:45 apeiron left, apeiron joined 23:57 eternaleye joined