pugscode.org/ | nopaste: sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by diakopter on 11 July 2007.
Khisanth ?eval [~] <m oo se> 01:44
hrm does nothing! :P
Juerd_ No evalbot. 01:50
Khisanth what is exp_evalbot? 03:43
mncharity what's the name of the operation which takes a signature, a capture, and a lexical scope, and dumps the capture values into the scope? I want to say "bind", but that's already committed to other use. 04:45
spinclad dumps the capture values into the signature vars, adding them to the scope? 05:10
i'd say that is indeed a binding.
mncharity spinclad: re, ?, hmm, really? my fuzzy understanding was that Signatures are receipts for unpacking Captures into scopes, rather than being folded together with scopes. so its Capture vals into scope vars, mediated by a Signature, rather than signatures having vars. no? 05:17
mncharity *recipes 05:17
diakopter all: what say you on the prospect of holding a fundraiser? PM me if you're interested in the least. 05:19
bsb S03: infix:<:=>, run-time binding 05:20
is that it?
or "To really bind to a signature, use the * pattern to delegate binding to the when statement's block instead" also in S03 05:22
pugs_svn r19603 | putter++ | [kp6] docs/ruby_backend.txt: added overview, objectives, design notes. 05:31
mncharity bsb: thanks. re is that it, well, not quite. basically I was wondering what 05:33
mncharity to call the method... sig.mumble(cap,current_env) where sig is a signature, cap a capture, and current_env the scope which gets modified. I suppose 05:34
it could be called "bind", but 05:35
that's what the low level (here's a var, there's something else), bind'em (rather than say, assign'em) 05:36
where the sig.mumble(cap,env) example is more an assignment.
sig.assign(cap,env) ?
blech
so a was hoping for a name for a Sig and a Cap getting together. 05:37
spinclad same operation as sig := cap in the current env
spinclad :$sig := |$cap 05:37
mncharity hmm, ok, so I guess "bind" it is...
pugs_svn r19604 | putter++ | [kp6] docs/ruby_backend.txt: s/mumble/bind/g, for the name of a 05:42
r19604 | putter++ | Signature and a Capture getting together. bsb++ spinclad++
mncharity thanks! :)
agentzh hmm...auto-smoking on feather is having problems... 06:43
"Test::TAP::HTMLMatrix - missing dependency Best - missing dependency" 06:44
agentzh it seems feather's perl has been reinstalled? 06:51
hehe, lacking a lot of dependencies :)
running smoke now :) 06:52
agentzh at some point, maybe we should tell auto-smoke run rakudo instead of pugs. 06:56
*to run
nex6 i saw an artical posted on slashdot linked to a post, (developers.slashdot.org/developers/...255.shtml) 06:58
nex6 its sawa Perl6 is now Rukudo? 06:58
s/sawa/says/
Auzon Rakudo is the name of the Perl 6 implementation on Parrot 06:59
Perl 6 now means the specification
ozy` yodu des 07:00
nex6 so, will there be *other* implamentations?
agentzh nex6: pugs is one already. 07:01
Auzon Pugs and smop
kp6 and mp6, though they aren't intended to be fully Perl 6
nex6 then is the Perl6 spec finialized? eg useable for production? 07:02
agentzh nex6: not yet.
Auzon I'm not 100% sure, so someone should correct me if I'm wrong. But as I see it, we need at least one working implementation to make sure the spec is good
ozy` use.perl.org/~pmichaud/journal/35400 <== clever 07:03
Auzon I like the name, too
agentzh sigh. use.per.org is so slow in my place :( 07:04
nex6 all the Perl6 implamentations will be more or less like the parrot/rakudo? no Perl6 package/install? I am just trying to get it all right in my head and make sure i *get it* 07:05
agentzh nex6: currently the most complete implementation for Perl 6 is still Pugs :)
nex6: anything that passes the official Perl 6 test suite will be called "perl 6"
Auzon Eventually, there will be a binary for Rakudo and Pugs 07:06
agentzh nex6: the test suite is living in pugs' repos.
Auzon Either one runs Perl 6
At least, that's how I understand it
allbery_b actually, neither does. they both run approximations of perl6 with many fetures missing and many tests still not passing 07:08
Auzon well, either one will run Perl 6
allbery_b eventually one or the other, or both, and/or some other implementation, will pass the Perl 6.0.0-STD test suite and will officilly be a Perl6 07:09
Auzon That's why we need a good test suite. :)
allbery_b well, the 6.0.0-STD spec isn't 100% nailed down yet. close, but not yet, and still possibly subject to changes if it's decided some features just can't be done in a reasonable timeframe 07:10
nex6 so, parrot/Perl 6 and pugs/Perl6 will offically be Perl 6 once they mature and pass the test suite and Perl 6 spec is finialzed?
agentzh nex6: according to larry, there won't be official perl 6 ;) 07:10
nex6: perl 6 tends to have multiple implementations, just like pugs 07:11
*just like haskell
sorry
Auzon Or Lisp?
allbery_b hm? official perl6 is anything that passes the spec. like official unix is anything that asses the open group's spec
agentzh lol
Auzon Or C compilers?
allbery_b *passes
nex6 that makes it kinda clear, i think. so these parrot /Perl 6 is like the "c/C++" languages where there is the spec and the implamentations eg compliers? 07:12
agentzh nex6: yup
nex6: that's the intention.
allbery_b at the moment there are two implementations in the pugs repo: pugs itself, and kp6 which translates (a subset of) perl6 into another language; ones I know of are perl5, common lisp, and ruby 1.9
Auzon I'm sad that the Javascript one didn't survive. That sounded so cool 07:13
nex6 hmm, never knew that. guess i always assumed it would be like Perl5, and an offical one would be released
agentzh i really hope i am smart enough to let the haskell core go :)
learning haskell!!!
Auzon: the JS backend is still here but needs love :) 07:14
allbery_b javascript might come back. I think that was in a predecessor to kp6 (mp6) which has been dropped
Auzon I don't know Javascript. I was hoping to use Perl 6 to avoid it :P
Auzon or at least for complex Javascript 07:15
agentzh JS is beautiful (to some extend) ;)
allbery_b (oh, and yhc can be used to translate haskell to javascript :) 07:15
Auzon Eh. We can just make a Firefox extension that embeds Parrot. 07:16
agentzh sure we can! :D
Auzon Then again, compiling Perl 6 to Javascript would be browser and plugin/extension independent 07:17
Aankhen`` I don't see how you'd implement reading from a file in JS… 07:18
At least, I don't see how you'd do it in a "browser and plugin/extension independent" manner. 07:19
Auzon True. But some things don't make sense in that context
In exchange, you'd get the DOM
Aankhen`` Err, wha? 07:20
Auzon You'd get the document object model, which makes sense in Javscript
reading a file doesn't
Aankhen`` Um. 07:21
You could use a module to parse documents into a DOM and use DOM methods on them in regular Perl 6 as well.
Auzon True
I assume you'd automatically get the DOM as an object in the Javascript context though 07:22
Aankhen`` shrugs.
Auzon I'm just rambling, I guess.
Aankhen`` Wouldn't really make sense to have it any other way.
Anyway, ignore me. I used to love JS, but nowadays I can't stand it.
agentzh *cough* 07:26
meppuru good morning 08:01
Auzon good night! ;) 08:03
nainef ok so what about ok guys so what about Rakudo 08:09
agentzh info: synopses are at r14492. 08:24
info: pugs smoke is at r19604.
info: pugs test suite is at r19604.
info: 640 smartlinks found and 0 broken.
perlcabal.org/syn is now *very* up-to-date :)
auto-smoke has resumed on feather :)
cathyal hello 10:13
moritz_ hi cathyal, hi rest ;) 10:13
bloonix hi moritz_ ;-) 10:16
moritz_ hi bloonix 10:18
moritz_ ruoso: is there an "official" meaning for "smop"? 10:34
for the name, I mean
ruoso moritz_, hmmm... I think Simple Meta Object Programming... 10:43
but Simple Matter Of Programming is also fun
ruoso TimToady, is it ok if I only store the result of the call to WHICH in the capture instead of storing the original key for the named arguments? 11:27
pugs_svn r19605 | ruoso++ | [smop] native capture lowlevel c calls receive the interpreter reference, as they may need to recurse to call WHICH in the case of named arguments. But fortunally, the constant identifiers come to rescue and enable the bootstrap. 11:30
r19606 | ruoso++ | [smop] locking in native capture .positional and .invocant... .named still not implemented. 11:38
ruoso actually... I should consider that manipulating a capture in lowlevel c calls cannot recurse at all... so, the lowlevel capture calls won't accept named arguments that are not constant identifiers.... 12:03
but this same type will accept it through high-level calls that will be evaluated in the interpreter loop, that then will have how to recurse to call WHICH... 12:04
Lorn developers.slashdot.org/article.pl?...p;from=rss 15:15
perl6 by parrot launched?
pbuetow rakudo 15:17
moritz_ Lorn: as usual slashdot isn't entirely right ;) 15:18
masak Lorn: reading the comments, you'll see that it's not the question of an actual release
pbuetow it existed earlier, but without perl6 binary, afaik
moritz_ aye
but "perl6 binary" isn't a fully fledged Perl 6 compiler
ruoso thinks making understand that as a perl6 release may cause even more confusion about p6 development 15:20
Lorn well, this is sux for perl6, people will say in the future, "yet another perl6?" 15:24
moritz_ ruoso: I think that the level of confusion has reached saturation already ;) 15:29
ruoso haehea 15:32
pugs_svn r19607 | ruoso++ | [smop] fetching of named arguments implemented... Suports only constant-identifiers so far... 15:38
ruoso keeps getting to this strange points of the bootstrap process... how can the DESTROYALL method of the capture object receive a CAPTURE that will need to be destroyed itself... 15:39
ruoso DESTROYALL don't receive parameters, do it? 15:44
I think I'll stablish that the capture for the DESTROYALL method will always be the object being destroyed instead of a capture object with only that object as the invocant 15:45
TimToady, do you think this is a viable simplification? admiting that the capture sent to DESTROYALL is the object being destroyed instead of a capture with just that object as the invocant? 15:48
this way I would avoid having to create a new object instance to be able to destroy a object instance... 15:50
this would mean that the Signature for DESTROYALL would be :(|$invocant) instead of :($invocant: ) 15:52
pugs_svn r19608 | ruoso++ | [smop] native capture type completed (assuming the DESTROYALL simplification is valid)... Supports only constant-identifiers by now... but we should only have them until the bootstrap... 16:03
r19609 | moritz++ | [irclog] added SMOP to the abbreviations 16:05
ruoso www.perlfoundation.org/perl6/index....munication 16:25
ruoso would be very appreciated by any comment about this document 16:26
moritz_ doesn't quite understand that document 16:28
I have yet to wrap my head around continuation passing 16:29
ruoso have his head spinning for about two weeks now...
moritz_ but maybe I should change "smop" in the IRC logs to a link to the smop wiki page
ruoso that would be nice... 16:30
pugs_svn r19610 | moritz++ | [irclog] make `smop' point to the smop wiki page 16:31
moritz_ done
ruoso :P
moritz_ that was SMOP - a Small Matter of Patching ;) 16:32
ruoso moritz++
moritz_ ;) 16:33
pugs_svn r19611 | ruoso++ | [smop] defining the setr method in the interpreter 16:36
ruoso coffee & 16:40
ruoso needs a name to the default lame interpreter implementation in smop 16:50
I was thinking about calling SMOP__LAME__Frame and SMOP__LAME__Node
moritz_ slame - slow, lame, agnostic moron Enterpreter
ruoso hehe 16:51
seems just fine
or even better
slime
moritz_ or "execute"
erm, "executer"
Auzon executor :P 16:52
moritz_ reads too much dilbert cartoons these days
s/much/many/ #omg
ruoso www.perlfoundation.org/perl6/index....ementation 17:02
aka SLIME 17:03
ruoso realises that with the native capture, SLIME implementation becomes completely design by contract... the only thing that stays declared in C is the SMOP__SLIME__Operators and the respective special capture creators. 18:01
pugs_svn r19612 | ruoso++ | [smop] with the native capture, SMOP__SLIME (former SMOP__STACK) implementation is completely design by contract now. The only low-level things are the SMOP__SLIME__Operators low-level capture creators. 18:19
ruoso www.perlfoundation.org/perl6/index....p_language 18:36
the code generated by sm0p is prettier now... and it should be more efficient also...
pugs_svn r19613 | ruoso++ | [smop] starting SMOP__SLIME__Frame implementation... 18:58
pugs_svn r19614 | ruoso++ | [smop] the native capture have a new important method called "may_recurse". This is only true when there are non-constant-identifiers in the capture. Some low-level classes (like slime) cannot recurse, and therefore it is a deadly error to try to create a new slime object with 19:30
..using non-constant-identifiers as the key for named arguments.
ruoso hmmm... that "may_recurse" thing kinda saved the day now... :) 19:34
pmurias ruoso: what does the example in www.perlfoundation.org/perl6/index....p_language do? 19:34
ruoso it is the code that is called when the value is destroyed 19:35
smop_lowlevel_refcnt_dec puts that as a continuation when a refcount gets to 0
pmurias thanks 19:38
ruoso pmurias, do you think you could help with the sm0p preprocessor? 19:39
after the Slime thing, it's the next thing on the roadmap
pmurias i'm not sure i have enought free time this week 19:41
and i'll be a way from internet acces for 3 weeks after that 19:42
ruoso oh... sorry to hear ;)
anyway... if you have some time, take a look at the things I wrote in the wiki...
I'll really appreciate any comments
but... home &
spinclad @tell ruoso how about the DESTROYALL capture be a built-in constant that thus needs no destruction? even simpler than being its own target... Signature :() 21:24
lambdabot Consider it noted.
TimToady @tell ruoso or give it its own type to dispatch on; likewise you might distinguish recursive types from non-recursive 21:26
lambdabot Consider it noted.
TimToady arg, we killed it! 21:27
spinclad *snf* 21:30
spinclad tosses a flower, to remember a heavy laden messenger by 21:31
mncharity good afternoon all 21:40
pugs_svn r19615 | putter++ | [kp6] docs/ruby_backend.txt: sync minor tweaks. 21:41
cosimo mncharity: hi! 21:47
moritz_ waves hello
cosimo seems like @array.uniq is uncovered by S29 docs. Should I file a RT ticket? 21:52
moritz_ there's no RT for the specs - write a mail to p6l instead
TimToady reads that ;)
pugs_svn r19616 | lwall++ | [fudgeall] prepare to move fudge and fudgeall to t/spec 21:53
r19617 | lwall++ | [fudge] move fudge/fudgeall to t/spec to make easy to check out with official test suite 21:55
mncharity :) 21:59
pugs_svn r19618 | putter++ | [kp6] docs/ruby_backend.txt: +design note. +near-term todo list items. 22:01
mncharity re there's no RT for the specs, there's an idea... :) 22:02
summarizing p6l discussion as a ticket comment might perhaps be a useful intermediate form between stuff scattered in p6l, and stuff reaching the spec. 22:04
pugs_svn r19619 | lwall++ | [fudge] now calling the new fudge in t/spec 22:06
mncharity it would also allow a record of needs to accumulate, publicly rather than on individual's todo lists
TimToady mncharity: you were asking about bind earlier 22:07
$cap ~~ $sig is always bind, but a signature can only create variables with scope if part of a declaration 22:08
otherside the variable just bind and have no other effect
*variables
presumably if there's some way of getting a declaration (my or -> or whatever) into a $sig variable, then the actual binding can be done with ~~, assuming the sig still knows where it belongs in its scope 22:10
pugs_svn r19620 | lwall++ | [fudge] delete old copies of fudge/fudgeall from util 22:11
pugs_svn r19621 | cosimo++ | Test suite refactoring. 22:12
r19621 | cosimo++ | Moved most t/builtins/lists test scripts under S29-list.
r19621 | cosimo++ | Refactored kv, map & grep tests under appropriate S29 subdirs.
r19621 | cosimo++ | TODO: Fugdify
mncharity TimToady: thanks 22:13
TimToady s/otherside/otherwise/ # weird typo
japhb TimToady: here I was thinking that was some book reference, like "gripping hand" ... 22:17
I was guessing something from Flatland, actually ... 22:18
mncharity thinking spatially, it doesn't seem weird at all
not Flatland: en.wikipedia.org/wiki/Gripping_hand 22:19
TimToady I think japhb was thinking "otherside" was flatland 22:20
not "gripping hand" 22:21
mncharity ahh, ok 22:22
TimToady btw, I liked "putter"
as in "puttering around fixing things" 22:23
mncharity books.google.com/books?id=R6E0AAAAM...il#PPP2,M1 22:24
mncharity re putter, :) 22:24
re outside, I don't immediately see relevant hits for "otherside" in Flatland? 22:26
err, re otherside
TimToady maybe it's from country/western LPs: "Catch y'all on the flip side"... 22:27
pugs_svn r19622 | cosimo++ | [t/spec] Moved abs test script under t/spec/S29-num 22:35
mncharity oh, neat. i didn't know where that expression came from. nifty. 22:39
pugs_svn r19623 | lwall++ | [fudge] added "emit" verb for pass-thru of things like #?smop: emit skip_rest(); 22:49
pugs_svn r19624 | lwall++ | [fudge] improved usage message listing verbs 22:58
pugs_svn r19625 | putter++ | [kp6] first cut a new calling convention. say() converted over. 23:16
diakopter LOLs at the flip side of LPs 23:34
pugs_svn r19626 | putter++ | [kp6] docs/ruby_backend.txt: +method design 23:48
ruoso hi 23:52
TimToady, re recursive types: I didn't get what you meant... 23:53
spinclad, re DESTROYALL: if the capture is empty, how can I infer the invocant? 23:54