pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
meppl good night 00:10
mncharity oh, yay. rakudo parser getting attention. that makes the next bit a little less nutty... 01:32
Juerd_ Nutty? 01:42
mncharity re nutty, my line for this evening was going to be "ok, I'm getting really tired of the struggle to get a usable p6 parser on which to stand. the foundation for a rapid backend bootstrap. using a "simple and direct to p5" emitter/runtime. so let's just pretend that we know the scraped rakudo parser is strong enough to support the bootstrap. even though 01:56
we don't yet. and it's not clear there are the resources fix that if it becomes a blocker. I'm just going to pretend for a bit, and sketch out the full bootstrap. perhaps it will attract resources. and even if rakudo parse doesn't work out, I'm leaning towards then falling back to 01:58
the "pretend ruby is a p6 dialect, and its parse tree a p6 parse" approach. I need the backend bootstrapped into p6 this week for next to be free for rx and prelude work. so finger's crossed, we'll see how it goes." 02:00
that was going to be the vision. having something else pushing to improve the parse, and finding resources for it, takes the edge off the biggest risk - "cute sketch, but can't really parse, so utterly useless". 02:01
rakudo --target=parse -> scrape -> ir -> emit direct to p5. supporting enough p5-ish oo to then immediately translate the scraper, ir, and emitter into p6. 02:04
the largest hunk of effort is the scrape -> ir. the rakudo parser nodes aren't tagged with their originating rules, so a big 'node was labeled X and has fields A B C' -> so that's a DumbIR::ForLoop node. Then emitting a p5 for loop is comparatively trivial. 02:08
the largest risk is that you start handing the rakudo parser simple class declarations for the scrapper/ir/emitter, and find out, well... thing Q isn't quite working yet... and thus descend into the "trying to write p6 oo code while working around p6 implementation bugs" which has squandered so much effort on pugs. 02:10
Juerd_: thus, nutty. :) 02:11
building a house on unchecked foundations in the hope that even if it can't stand, it attracts developers/homesteaders. 02:12
Juerd_ mncharity: Whoa, I come back and find your monologue. Great explanation, though :) 02:25
Interesting strategy too.
mncharity :) 02:27
mncharity the idea would be to then translate yet_another_regex_engine from p5 to p6, extending it a bit, then take the rakudo p6 grammar, and you have a full and usable bootstrap. which works on anything p5-like (ruby, common-lisp, etc). then address need for better grammar and ir and emitter/runtimes, working in p6. 02:40
or I suppose could translate PCR instead of yare. I'll likely do yare, though if someone else does PCR first, would use that instead. :) 02:41
pugs_svnbot r20098 | putter++ | misc/winter_jig/ast_rakudo/scrape: start mutation into a backend bootstrap. 03:47
diff: dev.pugscode.org/changeset/20098
lambdabot Title: Changeset 20098 - Pugs - Trac
mncharity very crufty, but end of day. 03:48
./scrape -e '3' will show the --target=parse dump, a hash version of same, another with tags added, the tags which weren't recognized (all of them), and some placeholders (for IR and emitted p5). 03:52
good night & 03:53
./scrape FILE also works.
err, should work. untested... "and so doesn't work, by definitition". 03:54
TimToady update: it's not B12 deficiency, but likely some kind of GI bleeding, since my hemoglobin dropped over the last week. more tests likely tomorrow, and not the pleasant sort... 05:34
PerlJam yikes! 05:36
PerlJam dccs some warm fuzzies to TimToady
(it sounds like you need them)
spinclad TimToady's GI tract: get well soon please! 06:12
allbery_b yug 06:55
rakudo_svn r26309 | allison++ | [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307). 09:50
pugs_svnbot r20099 | ruoso++ | [smop] Finally, the issue was solved. All tests pass again, and now we have the lowlevel scalar implementation working. 12:45
diff: dev.pugscode.org/changeset/20099
lambdabot Title: Changeset 20099 - Pugs - Trac
pugs_svnbot r20100 | ruoso++ | [smop] two small memory leaks fixed. 12:54
diff: dev.pugscode.org/changeset/20100
lambdabot Title: Changeset 20100 - Pugs - Trac
ruoso it's interesting to note that test/11_lowlevel_scalar.sm0p already uses the SMOP__SLIME__CurrentFrame.move_capturize operation... 12:56
ruoso [particle], BTW... I managed to fix the KP6 sm0p implementation... but it would still be nice to have it working with rakudo instead, as rakudo's performance is much better than KP6 16:07
and rakudo seems to be able to work with a closer-to-STD grammar than KP6 (as you can see in the differences between Grammar.pm and KP6sm0p.p6... 16:09
cognominal_ I am working to support self in inner method blocks by declaring as a lexical variable 16:12
in rakudo 16:13
necessary for any but trivial p6 code in rakudo 16:14
PerlJam you mean $self or was the "lexical variable" part just an implementation detail? 16:16
cognominal_ this will be an implementation detail 16:17
cognominal_ blocks are defined as subs with outer context. 16:19
pmurias ruoso: do you think it would be worth to have smop RI declarations in some sort of a declarative way? 16:34
a DSL like %method SMOP__ID__FETCH\n...code..\n%method SMOP__ID__DESTROYALL\n 16:35
ruoso pmurias, maybe... writing the cascading ifs may be quite boring.... 16:36
but that's why there will be s1p after all
pmurias i can try to come up with/implement something and see if it works 16:37
pmurias ruoso: why do we need s1p? 16:42
ruoso pmurias, because writing sm0p is boring also ;)
pmurias i mean how is it diffrent from p6
ruoso www.perlfoundation.org/perl6/index....p_language
lambdabot Title: SMOP s1p Language / Perl 6
ruoso it's a simplification 16:43
not of the syntax
but of the runtime
ruoso pmurias, take a look at the fibonacci example 16:43
pmurias ruoso: i remember, because the object metamodel and related stuff aren't loaded yet, right? 16:47
ruoso yep... 16:48
it's what MOP.pm does in KP6
pmurias ruoso: is the order of methods accidential or intensional? 16:59
i.e. the most common ones first? 17:00
ruoso pmurias, order where?
pmurias in foo_message 17:01
ruoso it's in random order ;)
pugs_svnbot r20101 | putter++ | ast_rakudo/scrape becomes elf_on_rakudo/elf_zero_generate.pl. Switch to metaprogramming because while the ruby elf_zero doesn't need it, the p6 elf_one will. 17:15
diff: dev.pugscode.org/changeset/20101
lambdabot Title: Changeset 20101 - Pugs - Trac
pmurias ruoso: where should i put the translator and and example of how smop_s1p_scalar.c would look like with it? 17:16
mncharity ponders forking the kp6 ast... 17:19
pmurias mncharity: what do you want to change? 17:20
pugs_svnbot r20102 | pmurias++ | [sm0p] a proposal for more declarative RI description
diff: dev.pugscode.org/changeset/20102
lambdabot Title: Changeset 20102 - Pugs - Trac
ruoso pmurias, you can create a new root level dir 17:21
mncharity pmurias: not to change, just to decouple. elf needs an IR. infrastructure already exists to metaprogram a kp6 one. forking the code just isn't warm fuzzies. :/ 17:23
pmurias ruoso: i'm not sure if the translator is actually usefull
mncharity lazy forking, waiting until there is a change, seems too messy. 17:24
ah well.
cognominal_ IR? 17:26
pmurias itermidate representation 17:27
mncharity: you might want to fork it to avoid havind a Pad 17:28
spinclad forking could be good if it leads to convergence down the road; if it gives room to develop a common AST; to clone for another domain (elf, if i read right)
mncharity re Pad, :)
mncharity re flexibility for convergence, indeed. 17:28
pmurias * having 17:29
spinclad fork-and-merge kp6, rakudo, pugs ASTs... 17:31
(just to speak of our own) 17:32
pugs_svnbot r20103 | putter++ | Fork ../ast_kp6/'s node definitions, to become the basis for a new IR. 17:34
diff: dev.pugscode.org/changeset/20103
lambdabot Title: Changeset 20103 - Pugs - Trac
pugs_svnbot r20104 | putter++ | [elf_on_rakudo] Get imported kp6_ast infrastructure working. 17:40
diff: dev.pugscode.org/changeset/20104
lambdabot Title: Changeset 20104 - Pugs - Trac
mncharity re common ast, I suspect we may end up with more than one, just like many compilers have multiple intermediate representations, because different organizations lend themselves to different kinds of use. 17:41
but it would be nice to avoid entropy by historical artifact. :)
b2gills I wonder if anyone has information about cross compiling a WIN32 parrot on a linux distribution, I already have the MingW GCC. 18:58
barney I don't. You might want to ask in #parrot on MagNet. 19:09
spinclad on irc.perl.org 19:12
(is that MagNet?) 19:13
rindolf spinclad: yes, it's MAGNet 19:25
pugs_svnbot r20105 | putter++ | misc/winter_jig/elf_on_rakudo: first light - ./elf_zero_generate.pl -e '3' makes it through the pipe to p5. 19:41
diff: dev.pugscode.org/changeset/20105
lambdabot Title: Changeset 20105 - Pugs - Trac
pugs_svnbot r20106 | putter++ | [elf_on_rakudo]: -e 'say(3)' works. 19:50
diff: dev.pugscode.org/changeset/20106
lambdabot Title: Changeset 20106 - Pugs - Trac
mncharity So that's the drill. Try new code with ./elf_zero_generate.pl -e. Add any missing parse tags to rakudo_ast.data, and a corresponding IR node constructor to ir_nodes in elf_zero_generate.pl. If the ir node has a missing or inadequate p5 emitter, correct that in emit_p5(). Done. Repeat. 19:53
spinclad putter++ 19:56
mncharity I'll sketch in elf_one_generate.pl, to create p6 rather than ruby. As soon as that generated p6 can be processed into p5 by elf_zero, elf_zero can be frozen, and work shift to elf_one.
mncharity TimToady: re health issues, sadness. :( 20:14
aindilis Is there any work ongoing to make a ginormous standard library like might come with Java for Perl6? 20:29
spinclad aindilis: that should be covered by modules found in CP6AN, a smallish subset only of which will be core. (my guess) 20:43
pugs_svnbot r20107 | putter++ | misc/winter_jig/elf_on_rakudo/: a first sketch of elf_one, intended to eventually become a p6 bootstrapped backend (ie, p6 code which, with the assistance of an external (rakudo) parser, can compile itself (to p5)).
diff: dev.pugscode.org/changeset/20107
mncharity aindilis: re standard library, what spinclad said: smallish core + CPAN. re any work ongoing, not so much. there is some old work in svn.pugscode.org/pugs/ext/ . but we've been stuck for a couple of years without an implementation which can handle not-small projects, so people are waiting. hopefully we will be unstuck rsn. 20:48
aindilis well I am interested in knowledge based systems, linguistics, etc. I would like to see a very vivid and powerful set of commands, and I'd be interested in doing some data collection and design to see what types of code to implement, like iterators and all those things. 20:49
the other day I saw a java function called firstElement or something, and while that's kind of lame in and of itself, the notion of having such a detailed language is nice 20:50
mncharity p6 is designed to be extremely extensible. as in extend or replace the entire parser on a lexically scoped basis. so eventually even ...p6... { use Java; ...java... } ...p6... or what ever other DSL one wants to use. so a core/non-core issue is less important than usual. as for "the language defined by an objects methods", I'm a bit fuzzy on the plans (which are perhaps 20:53
themselves a bit fuzzy).
repeat: as for "the language defined by an objects methods", I'm a bit fuzzy on the plans (which are perhaps themselves a bit fuzzy). 20:54
aindilis I see
mncharity some form of MOP, so you can override object dispatch within a lexical scope, seems likely. at which point you can separate the "language *I* want to use when talking to objects of type Foo" from the "language the author of Foo indended". 20:55
aindilis are there books on this? 20:56
or sources, so I don't voice my ignorance more
mncharity not so much.
re books, re sources... hmm, also not so much. there are some language docs at
feather.perl6.nl/syn/ 20:57
lambdabot Title: Official Perl 6 Documentation
aindilis I suppose I will start whatever this idea I have as a project and attempt to build its vocabulary and then show people when I have some real data. 20:58
mncharity but since "Perl 6" is a language specification, rather than an implementation, a lot of "we'll may/probably do foo, but we're not quite sure what it will look like", doesn't end up there.
aindilis ah
mncharity re 'start with vocabulary/langauge, and then worry about implementation after', sounds like a plausible plan. the p6 intent is to permit people to run the languages they want to be using, rather forcing them to shape their languages into a particular style. though with caveats that 21:00
Erlang style feather-weight massive parallelism, and prolog style massive backtracking, are not likely to be near-term objectives. we're more in a "more flexible p5, ruby, smalltalk, python" space. and... while we have hopes for a usable p6 rsn, this is a volunteer project with just a few volunteers, so... 21:03
so... it's not clear when, calendar wise, we will finally get something you can actually use. it's been a nasty bootstrap problem.
aindilis well maybe that's good as it leaves the ability to adapt to developments in PL 21:05
my personal interest is in semantic web type stuff, I will we could bring some of that to it 21:06
s/will/wish/
maybe just a module tho
mncharity re developments in PL, well, it's been more developments in PL are starting to catch up with what we've been planning for years now. :/
aindilis hehe 21:07
well I'm no PL guru but I can execute grunt tasks
right now I'm autopackaging software from sf/fm to debian
mncharity the author of the haskell implementation of p6, pugs, was to be the invited keynote(?) at POPL a year or two back. 21:08
on p6
aindilis nice
Audrey? 21:09
spinclad working out specs on vocabulary will be part of designing good modules.
so that would be welcome.
mncharity re semantic web, I was slightly tempted to try FLORA-2 as a compiler infrastructure, but my experience has been they really don't test their code enough, and it just wasn't critical path. but a prolog backend is down there on my todo list somewhere. 21:10
aindilis okay, well I'll use p5 to organize everything and approach it from a Ontological/Linguistics end
mncharity re audrey, eys
*yes
aindilis I'll make good use of existing AI knowledge sets for deriving properties that apply to specific objects 21:11
and classes, etc.
mncharity re 'use p5 to organize everything', well, p5 or ruby. mine is perhaps a minority opinion (not sure), but I find it much easier to prototype p6 code in ruby rather than in p5.
aindilis I don't use anything but p5 21:12
mncharity np
spinclad use more Moose;
aindilis don't know anything
me
I mean
I don
't know anything other than p5
mncharity ooo, Moose, good idea.
spinclad (Moose adds a p6ish MOP to p5) 21:13
mncharity search.cpan.org/~stevan/Moose-0.38/lib/Moose.pm
lambdabot Title: Moose - A postmodern object system for Perl 5 - search.cpan.org
aindilis (I'm a little afraid to program in anything else because I think it will antagonize my understanding of P5.)
aindilis I've been meaning to learn Moose 21:13
I'm not exactly at the forefront
I once got a copy of one of Damien's books on OO Perl. That's as far as I've gotten 21:14
aindilis I'm kind of poor. btw, do you know where I can get legal DRM free ebooks for $? 21:14
mncharity I should get back to hacking. My window for the day is closing. It's been interesting chatting with you.
:)
aindilis thanks, my name is Andrew, ttyl!
spinclad good talking, andrew, and welcome 21:15
pugs_svnbot r20108 | buchetc++ | [t/spec] some thread methods 21:40
diff: dev.pugscode.org/changeset/20108
lambdabot Title: Changeset 20108 - Pugs - Trac
pmurias aindilis: re antagonizing i think it's highly unlikly 21:43
pugs_svnbot r20109 | putter++ | [elf_on_rakudo]: elf_zero_generate.pl -e 'class A { method m(){4} }' generates p5. Messiness is increasing, and will need to be pruned back. 22:04
diff: dev.pugscode.org/changeset/20109
lambdabot Title: Changeset 20109 - Pugs - Trac
mncharity Re the "add features to elf_zero" drill, i may have overstated it's accessibility. The last set was not straightforward. 22:07
but... getting there. back at it tomorrow. and folks are welcome to poke at it. I can always tweak the changes. 22:09
anyone know what the current Moose performance hit is, roughly? it might simplify emitting has() and such. 22:12
will backlog. cheers &
actually, doesn't matter what it is, within reason. simple == good. can tune later. 22:13
spx2 I have a problem 22:42
FurnaceBoy spx2: the first step is to admit it. well done. 23:42