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.
cj hurm... is the reason that v6-KindaPerl6/src/KindaPerl6/Visitor/Emit/Perl5.pm doesn't declare its namespace using 'package' because mp6 doesn't know how to do that? 00:40
cj does mp6 know how to do inheritence? 00:57
cj s/ence/ance/ :) 01:02
cj does parrot allow you to do anything like perl -c? :) 01:23
TimToady that would be better to ask on #parrot 01:31
pugs_svnbot r19964 | lwall++ | [gimme5] random cleanups
diff: dev.pugscode.org/changeset/19964
lambdabot Title: Changeset 19964 - Pugs - Trac
meppl good night 02:05
pugs_svnbot r19965 | gwern++ | rm some now-useless stuff from the 6.8 patch. I hand-applied most of the changes and couldn't get it to work, which is a bit frustrating. 02:32
diff: dev.pugscode.org/changeset/19965
lambdabot Title: Changeset 19965 - Pugs - Trac
dlocaus . 03:47
heyhey8185 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,' 04:34
allbery_b juerd / tene : ping 04:35
Tene allbery_b: hi
allbery_b see above 04:35
Tene Ahh. 04:36
allbery_b danke schön 04:37
allbery_b has no idea what that was about but it was annoying
allbery_b Tene++ 04:38
youaredead4595 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,''(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,' 04:38
youaredead4725 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,''(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,'
youaredead4595 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,''(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,'
youaredead4725 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,''(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,'
youaredead4595 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,''(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,'
youaredead4725 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,''(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,'
youaredead4595 '(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,''(y(-((u-nru'-'_,",,'-_,-_-(_"-,_"'-_,"',-_􏿽xE9"''-"",'"',",'",_-'_(',_'(-_',(_-,'-_,(-_-_,'
allbery_b sigh 04:38
allbery_b thinks he'll involve opers next time... 04:43
Tene I was just thinking the same. 04:44
TimToady Tene can you oper me? seem to have lost it at some point 04:56
TimToady thanks 04:56
Tene You should be able to say /msg chanserv op #perl6 if you're identified and set with rights on the channel
TimToady that may be more possible now that I'm not coming from a dynamic IP, which (I was told) was the problem with that earlier... 04:57
Tene Looks like you're not set with privs. 04:58
allbery_b chanserv thinks he's not allowed to have rights, it nukes his opr every time it's restarted or rejoins from a netsplit 04:58
TimToady .oO(that's because I'm a *dangerous* man!)
allbery_b beware of the keeper of the swiss army tac nuke 04:59
Tene looks like only 'autrijus' has privs to modify the access list.
rakudo_svn r25915 | petdance++ | Added tene's patch to Object.pir to do say. Added a perl6 test to test it out. 05:48
pmichaud pugs: <ok 4>.say 06:13
exp_evalbot OUTPUT[ok4␤]
pmichaud pugs: (~<ok 4>).say
exp_evalbot OUTPUT[ok 4␤]
rakudo_svn r25922 | pmichaud++ | [perl6]: 06:14
r25922 | pmichaud++ | * .say method should redispatch to say() function. instead of
r25922 | pmichaud++ | printing directly.
r25923 | petergibbs++ | Set svn properties to keep file_metadata.t happy
rakudo_svn r25925 | petdance++ | added some new sneaky ways to invoke say, but ok 4 started failing on me all of a sudden. 06:33
pugs_svnbot r19966 | lwall++ | [gimme5] can now fallback on normal match if lexer fails 07:52
diff: dev.pugscode.org/changeset/19966
lambdabot Title: Changeset 19966 - Pugs - Trac
Juerd allbery_b: pong 08:56
GPenguin does anybody know whats up with moritz_? 10:34
ruoso TimToady, I've read that paper... It's interesting to notice that it is, in theory, very simple to implement that in SMOP. The fact that the SMOP interpreter is an object itself, allows us to implement several interesting features... 11:18
like STM-like interface using distributed transactions
async IO programmed as sync IO 11:19
and I was even thinking about implementing positronic variables
just because I can ;)
one thing I was thinking on the other hand is about syntax (for the async IO programmed as sync IO) 11:20
at first I thought that while ($conn.accept()) { ... } could transparently create as much lines of execution as needed 11:21
it could have weird side effects if the user don't expect that 11:22
maybe it's more reasonable going to a java-like solution... which would be 11:23
$conn.handle($handler_object) 11:24
where $handler_object.^can("run"), and that code is supposed to have concurrent executions...
ruoso POE implemented in SMOP would be able to have a preemptive multitask, that's something that is in my mind since I reached to the current interpreter design 11:39
ruoso in fact... as SMOP is supposedly thread-safe, POE implemented in SMOP could mix green threads and os threads... 11:42
ruoso still wonder which lesser exotic name could be given to positronic variables, as junctions came for quantum superpositions... 11:45
ruoso really believes that positronic variables may create a different and simpler perspective to some algorithms... the bsearch example given by damian at YAPC::EU still impesses me... 11:47
allbery_b Juerd: sorry, was looking for a chanop when the channel was being bugged, 15:01
GPenguin 70 hours idle, i hope moritz_ is doing fine 15:13
mncharity goes to try running gimme5... 15:39
pugs_svnbot r19967 | putter++ | src/perl6/gimme5: switch from #!/usr/local/bin/perl to #!/usr/bin/perl (as ./cheat is already). Hopefully the difference isn't intentional. 15:45
diff: dev.pugscode.org/changeset/19967
lambdabot Title: Changeset 19967 - Pugs - Trac
ruoso . o O ( the silence on the things I've wrote may mean two things... or I am so offtopic that no one has hope in pointing me the right direction, or it just makes sense and nobody has nothing to add... ) 15:46
mncharity backlogs... 15:47
[particle] ruoso: things you've wrote on channel?
ruoso yep 15:49
[particle] generally doesn't backlog, but does read the mailing list
allbery_b no clue but suggests that mailing lists are better for tossing such things around; here, it was in a vacuum 15:53
mncharity ruoso: if the topic is your most recent paragraphs, I brief scan suggests they boil down to "SMOP can do it, and other neat stuff too" :), and 'musing on syntax'. does that cover it? The former I took as a status update. I should have said "neat!". :) The latter... syntax musing ends up being mostly tossing ideas into the pool, until things are actually working, at which time it gets pursued with a bit more intent. 15:55
TimToady I'm not usually up at 3:00 am... 15:55
[particle] slacker. 15:56
mncharity wonders if I've *ever* done a p6l post... not sure.
TimToady the reason I had /usr/local/bin/perl is because /usr/bin/perl on fedora isn't 5.10 yet, and I was using // freely :)
ruoso have success in his experiment... ;)... drama works in #perl6 ;)
TimToady but I should really be using make to run things anyway...
[particle] why don't you 'use 5.010;' instead of relying on broken shebangs? 15:57
mncharity re 5.10, oh, drat. sorry. was just barely below threshold for asking before commiting. reverting. :)
GPenguin ruoso: you mean #perl and not #perl6 with the drama, right? :-)
TimToady ruoso: well, of course, that's because the camel is a drama dairy.
ruoso heh
TimToady [particle]: if I were going to rely on use 5.010, I'd use 6 instead :) 15:58
as far as I know, use 5.010 merely fails if the version isn't high enough 15:59
[particle] yes, it fails
pugs_svnbot r19968 | putter++ | src/perl6/gimme5: reverted r19967. gimme5, unlike cheat, requires 5.010. Added 'use 5.010;'. 16:00
diff: dev.pugscode.org/changeset/19968
lambdabot Title: Changeset 19968 - Pugs - Trac
TimToady so maybe there should be some mechanism in Perl for looking for the newer version and running that when you say "use 6.1" 16:01
instead of scattering versions in random locations around the filesystem
if we register all versions of modules in the standard library, and perl 6 registers its version and location...
mncharity re gimme5 parsing 42, are things set up so I can hand something 42 and get back a match object? reason for asking is 16:03
TimToady 'course, my shell can find perl5.10.0 perfectly well, but then #! can't be as smart for some reason 16:05
.matchify doesn't really work yet, so all you can get back is a Cursor
part of the reason for switching to p5 was that pugs was too flakey to write .matchify 16:06
mncharity it might be nice to set up a full pipeline. gimme5 takes 42, hands back a match object. I write something which takes that match and dumps a yaml version of kp6's ast. which something else picks up and dumps "transliterate to p5" for. and "to ruby". and others can start migrating kp6 backends to use the full STD. and shaking down their runtimes. and 16:07
STD_red can plug in if needed to provide a complementary but compatible source of ast's. maybe even a quicky from redsix to. so by end of day, a full pipeline is up, even if the current flow is just a trickle. and rather than thinking of it as a pipeline, 16:08
it's more a "ok, here is the exposed data. there's more than one person working on it, so it's real, and not going to just evaporate. and you can start doing your thing, whatever that is, right now. integrated with what everyone else is doing". 16:10
or something vaguely like that. maybe. the hope is.
hmm. maybe I _should_ of put off presenting that concept until after breakfast, to increase clarity. ah well. 16:12
thoughts?
TimToady
.oO(coffee!!!)
16:13
mncharity :)
GPenguin :D 16:14
TimToady
.oO(!flu would also be nice)
16:15
mostly I've been doing depth-first programming on longest-token matching because everyone else was taking the breadth-first approach, to the first approx 16:17
so nobody was looking at DFA matching
TimToady also, is kb6 ast actually documented anywhere? 16:18
*kp6
that sounds more snide than I mean it
I just haven't looked 16:19
since I've been concentrating elsewhere
mncharity the basic ideas are "avoid another monolithic system". like pugs (monolithic because it's yaml is incomplete), kp6, redsix. redsix should *not* start emitting say p5 code. if anything, it should start dumping yaml. <pause>
re documented, I'm not sure. that would indeed be a todo.
TimToady anyhoo, up till now the parts that I felt I had to concentrate on were too far removed from reality to worry about integration 16:20
but you're right, it seems like we're getting a lot closer to that point
mncharity basically, it seems like we've gotten away from the concept that "doing a parse requires a complete running p6 hanging off the parser". it may be true ultimately, but not near term. that "not trying to do it near term" means we can decouple implementation and development better. 16:21
TimToady well, pugs had the right idea insofar as the bootstrap for a real compiler must be written in another high-level language 16:22
TimToady it's just that p5 is sufficiently close for an approach like gimme5 to work on STD 16:23
and haskell isn't so close
spinclad positronics++ # next: asimovian robots!
TimToady and doubtless the bottom up approach of parrot would work eventually too 16:24
but I've always refused to learn PIR :)
spinclad but what is the damage when variables and antivariables meet?
[particle] just write non-strict perl without semicolons
it'll probably compile ;)
spinclad no, keep anti/variables apart with ;'s ! 16:25
sorry, wrong thread? 16:26
TimToady as long as one [particle] is spinclad up and there is spinclad down, there's no trouble 16:27
s/there/the other/
[particle] or half-spinclad
mncharity re comments, agreed. i'm more observing that given this moment, what we understand, and how we think we want to approach things, what pieces we have lying around, what we are currently working on... our constraints on development may now be quite different then they have been historically.
spinclad spinhalfclad 16:27
mncharity so different that we might be able to crack things wide open, like, today. 16:28
TimToady and add a STDbot to the list? :) 16:29
mncharity STDbot?
spinclad 'keep those uptime and downtime particles apart! don't cross the streams!' 16:30
TimToady eval: 42
perl6: 42
mncharity :)
exp_evalbot kp6: RESULT[42]
..pugs: RESULT[42]
..rakudo: RESULT[Method 'perl' not found for invocant of class 'Integer'␤current instr.: '_block10' pc 35 (EVAL_10:16)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 789 (src/PCT/HLLCompiler.pir:459)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1063 (src/PCT/HLLCompiler.pir:586)␤called
..from Sub 'parrot;PCT::HLLCompiler;command_line' pc 1246 (...
mncharity redsix: 42
snif.
mncharity but that would be security headache noone wants. :) 16:30
[particle] the only thing keeping me in this channel is my magnetic bottle [] 16:31
spinclad just don't let it do anything interesting.
TimToady yes, well, especially since gimme5 scribbles the filesystem currently to keep its cache
so STD5 has to read the filesystem at least
and there goes /etc/passwd to St Petersburg...
well, there's chroot for that, at least, and maybe Safe 16:32
spinclad is lost in superposed *ix and w*nd*z security models 16:33
mncharity though what would the STDbot print? match tree, ast, emitted code, or runtime output. :)
TimToady there's a comment in STD right now 16:33
# XXX will this please work somehow ???
TimToady it's on the .eval in: 16:34
token regex_mod_internal:sym<:i( )> { <sym> <regex_mod_arg> { $+insensitive = $<regex_mod_arg>.eval } }
so if that please works somehow, then STDbot should be able to print 42 :)
mncharity re XXX, ok. expectation management note to self: gimme5 is an exercise in DFA engine research. yes? :) 16:35
ah, i see
TimToady primarily, yes
but to do that research I have to have a running version of STD 16:36
which happens to also be what you want for a Perl 6 parser eventually :)
mncharity but said research has the nice side effect of an official grammar getting actively banged on.
TimToady indeed, any attempt to converge on the grammar improves the grammar, one way or another, as long as there's feedback 16:37
TimToady I do find myself tweaking a few things to make it easier to gimme5 them over to p5 :) 16:37
mncharity re feedback, yes, part of the pipeline idea came from how to keep gimme5 fed with feedback and "other people using it"-ness. 16:38
TimToady as long as what I start with is still officially p6, that seems okay 16:38
so like, turning @foo.join, which is hard to translate, into ~@join which is easy
'cause it's not a real generic translator, just a transliterator for a known plaintext 16:39
mncharity re seems okay, oh yeah. and I expect, once we're a bit more bootstrapped, the creep will then go in the other direction.
TimToady and it's very, very easy to break
mncharity ("since feature X works on all our backends Y, now the grammar can use X...") 16:40
TimToady *nod*
rakudo_svn r25935 | petdance++ | fix the "say <ok 4>" 16:41
TimToady but some nice things have fallen out semi-generically, like the ability to translate any "is context" into localized our vars
by the trick of declaring the our vars in main:: before the first package Perl; 16:42
TimToady and the signature mangling has got pretty good generically too 16:42
mncharity ah, ok. hmm. perhaps an env:: rather than main::. 16:43
TimToady I still have to completely replace the p6 method heredoc though
it just doesn't translate well at all.
Andy is happy to be writing his first Rakudo test.
TimToady mainly because it's doing too much internal pattern matching on strange data structures
mncharity Andy++ :)
[particle] is happy at andy
Andy I might actually learn some syntax. 16:44
spinclad hurls happiness
TimToady is this a test inside or outside of t/spec? 16:44
mncharity re heredoc, there's a ruby version in std.rb, but it's never actually been run, so... salt required.
Andy outside of 16:45
TimToady have joy
mncharity: re heredoc, I rewrite it heavily when I had to translate to p5 because I realized the original approach was bogus
*rewrote 16:46
so it might have changed in STD since you last saw it
mncharity ok. np.
TimToady it now just mangles the Match @<text>s instead of having an out-of-band list of texts
TimToady but the tricky thing is it has to allow for texts to be interrupted by interpolations in the middle of the line 16:47
and not mangle leading whitespace that's really in the middle of the line
so ^^ matching doesn't work
also, flattened out the @<more><text> things in Match so there's now just @<text> 16:48
using the newfangled ** <separator> syntax
mncharity looks like I have the current version of heredoc, though part of it is commented out as a todo. 16:49
TimToady if it prepends a "\n" to start with, that's the new version
since it does literal "\n" matching rather than relying on ^^
then we aren't fooled by gnostic interpolations into believing there's a line start after the interpolation 16:50
mncharity should the ^ (\t+) instead be ^^ (\t+) ? 16:51
lichtkind @seen fglock
lambdabot I haven't seen fglock.
TimToady should probably be matching literal \n 16:53
oh, wait, no 16:54
it's already the capture after a \n
so ^ really is beginning of string
$white is $0 from after \n
mncharity ooo, there's a bot I'd like to see. a p6 glossary and pointer bot. ... explain: gnostic interpolations mumble mumble SNN mumble 16:55
TimToady you'll note also the careful use of || rather than | matching so that it prefers $ws over \h*
otherwise \h* would be longest token, and almost never match $ws that we want to match 16:56
mncharity oy. I've been avoiding noticing the differences between || and | ... an empowering innocence which probably has to come to an end rsn.
TimToady also, it's really important to do the s:g in one pass, rather than one s:g for $w, and another for \h* 16:57
spinclad gnostic: might refer to any of a-, mono-, bi-, or tritheistic interpolations in the canon, perhaps
as long as they think they *know* 16:58
TimToady mostly gnostic means "I know something you don't know, nyah, nyah, nyah, please join our cult and I'll tell you." 16:58
mncharity lol
TimToady I prefer a theology that doesn't keep secrets for insiders 16:59
TimToady but people do find the nyah, nyah, nyah part rather attractive from the giving end, sigh 17:00
mncharity sigh indeed. off to food i think. i'll write up a strawman "meta-project" proposal after. 17:01
spinclad 'we have it from this volume hidden on a mountain from the beginning of time by the Great Seth, son of Adam...'
lichtkind TimToady: sorry for this rude question most of time i try to follow p6l but was there some significant changes in the lang in last 2 month? 17:02
TimToady many people will believe this in 10 years, so you can reap great rewards by getting in on the pyramid now
um, depends on what you mean by significant 17:03
spinclad if you start now you can even help build the pyramid!
TimToady if you look at the p6l archive and just look for spec changes, most of the (embedded, alas) checkin messages will tell you whether the changes are major or minor 17:03
spinclad could use some blood sugar... off to eat & again 17:04
TimToady or just use svn log on the specs repo directly...
that's at svn.perl.org/perl6/doc/trunk/design/syn 17:05
lambdabot Title: Revision 14514: /doc/trunk/design/syn
TimToady lichtkind: any particular reason for asking? 17:08
lichtkind TimToady: because i do a lot of writing about perl 6 and not always understand consequences of the logchanges
TimToady: was'nt ther in 2006 announced a "major feature freeze" ?
TimToady not by me 17:10
I don't do freezes, only slushes 17:11
lichtkind but it was somewhere in official looking texts and sounded pretty serious :)
TimToady we approach stable asymptotically
lichtkind iknow :)
TimToady well, people want to say that the design is largely complete, and it is 17:12
lichtkind but you cant say that in forehand i understand
TimToady sometimes they overstate that
I have always said for several years now that the design of the language is now primarily influenced by feedback from implementors 17:13
but that doesn't mean we can't simplifiy or generalize when we see the opportunity
[particle] it's been influenced by teachers and authors, too :)
TimToady one major recent change is that sub foo ($a) no longer produces a named unary 17:14
you have to explicitly say prefix:<foo> to get that to happen
the syntax of ** quantification has changed recently to allow separators on the right 17:15
not too many changes in the operators, except to split out the precedence of ~ and x
so they're now looser than math ops
lichtkind TimToady: please what means unary foo($a) ? 17:16
TimToady: i recently returned from german perl workshop 17:17
TimToady well, foo($a) is just a function call because of the parens in postfix position, so that's not a unary call
lichtkind the real problem lays that the orga team which is real decent and intelligent
TimToady but if you say "foo $a" that's an operator
and the question is how to parse "foo $a, $b"
a true unary would parse that as "foo($a),$b" 17:18
lichtkind but the really believe that people who skoke about perl 6 in last years told every time soon its there so its sometimes difficult to comunicate
TimToady a listop makes it "foo($a,$b)"
lichtkind ah thanks 17:19
TimToady well, maybe some people misunderstand the Christmas joke and then get overexcited
and maybe some people just have a different idea of "soon"
lichtkind i think its more than that, i think people who are excited were not best comunicators 17:20
PerlJam TimToady: most people don't have the long view that some of us do. 17:21
lichtkind TimToady: so foo $a, $b now translates to foo ($a, $b) ?
TimToady and some of it was the rapid progess that pugs was making at the time, but that came to a screeching halt when audreyt got sick
lichtkind yes kp6 and v6 also seemed to slowd down
TimToady most of my work lately has been toward getting an executable version of STD.pm with correct semantic 17:24
s
STD.pm being kind of an executable spec for how the parser should work
TimToady foo ($a, $b) is something else again 17:26
TimToady you've passed ($a,$b) as the first arg to foo with that 17:26
foo $a, $b translates to foo($a,$b) 17:27
whitespace is significant in distinguishing postfix () from non-postfix ()
lichtkind TimToady: yeah i should know since i written text about :) currently i writing on an update status of the overall project
TimToady but yes, given "sub foo ($)" p5 makes a unary operator
but p6 makes a list operator 17:28
TimToady and you have to say "sub prefix:<foo> ($a)" to get the p5 behavior 17:28
lichtkind TimToady: thanks i copy that into a file and understand it later fully :) no most of it i think i got 17:32
lichtkind TimToady: something alse.. i maintain the p6doc module, currently i add further material to it like perl.com articles some doce from patrick, what you think should p6doc contain? 17:33
its not that drastic since bible docs are evolving and also the officialp5 docs sontains some gut infos 17:34
i just scream around if someone has further usefull material 17:35
TimToady I don't have a strong opinion about documentation, other than that there's a lot of obsolete documents that people refer to without realizing how old they are 17:36
Juerd Is that an opinion? 17:37
TimToady I prefer to have opionions that are also facts. :)
*opinions
.oO(what's an opi-onion?)
17:38
maybe it's more of an opinion if you s/a lot of/far too many/ 17:39
Juerd Ah, then I agree :)
lichtkind TimToady: i tkae care of that all things i included are mared as old or draft that are so 17:42
marked
rakudo_svn r25938 | petdance++ | "6.say" 17:54
r25938 | petdance++ | now works
lichtkind TimToady: thanks for answers 17:55
[particle] Andy: my method for converting spec tests goes something like this: 18:13
visit perlcabal.org/syn/, and pick a synopsis (eg. S12)
lambdabot Title: Official Perl 6 Documentation
[particle] look for smartlinks (eg. - Hide t/oo/class/basic.t lines 13–38 (9 √, 0 ×) -) 18:14
open the file named there, and a file named appropriately for the spec tests (eg. t/spec/S12-classes/basic.t) 18:15
move the tests, svn add the file, svn ci. 18:16
if you don't have a commit bit, let me know and i'll fix it asap
TimToady there are no andys or petdances in the commiter list 18:17
also, consider adding your conversion recipe to t/spec/README 18:19
TimToady shower & 18:19
[particle] good ideas, all three.
TimToady we could probably semi-automate the movement of pugs specific :todo into fudge format 18:21
pugs_svnbot r19969 | ruoso++ | [smop] starting to write a lowlevel implementation of method that resolves to a C function call.
diff: dev.pugscode.org/changeset/19969
lambdabot Title: Changeset 19969 - Pugs - Trac
TimToady that can actually be done in-place since pugs runs fudge over all .t files
really &
pugs_svnbot r19970 | particle++ | [spec] convert basic S12 class tests 18:27
r19971 | particle++ | [spec] convert pod to pod6
diff: dev.pugscode.org/changeset/19971
lambdabot Title: Changeset 19971 - Pugs - Trac
Andy I don't understand the spec test stuff, Particle.
[particle] ok, want a commit bit anyway? 18:28
Andy yes. 18:33
I'm not able to think about it. 18:34
My question: Is there a common t/spec repo we're building?
[particle] yes. it's in the pugs repo. 18:35
just like STD.pm is in the pugs repo.
Andy I didn't see a t/spec
[particle] eventually, they may move somewhere more "official," but this way it's optimized for development. anyone can find and fix bugs in the spec
Andy oh wait, it's there. 18:36
ok, and so "make spectest" should work under languages/perl6?
I see.
I hpoe that Audrey doesn't kick your ass for giving me commit access! 18:37
PerlJam Andy: I think we're almost to the point where the number of people who have commit access exceeds those that do not. :-) 18:38
Andy PJ: I know, I kid.
rakudo_svn r25939 | particle++ | [rakudo perl6doc]capture pod bodies, and process pod options 18:45
TimToady 6u 18:59
er, 6metoo
pugs_svnbot r19972 | gwern++ | I found a nicer workaround for the cabal/hsc2hs problem. Mention it. 19:13
diff: dev.pugscode.org/changeset/19972
lambdabot Title: Changeset 19972 - Pugs - Trac
rff_ hi 19:43
TimToady howdy doo 19:45
Coke I have a perl5 guy who is wondering if perl6 will have some way to say '[complicated expression] && return it for [some list]' # return the value of the expression the first time it is true. Is there such a beast? (or a better way to get a similar effect?) 20:04
TimToady well, first {expr}, @list is supposed to do that eventually 20:06
hmm, but that's returning the first element of the list, not the computed value 20:08
PerlJam "return the value the first time it's true"?
Coke TimToady: ah, perfect.
PerlJam that sounds like an until to me.
TimToady until is kinda imperative...
TimToady but I guess you could do "first True, map {expr}, @list if you want the other semantics 20:09
first {.true} in the worst case 20:10
mncharity: I am rather amazed to discover that .matchify actually seems to be working more or less correctly without any tweakage from the pugs version (other than translation to p5) 20:12
Coke ~
mncharity re .matchify, ! :) 20:27
TimToady well, there are still a few extra levels in there, but the ->{prior} mechanism seems to be working 20:31
to get the integer node out of noun, I have to say 20:32
print Dump(@r[0]->{prior}{number}[0]{integer});
where it should just be $r{number}{integer}
that's mainly a side effect of using list context to hold alternatives and quantifier backtracks 20:33
er, $r->{number}{integer}
I forget this is Perl 5 :)
wolverian what's the -> in perl 6? ;) 20:34
TimToady lambda
-> $a, $b {...}
or do you mean the other way?
$r<number><integer> 20:35
wolverian just remarking on the @r[0]->; if you thought it was perl 6, what's the -> doing there?
TimToady or just $<number><integer> if $r is really $/
wolverian I need to come up with something constructive
in the near future, hopefully :/ 20:36
(sorry :) 20:37
TimToady this is irc; remarking is perfectly okay :)
wolverian it doesn't make me feel less of an ass :) 20:39
Juerd I haven't done much Perl 6 recently but I do find myself typing Perl 6 syntax when I'm working on Perl 5 code. 20:41
TimToady you think you've got problems--I go straight from STD.pm to STD5.pm and back, and I'm always in the wrong file typing the wrong code. :) 20:43
you'd think I'd be able to tell them apart by now... :)
Tene TimToady: perhaps you should jus tmake a p6->p5 compiler so that you can just type only p6 code. ;)
TimToady um, great idea, why didn't I think of it earlier... :) 20:44
Tene I suspect that someday I'll stop finding myself so funny.
That day is not today, though.
Juerd TimToady: Haha 20:47
Juerd TimToady: Try alternating background colors in your editor. I did that when configuring two nearly identical new email servers and it worked well. I had a blue server and a red server, and used similarly colored labels on the actual machines. 20:47
It doesn't fix the problem, but it can reduce it 20:48
mncharity ooo, background colors, neat idea.
TimToady well, obviously I can't use red...
Juerd Maybe it should be obvious, but I don't see it... :)
TimToady mncharity has been working on the ruby version of STD 20:49
Juerd Oh, heh
wolverian quick, pick green..
TimToady green is my favorite color, but I like purple better...
[particle] grue and bleen make a good combination 20:50
Juerd In PC BASIC, 5 was purple, 6 was brownish :) 20:51
TimToady I'll bet they got their backslashes backwards as well... 20:52
Juerd In ANSCI, 5 is purple, 6 is teal
ANSCI? ANSI!
Well, of course it wasn't just BASIC that did this. It was 80x25 text thing that had this... Somewhere at &HB800 :) 20:53
TimToady 25!?!? real terminals only have 24 lines!!! 20:54
Juerd *PC* BASIC :)
In BASIC, the 25th line was the status line. It didn't participate in scrolling :)
TimToady I blame DEC 20:55
Juerd I don't know who to blame :)
[particle] D|I|G|I|T|A|L
TimToady if they'd just stuck and 72x20 when they had it so good with the VT05
Juerd I like that terminals are all more or less the same nowadays: xterm! :)
TimToady *at
course, the VT05 was uppercase only 20:56
and Japanese was right out
Juerd UPPERCASE IS NOT A PROBLEM AS LONG AS YOU HAVE UNICODE
TimToady I guess it could type U+263A just fine 20:57
and everyone knows what that means anyway
Juerd Racial unicode :)
Coke TimToady: it just takes so long to fire up character map. 20:58
Juerd Though it's not entirely accurate. On my terminal, the WHITE SMILING FACE is black, and the BLACK SMILING FACE is white. :)
[particle] how well does that work with EBCDIC
TimToady yes, only whites are allowed to frown
Juerd TimToady: That's blacks on my white-on-black terminals :)
TimToady Juerd: mine too
which is why purple would work better than green--closer to black 20:59
Juerd But then, the BLACK HEART SUIT is white too.
TimToady no!?!
I detect a conspiracy
Juerd
TimToady it's really confusing to read the irc logs with the colors reversed from what they should be :) 21:00
Juerd Given the de factor standard for four color playing cards, green is ♣
wolverian FILLED would make more sense..
PerlJam Juerd: clover
Juerd PerlJam: Clubs
PerlJam well, when it's green it's a clover or a shamrock 21:01
Juerd And diamonds are blue. ♦
Hearts are red, spades are black. 21:02
TimToady well, everyone's gonna be running white-on-black screens when we have active OLED displays that run twice as long as black-on-white 21:03
wolverian OLED++
TimToady unless they can find a way to make the dark pixels use more power than the light ones... ;) 21:04
TimToady maybe light up our screens indirectly with burning US embassies... 21:06
sigh
PerlJam future displays will stimulate rods and cones directly. No need for a "screen" 21:07
TimToady will still take more power for the light pixels :)
[particle] we'll be using cheap, renewable, nuculur power by then 21:08
TimToady maybe we should rename smop to kosovo, then go burn down the microsoft embassy in parrotland
PerlJam [particle]: portable nuclear power plants like from Asimov's Foundation series. 21:10
mncharity lol # /me backlogs 21:44
My impression is kp6's ast is the most recent and best attempt at designing a Right Thing ast/il. anyone disagree? any interesting runner-ups worth looking at? 21:53
[particle] mncharity: i think parrot's ast is at least equally good, but i'm biased 21:54
mncharity: www.parrotcode.org/docs/pdd/pdd26_ast.html 21:55
lambdabot Title: Parrot Abstract Syntax Tree - parrotcode
mncharity looks...
thx !:)
[particle] is currently working on a yaml dump format and dumper for parrot's ast 21:57
mncharity kp6 ast: svn.pugscode.org/pugs/v6/v6-KindaPe...rl6/Ast.pm 21:59
lambdabot tinyurl.com/2f66ak
mncharity re working on a yaml dump format, ooo...
note www.kuwata-lab.com/kwalify/
lambdabot Title: Kwalify: schema validator and data binding for YAML/JSON
[particle] it's not incredibly important the the ASTs be the same between implementations, but it is important for them to be quickly and easily converted 22:00
[particle] re kwalify: thanks! 22:02
pugs_svnbot r19973 | lwall++ | [Cursor5] .matchify produces a better behaved Match object 22:08
diff: dev.pugscode.org/changeset/19973
lambdabot Title: Changeset 19973 - Pugs - Trac
TimToady this now works: 22:12
my $r = Perl->new(orig => '42')->noun([]); print Dump($r->{value}{number}{integer}); 22:13
and prints a yaml AST(ish)
now we just have to get the rest of it to work :) 22:14
mncharity ! :)
mncharity oky. here's where i'd really like a whiteboard. I don't suppose anyone is in the boston area and would like to get together in the next couple of days to talk through "a project architecture for the next few weeks"? 22:32
but basically:
TimToady obra lives near boston 22:34
obra mncharity: I'm happy to _listen_ if that would help
And comment.
but I can't commit to being a useful design contributor ;)
also, I have large whiteboards 22:35
mncharity obra: that would be helpful. i find simply discussing and answering questions often yields new insights and better design. 22:45
obra ok.
could do tomorrow from 6-7 if that's good for you 22:46
mncharity that would be great. see you at 6 (pm I assume? am would be fine too).
obra pm is better for me ;) 22:48
wanna pop by the bps office?
mncharity ok. yes. see you 6 pm at bps. 22:49
obra lovely
obra has no idea if there's an easy way to use this nice macbook to broadcast the whiteboard and discussion in the room but we could try if other folks wanna 22:50
mncharity basic idea is: a kp6/ast-like yaml format. kwalify-ed. with a p5 wrapper lib. (also rb and p6 - all metaprogrammed from p5 - they are basically just class names and vars). 22:52
a lot like kp6 -Cast, and in fact there would be a kp6 -Cast | kp6ast-to-kp6ast-like-yaml > foo.yaml, but the key difference is 22:53
the backends can be written in p5 (or rb:), rather than in the kp6 subset-dialect of p6. so development is easy, and they run fast. 22:54
obra talked to fglock about this? 22:55
mncharity two p5 backends are of particular interest - a very simple transliterator - which simply converts from p6 syntax to p5 syntax, and doesn't try to emulate p6 semantics. you simply have to avoid writing p6 things which will be broken by that process. it's a way to write in p6, instead of p5/rb/whatever, while having a zero-performance hit. so backends can 22:57
start being written in p6 now, rather than needing to be mostly in native language.
re fglock, no, hasn't been around, and the current form of the argument is just gelling now. 22:58
obra nod
mncharity the other p5 backend is the current effort. hmm... there might be a third, but later on that. 22:59
the... for now "yail", yet-another-intermediate-language, also provides a target for three, maybe four other pipes. 23:00
redsix, STD5, and STD_red (as backup to STD5). maybe pugs. 23:01
mncharity STD5 flow is STD5 .matchify -> match tree (dump as yaml... simply because I'd find it easier to cleanly massage in ruby than in p5) -> gast (more in a moment) -> yail. 23:02
gast(ly) is just an oo ast which closely matches the STD grammar. Basically to insulate the parser from yail, provide a place to do any non-local analysis needed, etc. If it ends up being a no-op, well, then it ends up being very simple. 23:04
mncharity STD_red generates a match tree vaguely similar to STD5's, but sufficiently different that it gets its own -> gast converter. 23:05
mncharity gast is again yaml-ified, dtd'ed (though less stably). basically so someone wanting to 23:06
drat, net partition. :(
wanting to generate an alternative to yail can do so. 23:07
insulated from the STD parsers.
mncharity again, each node is likely only a line or few long, basically to massage away oddities in the match tree (like the ones mentioned this morning). plus whatever analysis proves needed. 23:08
hmm... ok, I havent thought where to put "compilation", distinct from "any analysis needed to generate yail" and "things the backends do when emitting". sigh. ok, todo. 23:10
I'm not sure whether a hacked redsix should generate gast or yail. 23:11
mncharity development path might be: the kp6 -Cast -> yail postprocessor, plus yail dtd and lib and unit tests. and the simple yail to bare p5. that get's yail designed, implemented, tested. folks interested in doing backends, such as already have done kp6 backends, can then bang on it. 23:13
mncharity a person day or three, unless kp6 -Cast turns out to have problems. 23:14
then STD5 .matchify to gast, and gast itself, but it a more exploratory mode. eg, get 42 working through gast to yail and thus p5, before worrying to hard about the rest of gast and gast->yail conversion. 23:16
mncharity do the same for the bit of STD_red which is working. 23:17
mncharity maybe. 23:17
mncharity then redsix to gast, hopefully making redsix sort of a kp6 alternative (trading kp6's bootstrap concept for better performance). 23:18
mncharity i believe, with some uncertainty, that last bit will let us start writing p5-style p6, which gets compiled to real bare p5. 23:19
mncharity so folks writing backends can, for the most part, work in p6. 23:20
mncharity and folks creating runtimes. 23:21
eg, i could take the p5 yet-another-regex-engine, which does p6 rx on top of a p5 re, translate it into p5-like p6, and then any platform with a pcre library would have p6 rx. as well as being bootstrap. 23:22
mncharity i think those are all the pieces. it's sortof generalizing the observation that STD5 is easier than STD/pugs. and exposing yail so 23:28
mncharity 'permitting' p5/rb use doesn't preclude p6/other use. 23:29
mncharity gets us out of "the only way to use pugs's parser is to write in haskell in pugs", "kp6's in kp6 in kp6", and "redsix in ruby in redsix". 23:30
mncharity <handwaving ends> 23:30
hah
thoughts? 23:31
questions?
eep. that was 40 min. :/ in retrospect, perhaps writing it up and nopasting it would have been better.(?) 23:33
mncharity 60 min. 23:34
[particle1 email is a much better medium for monologues 23:35
mncharity hadn't envisioned it as a monologue :) 23:36
[particle] :) 23:40
Juerd Hi. Who could send me a test email? #####@juerd.nl - thanks! 23:43
wolverian sure 23:44
Juerd Thanks
wolverian you can yell at me again for misconfiguring my mta :)
Juerd Haha :)
I'll yell at my own MTA configuration first :)
wolverian oh, my network is having problems 23:45
hmm.
it might have left now
[particle] i sent one
Juerd So far, greylisting seems to work well 23:45
wolverian yes, it did.
tell me if it reaches you -- I'm kind of curious too
this is a brand new laptop :)
(mutt + msmtp)
Juerd I got it :)
Juerd uses his feather user administration for nick <-> realname mapping :) 23:46
wolverian I also have it in my /whois 23:47
wolverian is nice that way
mncharity not a single comment or question? ^.^ 23:51
/me listens to 5.10 make test go by, on an unshielded audio wire which picks up disk and display activity... very neat. a gnome "ambient system sound" utility. 23:54
wolverian whoa, that's cool 23:57
I want it too :)
meppl good night
mncharity any thoughts on a name for the kp6 ast -like ast...
g'night meppl
meppl ;)
mncharity ... package. yail. nail. fail. ... 23:58
[particle] kast