6.2.7 released! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6
Set by autrijus on 13 June 2005.
Limbic_Region yeah - my first published article www.perl.com/pub/a/2005/06/16/iterators.html 00:00
hopefully my next one will be on Pugs/Perl6
wolverian congratulations!
Limbic_Region++
geoffb Congrats, Limbic_Region! 00:01
geoffb is actually writing the outline for his next perl.com article. :-)
Limbic_Region thanks 00:02
I actually have an idea for a series of mind dumps that I had originally intended for p5, but I am considering p6 for now 00:03
geoffb And I promise everyone here that I will try to convince chromatic to let me do one on OpenGL with pugs . . . if 'use SDL::OpenGL--perl5;' gets fixed (hint hint :-)
mugwump chromatic already has a SDL for parrot, geoffb ... wrapping that would be über-cool 00:04
geoffb mugwump, yep, I know -- but afaik he has not done the OpenGL part. 00:05
mugwump aha
geoffb mugwump, and wrapping it would require more skills than I have at the moment . . . and getting more skills in that area is increasingly at odds with falling bank account balance. :-/ 00:06
mugwump where are you? want a job in NZ? :)
or did I already ask you :)
don't worry, it's not working with me
;)
QtPlatypus mugwump: Thats almost tempting, though I live in australia not NZ 00:07
mugwump easier for you then QtPlatypus
geoffb mugwump, a few miles from O'Reilly HQ in Northern California . . . so the NZ job would have to be telecommuted. :-)
Since I hear it's damn near impossible to actually move there to work . . . .
mugwump who did you hear that viscious lie from? all you need to do is find an employer who's desperate enough to give you an offer and then wait for immigration to give you a work visa 00:08
geoffb mentally highlights 'desperate enough' and 'wait for ... a work visa'
Does NZ allow someone to consult to an NZ company without an NZ work visa? 00:09
mugwump of course
geoffb understands exactly zero of international work rules, despite having managed a team in India -- HR handled all that craziness 00:10
Limbic_Region worked as a contractor in S. Korea for a year and a half
but it was for a US company 00:11
mad tax breaks
geoffb That had to be interesting, Limbic_Region . . . .
mugwump you might face a very short limit on the length of a visa you can get to do consulting like that though
geoffb Someday when I have free time, I'll probably learn one of the CJK languages . . . but I can't decide which one. My dad speaks Mandarin, but that's only a mild push. 00:12
mugwump, how short?
mugwump perhaps look around on www.immigration.govt.nz/migrant/str...efault.htm 00:14
geoffb All of my contracts so far have been to local (within 100 miles) companies, so this is all interesting stuff to me
mugwump, thanks, will read after dinner. 00:16
And speaking of which
geoffb & # dinner
Some of the stuff on the Immigration New Zealand page is odd, and some is well . . . creepy 01:18
In the odd category, you're not allowed into NZ if there is any other country that you can't get into. That's paranoia. 01:19
On the creepy side . . . if no health insurance and not from .au or .uk, it looks like you don't even get emergency medical treatment. 01:22
wierd
mugwump this isn't a utopia. it's a progressive country, for sure, but still part of the old empire like everywhere else
they don't stop to ask for credentials for medical treatment :) 01:23
geoffb heh
mugwump I actually think privatised health is a good idea, largely because I think standardising on Western medicine is a bad idea in principle (and practice)
the poor of course get subsidised doctor visits 01:24
geoffb Fair enough. FWIW, the health requirements page reads like a purity pamphlet. 01:25
Ah well.
I'm sure US equivalents are just as silly
mugwump public hospital treatment is free apparently
if you don't mind being butchered :-) 01:26
geoffb winces
mugwump prefers tiny needles to scalpels any day
geoffb I remember one of my employees from India explaining the stack of documents he had to present to be given a visa to come here for a week -- it was insane. Put my first mortgage documents to shame. And in California, that's saying something. 01:27
"Why can't we all just get along . . . ?"
mugwump This is all new, too. Countries never bothered with immigration controls before the world wars 01:28
geoffb blinks
You know, I never thought of that before.
mugwump all at once massive walls were erected to segregate the entire of humanity
geoffb I mean sure, the current reality makes a complete lie out of the Statue of Liberty, but I thought of that as mostly a US dain bramage. 01:29
mugwump the 20th century saw a lot of people in power passing legislation to widen the gaps in the class system whilst appearing to outlaw it. And it was entirely successful. 2% of the population now control 25% of the wealth 01:30
damn I hate XML 01:31
geoffb nodnod
(to both)
I thought it was a good idea . . . about the same time I thought DocBook was a good idea. Then I spent some time with both. 01:32
I even went so far as to implement a change control system with an XML data store. Let's just say searching was . . . suboptimal 01:35
Thankfully most of that was abstracted behind a data store API, so as to be swapped out for something else, but sheesh. Taught me a lesson or two.
wolverian there is one good side to XML. there are libraries to read it. 01:36
mugwump ha! Imagine how I felt when Jean-Louis Leroy announced version 3 of Tangram, which had dropped support for SQL but now used an XML data store!
geoffb mugwump, OW
wolverian boggles
mugwump ok, so he wrote it so it could have extensible backends and so now also has a sketched SQL back-end, but all the same I ran screaming 01:37
geoffb mugwump, who do you work for, anyway? 01:47
mugwump a data mining outfit. www.bnz.marketview.co.nz is probably the best site to look at
actually, bnztest.marketview.co.nz/ is the site I re-engineered :) 01:48
<meta name="generator" content="GNU Emacs, Perl and Template Toolkit" />
geoffb heh 01:49
Interesting . . . so the data mined is the transactions between BNZ and the corporation paying for the service? 01:53
mugwump nope. all BNZ customers, all their card spend 01:54
geoffb Man, banks must make a killing doing this . . . no wonder they're all too happy to give away free checking accounts. 01:55
mugwump so basically we have details of something like 13% of all EFTPOS and credit card transactions in NZ
geoffb gotcha, realized that a couple pages on
And that's way the heck into Statistically Significant. :-)
mugwump Well, it is a fairly new development that any bank would do this
yes, the margin of error can be pretty low. there is the odd bias due to the fact all the customers are the type that respond to a certain type of marketing ;) 01:56
geoffb :-)
_meppl_ gute nacht - good night 02:01
mugwump auf wiedersehen! schlafen sie gut
_meppl_ ;) 02:02
geoffb g'night _meppl_ 02:03
_meppl_ ;)
sdtr443w Does anybody have that perl6.png timeline image? 03:33
It looks like the original isn't being hosted anymore.
geoffb Pull it out of Autrijus's Apocalypse Now talk? 03:34
sdtr443w Is that this "Perl 6 is Here Today" thing? 03:39
If so, I don't see it (yet)
geoffb Hmmm, lemme check, I know I saw it in one of his talks, I thought it was that one. 03:40
sdtr443w I wonder if it's working right 03:42
There's a section "Obligatory timeline picture"
geoffb draw => \&draw_cube,
damn, wrong paste
pugscode.org/perl6-timeline.png
Is that the one you were looking for? 03:43
sdtr443w Yeah
I'm giving a presentation on Perl6 tomorrow and I realized my slides don't have enough non-sequiturs to qualify as a Perl 6 presentation. 03:44
geoffb LOL 03:45
who to?
sdtr443w my work
geoffb recurse, svp . . .
sdtr443w I'm thinking next of making up an example of a continuation demonstrating Perl development when funding runs out and is restored.
geoffb heh 03:46
sdtr443w But I haven't seen any continuation code in Perl 6 yet and can't think of what I should do.
geoffb nod
mugwump ironic
pdcawley sdtr443w: There's a non deterministic sudoku solver in examples that uses continuations, but I'm not sure it uses the current syntax.
wolverian what's the current syntax? :) 03:47
pdcawley It's a deeply inefficient, brute force, algorithm, but delightfully simple to write.
sdtr443w pdcawley -- I can still post it in the slides the just claim "This has become obsolete like half the presentation"
pdcawley wolverian: Stop asking the hard question...
sdtr443w And I was going to joke about how I never have gotten a reply in the perl 6 newsgroup. 03:48
wolverian pdcawley: oh, sorry. damn ruby for botching the continuations so we can't learn from it either.
(the interface, anyway.)
sdtr443w Now I'm hoping I can find the fireworks background Larry Wall used in a State of the Onion presentation
Or I'll just use the periodic table of symbols
pdcawley Ruby's continuations are botched? It's just call/cc isn't it, which is a perfectly decent interface to continuations. 03:49
wolverian pdcawley: I'm not sure. the interface confuses me.
(the block thing.) 03:50
or maybe it's just the example in the module doc that confuses me.
pdcawley wolverian: It's pretty much the standard way of getting at continuations.
wolverian right, okay.
then it's the example confusing me. :)
mugwump are there any concise descriptions of these two(?) types of continuations anywhere?
pdcawley mugwump: Just worry about full continuations. 03:51
sdtr443w Also, the puppy on pugscode -- was that just stolen off images.google.com or something?
mugwump can this be described simply, pdcawley ? 03:52
pdcawley Consider a function call, the continuation of that call is the place the function will return to.
sdtr443w I think I'll need to make that Perl funding continuation example after all if people aren't certain how they work haha.
pdcawley In languages like C, that's simply a stack frame.
mugwump ok, so you're rewiring the "return stack", which at the same time becomes a hazy concept
pdcawley It still looks like a stack, most of the time, but it's a singly linked list. If you save a continuation somewhere, you save one of those frames in a lexical variable, so that 'bit' of the stack hangs around after you return the first time. 03:54
mugwump ok, so the "second type" of continuations I was think of are actually coroutines - which is more like a sub that includes its line of execution as a lexical variable that is preserved between calls. 03:55
s/think/thinking/ 03:56
pdcawley So: my $continuation; my $i = 0; call_cc { $continuation = $^cc }; ...; $continuation unless ++$i > 10;
^ is a simple loop using continuations.
In the call_cc block, $^cc is the place that call_cc will return to.
mugwump whereas coroutines are more useful for iterators 03:57
wolverian I think that's the thing that confused me about the example. it passes in the continuation to the block but immediately exits the block.
pdcawley wolverian: Yeah, the block is just saving a bookmark to come back to later.
wolverian pdcawley: that feels somewhat useless to me, as an interface. why a block at all?
pdcawley More advanced uses of continuations do complicated things in the block, but generally, just saving it somewhere is handy.
sdtr443w Ahh Good. I finally made my slides Perl6-compatible.
wolverian (I of course understand it useful when you're actually doing things _in_ the block)
maybe I just want a call_cc and a save_cc or whatever. 03:58
pdcawley How else would you do it. If I want to save a bookmark in the same place I have to do something like:
mugwump ok, so what about a more concrete example of where a continuation is useful - an exception handler
sorry, you first pdcawley
sdtr443w I added that timeline, the Pugs puppy, that gag Perl6 book, and used the firework background from Larry Wall's State of the Onion speech.
"With Perl6, every day is Hawaiian Shirt Friday!" 03:59
pdcawley my $cont; my $i = 0; sub { $cont = &?CALLER_CONTINUATION }.(); ...; $cont() unless ++$i > 10;
Essentially, you still end up needing to call a subroutine at the point where you need the bookmark.
wolverian pdcawley: I meant something like 'my $cont = current_continuation; ...; $cont()'
pdcawley wolverian: But that's the wrong continuations. 04:00
wolverian pdcawley: oh?
pdcawley That will return to the place the function you're currently in returns to.
mugwump aha, so &?CALLER_CONTINUATION returns the continuation of the current function as a coderef, not the caller's continuation
wolverian er, no, I mean the current_continuation to return its callcc directly
mugwump so a better name for it would be &?RETURN_CONTEXT, perhaps 04:01
pdcawley But it returns to the point just before it gets assigned to $cont.
wolverian ach, don't make my head hurt
pdcawley So the first time you call it, $cont becomes a continuation. When you then do $cont(10), it assigns 10 to $cont, and the next time you do $cont(11) (say), it falls over in a heap. 04:02
geoffb is dreading writing the next section of his article . . . gah.
pdcawley would rather it was &?CURRENT_CONTINUATION TBH.
mugwump or perhaps even &?HERE
wolverian pdcawley: okay. right.
pdcawley No. &?THERE. But still not good.
wolverian by the way, I HATE TWIGILS 04:03
sorry. now I feel like Juerd.
pdcawley I really don't like Ruby's lack of 'em though.
wolverian pdcawley: thanks for explaining that to me.
I really didn't quite understand it. :)
pdcawley A little like democracy: Terrible, but better than every other option.
wolverian demarchy? :)
mugwump (benevolant dictatorship)++ 04:04
wolverian benevolent
pdcawley wolverian: Daft as it sounds, the more complicated use in examples/continuations/nondet_sudoku.p6 or whatever it's called might make more sense to you.
wolverian pdcawley: I'll check it out. thanks!
wolverian svk pulls and waits for ten minutes or so
pdcawley It's been in for a while, have a look anyway. 04:05
wolverian nah, running it already. it won't take quite that long, I exaggerated :)
pdcawley notes that it currently doesn't have *any* commentary :)
mugwump does it work on current pugs?
pdcawley It didn't when I wrote it :)
mugwump is so fucking lazy with a question like that
wolverian I wonder if larry will really go with a builtin called 'callcc' (not call_cc since it has a _)
pdcawley wolverian: I kind of hope he leaves it as &?CURRENT_CONTINUATION and lets us write whatever interface we like. 04:06
wolverian pdcawley: what kind of an interface would you like?
or do you mean one for each task? :)
pdcawley I don't know yet. I like flexibility.
wolverian sure. 04:07
pdcawley The seasoned schemer uses a 'letcc' interface.
geoffb is happy he escaped freshman year without becoming *that* seasoned with Scheme
pdcawley But I can't remember exactly what the difference is :)
pdcawley notes that 'the seasoned schemer' is a book. Which you all already knew. 04:08
pdcawley adds that it's a completely evil book... 04:09
geoffb Berkeley taught with the Abelson/Sussman book (I know that spelling is wrong)
pdcawley SICP? Another great book, but it doesn't address continuations at all (apart from the continuation passing style used in its explicit control evaluator) 04:10
geoffb yeah, SICP sounds right.
I think I sold it as soon as I was out of the class. One of the few CS books I've ever gotten rid of
drbean Why?
pdcawley Heh. Made your head hurt?
geoffb Nope. Well, yeah, but not for the usual reason. 04:11
I understood it fine. I just *hated* it.
drbean It's very wordy book.
geoffb It's taken me years to come to an uneasy peace with the fact that Lisp exists
pdcawley Heh. Lisp is a language one admires rather than uses.
geoffb :-) 04:12
pdcawley s/admires/respects/
geoffb yeah, that's closer.
pdcawley s/respects/plunders from/
geoffb Actually, I really wish he'd taught the class in Logo, if he was going to pick a Lisp . . . that's the only Lisp I ever had fun with.
Mostly because you could get it as a cartridge for a really ancient piece of home computer equipment 04:13
So I played with the pretty pictures when I was too young to be appalled
geoffb notes that pdcawley is iterating towards reality. :-) 04:14
pdcawley started to almost like lisp when he finally got lisp macros.
SamB thinks lisp would be cooler if it had been broken into digestible chunks called "modules" 04:15
pdcawley All of a sudden that ugly but regular syntax made enormous amounts of sense -- you put up with it because it enables you to do amazing things.
geoffb My relationship with a lot of languages comes down to "hmm, interesting ideas . . . now let's transplant them into Perl"
wolverian I want to be ugly AND amazing.
pdcawley Common Lisp is broken up into packages.
SamB pdcawley: the documentation sure isn't! 04:16
geoffb Speaking of interesting language features . . . I thought Boo's idea of getting lax typing in a strictly typed language by creating the special type 'duck' was beautiful.
SamB still does not get the difference between " and : in logo 04:17
geoffb I'm sure it's been used before, but that was the first time I'd come across it as an advertised language feature
SamB um, you hadn't heard of duck typing before?
geoffb no, no, I know duck typing. 04:18
The part I liked was that he actually had a type 'duck'. It's just the kind of joke I find funny, I guess.
pdcawley I'd not come across *calling* it duck typing until recently.
SamB yeah, that is a funny thing to call it ;-) 04:19
(the type, not the technique)
geoffb :-)
pdcawley It's a *great* name for the technique. Lovely double meaning.
geoffb nod
pdcawley Just wish I'd thought of it when I was arguing with the 'Let's make perl really strict' types back in RFC days. 04:20
geoffb realizes that to have any chance at all of explaining the code in front of him in less than a few thousand words, it's going to have to get a lot less "clever" 04:22
pdcawley Or clearer... 04:25
geoffb pdcawley, it's very clever in order to be very general without much code. So clearer and less clever are probably both going to boil down to less general. 04:27
Which isn't in this case a horrible thing.
I can always explain how to generalize it later
For now I'd just be happy not to cause the reader's eyes to cross 04:28
pdcawley Maybe you need a cleverer audience :)
geoffb heh.
Well, the target audience is average Perl coders, raw beginner OpenGL coders
mugwump right, what an appalling week. 4:30pm on a Friday and I've only just finished the week's work. 04:29
geoffb What day do you normally finish the week's work? 04:30
Khisanth mugwump: taking a week to do the week's work is not good?
geoffb And if it's Monday or Tuesday, I want your job.
pdcawley One of the things that's always blown me away about Damian's talks is that he seems to assume a cleverer audience, and the audience lives up to his expectations.
geoffb Damian's audience is self-selecting . . .
mugwump geoffb: it's on offer if you can get here soon after 1st July :)
don't tell anyone though, it's a secret
pdcawley grins. Also, as the adage has it, easy reading is damned hard writing. 04:31
mugwump looks at jabbot
Khisanth you are quitting?
geoffb mugwump, heh.
mugwump, and anyway, with next kid coming in August, I'm not going anywhere.
pdcawley, very true 04:32
pdcawley Trying to remember who that quotes from. Possibly Orwell. 04:33
geoffb At least I don't have to try to be funny.
To hear Douglas Adams tell it, that's just BRUTAL.
mugwump Khisanth: I'm not quitting, just taking on another job and scaling back this job to 0 hours per week 04:34
geoffb And he's gifted at it
pdcawley was
geoffb yes, was, pedant-boy. ;-)
pdcawley Well, you know. 04:35
geoffb I prefer to think of him as doing research on another Dirk Gently novel -- in a completely different galactic era
mugwump he'll be writing the last page and then suddenly notice he's dead 04:36
geoffb :-)
Of course, the martians from Stranger in a Strange Land might have a field day with that one. 04:37
mugwump great book that. I recently read it, after not really grokking any of it and losing interest early at the age of 8 04:38
or so
geoffb Did you read the short version or the unabridged version?
The latter had much easier flow
mugwump Not sure. It was a nice read though, so I guess it must have been more stream of conciousness 04:39
I heard an interesting opinion that the books easiest to read, that you just can't put down are the ones written in very short sessions with minimal editing 04:40
pdcawley Tell that to Douglas Adams.
geoffb Or Dickens . . . 04:41
pdcawley A Christmas Carol was apparently written quickly...
mugwump it's like code, really... the best code is that not pondered over needlessly for aeons but cleanly written with a purpose and auto-documented 04:42
geoffb I was just commenting that he could get rather . . . boring, and I believe he was known as a speed writer
pdcawley But that was the style then.
geoffb mugwump, yes, but you have to be in flow for that to happen
mugwump $best is a lexical
geoffb pdcawley, sadly true, which ruined my desire to ever read anything written during that period, let me tell you 04:43
I mean, some of dickens was cool,
but a lot of other others were boring, and BAD
I think English Lit permanently turned me off to English writing after Chaucer 04:44
pdcawley Dickens was such a powerful progressive force in Britain at the time though. Not many people read Mayhew, but Dickens did, and *everyone* read Dickens. 04:57
drbean pd, who was Mayhew? 05:04
pdcawley Author of "London Labour and London Poor" one of the earliest socialogical studies of the working classes.
Made public all sorts of horrors. 05:05
I've heard him described as an early Studs Terkel.
wolverian hmm. I think it's time to set up an svn rep for this little project of mine. yay, first time for me! 05:50
Darren_Duncan back again 06:16
nothingmuch good morning 06:18
Darren_Duncan yes, though is shortly before midnight here 06:22
seems no revisions since I left awhile back ... nothing new to discuss ... 06:23
no matter, I'll retire, good night!
geoffb yay! Managed to rewrite nasty code block into something more manageable 06:27
And with that, bedtime for Bonzo.
G'night, all.
gaal ?eval my $x = 5; my $r = \$x; $$r++; $x 06:28
evalbot6 \5
gaal what am i doing wrong? i want 6. 06:29
don't tell me we don't have references? :)
revdiablo well, you could use binding 06:30
?eval my $x = 5; my $b := $x; $b++; $x
evalbot6 \6
gaal interestingly, this also works:
?eval my $x = 5; my $b := $x; $$b++; $x
evalbot6 \6
revdiablo but I never heard that references as we know them are going away
gaal think that's a bug? 06:31
revdiablo it might just be a pugsbug
gaal i want to give that thing to a sub, which will modify it.
revdiablo ?eval my $x = 5; $$$$$x++; $x
evalbot6 \6
revdiablo ...
gaal the reference may be to an array element.
ahem 06:32
that can't be right :)
but i bet it's in the parser :(
oh, interesting: if i call foo(@arr[$elem]) 06:33
and foo is foo($x is rw)
then i get what i want
i didn't expect that to work for anytthing but simple values. 06:34
revdiablo does that use binding behind the scenes?
gaal i suppose it must; is rw is aliasing.
it's just that i didn't suspect it'll work for non-simple expressions :)
revdiablo ?eval my @x = 1..9; my $b := @x[3]; $b++; @x.join("|") 06:35
evalbot6 '1|2|3|5|5|6|7|8|9'
gaal shall i pugsbugs the $$$$$$$$fast thingie, or do you want to do it?
revdiablo it's all you, I'm 5 seconds from falling asleep at the keyboard. :)
gaal bon nuit! 06:36
revdiablo waves
pdcawley worl 07:04
svnbot6 r4730, gaal++ | add test for $$$$$$$$$x incorrectly being parsed as $x
r4731, gaal++ | refact0r
r4732, bsmith++ | Added missing type signatures to Emit.PIR and Pugs.Compile.PIR. 07:39
gaal how's 1 << 2 spelled in p6? (shift) 07:45
integral +<< I think, unless it's changed 08:02
svnbot6 r4733, autrijus++ | * Pugs.Compile.PIR - Loops! Real loops, I say! 09:25
r4733, autrijus++ | * save a temp pmc register by calling functions directly.
r4734, autrijus++ | * empty arglist is now properly handled in parrot trunk. 10:06
kungfuftr seen castaway 10:11
jabbot kungfuftr: castaway was seen 12 days 19 hours 3 minutes 19 seconds ago
kungfuftr seen theorbtwo
jabbot kungfuftr: theorbtwo was seen 8 days 8 hours 20 minutes 19 seconds ago
kungfuftr hhhmmm... suddenly vanished 10:12
integral castaway's been on perlmonks more recently 10:15
hmm, haskell question: Emit.PIR has Emit instances for Emit a => [a] and for String, and the code works fine, but when I use ghci I get complaints when I say emit "string", but this gets used lots in the file itself :-/ 10:33
wolverian different contexts? I dunno. :) 10:35
integral oh well, it works when I start using it in my code 10:42
maybe it's because -fallow-overlapping-instances doesn't extend to the interactive lines
Text.PrettyPrint++ 10:49
xerox integral, you can either "ghci -f..." or ":set -fallow-overlapping-instance". 10:50
integral ah, cheers, xerox
svnbot6 r4735, autrijus++ | * instead of using confusing $P12345 numbers, generate 11:05
r4735, autrijus++ | temp variables with meaningful local names.
11:19 Aragone is now known as Ara4n
integral autrijus: I'm writing a Emit.Perl5 at the moment. Where's the appropiate place to move class Emit.PIR.Emit to so that both can use it? 12:05
svnbot6 r4736, andras++ | vmethods: num padding, spacing and zeroing
autrijus integral: oh wow. 12:18
integral: Emit.hs of course (I think)
or Emit.Internals.hs 12:19
I think Emit/Internals.hs works too
or Emit/Common.hs. improvise
integral ok :-) 12:20
autrijus integral: I have this feeling that the Trans to Perl5 will be much easier to write :p 12:27
(than PIR, that is)
integral hmm, maybe. Classes at least will be interesting I think
autrijus you can use stevan's perl5 perl6oo kit 12:28
integral I've never got round to looking at that, I'll have to now :-)
kungfuftr throws a little genetic algorythmn about 12:29
integral ghci++ 12:30
svnbot6 r4737, bsmith++ | Fixed version_h.pl to write out a header file when it doesn't exist before 13:01
r4737, bsmith++ | (eg on a fresh checkout of a branch in your svk)
r4738, autrijus++ | * PIR - do {...} blocks.
integral svk++ 13:03
autrijus interactively merged? :) 13:04
integral yep, and it can deal with files that don't exist too
autrijus cool! 13:05
<- proud of the interactive merge code in svk
since that's my first contrib to svk
Limbic_Region autrijus - so percentage wise, how much of Pugs -> Parrot is done? 13:12
svnbot6 r4739, bsmith++ | Moved the Emit class from Emit.PIR to Emit.Common.
r4740, autrijus++ | * PIR - do blocks:
r4740, autrijus++ | say do {'Hello, World!'}
autrijus Limbic_Region: what's 100%? 13:14
the current pugs eval, or entire perl6?
Limbic_Region: I'd say about 10% is done.
(for the former)
but the latter parts can be picked up and contribbed much more easily by others
(as is with pugs itself) 13:15
Limbic_Region what I meant was "of what Pugs can do right now" - how much have you gotten working using the new approach
but the 10% is misleading if I understand correctly 13:16
since the hard part (framework) has been done allowing anyone to tinker
sound right?
integral it's not quite done, it's still all stuffed into the one file, Pugs.Compile.PIR 13:19
gaal ?eval my $x = given 1 { when 1 { "rvalue given works" } }; $x
the eval bot isn't up, but that croaks with "No compatible sub &when" 13:20
Limbic_Region wonders if he should add a perl6 category to the time capsule perlmonks.org/index.pl?node_id=467692 14:07
mr_ank Limbic_Region: I've done it in the past - and last year I found a floppy disk with pascal code... oh boy! 14:31
svnbot6 r4741, autrijus++ | * blocks now yield the last evaluated expression as result
Limbic_Region mr_ank - I found some of my BASIC and old DOS batch files the other day 14:33
svnbot6 r4742, autrijus++ | * thanks to leo's fix, `say do { do { do { 3 ; 4; 5 } } }` now 14:38
r4742, autrijus++ | works reliably.
QtPlatypus ?eval do { do { do { 3 ; 4; 5 14:39
?eval do { do { do { 3 ; 4; 5 } } }
stevan ?eval do { do { do { <dah dah dah> } } } 14:40
Limbic_Region the evalbot isn't here ATM
Limbic_Region thinks about defining the wa, ditty, and dum operators 14:41
QtPlatypus wa ditty and dum? 14:42
Ara4n . o O ( dum, dum, dum, dum-da dum, dum-da dum... )
Limbic_Region do wa ditty ditty dum ditty do 14:43
QtPlatypus - possible you have never heard the song "Do Wah Ditty" 14:45
QtPlatypus I have heard the song.
mr_ank the doo doo doo the dah dah dah 14:52
svnbot6 r4743, autrijus++ | * oops, typo. 15:04
r4744, autrijus++ | * do away with interp_info entirely (sigh) 15:26
_mml hey all. i'm interested in helping out w/ pugs development. been a perl programmer since '93 and I'm familiar w/ Haskell, too. how can i help? 15:32
stevan mml 15:33
many ways, write tests in perl6
help document the Haskell with Haddock
port perl5 modules to perl6
what ever you are interested in really
putter pdcawley: If you really want to do scheme, ping me. I've pieces from an unfinished scm on p5 exercise. 15:34
stevan just ask for a committer bit :)
_mml writing tests would be a good way for me to learn perl 6 syntax, i guess. :-)
stevan _mml: be sure to check what is already written (which is also a good way to learn perl6)
_mml cool. 15:35
in the long run, i'm more interested in tackling a significant subproject within the compiler.
crysflame a neat series of posts would be brief, autrijus-powered interviews of how people got started with perl6 and what happened to the first thing they worked on
stevan _mml: for that you will need to talk to autrijus 15:36
crysflame: in what forum?
crysflame his use.perl journal comes to mind
being on-topic
i can provide one if none can be found, which seems unlikely
Limbic_Region _mml - perlmonks.org/index.pl?node_id=455979 may be of some help getting started 15:37
stevan crysflame: sort of a "history of perl6" project?
crysflame stevan: history of the humans of perl6
not of the code, or the planning
stevan crysflame: yes, sorry, thats what I meant
crysflame it's not as much relevant what each person did for their first bit of participation as much as it is their story about how they got to that point
np 15:38
_mml Limbic_Region: thanks.
Limbic_Region there are several other links there at the Monastery - super searching for pugs will turn up quite a bit of information
_mml gotcha. 15:39
autrijus hi _mml! 15:40
putter Hmm... sin() in Emit/PIR.hs has been vop1n -> vop1. So dump.ast doesnt compile anymore. New parrot? But parrot head currently doesnt perl Configure.pl. Sigh. 15:42
autrijus putter: ! 15:43
putter: not perl configure.pl now?
putter: report them in irc.perl.org #parrot?
(and yes, sin() is in builtins now)
_mml hello, autrijus. i'm just starting to get my feet wet w/ perl6 and pugs, but i think i am interested in doing a significant project. 15:44
autrijus _mml: cool!
_mml i've built a native code scheme compiler before, so i have a little experience.
autrijus wow, that's more than a little
I'm currently focusing on making pugs a compiler
instead of a parser that happens to evaluate the parse tree 15:45
_mml any direction on a project that might be suitable in scale to be a master's software project ;-) would be welcome.
autrijus have you read my paper? :)
# perlcabal.org/~autrijus/hw2005.pdf
there's some TODOs in it
in "Future Work" section
for master's software project scale, how about a PPI-based Perl5->PAST translator? :) 15:46
_mml it was on my TOREAD stack, so i think i'll hit it now. thanks.
autrijus or a PAST->Perl5 emitter; or a Grin/Core->PIR emitter
all of them will be tremendously useful 15:47
stevan autrijus: this paper is an interesting read/take on metaclasses (when you have time) research.sun.com/projects/plrg/core-calculus.pdf
crysflame I,I "Grin/PAST->Perl5"
autrijus stevan: ok!
Khisanth Perl5 -> Parrot AST? isn't that what ponie is?
stevan autrijus: I am collecting stuff so I can talk to $Larry at the hackathon
my plan is to get the meta sections of AS12 more filled out
_mml cool. i'll keep those possibilities in m ind. 15:48
thanks, autrijus!
integral Khisanth: not exactly...
stevan I think with a proper meta-model, a lot of really cool stuff will be very simple in Perl6 15:49
autrijus stevan: that'd be wunderbar
stevan like persistence, etc
but for right now I have to get back to $work (so I can pay for my trip to YAPC/hackathon) :)
stevan goes back to the chain-gang & 15:50
autrijus Khisanth: no... ponie is XS->ParrotInterp
Khisanth: very different level
(and when I say PAST, I really mean PugsAST here)
integral One issue with a PPI based system is that currently PPI does no parsing of expressions, so you first need to produce a precedence grammar for that 15:51
autrijus that's a bit confusing though. 15:53
autrijus pon^W^W^W^Wbetter names welcome.
svnbot6 r4745, autrijus++ | * the "correct" full CPS codegen landed -- but due to Parrot's bug
r4745, autrijus++ | (Continuations can't get_param), this is sadly broken at
r4745, autrijus++ | the moment. Pending on Leo's fix...
_mml has PPI been ported to Perl6? 15:54
autrijus _mml: no 15:57
but if ppi->past works, you can use it to translate ppi itself 15:58
:)
and PAST's Emit.Perl6 is trivial.
autrijus ponders a better type name for Pugs's AST 16:00
PAS? P6AST?
svnbot6 r4746, iblech++ | Emit.PIR -- Added &infix:<~>. Now t/01-sanity/01-tap.t and 02-counter.t work! 16:23
geoffb bak, but not read scrollback yet 16:29
autrijus, I went to do a new project on OpenFoundry, and got a big license to accept -- in I'm guessing chinese, since I'm seeing a big long block of codepoints . . .
What am I agreeing to? 16:30
autrijus geoffb: it's a repeat of the same thing as your user term of agreement. :-/
it's a bug that it's in chinese.
both are sf.net boilerplates
geoffb ah 16:32
cool, then
autrijus adds a parrotBrokenXXX flag to Emit.PIR for fun 16:34
svnbot6 r4747, autrijus++ | * add a parrotBrokenXXX flag to Emit.PIR ;) 16:42
geoffb ping(chip) 16:45
autrijus, what is the "Topic Suggestion" field on the register project info form? 16:58
autrijus geoffb: if your project doesn't belong to one of the existing topics
(as likely won't)
this field is so you can fill in some suggestion to the site taxonomy 16:59
geoffb AH! So rather than using "Other-Miscellaneous"
putter autrijus: As with an initial ::, the presence of a :: within the name does not imply globalness (unlike in Perl 5). S12
autrijus putter: I stand entirely corrected. tests welcome :-(~ 17:00
putter So the question for parrot is whether one can find_name ["foo";"bar"], or whether... we need to crawl stack. yes? 17:04
svnbot6 r4748, autrijus++ | * first cut at short-circuiting logicals (doesn't work yet)
autrijus I think we either request for a find_name fix in parrot 17:05
or roll our own support pmc
or (easiest) write a crawler helper fun
putter sounds right. ok. 17:06
geoffb autrijus, After selecting code and content licenses, I come to a page with tabs and breadcrumbs and such, but no content. View Source shows that the page just ends at the beginning of the table underneath the breadcrumbs 17:11
svnbot6 r4749, autrijus++ | * string comparisons and numeric equal/nonequal
autrijus geoffb: hm? that page should show that registeration has completed 17:12
geoffb: what's your project id?
geoffb sdlperl1
autrijus the table should have one line of text in it
geoffb Well, as long as the project exists now, that's cool
Hmmm, I'm guessing since I don 17:13
t see it on My Page, you guys have to approve it now.
FEK
autrijus er, no, the approval should be automagic.
geoffb oops 17:14
autrijus checking the log.
do you still have the final page? 17:15
can you POST again?
geoffb back buttons a couple times
OK, posting from content license page
Again, empty page 17:16
autrijus hm. you're logged in as "geoffb"?
svnbot6 r4750, autrijus++ | * make precedence clearer in 03-equal
geoffb (well, tabs and breadcrumbs, but otherwise empty)
yep
autrijus sec 17:17
geoffb nod
xerox afk
geoffb brb 17:18
putter lol 17:19
autrijus weird. it worksforme.
geoffb bak 17:21
geoffb blinks
Perhaps because I chose 2 code and 1 content license
?
BTW "Perl Dual-License" should really be available as a choice
svnbot6 r4751, iblech++ | * Emit.PIR -- Added "&time" so pugs -CPIR -we 'say time - BEGIN { time }' works :)
r4751, iblech++ | * Emit.Common -- Usual svn properties.
autrijus geoffb: nod. 17:22
geoffb Rather than having to hand enter either GPL or Artistic, depending on which one came in the dropdown
2+2 didn'
t work either
GAH, FEK
autrijus hrm? 17:23
geoffb "Fricking Enter Key"
OK, may have to fight this battle another day. Preparing for trip now. 17:24
autrijus ok
post again
geoffb ok, hold on
autrijus if there's an error, paste it here
I mean, nopaste
geoffb That's a bot better. but now I got a Best Practicle RT Error "Ticket could not be created due to an internal error" 17:25
Need nopaste?
autrijus no
I'll Storable your request session
post once again
geoffb OK, hold on
autrijus and I'll fix it without requiring you to keep entering :)
sorry for the trouble... hadn't seen that before 17:26
geoffb same error
thanks
autrijus cool, now I have a /tmp/session.86565
geoffb np
autrijus I'll debug on that. sorry
geoffb OK, I need to be AFK for a while, but will try to check in before driving away.
thanks for your help
autrijus nod.
svnbot6 r4752, iblech++ | Emit.PIR -- Fixed the string comparision ops.
autrijus np at all. if I managed to fix it the project should be created automagically
geoffb (y) 17:27
autrijus iblech: wow. :)
geoffb OK, afk.
mr_ank stupid theorical question: i was reading a bit on kaskell's compilers toolkit - is there a difficulty to writing pugs using Happy? 17:30
autrijus mr_ank: verily. 17:32
mr_ank: BEGIN block may modify the lexer at any time.
so pretty much have to lex+parse in one pass.
as well as dynamically construct precedence parsers 17:33
arcady user-defined operators definitely make parsing that much more interesting
mr_ank i see 17:34
svnbot6 r4753, autrijus++ | * add binding helper function <:= for PIR 17:39
r4753, autrijus++ | * repair string infix primitives
r4754, autrijus++ | * more use of helper symbolics: <== is now assign 17:45
r4754, autrijus++ | * oops, broke comparison accidentally.
autrijus ooh, 04-if passes 17:47
arcady pugs doesn't support the ==> and <== pipe operators does it 17:49
autrijus affirmative 17:51
svnbot6 r4755, autrijus++ | * repair logical short circuits.
r4756, autrijus++ | * wow, typo again. 17:53
r4757, autrijus++ | * *sigh* ok, now 06-use really passes 17:57
autrijus dinner &
_mml autrijus: this would seem to limit the usefulness of PPI->PugsAST (from PPI readme): "Source filters are not and will not (and can not) be supported."
integral _mml: lots and lots and lots of code (modulo ingy) doesn't use source filtering... 17:59
crysflame PPI is limited to code that isn't source filtered
which excludes lots of Acme and a few other modules
Alias has a complete CPAN coverage list
_mml crysflame: thanks. said list would be useful. 18:00
crysflame he's here fttt
_mml fttt? 18:01
crysflame from time to time
also on .au timezone
_mml gotcha, thanks.
ingy integral: modulo what? 18:03
integral Spiffy's source filter for methods 18:04
so a PPI based p5->past compiler couldn't do some of Kwiki
ingy I think that is the only source filter I have written, but yeah
I think a better point is that Perl6 obviates the need for Spiffy, and that Kwiki should just be a Perl6 project :) 18:05
integral at least the unicode handling should be faster :)
ingy it is interesting though that 100s of modules use Spiffy even though only a couple actually 'use Spiffy' ;) 18:06
crysflame ingy++ 18:08
ingy anyway, you meant 'modulo Spiffy' not 'modulo ingy'
Damian is the ultimate filter culprit 18:09
crysflame takes the remainder of ingy
ingy :P
crysflame: you can have my remainders soon. I'll be in sfo in 3 weeks
crysflame good 18:10
where 2?
ingy no
I couldn't make that because of YAPC
i'm in sfo July 11-16 for Socialtext 18:11
crysflame ok
socialtext what?
ingy We are getting the remote company into the same town for a week
crysflame wow 18:13
i would like to have dinner or lunch with y'all
svnbot6 r4758, iblech++ | Emit.PIR -- Added some Haddocks. 18:16
r4759, putter++ | "Fixed" bool::true in Emit/PIR.hs. Namespaces have problems in both pugs and parrot, so workaround them for now. 18:54
r4760, iblech++ | Prelude, Pugs.Parser -- Detect leaking of IO handles created at compile-time 19:04
r4760, iblech++ | into runtime (BEGIN { open "README" }).
iblech autrijus: BTW, if you don't know it, svn.perl.org/perl6/pugs isn't synching 19:08
svnbot6 r4761, iblech++ | Added a test testing that BEGIN and CHECK blocks may not leak IO handles
r4761, iblech++ | created at compile-time into runtime (but INIT and bare {...} should work)
r4761, iblech++ | (t/statements/io_leaking_into_runtime.t).
iblech nothingmuch: And do you know nothingmuch.woobling.org/pugs_test_status/ doesn't update? 19:11
autrijus: Am I right in the assumption that we'll have to traverse all compile-time namespaces/lexical pads and compile the containing variables? 19:14
autrijus: For example we'll have to compile the &foo created by BEGIN { our &foo = sub {...} } 19:15
kungfuftr ?eval my $class = class { method hehe { print 1; }}; my $class $foo; $foo.hee; 19:19
iblech 21:11 < iblech> nothingmuch: And do you know nothingmuch.woobling.org/pugs_test_status/ doesn't update? 19:22
nothingmuch what?
oh,
that happens occasionally
oh, someone rebooted the box
restarted the loop 19:23
iblech Thanks :) 19:24
nothingmuch =)
iblech nothingmuch++
svnbot6 r4762, iblech++ | Prelude -- Oops, my recent &check_for_io_leak checkin borked 'my $x; BEGIN { $x 19:25
r4762, iblech++ | = ...}'. Fixed.
putter Doh! You cant move Prim.hs and PIR.hs abs() to Pugs::Internal. and wrap it in Prelude.pm, _until pugs can compile Prelude.pm to parrot_. Sigh. Lunch. 19:34
19:42 Ara4n is now known as Aragone
putter ?eval package A {$x = 'inA';}; say $A::x; 20:23
?eval 3
?eval package A {my $x = 'inA';}; say $A::x; 20:24
?eval package A {our $x = 'inA';}; say $A::x;
Does anyone know if the package my/our examples are plausible?
putter goes back to wading through AES...
gaal hey, did you notice that $:vars don't need to be declared? 20:50
Darren_Duncan didn't notice ... but I can confirm that if you'd like 20:51
gaal ?eval class F; my $x; method f { $x = ++$:undec }; F.new.f; $x
no evalbot?
well, it happens to me. 20:52
we finally have a way to avoid strictures! :-p
Darren_Duncan I'll rephrase that ... I didn't notice several weeks ago ... will confirm if its the case now
one thing I did notice a month back was that variables were not case sensitive
gaal but you have to use oop for that, it seems, so not very golf-useful :) 20:53
wow
Darren_Duncan quick test ...
?eval my $Foo = 3; say $foo;
?eval my $foo = 3; $foo;
gaal doesn't happen here.
no the evalbot isn't running
Darren_Duncan gaal, start up your own copy of Pugs and run this: my $Foo = 3; say $foo; 20:54
the 'say' prints '3'
whereas "my $foo = 3; say $bar;" says Undeclared variable: "$bar" 20:55
gaal oh, in interactive mode? didn't try that
Darren_Duncan yes, interactive, closest thing to evalbot without evalbot ... I think
except that its not 'safe' mode 20:56
gaal no, sorry, i can't reproduce this in int.mode either
though my linux build is a little old (4714)
---interactive mode doens't work on windows
for unfortunate ghc reasons.
brb 20:57
Darren_Duncan okay, put those lines in a script then
gaal no, in a one liner it gives the right error
but i'll brb :)
Darren_Duncan I just tested in one-liner mode ... does give right error for $foo undeclared then 20:59
a script also shows the error 21:00
when I first detected the problem last month, it did no in the script form, and I never used -e then 21:01
gaal, I confirmed that your example prints 1: class F; my $x; method f { $x = ++$:undec }; F.new.f; say $x 21:04
svnbot6 r4763, autrijus++ | * beginning support for user-defined subs in PIR (does not work yet)
Darren_Duncan I confirmed this both in interactive mode and in oneliner mode
so that problem exists 21:05
but the problem of case-insensitive vars only seems to happen in interactive mode now
gaal are you running HEAD? it must be fairly new 21:06
Darren_Duncan I'm running the latest version, as I usually do 21:20
I'm running 4762 21:21
gaal well, it's a fairly recent problem then, since 4717 didn't have it. 21:22
Darren_Duncan are you talking about the problem you discovered, or that I discovered?
gaal the casitivity problem you discovered. 21:23
Darren_Duncan my current testing shows the problem only happening in interactive mode, not oneliner or script
a month ago it was in script too
if you can't run interactive mode then it would be a-ok for what you can run 21:24
gaal yes - my pugs that does do interactive mode is 4717.
(i have two machines)
autrijus pugs> my $Foo = 3; say $foo
*** Undeclared variable: "$foo"
r4723
Darren_Duncan so both of you update to the newest and see what happens there 21:25
if appropriate to your situation
autrijus updating
Darren_Duncan I see an update too, by 1
will retest with 4763 21:26
gaal unfortunately the linux box is very slow so it can take quite a while for me to bring pugs up to date there.
Darren_Duncan too bad 21:27
gaal autrijus, is the $:x bug known?
autrijus pugs> my $Foo = 3; say $foo
*** Undeclared variable: "$foo"
at <interactive> line 1, column 14-22
r4763.
gaal: hm?
Darren_Duncan it only takes a few minutes here
autrijus wonders if it's a osx specific bug
gaal $:private vars need not be declared right now.
sec, backlog has demo
Darren_Duncan but then I 'svn up' + 'make' several times per day, and don't 'clean'
autrijus gaal: you mean objects are just hashes?
gaal ?eval class F; my $x; method f { $x = ++$:undec }; F.new.f; $x
the evalbot is down, but that evals to "1". 21:28
autrijus right. that's because we don't have a metamodel :)
gaal $:undec was not declared my
autrijus i.e. objects aren't locked hashes
Darren_Duncan I confirmed the '1' in prev version
autrijus they are just hashes.
gaal ok
Darren_Duncan in all modes
gaal writing a debugger is fun! 21:29
Darren_Duncan er, 2 modes
autrijus gaal: you're writting a pugs debugger?
gaal no, a l33t debugger :)
autrijus mm depugger
gaal lol
Darren_Duncan question: how do you write a test for a bug that only shows up in Pugs' interactive mode?
can you pipe to Pugs? 21:30
gaal cat test | pugs
no that wont' work
because there's a hInInteractiveMode call :(
kungfuftr if you use $obj.array_attribute in a non-method call way, is there anyway to do something like $obj.array_attribute.push('foo'); ?
autrijus cat test | pugs -
gaal i repeat my suggestion that there be an explicit
oh.
:) 21:31
autrijus :)
kungfuftr: does it not work currently?
gaal can anyone think of an idiomatic way to flip a Bool variable? 21:32
kungfuftr autrijus: *blink* sorry, i've got way too many sandboxes 21:33
autrijus gaal: $x = !$x?
kungfuftr autrijus: though still wondering if you can do it with wrap methods
gaal autrijus, that actually doesn't work :)
?eval my Bool $x = bool::false; $x!=$x; say $x.perl 21:34
\bool::false
autrijus notes that gaal spelled =! as !=.
gaal lol
heh, oops.
kungfuftr my Bool $x = bool::false; $x.reverse; # ?
gaal okay, i want an idiomaticer way -- with op= 21:37
kungfuftr, does your meth work? should it? :)
autrijus gaal: op= is infix
kungfuftr =0)
autrijus not thinking you have another operand :)
gaal why, ?!= bool::true. 21:38
autrijus however if you insist!
^^= 1
gaal arigate
autrijus ...which revealed a lexer bug. 21:39
gaal haha.
autrijus ah well.
gaal actually what i am doing is toggling membership in a set
whcih i'd been using a hash to represent
but that isn't beautiful because then '%set.keys' isn't the data structure 21:40
isn't the modeled data that is
%set.keys.grep:{%set{$_}} is 21:41
which is ugly
oh well.
autrijus gaal: repaired.
svnbot6 r4764, autrijus++ | * repair ^^ and ^^= for gaal. 21:42
Darren_Duncan Pugs is still recompiling ... meanwhile I'm about to ship another Perl5 version of SQL::Routine ... just have to finish Changes file first
gaal autrijus++ is teh l33t :)
thanks!
autrijus n0 p0r6|3m, 6441 21:43
nothingmuch evening
gaal crap, my name is not a valid l33t opcode.
autrijus yo nothingmuch
nothingmuch what's up?
gaal 4utr1ju5 means END though :) 21:44
autrijus nothingmuch: gnoming from pugside to parrotward
Darren_Duncan compile done on 4763 ... gaal's problem of private vars still happens in -e mode
autrijus right, private vars is known
tests welcome
nothingmuch i tried starting to learn parrot earlier today
but then I got stopped 21:45
Darren_Duncan however, interactive mode gives something different now ...
nothingmuch I think i created the pudding and ice cream entries in the hebrew wikipedia
Darren_Duncan forget last line 21:46
nothingmuch after which I had to drive my sister and a guest from beer sheva to home
gaal: was that the migo?
Darren_Duncan okay, 4763 fixed the insensitive variable thing
gaal hmmm, could be!
Darren_Duncan both interactive mode and -e mode now say "Undeclared variable" ... unlike 4762 where only -e did 21:47
autrijus that's cool 21:49
nothingmuch oh boy! /me just realized he is close to being a saint on perlmonks
when I started going that seemed so unattainable
and now it's even more of a surprise, as I haven't exactly been frequenting the place 21:50
gaal i was the 333rd saint
which is nice because 33 is my name in gimatria.
nothingmuch nice number =)
i think valdez or bart (can't remember) were 128 21:51
ah, on valdez site i'm just under the photographer
that was a nice dinner
not as nice as the second one, but still very nice
gaal bologna?
nothingmuch ferarra 21:52
err, ferrara
gaal italy++
nothingmuch yes, very
gaal hacks
nothingmuch the second dinner was around 4 hours long
i got stuffed by the first meal
first dish, sorry 21:53
or course
regained my appetite each time over
except for the main course, which I really couldn't fit
i think I drank around 3 liters of fluids
around 1/3-1/2 of which was wine
the best thing that happenned was the cake 21:54
it was simply delightful
gaal lolful mail from $larry on p6-l 21:55
nothingmuch which one? 21:56
gaal you'll know it when you see it
the latest.
Darren_Duncan the one about a racoon? 21:57
Limbic_Region is really glad he clarified since I was beginning to question his sanity
gaal yeah
crysflame mm, cake
Darren_Duncan I like cake
gaal say %:breakpoints.keys.sort:{$^a<=>$^b} <- isn't this right? 21:58
Darren_Duncan not sure but appears to be
gaal it's doesn't parse now :( 21:59
Limbic_Region there isn't a space between the : and the { is there
Darren_Duncan I don't see any space
gaal nope.
Limbic_Region made the mistake of thinking @foo.map: { # was ok
apparently it isn't
Darren_Duncan try substituting the %: with $obj.: 22:00
or just put a 1 in the block
to isolate
gaal huh, you think i have *invocants*? :)
autrijus hm quicksort is broken 22:01
something's very wrong now
like, maximally wrong
yay, user sub landed 22:12
autrijus retreats back to bedroom 22:13
svnbot6 r4765, autrijus++ | * user-defined (nullary-only) subroutines! 22:20
r4766, putter++ | Added undef, chop, clone, !, ?^, and id (not working), to Emit/PIR.hs.
nothingmuch wow... the does> word is so cool 22:24
autrijus putter++ # gnoming! 22:28
svnbot6 r4767, putter++ | Added chomp to Emit/PIR.hs. 22:34
clkao whoot. things are moving on
autrijus clkao: user-defined subs is landing 22:36
nothingmuch i need name, function, immediate, compile only
autrijus: given a fresh start, how would you imlement a primitive table? 22:37
gaal i'm off to bed. night all!
nothingmuch maybe I should just make them as words
good night gaal!
gaal bye :) &
putter goodnight gaal. 22:38
autrijus finished full user-defined subroutine 22:53
nothingmuch: given a fresh start, I'll use p6 signatures :)
nothingmuch no, in forth ;-) 22:54
autrijus oh ;)
arcady isn't almost everything a word in forth? 22:55
Limbic_Region will likely be soliciting ideas for a perl6 category in his time capsule project over at the Monastery
nothingmuch arcady: at some level you have the hooks going back to the host language (or asm)
you wrap them in words
in haskell I have functions implementing primitives 22:56
i'd like them to be more of a table
but i don't like doing this with touples
svnbot6 r4768, putter++ | Added join and split to Emit/PIR.hs. But parrot can only split on "" until regexps are working. 22:59
autrijus notes we get PGE for free 23:05
geoffb: sorry I didn't get to look into foundry bug; will do so tomorrow 23:08
putter Apparently the split op and PGE are not plugged together yet. Cant split("b","abc"). Get complaint about regexps being unimplemented.
autrijus putter: nod, need to put PGE loading into our "init" 23:09
in Compile.PIR
and then implement our own split
alternately, fix parrot's split using pge
Darren_Duncan fyi, I have just uploaded the Perl 5 SQL-Routine-0.65 ... when I redo a Perl 6 version soon, it should closely resemble that one 23:10
svnbot6 r4769, autrijus++ | * PIR - full user-defined sub (with slurpiness) landed!
r4769, autrijus++ | * all sanity tests, save 07-test.t, are working!
nothingmuch woo!
> : FOO [ 2 2 * ] LITERAL ;
> see FOO
: FOO 4 ;
autrijus with this I think I can get Test.pm working tomorrow.
crysflame is it possible to write perl6 code that parses in perl5 as well? 23:11
putter O.O
Limbic_Region sure crysflame
Darren_Duncan some simple Perl 6 code would parse in Perl 5
Limbic_Region as long as you are selective on what p6 you use
my $foo = 'bar'; print "$foo\n";
Khisanth Perl5 is to Perl6 as C is to C++? :p
Limbic_Region that's p5 or p6 code
crysflame i'm mostly dreaming 23:12
autrijus hm, more control structures are pending on the register alligator
crysflame but it'd be useful to have a banner routine that detects when a perl6 script is being run by perl5 and have it re-exec itself with -MPerl6::*
autrijus hopefully leo and I can kill it tomorrow
Darren_Duncan some time there should be a contest where people submit the most complicated and feature using Perl 6 programs they can that also run the same in Perl 5
crysflame nods to Darren
Perl4 for extra points 23:13
Perl1 to win
Darren_Duncan and no use of eval allowed
putter one can also write code which works in both p5 and ruby. ;) And files, not code, which does more...
Darren_Duncan for the contest I mention, it would be complete files
not just code snippits 23:14
putter www.vendian.org/mncharity/dir3/multilang/file/
;)
Darren_Duncan its important to not allow string-eval since that allows a lot of cheating 23:15
nothingmuch wow! branches! 23:17
Darren_Duncan now making 4770 23:21
svnbot6 r4770, putter++ | Slight reordering of Emit/PIR.hs preludePIR.
buu HAI 23:22
autrijus btw, if people want to help out on the compiler/translator, now it's possible to run pugs -BPIR on any piece of code and get a reasonably clear report on where needs work 23:23
putter autrijus: how does one say... SubName -> PrimName -> ((RegClass a) => a) -> ((RegClass a) => a) -> Decl 23:24
autrijus putter: a and a are same?
putter oops, no. 23:25
autrijus (RegClass a) => SubName -> PrimName -> a -> a -> Decl
if not
(RegClass a, RegClass b) => SubName -> PrimName -> a -> b -> Decl
putter :)
tnx
autrijus that's universal quantification (i.e. the default), which should work for you
if you really want existential quantification, it's
SubName -> PrimName -> (forall a. RegClass a => a) -> (forall b. RegClass b => b) -> Decl 23:26
but that is rarer.
putter k
clkao autrijus: please spread svk in toronto.. i'll ask orange ninja to bring along stickers 23:30
putter autrijus: the rarer version worked!
autrijus clkao: sure! 23:31
djames clkao: Do you have SVK posters?
autrijus praises GHC's type system extensions
clkao no, no poster.
but you have enough stickers to make a poster size sticker wall 23:32
23:32 Limbic_Region_ is now known as Limbic_Region
Limbic_Region autrijus - do you have a methodical approach to completing the compiler/translator or are you just attacking stuff as you encounter it? 23:34
autrijus Limbic_Region: run random program, and the error msg will tell one what to work on next.
Limbic_Region: the typesystem makes clear the next step always :)
(and, fwiw, the priority is Test.pm) 23:35
for me
since then we can harness parrot.
that is, make smoke-pir
or make pirsmoke
or some other env, not sure
Limbic_Region autrijus - s/random/the examples you have posted so far/
though am I going to be able to do any of this without Parrot on my machine? 23:37
autrijus yup
Limbic_Region ok
autrijus replace -BPIR with -CPIR
and you'll be set
most of the work (in Comp monad) are reusable
I'm basically moving Eval.hs over bit by bit
once the basic is there, I'll transplant Eval.hs to use the Comp monad.
Limbic_Region well - my Haskell is very very very rudimentary at best
autrijus that will make the interpreter much faster and detect sytnax errors and makes class literal work etc.
Limbic_Region but I am guessing there is enough for me to copy/paste and modify 23:38
autrijus quite so. don't hesitate to ask here or on p6c :)
but I need to sleep now... it's far too late here
Limbic_Region sleep well
autrijus whoa, I really worked on this for a week now? 23:39
time does fly past.
autrijus feels like it's just started yesterday
but it's really just a very very long day for me :)
Limbic_Region heh
autrijus journal up. g'night! *wave* &
putter g'night! 23:41
nothingmuch woo! IF ELSE works 23:46
Darren_Duncan good night
nothingmuch > : FOO IF 5 ELSE 6 THEN ;
> 1 FOO .
5
> 0 FOO .
6
putter good night. 4th! 23:47
putter goes off to see what primatives Test.pm needs... 23:48
Limbic_Region is still waiting for pugs to compile 23:50
sri_ is caller not yet implemented? 23:51
svnbot6 r4771, putter++ | Refactored vopMumble in Emit/PIR.hs, with typing help from autrijus. Added chr() and ord().
sri_ returns undef here :/
clkao sri_: Pugs::Internals::caller ?
sri_ *** No compatible subroutine found: "&Pugs::Internals::caller" 23:53