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.
rakudo_svn r25322 | particle++ | [rakudo] add trait parsing to parameters, and routine/method definitions 00:24
rakudo_svn r25323 | particle++ | [rakudo] parse parameter type constraints 00:44
pugs_svn r19738 | ruoso++ | [smop] first prototype of the sm0p grammar. It should be fairly complete now... 11:10
pugs_svn r19739 | ruoso++ | [smop] added a sample sm0p code. The grammar should handle comments and empty nodes... 11:18
diakopter that should be plenty 12:09
moritz_ thanks ;)
pugs_svn r19740 | ruoso++ | [smop] small fixes in the sm0p grammar by fglock++ 12:29
pugs_svn r19741 | ruoso++ | [smop] adding a version of the grammar that compiles in KP6 12:44
r19742 | ruoso++ | [smop] a test version using KP6 that compiles and runs... it still fails... 12:48
moritz_ ruoso: does that mean that a smop emitter can be implemented in the not-so-far future? 12:49
ruoso moritz_, yep... 12:52
but it's not a kp6 emitter right now... it's just a processing grammar
smop/sm0p/KP6Test.pm
sm0p is just a macro language... so a plain substitution grammar works 12:53
moritz_ ruoso: so what would that emitter emit? C code? or sm0p strings?
ruoso C code
like explained at www.jamendo.com/ 12:54
ooops
lambdabot Title: Jamendo : Home
ruoso www.perlfoundation.org/perl6/index....p_language
lambdabot Title: SMOP sm0p Language / Perl 6
wolverian ruoso++ # jamendo is cool
moritz_ so sm0p is a DSL for emitted C code, that is parsed by the C preprcessor, right? 12:55
ruoso kinda... 12:56
sm0p is a preprocessor in its own
the code it generates is plain C code, as if a person had written it
moritz_ ok
ruoso :/ it looks like kp6 quantifiers are not working... 12:57
moritz_ so kp6 would emit C + sm0p-DSL, and sm0p turns that into plain C, and runs it with help of the smop VM.
ruoso yeah... 12:58
that is what the s1p language will be
because it's kinda hard to write code for sm0p in C
moritz_ and the one you are currently working on
ruoso sm0p
pugs_svn r19743 | ruoso++ | [smop] trying to make KP6 to run the sm0p preprocessor... 12:59
ruoso moritz_, please take a look at smop/sm0p/KP6Test.pm 13:00
you can run KP6_TOKEN_DEBUGGER=1 ./script/kp6 < ../smop/sm0p/KP6Test.pm from kp6 dir to test
ruoso but kp6 * quantifier is not working... <ws>* <foo> is stopping when ws doesn't match... 13:03
moritz_ ruoso: can you call $string.frame? I expected $string ~~ frame or $string ~~ m/<frame> or something
ruoso: and so for it can't match, because you have a <node>+, and the string doesn't contain a node 13:04
ruoso kp6 didn't have smartmatch when I last check... 13:05
moritz_ hm, ok
ruoso grammar.token() is the kp6 calling convention to call grammar tokens
moritz_, if you run it with the token debugger, you'll see that it doesn't even get to that part of the processing...
moritz_ ruoso: in the kp6 grammar they use <opt_ws> instead of <ws>* 13:06
ruoso hmm... let me try that
moritz_ and opt_ws is defined as { <.ws> | '' };
that's a workaround around the non-working quantifiers
ruoso moritz_++, nice... I've just got to the next token :) 13:08
pugs_svn r19744 | ruoso++ | [smop] one token ahead thanks to moritz++ 13:09
ruoso lunch & 13:16
pugs_svn r19745 | ruoso++ | [kp6] kp6-token-debug updated to the new script hierarchy 15:13
r19746 | ruoso++ | [smop] we are really close to getting sm0p to work! 15:14
ruoso hmmm... it seems that I can't get a capture as an array in kp6 yet... 15:26
pugs_svn r19747 | ruoso++ | [smop] smop/sm0p/KP6Test.pm can successfully match, but the returned string is not being composed correctly... 15:31
ruoso wonder if anyone else has played with kp6 enough to help me with that... 15:33
moritz_ ruoso: what output do you expect? 15:35
ah, you want a 'node = SMOP_DISPATCH' instead of ' = SMOP_DISPATCH' i suppose 15:37
ruoso yeah... for starts...
moritz_ looking... 15:38
in Grammar.pm the syntax $$<identifier> is used instead of $<identifier> 15:40
ruoso yeah... but there the return is always a match object for every token
here I'm returning string
moritz_ and when I use $$<identifier> it complains about not having a .Str defined 15:41
ruoso I'm trying to define every token to always return an string... 15:43
pugs_svn r19748 | ruoso++ | [smop] a small gain... at least something more is being output... Returing explicitly strings from each token seems to solve the problem. 15:48
cj morning folks 16:40
does TimToady hang out here during the week? 16:41
moritz_ cj: yes, that happens ;) 16:42
cj well, I want him to review my notes on the conference so I can ask some questions on his behalf :)
cj wp.colliertech.org/cj/?p=173 && wp.colliertech.org/cj/?p=174 16:43
lambdabot Title: The Pædantic Programmer 􏿽xBB Blog Archive 􏿽xBB From Lang.NET 2008 - Tuesday
moritz_ the second link doesn't have any content 16:45
[particle] cj: did the weathermen scare you with reports of up to 6" of snow last night?
cj [particle]: I never listen to them :) 16:46
[particle] yeah, they're so rarely right, except in the summer when the weather never changes
cj er, sorry... I meant 172 && 173 :)
Tene pugs: $_ = 5; .++; .say; 17:20
exp_evalbot OUTPUT[6␤] 17:21
moritz_ wow 17:22
[particle] pugs: $_=5; .++.say
exp_evalbot OUTPUT[5␤]
moritz_ pugs: $_=5; .++.Int.say 17:23
exp_evalbot OUTPUT[*** No such method in class Int: "&Int"␤ at /tmp/uhYiqq8X6g line 1, column 7 - line 2, column 1␤]
moritz_ I think .++ is postifx-++
Tene moritz_: wow? 17:25
pugs: $_ = 5; .++.say; .say; 17:26
moritz_ Tene: cool golfing possibilites
exp_evalbot OUTPUT[5␤6␤]
cj pugs: $_ = 5; ++.; .say; 17:30
exp_evalbot OUTPUT[*** ␤ Unexpected ";"␤ expecting ".", "\187", ">>", "=", "^", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript␤ at /tmp/XiDCypNJdh line 1, column 12␤]
Tene pugs: $_ = 5; .prefix:<++>; .say; 17:31
exp_evalbot OUTPUT[6␤]
Tene pugs: $_ = 5; .prefix:<++>.say;
exp_evalbot OUTPUT[6␤]
moritz_ pugs: $_=5; .postfix:<++>.say
exp_evalbot OUTPUT[5␤]
Tene pugs: $_ = 5; .circumfix:<++>.say; 17:32
exp_evalbot OUTPUT[*** No such method in class Int: "&circumfix:++"␤ at /tmp/keiaA9WyZE line 1, column 9-28␤]
Tene ;)
mugwump pugs: $_=[1,2,3]; .post_circumfix<[ ]>(1) 17:42
exp_evalbot OUTPUT[*** No such method in class Array: "&post_circumfix"␤ at /tmp/jDIsavKtRS line 1, column 13 - line 2, column 1␤]
mugwump pugs: $_=[1,2,3]; .post_circumfix:<[ ]>(1)
exp_evalbot OUTPUT[*** ␤ Unexpected ":<["␤ expecting term postfix or operator␤ at /tmp/jamUfKp6gu line 1, column 28␤]
[particle] s/_// 17:43
moritz_ pugs: $_=[1,2,3]; .postcircumfix:<[ ]>(1)
exp_evalbot OUTPUT[*** No such method in class Array: "&postcircumfix:[ ]"␤ at /tmp/0Js9Ntx0XC line 1, column 13 - line 2, column 1␤]
spinclad pugs: $_ = 5; .postfix_meta_circumfix:<++>.say;
lambdabot spinclad: You have 2 new messages. '/msg lambdabot @messages' to read them.
moritz_ pugs: $_=[1,2,3]; .postcircumfix<[ ]>(1)
exp_evalbot OUTPUT[*** ␤ Unexpected ":<++>."␤ expecting term postfix or operator␤ at /tmp/J0IyQIwDLn line 1, column 32␤]
OUTPUT[*** No such method in class Array: "&postcircumfix"␤ at /tmp/wnWNhiizXY line 1, column 13 - line 2, column 1␤]
spinclad pugs: $_=[1,2,3]; .postfix_circumfix:<[ ]>(1) 17:45
exp_evalbot OUTPUT[*** ␤ Unexpected ":<["␤ expecting term postfix or operator␤ at /tmp/Ac8KbcA38M line 1, column 31␤]
spinclad durn. 17:46
diakopter anyone here attending Lang.Net 2008? 17:52
moritz_ diakopter: cj is 17:54
diakopter moritz_: thanks
cj diakopter: yeah, hi :) 18:01
anythign you want asked?
notes here: wp.colliertech.org/cj/?p=173
lambdabot Title: The Pædantic Programmer 􏿽xBB Blog Archive 􏿽xBB From Lang.NET 2008 - Tuesday
diakopter cj: not particularly, except does MS' open source lab still want to host a build/smoke farm for parrot and the perl6 implementations, like they mentioned [in private conversation] last year 18:02
diakopter although it's probably not the right venue for that question 18:03
diakopter in conversations at Oscon, I should mention 18:05
cj diakopter: I'll ask around. I don't know who to talk with, though. Do you? 18:06
diakopter probably no one there 18:08
diakopter moritz_: for future rakudo svn bot(s), all you need is an rssbot to watch/mirror this: parrotvm.org/svn/parrot/rss/trunk/l...ages/perl6 the committer userid is in the xml as well. 18:12
[particle] anyone write an rdf grammar in perl 6 rules yet? 18:14
Tene Hmm. That might be fun. 18:21
Tene [particle]: xml or N3? 18:25
[particle] whatever we can use to process feeds 18:25
Tene Oh, that was relevant. 18:26
:)
moritz_ diakopter: I know, but since I already had a svnbot, it was just a few lines of config ;) 18:36
diakopter [particle]: if you're wanting to get at that rss feed, the rss template can be altered to whatever format - beit \n-delimited ascii records, if you want, I think. 18:44
moritz_ pugs: (1, 2) X <a b c> X 3, 19:27
exp_evalbot RESULT[((1, "a", 3), (1, "b", 3), (1, "c", 3), (2, "a", 3), (2, "b", 3), (2, "c", 3))]
TimToady pugs: 1,2 X <a b c> X 3 19:28
exp_evalbot RESULT[((1, "a", 3), (1, "b", 3), (1, "c", 3), (2, "a", 3), (2, "b", 3), (2, "c", 3))]
TimToady the parens aren't necessary due to list infix predecedence
moritz_ I thought so, but wasn't sure ;) 19:29
cj TimToady: I built a source package of Microsoft's dynamic language runtime .NET libs :) 19:30
this should ease the process of building a parser that emits something can that run on .NET 19:31
colliertech.org/downloads/DLR/dlr-s...1.0.tar.gz
it may require an svn version of mono and mcs to compile, though...
TimToady what dependencies does it have? 19:32
heh
cj TimToady: nothing outside of the core .NET libs
TimToady now you just need to write a kp6 emitter, or cajole someone else into doing it :)
cj yeah... I've got so many other projects on my plate... maybe I'll do enough to pique someone else's interest... that usually works, doesn't it? :) 19:33
TimToady are the 2nd life continuations real continuations or just database continuations?
cj hmm... let me ask #libsl and friends...
cj I'm sure they'll get back to me about it sooner or later. 19:43
TimToady: miguel made it sound like they're real continuations when he was talking about them. They're expensive and slow, but stack frames can be frozen and thawed. 19:46
TimToady expensive and slow are probably okay, as long as we can implement gather/take with some other mechanism 19:47
we can also emulate resumably exceptions most of the time without really using continuations 19:48
*resumable
ruoso going home but still with sm0p matching but not returning a sane string... 19:48
TimToady so warn() in theory sends its continuation to the handler which calls it back, but all warn really needs to do is return 19:49
that's one of the main reasons for *not* unwinding the stack when you throw an exception
cj TimToady: is that the only place where continuations are used? resumable exceptions? 19:50
TimToady gather/take are generalized coroutines, and could easily be implemented in terms of continuations 19:51
justatheory warns TimToday
Erm, TimToady
PerlJam TimToday, TomTomorrow
TimToady but they could also be implemented in terms of threads, or in an event engine
I understand you used to coach a baseball team... 19:52
anyway, I know to to implement regex backtracking in terms of gather/take, so it doesn't need continuations necessarily 19:56
however, continuations are very desirable for many kinds of logic programming 19:57
and we need some efficient way of doing lazy evaluation of lists 19:58
and there are ways of looking at closures sideways and seeing continuations 19:59
but basically, Perl 6 tries to dance right on the edge of requiring continuations without actually doing so, which opens up many opportunities for doing something more efficient than continuations most of the time 20:02
babbagelinden evening all 20:16
cj TimToady: babbagelinden is responsible for second life's continuation implementation
babbagelinden: TimToady is the primary author of the perl6 spec 20:17
TimToady er, yeah, that's me
babbagelinden hi tim
[particle] babbagelinden: his friends call him larry wall :) 20:18
cj babbagelinden: TimToady earlier asked... are the 2nd life continuations real continuations or just database continuations?
TimToady how would you characterize the limitations of your continuations?
PerlJam his enemies call him larry wall too
TimToady I usually just answer to "hey you"
cj "don't call me late for dinner!" 20:19
babbagelinden well, it's horribly inefficient as you end up copying the CLI stack to the heap as a continuation
[particle] urk
babbagelinden and it causes assembly bloat due to the generated stack frame classes
TimToady so you presumablyu
babbagelinden (which will be less bad with generic code sharing)
TimToady only when explicitly asked to do so 20:20
babbagelinden and managed pointers aren't currently supported
apart from that it mostly works :-)
and it works on any CLI runtime: .NET or Mono on any platform
TimToady but you wouldn't use it for, say, backtracking in logic programming...
babbagelinden i wouldn't use it if i was building a vm 20:21
TimToady if you wanted to evaluate many alternatives rapidly
babbagelinden but it's a usable hack if you're bolting someone elses vm in to your system :-)
[particle] are there bsr/ret ops?
babbagelinden the approach has been used a number of times to implement migrating agents in Java 20:22
TimToady here I reveal my profound ignorance, but does SL generally use its own VM or someone else's? 20:23
babbagelinden see JavaGoX and brakes
cj babbagelinden: the reason your team developed this was to save a second life character's state when moving from one server to another, wasn't it?
babbagelinden we were using our own vm
cj babbagelinden: so it's probably optimized for once-ever-now-and-then use? 20:23
babbagelinden it's mainly to deal with migrating running scripts between processes
but it works well enough that we can use it for threading 20:24
cj TimToady: they are in the process (this very moment) of moving from their VM to Mono :)
TimToady are different VMs compatible at the continuation level?
babbagelinden yes, if you use a soap formatter
you could pass a continuation from mono to .NET
cj babbagelinden: that's pretty fancy. migrating states between processes...
babbagelinden which would be fun
if you used a binary formatter it might work 20:25
but its less likely
TimToady my guys tend to like yaml, but it's like "whatever.." :) 20:26
[particle] so you can write it to disk, and save the continuation for after the processor has lunch or whatever
cj grabs some lunch...
TimToady babbagelinden: thanks for the braindump 20:27
babbagelinden np
there are details on my blog
blog.secondlife.com/author/babbagelinden
lambdabot Title: babbagelinden 􏿽xAB Official Linden Blog
TimToady I'm sure if I really knew what I was talking about I'd have more questions... :)
'k thanks
babbagelinden you need to scroll back a couple of years for the theory ;-)
TimToady
.oO(the Wayback Machine as continuations)
20:28
TimToady
.oO(and whether First Life has continuations stored anywhere...)
20:31
mugwump babbagelinden: Brighton is less than an hour from London? So long as you're already in Wimbledon on the express to Brighton? ;) 20:41
babbage it's 50 minutes from Victoria :-) 20:43
and 0 minutes from the sea :-)
mugwump I seem to remember it took that long just to get to Guildford 20:44
babbage you need to get the right train :-) 20:45
mugwump ah, yes, my geography was being warped by travel maps 20:49
AndyAway updated en.wikipedia.org/wiki/Perl_6 to talk about Rakudo 22:54
wolverian alester++ # good idea 22:56
en.wikipedia.org/wiki/Perl_6#Implementations might need revising...
alester The whole thing could. 22:57
wolverian yes
obra ycombinator.com/arc/tut.txt - paul graham and rtm finally released a demo of arc 23:11
obra arclanguage.org/ 23:12
lambdabot Title: Arc Forum | Arc
Juerd Just be careful not to make Wikipedia more useful than the Perl 6 sites :) 23:14
That'd add one more website to the soup
alester Juerd: Why can't there be multiple websites? 23:16
Juerd There can be multiple websites 23:17
Juerd But a small group of people is working on them. Spending time on site foo means you're not spending time on site bar. There is very little overview, and even those closely involved with Perl 6 waste quite some tuits over finding information, and reading obsolete documents. 23:18
And instead of making the existing sites better (they're often no longer maintained by their original authors because of tuit shortage), our community prefers to add new sites. 23:19
This hurts. It does a great deal of damage to the projects.
alester In my case, it's a matter of tuits there.
Juerd The same problem is going on with Perl 5, by the way.
Juerd alester: I'm not saying anyone is at fault, or should have done something. Circumstances lead to other circumstances. 23:20
But it would be rather sad, IMO, to have a nice and shiny Wikipedia link, if there's not even a single semi-official (or regarded-as-official) Perl 6 site that has the same amount of info in a coherent way. 23:21
s/link/article/
namelessuser What would be wrong with making the wikipedia one just be the official one? 23:22
alester "just"?
How does something be official?
Juerd namelessuser: Their policies.
alester Never mind the policy, what is an "Offical Page"? 23:23
Juerd alester: I refuse to discuss the pros and cons of authoritative websites. I'm not sure myself. 23:23
namelessuser Jured: Do you mean that they are a bunch of numb-nutz? Or is it a copyright-type issue?
Juerd namelessuser: Neither
namelessuser: They're an encyclopaedia. You can't use Wikipedia as a portal to link to all the other Perl 6 sites, for example. 23:24
alester Juerd: It's not a pros and cons. It's a matter of what "officail" means.
namelessuser Jured: Ah, that's a good point. I was thinking along the lines of making everything link back to them, but not being able to link away is a valid reason.
Juerd alester: Something that either Larry or a large part of the community endorse as the best place for info.
namelessuser: Please note that in my name, the "e" is before the "r" :) 23:25
alester But who cares if Larry endorses it? How will people find it?
namelessuser Juerd: Sorry. My font is too small. :)
alester Larry endorsing it doesn't help the question of "which site is official".
Juerd alester: Once there's an official, no, MAIN site, many of the other sites would disappear or link there.
alester If Larry says Perl6.us is official, how do people know that?
Juerd Currently, dev.perl.org is the kind-of-official place for Perl 6 23:26
alester Juerd: Or maybe they wouldn't. Maybe the MainOfficial site doesn't get updated enough.
Juerd But it's illmaintained.
alester EXACTLY
You can't declare something to the the official anything.
Juerd And because it's not maintained with all (or at least lots of) relevant info, nobody uses it and nobody links to it. 23:27
Yes you can
Just not by yourself, unless you're Larry :)
namelessuser FWIW, the main reason I'm here is because the feel that I got from dev.perl.org was that nothing was happening, and I wanted to see for myself.
Juerd namelessuser: I hear that a lot.
alester No, even if Larry syas "this is official" that doesn't mean it gets maintained. 23:28
Who maintains it?
Who says what should be on it?
Juerd Even though I've had very few tuits I can spend on Perl 6, and waste most of those that I do have on IRC, many people in the Perl scene here see me as "the Perl 6 guy" and come to me with their complaints. I hear "nothing appears to be going on" a lot. 23:29
There is news one could find
But not where people look for it.
alester: I think a pumpking scheme would work.
alester Juerd: The "news one could find" is why I'm trying to funnel it all thru rakudo.org 23:30
Juerd alester: But rakudo.org, as you said, is going to be Rakudo-specific
alester Well, we take what steps we can.
Juerd And that's probably wise
But I myself have no idea what kp6 really is, and why/if it's relevant. 23:31
Pugs has not been going anywhere without Audrey, but in many places Pugs is linked to as if it's "the" Perl 6 implementation 23:32
alester The "linked to as THE" problem will go away as Rakudo moves forward.
Juerd I think that maintaining the web of information would be much easier if it wouldn't be spread all over the interweb.
alester SO much of this is organic. 23:33
Juerd Yes, it's organic.
alester You can't stop the spread of it.
So don't try.
Juerd Oh, I'm sure I can't.
alester Instead, prune and aim.
Juerd If I could I'd have done it.
But that doesn't mean we, as a community, should just forget about trying to fix this real problem.
Even if we can't fix it, and if we're sure it will get worse, we can do our best to make sure it doesn't get worse than it has to. 23:34
alester You sound like a Perlbuzz article waiting to happen.
Whyncha write up your thoughts on this and I'll post it.
Juerd Perlbuzz itself is an example of the problem, to be honest.
Don't get me wrong, I do love perlbuzz :)
alester If the One Single Source of information is suboptimal, then new solutions grow around it. 23:35
And so it did.
Juerd Yes, because nobody who controls the one single source appears to notice that it's insufficient
alester Right.
Juerd But why is this so in our community, but not in several other communities?
alester Juerd: I don't have an answer for that. 23:36
Juerd I think I do.
alester I suspect that you're incorrect in your premise.
Juerd But nobody will like it. Hoping I will be corrected: we fear communication, but most of all: we're afraid to give up control.
alester Juerd: I have to run. Let's talk more about this. I do want to.
Juerd Sure
alester Control to who?
Juerd Bye :)
alester Who gets to control use.perl.org?
Juerd Control to those who ask for it.
alester So whoever wants to overhaul use.perl.org gets to do so? 23:37
"Hey, we're getting rid of Slash, it sucks."
Juerd There's someone who owns perl6.org, who has good intentions, but he really doesn't want to give it to the people who work on Perl 6 day to day.
alester Slash is one of the key things I saw on use.perl.org, and I knew it would never change.
So given that, what could I do? 23:38
And why SHOULD pudge hand over the reins?
Juerd Well, use.perl/perlbuzz are not a problem :)
Can't have any single news source
alester OK, I really have to go/.
seeya
Juerd BTW, on rereading perlbuzz, I realise that I had that in my mind wrong 23:39
It's a blog
use.perl.org is not a blog
use.perl.org is a microcommunity
... of blogs :) 23:40
The /content/ of perlbuzz could easily go into use.perl.org (not layout, not purpose, etcetera), in a user journal 23:41
I'm not saying it should
But in general (except from third party articles) it could just be andy's journal on use.perl 23:42
Oh, if I'm talking to an empty channel anyway, I want to point out that I don't like that search.cpan.org isn't just cpan.org