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.
mncharity fglock: re reorganizing, great. if you ever want to reorg Common, feel entirely free. I keep meaning to move my stuff there to Aside/. 00:01
stevan_ hey mncharity
mncharity hi steven_ :)
stevan_ hows things with you
fglock heh - no, I'm just trying to keep v6/ usable
mncharity pictured jumping mooses, and though of you
stevan_ :) 00:02
fglock: where is the talk?
mncharity re heh, ah, ok
fglock hmm - it's in Portuguese
mncharity re things, I'm still in jobsearch avoidance mode (like thesis avoidance but more expensive). Helping out with One Laptop Per Child. 00:03
avar mncharity: what are you doing there?
mncharity avar: I want to say random application development. But since I got an actual box, it seems I spend more time on testing and doing bug reports. The rest on wiki work, especially regards running stuff in emulation. 00:05
mncharity mass production nominally starts in a couple of weeks. so there's rather a push to get things nailed down. 00:06
spent a week or two generating static slices of wikipedia. 00:07
pugs_svnbot r18412 | fglock++ | [kp6] re-add lib-kp6-mp6-p5 temporarily, until evalbot gets @LIB fixed 00:10
diff: dev.pugscode.org/changeset/18412
lambdabot Title: Changeset 18412 - Pugs - Trac
mncharity wiki.laptop.org/ wiki.laptop.org/go/OLPC_Peru/Arahuay wiki.laptop.org/go/Software_components wiki.laptop.org/go/Emulating_the_XO wiki.laptop.org/go/Current_events xogiving.org/ wiki.laptop.org/go/Test_issues #olpc #sugar #olpc-content
lambdabot Title: The OLPC Wiki - OLPCWiki 00:11
fglock kp6: "ping?"
mncharity wonders what lambdabot is going to make of that...
exp_evalbot r18412: OUTPUT['ping?'␤]
fglock kp6: my $a = gather { while 1 { take 123; take 456; } }; say $a[3]
exp_evalbot r18412: OUTPUT[456␤]
fglock mncharity: that's the current "Perl 6 in Perl 6" 00:12
mncharity :)
kp6: ...hmm...
exp_evalbot r18412: OUTPUT[syntax error at position 0, line 1 column 0:␤...hmm..␤^ HERE␤]
mncharity /me tries to remember how to print all globals...
fglock kp6: say %*ENV 00:13
exp_evalbot r18412: OUTPUT[HOME /home/evalbot␤LOGNAME evalbot␤SHLVL 2␤LESSCLOSE /usr/bin/lesspipe %s %s␤_ /usr/bin/perl␤PATH /usr/local/bin:/usr/bin:/bin:/usr/games␤LS_COLORS
..no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lz...]
mncharity kp6: Int, Num, Complex, Rat, Str, Bit, Regex, Set, Junction, Code, Block, List, Seq; 00:15
exp_evalbot r18412: OUTPUT[syntax error at position 3, line 1 column 3:␤Int, Num, Complex, Rat, Str, Bit, Regex, Set, Junction, Code, Block, List, Seq␤ ^ HERE␤DISPATCH: calling APPLY on invalid object:$VAR1 = {};␤␤ at lib-kp6-mp6-p5/KindaPerl6/Runtime/Perl5/MOP.pm line 33␤ main::DISPATCH('undef', 'APPLY')
..called at - line 16␤]
mncharity kp6: foo(Int, Num, Complex, Rat, Str, Bit, Regex, Set, Junction, Code, Block, List, Seq);
exp_evalbot r18412: OUTPUT[DISPATCH: calling APPLY on invalid object:$VAR1 = {};␤␤ at lib-kp6-mp6-p5/KindaPerl6/Runtime/Perl5/MOP.pm line 33␤ main::DISPATCH('undef', 'APPLY') called at - line 16␤]
mncharity kp6: Str
exp_evalbot r18412: OUTPUT[DISPATCH: calling APPLY on invalid object:$VAR1 = {};␤␤ at lib-kp6-mp6-p5/KindaPerl6/Runtime/Perl5/MOP.pm line 33␤ main::DISPATCH('undef', 'APPLY') called at - line 16␤]
fglock kp6: ::Int 00:16
exp_evalbot r18412: OUTPUT[syntax error at position 0, line 1 column 0:␤::In␤^ HERE␤]
fglock kp6: ::Int(10)
exp_evalbot r18412: OUTPUT[Died at compiled/perl5/lib/KindaPerl6/Grammar.pm line 3590, <> line 1.␤Can't locate object method "parsing" via package "Constructor" (perhaps you forgot to load "Constructor"?) at - line 1.␤]
fglock pff
mncharity :)
work in progress :)
mncharity I've been repeatedly reminded lately that 'civilization is a bootstrap exercise'. One step at a time. With the critical path very often starved for resources. 00:17
btw, I saw audreyt's planet post go by the other day. is there a kp6 interactive read-eval-print loop, and if not, would you like one? 00:19
fglock kp6: say (10.HOW).methods
exp_evalbot r18412: OUTPUT[increment perl str true HOW WHAT␤]
fglock no, it would be nice
mncharity ok. I'll try to whip one up. 00:21
avar whee 00:22
mncharity fglock: wiki.laptop.org/go/OLPC_Brazil :) 00:28
lambdabot Title: OLPC Brazil - OLPCWiki
fglock it would be nice if it were written in kp6-ish
looking
fglock cool - are you going to Brazil some day? 00:30
fglock I studied at UFRGS 00:31
mncharity ah, neat. no, others are off to Peru and China, but I just sit in Cambridge and hack. 00:33
fglock re written in kp6-ish, we plan to bootstrap in Lisp too 00:34
avar the lisp backend will take over!
mncharity the other thing vaguely near the top of my p6 todo list was setting up so the pugs test suite can be run against arbitrary programs. Just set an ENV variable. Rather than each implementation having to frob a couple of files for itself. 00:36
re lisp, yes, sbcl is a nice environment. 00:37
fglock we are heading to a common Makefile.PL, that you can run with an ENV set to which backend you want; then 'make test' just works 00:38
avar well preferrably we'll be able to do that at runtime 00:39
fglock this is what I was working today (instead of writing my talk)
avar but in the future we may want to compile the kp6 frontend with a given backend..
mncharity ah, ok. I was just going to take the existing(still?) redsix lines and multate them into a more general "other". but a more principled approach would be nice. 00:41
fglock no problem - we can replace the syntax later 00:43
mncharity fglock: don't let me distract you from talk. ;) /me watches cpan -f -i KindaPerl6 tests scroll by. Then maybe just take misc/old_pugs_perl5_backend/PIL-Run/pugs-p5.pl and strip it down to just use print open(| kp6 > tmp); eval(`cat tmp`). 00:45
low hanging fruit, leaving the kp6-ish for another day. 00:46
SamB what does sbcl have that cmucl hasn't?
mncharity tries to think of a polite way to say it... 00:47
SamB don't bother
avar SamB: active development?
mncharity cleaner code and an active community
SamB I don't care if you insult cmucl
ah. that's nice!
mncharity stevan_: do you every get up to boston? we should do lunch or something. 00:49
mncharity tries to remember who else is in the Boston area... nominal members of the Perl6 Users Group... 00:50
fglock the talk is going on well - distraction actually helps 00:51
avar there's a p6 user's group? 00:52
stevan_ mncharity: I dont often get up to Boston, but I do plan on trying to make a Boston.pm meeting sometime in the near future 00:53
mncharity fglock: :) 00:57
avar needs to design a better kp6 interface 00:58
mncharity avar: it turned out there were several pugs developers near Boston, so it was sort of a running joke. I don't think we ever actually met.
avar something with -e, and backend options
having sbcl compile to a binary and so on..
mncharity stevan_: cool. though ruby group unfortunately now lands each month in conflict, so my attendance gets split. 00:59
mncharity avar: I found having an interactive eval loop invaluable for testing. Makes random exploration/play/testing much easier. 01:00
fglock heh - I read rugby 01:01
mncharity :)
avar mncharity: yeah, then there's that..
stevan_ mncharity: I wouldnt mind hitting up a ruby users meeting etiher :) 01:02
mncharity "give blood, play rugby^Wruby"
second tuesday of each and every month (for both) 01:03
re much easier, well, at least for me. puts it above threshold for "maybe I'll just sit here for a while and try different things and see how they work". the kp6: bot is great. :) 01:05
fglock perl6: 1+1 01:06
exp_evalbot kp6: OUTPUT[2␤]
..pugs: OUTPUT[2␤]
..p6: OUTPUT[sh: ./parrot: No such file or directory␤]
..nqp: OUTPUT[sh: ./parrot: No such file or directory␤]
mncharity wow. :) 01:07
fglock we have lots of bots
it's the perl6: bot community
mncharity :) /me wonders if there's a QUOTES file... :) 01:08
SamB wonders where oleg got his URL from
avar how do I run the kp6-perl5 backend now? 01:09
fglock avar: I was thinking, how about renaming MiniPerl6 to nqp-perl5 :)
mncharity avar: is that this one: planetsix.perl.org/ ?
lambdabot Title: Planet Perl Six
avar Let's rename kp6 to onion:) 01:10
fglock $ echo ' say "hi" ' | perl script/kp6 | perl -I -Ilib-modules-kp6-mp6-p5 -I compiled/perl5/lib
$ echo ' say "hi" ' | perl script/kp6 | perl -I compiled/perl5/lib 01:11
avar kp6: my sub x { "bar" } say x() 01:11
exp_evalbot r18412: OUTPUT[DISPATCH: calling APPLY on invalid object:$VAR1 = {};␤␤ at lib-kp6-mp6-p5/KindaPerl6/Runtime/Perl5/MOP.pm line 33␤ main::DISPATCH('undef', 'APPLY') called at - line 48␤]
avar kp6: my sub xyz { "bar" }; say xyz()
exp_evalbot r18412: OUTPUT[bar␤]
avar oh stupid parser 01:12
mncharity re onion, layers upon layers?
avar yup
And I think we need to drop the "Kinda" stigma:) 01:13
mncharity :) ah, good thought.
avar and the perl logo has been an onion for a while..:) 01:14
mncharity perl6 goulash: add onion, jerked parrot, leg of pug, ... 01:15
avar fglock: what do you think?:) 01:16
fglock i'm ok :)
how about adopting nqp-xxx for the MiniPerl6 backends? 01:17
let's integrate with Parrot
avar I think it's better if the parrot people own "nqp" :)
fglock in some way
avar aren't they using nqp as an embedding language anyway
fglock I see the minis as close-to-the-metal, whatever subset works better in that platform 01:19
fglock MiniPerl6-lisp would be very lispish 01:19
avar sh-3.1$ make kp6_mp6 01:20
cp src/KindaPerl6/Visitor/EmitLisp.pm compiled/perl5/lib/KindaPerl6/Visitor/EmitLisp.pm
# /usr/bin/perl script/mp6.pl < src/KindaPerl6/Visitor/EmitLisp.pm | perltidy -pro=util/perltidyrc > compiled/perl5/lib/KindaPerl6/Visit\
or/EmitLisp.pm
hrm, makefile broken
fglock oops - sorry
avar fixed it
pugs_svnbot r18413 | avar++ | [kp6] make `make kp6_mp6' work again, compile not copy 01:25
diff: dev.pugscode.org/changeset/18413
lambdabot Title: Changeset 18413 - Pugs - Trac
fglock avar: I think we could add onion as a new directory, for bootstraping work - and keep KindaPerl6 as the bootstrapping compiler 01:31
so we start with onion-kp6 and later onion-onion
avar aren't we going to move kp6 itself to full-p6? 01:33
fglock yes, but moving it over itself is harder; I think keeping a near-frozen version makes it easier 01:39
avar when should we do that? when it bootstraps STD?
fglock like, how we are using mp6 now
it could be done right now, we only have minor problems 01:40
we can port fixes back from onion to kp6 if needed
avar can it be partly done? 01:46
fglock hmm - what you mean? 01:48
avar nm 01:49
ugh, I'll have to rewrite aankhen's Code.lisp, it only does package variables
fglock the idea is to start onion as a separate project, developing it in parallel with kp6; when onion gets usable, then we freeze kp6 01:53
if onion fails, we just move it to misc/ and go on
I need examples of companies that have an open-source R&D department 01:54
not directly related to the company business
avar fglock: Isn't onion just coninuing where kp6 is going? 01:57
mncharity goes by briefly, notices fun concept of a frozen onion. frosty onion. 01:58
avar fglock: planning major changes with onion incompatable with kp6? 01:59
fglock there are some things that might break kp6 - fixing the parameter passing format, for example 02:01
and experimenting with the regex engine 02:02
fglock these things require changes in the runtime 02:04
avar but first we want to bootstrap:) 02:10
and having std will be neat since we can parse more stuff
fglock bootstrapping is easier if you have a compiler that works as a safe net 02:27
my talk is finished - now sleep for 3 hours or so & 02:28
mncharity re creating a repl, there is also ./misc/old_pugs_perl5_backend/pilrun2-leftovers/repl.pl ./misc/runpugs/lib/Repl.pm (all p5) and examples/eval.pl (in p6) to draw from. perhaps also examples/promptr.p6. 03:07
funktio I think it would be a nice if string.chars returned an array in list context 05:13
would be much more elegant than split "", string 05:14
spinclad mncharity: putter! yes, here's one nominal member (not paying attention here, clearly, tho i am caught up from a month-long 2 week backlog) 05:45
and about ready to start playing with kp6 05:46
moritz_ btw Junction.str is broken 06:08
I'm trying to fix it, but it's...weird
moritz_ no method 'type' in Class 'Int' 06:11
ah, the problem is that Junction.str autothreads 06:13
but it shouldn't
changing it to return "placeholder" and calling 'say' on (1|2|3) yields "placeholder\nplaceholder\nplaceholder\n" 06:14
so the problem is not in class Junction, but somewhere in the dispatcher 06:15
funktio whoops, I forgot the sigil; I meant $string.chars 09:08
cathya you guys do haskell? 10:12
integral We do haskell? Pugs has a copious amount of haskell in it :-) 10:18
cathya interesting
im just reading the halting problem 10:19
and there's a quote from larry
szbalint hey regh :) 10:20
cathya hi 10:21
oh
hehe
hi
here too huh
moritz_ pong 10:38
cathya guess what 10:43
moritz_ what 11:07
mikeKnight hi,every one 11:38
cathya question OT doesnt linux have a gui that's hardware-accelerated yet? 11:59
besides x 12:02
moritz_ I don't know, perhaps a framebuffer can use 2D acceleration 12:06
pmurias moritz_: doubt it 12:08
moritz_: x and DirectFB on framebuffer can do hardwar acceleration apartantly 12:12
cathya ah ok 12:13
pmurias cathya: i just goolg'ed after my initial stupid response ;) 12:15
* googled
kp6 Makefile is broken 12:16
it copied KindaPerl6/Visitor/EmitPerl5Regex.pm instead of compiling it
Aankhen`` pmurias: Thanks for the macro answer last night. :-) 12:18
AIUI from the answer, in the case of that particular macro, at least, the processing would mostly be in the regex, since that would return an appropriate AST, yes? 12:19
pmurias it could 12:21
what i wanted to do was to wrap the result in a quasi-quote 12:22
so that the regex would return a list and a quasi-quote would turn it into an AST node
Aankhen`` Ah. 12:23
pmurias i'm not sure if do {my $a:=1;say q:code {say $a;}} returns q:code {say 1}; 12:29
avar Aankhen``: Your sub implementation is teh broke:) 12:32
pugs_svnbot r18414 | pmurias++ | [kp6-perl5rx] token-test.pl works 12:44
diff: dev.pugscode.org/changeset/18414
lambdabot Title: Changeset 18414 - Pugs - Trac
Aankhen`` avar: What sub implementation? 13:25
And what's b0rked about it?
avar Aankhen``: Code.lisp, it only does packages, should just dispatch to sub objects 13:30
hrm
I was trying to implement my $s = sub {}; $s.()
Aankhen`` avar: Eh? 13:40
Code.lisp contains KP6-CODE and MAKE-KP6-SUB.
It doesn't have anything to do with packages.
avar kp6-apply-function needs to look it up in a package 13:41
(defmethod kp6-dispatch ((invocant kp6-Code) (method (eql :apply)) &rest parameters)
(defmethod kp6-dispatch ((invocant kp6-Code) (method (eql :apply)) &rest parameter "Run some code with ::Apply, this is used by my $sub = sub {};
$sub.() for instance" 13:42
(let ((interpreter (first parameters))
(arguments (rest parameters)))
(kp6-apply-function interpreter invocant (list (make-instance 'kp6-positional-parameter :value (make-kp6-cell arguments))))))
I was trying to do that
Aankhen`` Ah, KP6-APPLY-FUNCTION.
Wait, you *want* it to look it up in a function, or do you want it to run the code itself?
It's supposed to do the latter at present.
avar run the code 13:43
Aankhen`` And instead of that LET, use this: (destructuring-bind (interpreter &rest arguments) parameters ...)
avar Aankhen``: sial.org/pbot/28011 13:44
lambdabot Title: Paste #28011 from Someone at 208.78.101.240
Aankhen`` Hmm, I'm not sure why KP6-APPLY-FUNCTION is looking it up in a package. 13:45
That's just silly.
cathya jesus 13:47
knuth is online
lol
szbalint hm? 13:50
avar Aankhen``: If you could get methods and $sub.() working that would be super rad:) 13:53
Aankhen`` avar: Give me some time. I'm a little swamped at the moment. :-S 13:55
pmurias you can treat ::Apply as a ::Call if it helps 14:00
Aankhen`` I plan to. :-) 14:02
cathya kiddin szbalint 14:06
heh
avar wants to kill "this is not implemented" 14:11
pugs_svnbot r18415 | fglock++ | [kp6-perl5] fixed a problem with nested gather{...}
diff: dev.pugscode.org/changeset/18415
lambdabot Title: Changeset 18415 - Pugs - Trac
fglock avar: there is an alternative to making yet another compiler, which is to port some stuff back to mp6 14:13
this would make possible to "fix" the kp6 compiler runtime 14:14
avar what stuff? 14:15
fglock the kp6 compiler uses the mp6 runtime internally 14:16
this makes some things very difficult - macros for example
we could make mp6 compile to kp6 runtime 14:17
avar couldn't this also be fixed by bootstraping kp6 and running it on the kp6 runtime?
fglock yes, but the bootstrapping itself would be easier to do if this were fixed 14:18
pmurias fglock: fixing of what is nessary?
fglock pmurias: replacing the kp6 compiler runtime 14:19
pmurias: this is needed in order for the AST to be a Perl 6 land object; we need this in order to have macros 14:24
pmurias fglock: it isn't clear to me, do you want the code emitted by kp6 to use the mp6 runtime? 14:33
i understood
Aankhen`` I'm glad one of us did. :-D 14:34
dconway so this is what irc looks like 14:34
dconway waves to larry
Aankhen`` Beautiful, isn't it? 14:35
pmurias although " replacing the kp6 compiler runtime" part confuses me
fglock: the plan is to make the mp6 emitted code use the kp6 runtime? 14:36
moritz_ fglock: how do need to modify evalbot's @INC?
fglock: for the new dir layout 14:37
fglock pmurias: yes (a possible plan)
[particle] hey there dconway! how's things?
pmurias lib-mp6-p5 changed to compiled/perl5/lib 14:38
* lib-kp6-mp6-p5
fglock moritz_: the lib dir is now compiled/perl5/lib/
pmurias fglock: i think it's a bad plan
fglock so we can have several compiled lib versions
pmurias s/plan/idea
dconway hello moritz_:) 14:39
fglock pmurias: how would you do it?
dconway: hi :)
moritz_ hi dconway ;)
pmurias dconway: hi ;)
fglock pmurias: hi :)
[particle] wonders if dconway is here looking for yet another way to avoid the pod spec ;)
dconway hi pmurias:) 14:40
fglock [particle]: hi :)
dconway it'll take me awhile to get used to this thing
[particle]: not at all
pugs_svnbot r18416 | moritz++ | [evalbot] fixed include path for evalbot (reflects kp6 dir layout changes)
diff: dev.pugscode.org/changeset/18416
lambdabot Title: Changeset 18416 - Pugs - Trac
moritz_ kp6: say "hi" 14:41
exp_evalbot r18416: OUTPUT[hi␤]
moritz_ fglock: kp6 with new include path at your service ;) 14:42
dconway be back in a bit, need to reboot
pugs_svnbot r18417 | fglock++ | [kp6] rm old lib
diff: dev.pugscode.org/changeset/18417
lambdabot Title: Changeset 18417 - Pugs - Trac 14:42
fglock moritz_: thanks!
moritz_ you're welcome 14:43
cathya that was the real damian conway? 14:44
[particle] yes 14:45
fglock running out of battery...
[particle] hands fglock a solar charger 14:46
cathya what is with the perl community
all the perl developers started showing up here?
hehe
moritz_ cathya: not all I think ;)
was rafael ever here? or nicholas clark?
fglock moritz_: yes 14:47
rgs I'm yes
here
moritz_ rgs: right
cathya rafael is
lol
there
moritz_ sometimes it's hard to match abbreviations ;)
rgs nicholas is, sometimes, too
[particle] rgs: did rc1 happen?
Aankhen`` <cathya> what is with the perl community # you don't approve of the developers showing up here? :-)
rgs not yet 14:48
pmurias fglock: i don't think changing mp6 would be worth it
cathya haha i dont mind at allll
if it happens good, it'll make this place bigger than debian
[particle] rgs: good luck with it. looking good so far, but i know it's a lot of work
pmurias as developing kp6 is easier and the result isn't temporary
rgs shouldn't take long
cathya so this isnt the real rafael? 14:49
fglock pmurias: how about creating the onion thing; and freezing kp6 as the bootstrap compiler?
pmurias sounds good
fglock k
rgs I'm the one and only rafael!!
[particle] cathya: what's this "real" business. we're all real people, except the bots.
cathya real as in the perl developer
pmurias isn't onion as a name taken by the parrot folks?
fglock perl6: "I'm here" 14:50
exp_evalbot kp6: OUTPUT['I'm here'␤]
..pugs: OUTPUT["I\'m here"␤]
..p6: OUTPUT[sh: ./parrot: No such file or directory␤]
..nqp: OUTPUT[sh: ./parrot: No such file or directory␤]
Tene [particle]: Hey, I'm plenty real!
[particle] what's up with nqp and p6?
Aankhen`` Whoo. 14:51
fglock no parrot there
Aankhen`` Tene: Liar.
[particle] yeah, where is there, and how does it get fixed?
by the way, we're ~14 failing tests away from merging the new oo model into parrot trunk
fglock [particle]: please help moritz_ :)
[particle]: cool 14:52
[particle] fglock: gladly! what's wrong, moritz_?
Tene segfaults on Aankhen``.
Aankhen`` Ewww.
[particle] reboots Tene
pmurias fglock: won't changing the kp6 be nessesary for getting onion to compile
fglock bye bye in 2 minutes 14:53
pmurias: maybe, but it's less complex than fixing it and making it compile itself at the same time
it's very easy to break the bootstrap 14:54
[particle] thinks kp6 needs a version number, a published roadmap, and proper cpan-ification 14:55
pmurias fglock: a stable version could be kept, updated only when the HEAD is proved to work
[particle] it'd be nice to have a repo that allowed branches, wouldn't it :) 14:56
Aankhen`` Needs moar Mercurial. 14:57
pmurias [particle]: you can branch a single directory in subversion 14:58
the pugs repository is so diversified that branching the whole thing dosn't make sense 15:00
Tene <3 git 15:01
Aankhen`` Git it off me! 15:02
[particle] pmurias: perhaps it's time to set up v6/branches then 15:14
fglock b 15:22
pasteling "fglock" at 87.103.27.203 pasted "error in irc.pugscode.org" (4 lines, 367B) at sial.org/pbot/28014 15:24
fglock how about making 3 separate Makefiles: Makefile.PL for the CPAN distro, doesn't attempt to recompile; Makefile-mp6.PL for current development; Makefile-kp6.PL for bootstrapping 15:27
[particle] you could have Makefile.PL take options, and generate the appropriate Makefile 15:30
or perhaps different targets within the Makefile?
s/the/one/
fglock we current have different targets, but the Makefile gets hard to maintain 15:31
moritz_ looking...
[particle] you think three makefiles will be easier to maintain? 15:33
(it may be, iunno.)
fglock good point - not sure 15:34
[particle] parrot has a Makefile.PL that calls Configure.pl to keep cpan happy
and Configure.pl takes many options which affect makefile generation 15:35
[particle] it even includes a 'make Makefile' target, which allows us to modify the makefile templates and regenerate without reconfiguring 15:35
moritz_ while compiling parrot: 15:36
[particle] however, kp6 doesn't really need configuring in the first place, just makefile generation
moritz_ compilers/imcc/imcparser.c:1: error: expected identifier or '(' before '<<' token
make: *** [compilers/imcc/imcparser.o] Error 1
[particle]: any ideas?
[particle] moritz_: sure!
it's likely a merge conflict
anytime you see compiler errors with << or >> 15:37
[particle] try svn revert 15:37
moritz_ ok, thanks
fglock looking for the next interesting problem™ 15:55
[particle] loop { do_something_useful( find_something_interesting() ); }; 15:57
fglock can we have loop as a statement modifier? 16:01
$x++ loop;
TimToady no 16:02
TimToady at least, not in Standard Perl 16:03
[particle] $x++ for loop; # self-documenting :) 16:04
[particle] would $x++ for *; work? 16:05
TimToady $x++ for ^*
[particle] ah, right
i see a macro somewhere that converts a 'loop' statement modifier to ^* :) 16:06
TimToady 'course, that could also be construed as the metaobject for Whatever.
so maybe the metaobject just happens to return an infinite list in list context. :) 16:07
more likely we just force ^* and ^Whatever to mean different things
[particle] sometimes you just can't resist a good hack
TimToady Whatever is the concept, while * is the use of the concept 16:08
basically, the ^ shortcut for .HOW only works on bare identifiers 16:09
pmurias fglock: not keeping kp6 and mp6 runtimes in the same directory might be a good idea
TimToady and then only if they're already declared as classes
pmurias they are currently kept together in Runtime/Perl5 16:10
TimToady otherwise ^ just has an MMD candidate on Whatever that handles it
amnesiac metaobjects!
TimToady what about 'em?
and then, what about that? 16:11
amnesiac just checking the conversation, and thinking how that could be constructed as the metaobject for Whatever
TimToady well, when you say MyType, it's returning the protoobject (a variant of undef), and * is actually just the Whatever protoobject 16:14
so if there were not a specific prefix:<^> (Whatever) rule, it would default to what ^ does on normal protoobjects 16:15
which is to return the metaobject, Mytype.HOW
amnesiac I see 16:17
TimToady likewise ^42 and ^"zzz" dispatch to different candidates depending on the type being Num or Str 16:18
amnesiac so the metaobject just defines the abstract representation of ANY class? (or any object)
like how to dispatch HOW and WHAT?
TimToady no, those are built-in macros 16:19
.HOW tells you how to do all the rest of the OO stuff
so .HOW can't specify how to call .HOW
amnesiac .HOW tells you how to do all the rest of the OO stuff ---> but for a given type, or any type? 16:20
TimToady every object carries a .HOW, which may or may not be unique, depending on whether you're doing prototype or class-based programming 16:21
default is class-based
but .HOW doesn't care
amnesiac I see 16:22
TimToady in terms of MO it only has to hand a responder interface
back
and the object doesn't care where the responder interface's methods happen to come from
fglock hmm - the problem with implementing STM in perl 5 is possibly related to finding side effects of BEGIN blocks 16:23
avar 14:55:20 * [particle] thinks kp6 needs a version number, a published roadmap, and proper cpan-ification 16:43
[particle]: I put it on cpan, granted it could be a lot better..
[particle] yep, good start :)
avar what more does it need? 16:44
[particle] portability
avar Wanna hack it?:)
fglock we have a roadmap 16:45
v6/docs/kp6-roadmap.pod
[particle] you should put the roadmap in the cpan distro
avar TODO: move docs/ to KindaPerl6::Doc
[particle] yeah 16:46
fglock avar: please do!
[particle] i can try to hack it
avar I've been doing so, slooowly:)
[particle]: please do:)
fglock [particle]: does Coro.pm works in windows?
[particle] where's Coro.pm, i can try?
fglock it's used in the current gather/take impl 16:47
fglock Coro from CPAN 16:47
[particle] okay, just updated v6 from the repo
fglock: check the build reports there
fglock you don't need v6
fglock looking 16:47
avar [particle]: If you want to make it portable to windows just have it not write all the makefile stuff out if $^O eq 'Win32', it won't support building (development) but install will work 16:48
Aankhen`` avar: I'm going to give KP6-DISPATCH a required INTERPRETER parameter.
avar oh, and I think `make install' might be broken in general
fglock pass 2, fail 13
but it's a cool module
Aankhen`` avar: I trust that won't break anything?
(Obviously, I'll update all calls and so on.)
[particle] Coro has a lot of platform failures, just within linux 16:49
avar Aankhen``: Why does the lisp implementation need interpreter anyway?
Aankhen``: Won't break anything if you add it everywhere 16:50
Aankhen`` avar: Futureproofing.
avar threads?
Aankhen`` Aye.
An interpreter is a self-contained P6 world.
fglock it's possible to emulate what Coro does, but it takes a lot of work
fglock brb 16:52
Aankhen`` avar: I'm curious. Why convert everything to use KP6-DISPATCH? 16:53
avar Aankhen``: To match the p5 backend, and it makes the MOP stuff easier 17:05
Aankhen``: And to write the internals at the same level "user space" code is written in 17:06
Aankhen`` I still don't understand how it makes the MOP stuff easier, or how we're writing at the same level "user space" code is written at. 17:07
Are you planning to evaluate DEFMETHOD forms at runtime to define new user methods? 17:08
avar Aankhen``: Everything in p6 works on an object model where you ask the object for its string form, int form, whatever 17:19
pugs_svnbot r18418 | Aankhen++ | [kp6-lisp] 17:20
r18418 | Aankhen++ | * added INTERPRETER parameter to KP6-DISPATCH lambda list.
r18418 | Aankhen++ | * added INTERPRETER parameter to KP6-FOR-LOOP-STRUCTURE; also changed lambda list to group non-body forms within a list.
r18418 | Aankhen++ | * regenerated EmitLisp.pm
diff: dev.pugscode.org/changeset/18418
lambdabot Title: Changeset 18418 - Pugs - Trac 17:20
avar Aankhen``: Doing that via one dispatch protocol just seems easier
Aankhen``: same level = all the stuff returns p6 objects under MOP, and we explicitly ask the class for the CL version now
as opposed to kp6-true returning t or nil
so a p6 class with method true {} doesn't need any special handling on ::If or other stuff like that 17:21
Aankhen`` How do we handle multiple invocants? 17:22
Hmm, wait, I don't think that's around any more 17:23
.
kp6: (1, 2, 3, 4).map: -> $a { $a + 1 }
exp_evalbot r18418: OUTPUT[syntax error at position 0, line 1 column 0:␤(1, 2, 3, 4).map: -> $a { $a + 1 ␤^ HERE␤]
Aankhen`` Dang, can't remember the syntax.
kp6: [1, 2, 3, 4].map: -> $a { $a + 1 } 17:24
exp_evalbot r18418: OUTPUT[[ 2, 3, 4, 5 ]␤]
Aankhen`` Goodie.
avar Aankhen``: i was trying to get @a.map(sub { $_ ~ "meh" }) working earlier:) 17:26
that's (kp6-dispatch array :map ..)
pasteling "Aankhen" at 122.162.197.94 pasted "return (::Call.new(invocant =>" (3 lines, 177B) at sial.org/pbot/28019 17:38
Aankhen`` How do I fix that code so that KP6 accepts it?
At present I get a syntax error near ::Call.
Oh, I guess I mean MP6. This is for the emitter.
avar try breaking it down into smaller parts 17:39
and add more parens
Aankhen`` Do the individual parts look okay to you, though?
avar ::Call() not ::Call.new() ? 17:40
but otherwise yes
fglock avar: yes
it's an mp6ism
avar tell Aankhen`` :)
fglock thinks about fixing
pasteling "Aankhen" at 122.162.197.94 pasted "my $call = ::Call(invocant =>" (4 lines, 196B) at sial.org/pbot/28021 17:42
Aankhen`` That still gives me an error.
avar try := 17:43
Aankhen`` Err.
Hmm.
It keeps complaining about this: Call. 17:44
But that doesn't exist in the file.
(The "." is part of what it complains about.)
fglock Aankhen``: must use := instead of = 17:48
Aankhen`` I'm using that.
Still no go.
avar paste the patch 17:50
Aankhen`` You asked for it. :-) 17:55
pasteling "Aankhen" at 122.162.197.94 pasted "Index: src/KindaPerl6/Visitor/" (202 lines, 9.4K) at sial.org/pbot/28022 17:56
Aankhen`` Note that the KP6-CALL-FUNCTION is still not okay.
fglock fixed - committing 18:05
moritz_ nqp: say("Hello"); 18:08
exp_evalbot OUTPUT[Hello␤]
pugs_svnbot r18419 | fglock++ | [mp6] implemented .new()
diff: dev.pugscode.org/changeset/18419
lambdabot Title: Changeset 18419 - Pugs - Trac
moritz_ ok, parrot compiled fine
pmurias exit 22:01
meant \/exit