cj mncharity: hmm? 00:00
ingy: got any work for a perl hack? I'm unmotivated to continue grinding out code that we throw away the next day, and my bosses are getting grumpy.
mncharity cj: re hmm?, it's a Emit::Generic-like task coming up rsn
cj mncharity: ah! 00:01
mncharity: very cool
mncharity: which list is discussing it?
mncharity no list (that i know of). just the obvious path of "parrot provides yaml ast", "create things to use that ast", profit. 00:02
ingy cj: I got a ton of work
I suppose you want some $$ in return though :\
cj: are you still at @m@z0n? 00:03
mncharity less tongue in cheek, the core idea is that having parrot provide parsing will let backend development take off. 00:04
optimized for doing p6 implementation development (eg, multimethods and macros, which are a lower priority focus for the parrot backend). 00:05
ingy ingy is up for meeting cj and [particle] this weekend to write some code...
mncharity what part of planet? 00:06
ingy SEA
mncharity a weekly couple of hour p6 hackathon might be a useful social dynamic?
virtual hackathon
ingy s/p6// :)
guess I'm on the wrong channel for that attitude 00:07
mncharity indeed 00:08
the confused people channel is over there
:P
ingy heh 00:09
I *could* be sucked into the p6 blackhole I suppose...
mncharity or wait a few weeks. between parrot and redsix and STD, we'll have no excuse to not have a parse tree for something at least p6-like. at which point, there's a lot of p6 to be written. 00:13
the yaml decoupling means that is backend foo can't do x at the moment, well, you develop that part with backend bar. rather than wandering off for a few months. 00:14
s/is/if
meppl good night 00:25
mncharity g'night
meppl ;)
mncharity looks interesting: buildfarm.st.ewi.tudelft.nl/release...guage.html
lambdabot Title: Part III. The Stratego Language, tinyurl.com/yvoc9q
00:34 devogon left, IllvilJa left 00:36 meppl left 00:38 IllvilJa joined 00:39 IllvilJa left 01:00 mncharit1 joined 01:01 mncharity left 01:03 BinGOs_ joined 01:10 BinGOs left 01:44 mncharit1 left 02:03 penk joined 02:44 xinming left 03:29 wknight8111 left 03:55 stevan_ left 04:04 silug left 04:15 xinming joined 04:18 RayMagini left 04:21 RayMagini joined 04:39 penk left 04:42 diotalevi joined 04:44 diotalevi left 05:03 jjore left 05:04 jjore joined, jjore is now known as zz_jjore 05:05 zz_jjore is now known as jjore 05:19 Limbic_Region left 05:32 cmarcelo left, kolibrie left, r0bby left, turrepurre left, sordith left, bloonix left, zev left, bphillip1 left, bbkr_ left, cognominal left, GeJ left, nothingmuch left, simcop2387 left, chinsans left, pravus left 05:34 turrepurre joined 05:36 r0bby joined 05:40 nothingmuch joined, bbkr__ joined, cmarcelo joined, kolibrie joined, sordith joined, pravus joined, chinsans joined, GeJ joined, bphillip1 joined, simcop2387 joined, cognominal joined, bloonix joined, zev joined, zev left, bloonix left, bphillip1 left, sordith left, kolibrie left, bbkr__ left, cmarcelo left, cognominal left, GeJ left 05:41 simcop2387 left, chinsans left, pravus left, nothingmuch left, zev joined, GeJ_ joined, bbkr__ joined, nothingmuch joined 05:42 araujo left 05:43 cmarcelo joined 06:01 silug joined 06:09 jql joined 06:13 cj left 06:14 cmarcelo left 06:39 Schwern left 06:42 Schwern joined
pugs_svnbot r20029 | lwall++ | [Cursor5] cleaner split of immutable Cursor from mutable Match object 06:42
diff: dev.pugscode.org/changeset/20029
lambdabot Title: Changeset 20029 - Pugs - Trac
06:50 jjore is now known as zz_jjore, zz_jjore is now known as jjore 07:06 Zygo left, justatheory left, Zygo joined 07:08 silug left 07:22 sordith joined 07:24 cj joined 07:32 blindfish joined 07:53 tobeya left 07:56 Aankhen`` joined 08:10 fridim_ joined 08:38 BinGOs_ is now known as BinGOs 08:45 pmurias joined, pmurias left 08:46 DarkWolf84 left 08:56 devogon joined 09:06 silug joined 09:10 cognominal_ joined, cognominal_ left 09:11 cognominal_ joined 09:35 penk joined 10:15 kanru joined 10:18 barney joined 10:19 smtms joined 10:22 drrho joined 10:32 GeJ_ is now known as GeJ 10:42 iblechbot joined 10:58 kanru left 11:08 meppl joined 11:22 kanru joined 11:31 pjcj joined 11:40 araujo joined 11:56 meteorjay left 12:17 rfordinal joined 12:19 rfordinal left 12:26 rfordinal_mobile joined 12:34 rfordinal_mobile left 12:40 blindfish left 12:45 rfordinal_mobile joined 12:53 rfordinal_athome joined 12:54 rfordinal_mobile left 12:58 lichtkind joined 13:01 mncharity joined 13:16 sordith left, sordith joined 13:22 rindolf joined 13:30 njbartlett left 13:42 gilimanjaro joined 13:43 gilimanjaro left 13:48 rindolf left 13:55 rindolf joined
pasteling "pugsbot_r17185" at 193.200.132.135 pasted "Pugs build failure" (6 lines, 278B) at sial.org/pbot/30391 14:04
14:05 pugsbot_r17185 joined
diakopter that's a new one 14:07
14:11 chris2 joined 14:17 rindolf left 14:19 rfordinal_athome left 14:21 RayMagini left 14:30 pmurias joined
pmurias mncharity: hi 14:30
14:34 hugues23 joined, simcop2387 joined 14:38 RayMagini joined 14:42 blindfish joined
pmurias mncharity: the motivation behind MiniPerl6Like is too bootstrap kp6 ASAP, hoping someone will attach a better parser to kp6 14:45
14:46 rindolf joined
pugs_svnbot r20030 | pmurias++ | [kp6-mp6like] 14:50
r20030 | pmurias++ | Lit::NamedArgument, Lit::Pair and Val::Char
r20030 | pmurias++ | added a test for hashes and a hashbang to script/mp6.pl
diff: dev.pugscode.org/changeset/20030
lambdabot Title: Changeset 20030 - Pugs - Trac
14:54 __Ace__ joined
pmurias emitters in mp6 could also be written is a style similiar to emit_from_kp6.pl 15:00
15:00 wknight8111 joined 15:04 kanru left 15:12 peepsalot left
moritz_ moritz_ greets all Perl 6 Monks ;) 15:13
... and monkeys, if there are any ;) 15:14
pmurias moritz_: hi
15:15 peepsalot joined
pmurias what is a proper monky greeting? 15:16
moritz_ ugga agga?
diakopter moritz_: eeaaakk eeaaakk 15:19
moritz_ *g*
pugs_svnbot r20031 | pmurias++ | [kp6-mp6like] -Bmp6,-Cmp6,hashes 15:24
diff: dev.pugscode.org/changeset/20031
lambdabot Title: Changeset 20031 - Pugs - Trac
15:25 iblechbot left
moritz_ pmurias: what's [kp6-mp6like], and why do we need it? 15:25
pmurias moritz_: it's a kp6 backend duplicating mp6 15:26
so that we don't need mp6 15:27
moritz_ and what does it emit?
pmurias the same sort of code mp6 does 15:28
it's a port of the mp6 perl5 backend
moritz_ ok 15:29
pmurias i think it's the fastest way to achive bootstrap 15:30
(simplest also)
moritz_ so instead of writing a bootstrapping emitter and doing all the runtime in Perl 6, you make mp6 more like kp6, until they are the same 15:31
did I get that right? 15:32
TimToady at which point you have a bootstrapped kp6 compiler, but not necessarily a bootstrapped p6 compiler... :)
moritz_ aye
pmurias moritz_: i think you are wrong 15:34
it's more making kp6 more like mp6
15:37 wknight8111 left
pmurias TimToady: it would be a bootstrapped mp6 compiler with kp6 in BEGIN 15:38
15:39 peeps[work] joined 15:40 rindolf left
TimToady I'm just pointing out that there's not much meaning in saying "a bootstrap" without saying a bootstrap of what 15:42
pmurias well self-hosting is a better word 15:44
TimToady okay, same question, self-hosting of what? ;)
15:49 rindolf joined
pmurias of what? you mean self-hosting what? 15:50
TimToady that would probably be better English 15:52
diakopter TimToady was using "self-hosting" as a gerundive, not a participle
TimToady well, my point is that I'm not sure what self-hosting buys us if the thing that is self-hosted isn't p6 15:53
after all, there are a lot of self-hosted languages in the world already that aren't p6 :) 15:54
diakopter er, scratch my last comment; my memory fails me
TimToady well, I'm just grumpy this morning, mostly because gimme5 is making me think too hard about the differences between cursor objects and match objects, when I want to think about longest tokens... 15:58
and I don't think any of the other parsers have solved those problems yet 16:01
16:05 sordith left 16:07 stevan_ joined
Juerd re longest tokens: Has nobody ever told you that size doesn't matter? ;) 16:09
TimToady and more basically, I'm not sure it's a good idea to let users say things like $<foo> = 42 when what's really going on is something more like $¢ = $¢.clone_and_add_property(:foo(42)) 16:10
and I'd really prefer not to use tie in p6 to emulate delegation of pseudo hash subscripting to the cursor object 16:11
s/p6/p5/ 16:12
lichtkind who is gimme? 16:16
TimToady gimme5 is a program that translates STD.pm to STD5.pm, which runs the standard grammar in p5 16:17
and is currently stuck at parsing things about as complex as -42+1
lichtkind ah :) so you mean STD5 defines the grammar of perl 5 with perl 6 rules?
TimToady no, grammar of perl 6 with perl6 rules implemented in perl 5 16:18
lichtkind yea my feelings told me that but my brain parsed your sentence different :) 16:19
thanks
so its a was to use perl with small p to bootstrap Perl 6
16:20 rindolf left
lichtkind sounds like it is something flavio is working on, has anybody seen flavia lately? 16:20
TimToady yes, gimme5 is a very ad hoc translation of STD.pm to a version in p5 that uses p5 methods to implement STD parsing semantics 16:21
well, gimme5 is the translator, not the translation
lichtkind of course i understood
TimToady gimme5 is actually a version of metholate, that used to translate to pugs 16:22
but pugs was to slow and buggy to support it
STD5.pm and Cursor5.pm actually run quite fast, and reproduce the bugs in a stable way :)
lichtkind haha
what the heck is metholate please 16:23
TimToady translation of rules to method calls that emulate a regex engine
lichtkind its your invention or something specced? 16:24
TimToady because you can do backtracking with gather/take on lazy lists
that was what was translating STD.pm to pugs code
nothing to do with spec
lichtkind yay the bibleupdater works and produses flaweless UTF synopses :)
__Ace__ is it gonna be possible to have files in memory and parse them from there in perl6? (thinking of now when embedding perl files into say a .zip with PAR, they have to be exatacted first) 16:25
TimToady metholate and gimme5 are basically the same program with a different target engine
__Ace__ or Im way off?
lichtkind ah now it becomes clearer i thought its a tool somebody else wrote
TimToady __Ace__: it's prety much mandatory to parse from memory
__Ace__ aha.. 16:26
TimToady currently the p6 parsers mostly assume you've just handed them a string
and to make it work little-by-little from disk would be harder :)
__Ace__ thing is, I dont remember exactly how it is in perl5, but I recall it was something like that
16:26 rindolf joined
TimToady p5 can read from a file on the fly, but I think we have big enough memories now that that is suboptimal 16:26
and it's better to always slurp in the whole file as a string and then parser 16:27
*parse
__Ace__ and how about many files? (like modules etc9
and how about many files? (like modules etc)
TimToady those are compiled separately
there's no such thing as "include" 16:28
__Ace__ basicly, Im wondering if its gonna be possible to embedd all files into one, and NOT having to extract them
TimToady oh, likely, but given most of the platforms we're targetting, you'd probably just compile down to some kind of object code and send that
__Ace__ ah 16:29
almost better
:)
TimToady or send a bunch of half-compiled ASTs and just emit the right code on the other end 16:30
lots of ways to dice it
__Ace__ how about those modules that uses external libs?
TimToady what about 'em? 16:31
lichtkind TimToady: to something completely different, when i publish the synopses with p6doc, i change the POD formation of the header a bit so its nicer to read from CPAN, youd be changed that in the originals too?
s/youd/could/ 16:32
__Ace__ they are put in the same folder as the object code so they are found?
TimToady lichtkind: sure, everything is negotiable :) 16:33
16:35 sordith joined
TimToady __Ace__: you could put a subset of the official library either in the same directory or even in the same distribution file; we've defined versioning in S11 such that, once you know the full name of a module you can be sure it's the official one 16:35
P6 is agnostic about the storage format of the official library 16:36
you can also have personal modules that aren't "official" yet
but I wouldn't use that mechanism for your personal copy of official modules
lichtkind TimToady: the biggest thing is s|=head1 TITLE /n/n Synopsis 3: Perl 6 Operators|=head1 NAME \n\n Synopsis_02 - Bits and Pieces| 16:37
for some obscure reasons only Name Tags are indexed in CPAN overview maybe should fix it there
TimToady maybe--making documents act like modules seems like a square peg in a round hole 16:40
but I'm actually more worried about the _ than the TITLE/NAME 16:41
Most documents in the world are not required to have names that are a single identifier :)
and the CPAN namespace is rather limited even for p5 16:42
lichtkind TimToady: sure _This__sucks_ but it would be ruin the 2 row layout in the cpan overview 16:43
TimToady would it work to have both a NAME and a TITLE?
lichtkind allright so will reformat it in future too, its made by an regex enywway :)
dunno 16:44
TimToady feel free to experiment on S29 in the pugs repo
I can change the rest of them if you find something we can agree on 16:45
well, it's called Functions.pod in the repo
yet another "title" :/
16:46 __Ace__ left, Chillance joined
rhr speaking of which, could we get feather.perl6.nl/syn/ to list the pod file names? some of them are hard to find... 16:46
lambdabot Title: Official Perl 6 Documentation
lichtkind i thing i changes the s29 little bit
err no i did not 16:47
TimToady rhr: "The page you're currently looking at lives in the Pugs repo as docs/feather/syn_index.html, and is resync'd every few minutes." 16:48
have at it :)
16:51 Chillance left, Chillance joined 16:53 Chillance left, Chillance joined
rhr where are the synopsis files that end up in svn.pugscode.org/pugs/docs/Perl6/Spec/ (other than the ones in pugs)? 16:55
lambdabot Title: Revision 20031: /docs/Perl6/Spec
mncharity lol reading descriptions of what STD et al are 16:56
pmurias: hi :)
rhr I see, nevermind. the update script goes out of its way to give them the weird names 16:57
mncharity to recap, src/perl6/STD.pm is a grammar for p6, written in p6, which nothing can run. ./cheat STD.pm > something easier to run. ./cheat STD.pm | ./metholate > p6 pugs can run. ./cheat STD.pm | ./gimme5 > STD5.pm, which p5 can run. (with Cursor5.pm to help out). ./STD5_run runs STD5.pm against p6 code, and gives back a yaml match tree. tada! :) 17:02
17:05 arcady joined
mncharity pmurias: re 'the motivation behind MiniPerl6Like is too bootstrap kp6 ASAP', ah, ok. feel free to prototype/develop it in emit_from_kp6.pl, and then backport to kp6. the p5-ness, and ability to run the backend off of cached parser yaml (so parse isn't part of the edit-test loop), might make it easier. 17:08
17:13 iblechbot joined
mncharity [particle]: how goes yaml-ness? :) 17:15
pmurias mncharity: i don't think speeding the compile-edit-test loop would be worth porting the code to and thro 17:16
as there aren't much hacks left to add to the emitter 17:18
kp6 grammar is ~2 x slower, so a new faster one is needed to make mp6like usefull 17:21
PerlJam mncharity: "which nothing can run *yet*" :) 17:23
pmurias mp6(like) generates code which is close to hand written one so hand editing is also an option 17:26
pugs_svnbot r20032 | putter++ | [misc/pX/Common/redsix] better t/ support; permit capitalized methods (eg, HOW); +README. 17:33
diff: dev.pugscode.org/changeset/20032
lambdabot Title: Changeset 20032 - Pugs - Trac
mncharity pmurias: ah, ok. re 'new faster one', that would be [particle]'s parrot->yaml. or as a fallback, redsix->yaml. 17:34
PerlJam: re '*yet*', indeed. hopefully rsn, at least with some cheating. 17:36
pugs_svnbot r20033 | rhr++ | [syn_index.html] Add .pod links (with the funny names)
r20033 | rhr++ | Also add links to draft S17 and S22
diff: dev.pugscode.org/changeset/20033
lambdabot Title: Changeset 20033 - Pugs - Trac
mncharity re 'hand editing', eep. 17:37
pmurias that's why i prefere to wait a few seconds 17:41
pugs_svnbot r20034 | pmurias++ | [kp6-mp6like] new tests,all exept 07-constructor fail
diff: dev.pugscode.org/changeset/20034
lambdabot Title: Changeset 20034 - Pugs - Trac
17:43 drrho left 17:50 Psyche^ joined 17:52 njbartlett joined
pugs_svnbot r20035 | rhr++ | [syn_index.html] mark drafts as [DRAFT], fix up spacing 17:53
diff: dev.pugscode.org/changeset/20035
lambdabot Title: Changeset 20035 - Pugs - Trac
17:55 jwest-- joined
rhr I'm not sure feather is actually grabbing that file. there are a couple spelling fixes from july that aren't on feather 17:57
here's the new version: airen.bcm.umontreal.ca/syn_index.html 18:02
lambdabot Title: Official Perl 6 Documentation
18:05 Patterner left, Psyche^ is now known as Patterner
pugs_svnbot r20036 | putter++ | [redsix] Added --yaml. Currently, it simply dumps the raw ast tree, which is rather large. ./redsix --yaml -e '3' is 250 KB and 11 klines. 18:12
diff: dev.pugscode.org/changeset/20036
lambdabot Title: Changeset 20036 - Pugs - Trac
mncharity oh, that's cute. ./redsix --yaml -e 'say(3)' > /dev/null makes ruby 1.9.0 go boom.
the reason for the enormous size is the entire grammar is getting sucked in. 18:13
TimToady one wishes one could instruct yaml not to follow certain links... 18:14
trying to dump out a Match object without the associated cursors (including all prior cursors) is a problem for me
and I don't even have links back into the matching rule yet, which I suppose is your problem 18:15
mncharity yep, that's it.
TimToady maybe writing a custom yaml visitor is the solution 18:16
mncharity hmm...
18:17 cls_bsd left
mncharity ruby yaml is actually pretty flexible. www.ruby-doc.org/core-1.9/index.html let's see what p5 provides first... 18:17
lambdabot Title: RDoc Documentation
18:22 Aankhen`` left
pugs_svnbot r20037 | putter++ | [redsix] --yaml ast is now small. Its copy of the Match parse tree is discarded before dumping. Which discards line numbers, etc, but is a better first attempt than the previous, unusably large version. 18:30
diff: dev.pugscode.org/changeset/20037
lambdabot Title: Changeset 20037 - Pugs - Trac
18:30 jjore is now known as zz_jjore, zz_jjore is now known as jjore 18:36 blindfish left 18:42 blindfish joined 19:06 iblechbot left 19:09 barney left
mncharity re redsix problem, it's basically ast nodes linked to their associated Match trees (which one might want, or want flattened, or want gone, but are always gone for now), and those Match nodes link to rules which have some ugly clutter. RightThing is probably to declutter, and have a knob on how much Match do you want in your ast. 19:19
For STD, it's just a clutter issue. 19:20
so walk the tree (either smashing clutter or cloning the tree), or try to do it yaml side. the latter seems to mean "don't use syck". not attractive alternatives. 19:22
TimToady I've been fiddling with putting matches inside of cursors, and cursors inside of matches, and I'm not happy with either approach...
mncharity bigger picture, you might be happier looking at cleaner Match descriptions than yaml. something like
TimToady basic problem is that p5 doesn't really have any data type suitable to represent match+cursor objects, and any approach that separates them makes for circular references sooner or later 19:26
and p5 doesn't handle circular refs well... 19:27
but there's enough difference between the match interface and the cursor interface that they're hard to combine into one object too under p5 19:28
I'll probably end up translating $/<foo> to $¢->{HASH}->{
FOO}
$¢->{HASH}->{foo} that is 19:29
$¢->{ARRAY}->[1] for $1
if I could poke a glob into $foo and then do $foo{HASH} I could use globs, but that doesn't work either 19:30
and because tie is done on individual values, not types, it's not really suitable for defining an immutable type that has to clone rapidly 19:31
mncharity hmm,both Regexp::Common and yare get lots of "Variable "$sub_id" is not available" warnings under 5.10. wonder what that means. 19:32
TimToady (a cursor containing a match object isn't immutable from the user's point of view, but one can view the mutable match bits as a mere cache of "prior" cursor history)
so I think I'm just going to have to make $/ dereferencing non-transparent at the p5 level, sigh 19:34
at least that should make it pretty easy to prettyprint the match bits without the cursor bits 19:35
pugs_svnbot r20038 | putter++ | misc/pX/Common/yet_another_regex_engine/Regexp_ModuleA.pm: Made executable. Tweaked to work with 5.8.8. Many warnings, and untested, on 5.10.
diff: dev.pugscode.org/changeset/20038
lambdabot Title: Changeset 20038 - Pugs - Trac
TimToady (where when I say match I mean something more like ast...) 19:36
pugs_svnbot r20039 | putter++ | [yet_another_regex_engine] Clarify a puzzling error message. 19:38
diff: dev.pugscode.org/changeset/20039
lambdabot Title: Changeset 20039 - Pugs - Trac
19:40 chris2 left
mncharity anyway, long ago I started the sentence "something like", and now continue the yare repl output, or the representation used by redsix -v (*not* --yaml). 19:40
mncharity backlogs 19:41
TimToady sure, just using yaml because it's quick and dirty, for some definition of dirty 19:42
mncharity lol. sigh, I think I'm basically understanding... and then hit "(where when I say match I mean something more like ast...)" :) 19:43
TimToady how astish it is depends on how you write your {*} reductions
pmurias TimToady: p5 doesn't really have any data type suitable to represent match+cursor objects
does p6 has one? 19:44
19:44 FurnaceBoy joined
TimToady arguably Capture, if you don't look too hard at immutability issues 19:44
Capture doesn't natively have .from and .to, but those can presumably be mixed in to produce a Match 19:45
mncharity Match is Capture but mutable; :) 19:46
TimToady well, and Capture is just an immutable list of mutable containers, really
or you wouldn't be able to bind to a rw parameter... 19:47
in my regex engine I'm treating Cursor as immutable, though of course p5 doesn't care 19:48
but by cloning cursors as we progress, I can resume matches anywhere at any time without having to restore any values in the match state 19:49
presumably it'd even be thread safe
but as soon as I call into a user's {...} I have to make it mutable according to current S05
the eventual $/ returned by a match is not necessarily mutable though 19:50
maybe it's just wrong to allow $<foo> = 42 inside user closure, I dunno...
make them generate a new $¢ every time like I do :) 19:51
on the other hand, maybe it's safe to allow mutability in that limited scope without confusing the regex matcher, as long as it doesn't go reentrant
(but how would I guarantee *that*?) 19:52
mncharity being non-reentrant again would seem must unfortunate
*most
TimToady maybe $/ is really tracking the current $¢ inside the {...}, and when you say $<foo> = 42 it generates a new $¢ which is used for any submatches and is also returned at the end of the {...} for continuing 19:53
mncharity back re 'trying to dump out a Match object without the associated cursors (including all prior cursors) is a problem for me', STD5_run could certainly optionally do some postprocessing on the yaml. 19:54
(not meaning to interrupt;) bbiab
TimToady need to go buy my cat some food, likewise bbl & 19:55
FurnaceBoy ah the natural pecking order in action 19:57
spinclad *minions!* *I need food!* *I need food naow!* 20:05
20:08 rindolf left 20:11 rindolf joined 20:44 ruoso joined 21:08 hugues23 left 21:16 silug left 21:17 rindolf left 21:24 lambdabot left, integral left 21:25 lambdabot joined
pugs_svnbot r20040 | pmurias++ | [kp6-mp6like] Arrays and namespaces 21:27
diff: dev.pugscode.org/changeset/20040
lambdabot Title: Changeset 20040 - Pugs - Trac
21:28 integral joined
pmurias pugs: [1,2,3] 21:40
exp_evalbot RESULT[[1, 2, 3]]
pmurias pugs: @([1,2,3])
exp_evalbot RESULT[[1, 2, 3]]
pmurias pugs: 1