Pugs 6.2.8 released! | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by autrijus on 13 July 2005. |
|||
stevan | mugwump++ # is_deeply hack .... very nice :) | 00:51 | |
iblech: I hope this doesn't mean I have to write the metamodel in JS now too | 00:52 | ||
:P | |||
mugwump | stevan: of course, it doesn't look inside objects. this is an interesting example of requiring a "visitor pattern" | 00:56 | |
It will be a design decision what to do with "private" state in this case | 01:02 | ||
The visitor pattern needs to be a module that runs against the metamodel - it should be capable of visiting both private and public state | |||
which reminds me. We need to think of a term for "visitor pattern" that isn't as long as "generic data traversal iterator" and doesn't sound like the sort of thing a Java freak would say. Any ideas, anyone? | 01:06 | ||
does anyone _like_ the term, "visitor pattern" ? | 01:11 | ||
cwest | iblech++ # :-) | 01:33 | |
svnbot6 | r5655, fglock++ | Refactored "Recurrence.pm" out of "Span::Code"; added tests for "Inf" behaviour in infinity.t | 03:30 | |
mugwump crosses his fingers and hopes that he can get the $.foo =:= $?SELF.foo() confirmed without anyone talking about "use self" | 03:39 | ||
svnbot6 | r5657, fglock++ | "recurrence" code refactored out to Recurrence.pm; some methods marked with "..." | ||
stevan | mugwump: I like "visitor pattern" :) | 03:45 | |
mugwump | ok, so perhaps it's just me who thinks that "design patterns" is like jizzwords for what should be covered in comp101 | 03:47 | |
obra | mugwump: it's all about having a vocabulary. Not because any of it is hard, but being able to say "you need a facade there, you dork" is useful | 03:48 | |
mugwump | ok, so "visitor pattern" can be for the iterator that asks for "public" attributes only. and "squatter pattern" can be for the one that gets the private attributes, too ;) | 03:51 | |
stevan: maybe it would be better to implement "next" in terms of a single primitive "next" that just returns Code refs for the remainder of the method dispatch queue | 03:56 | ||
and allows you to set it too, then just jump to the next one | 03:57 | ||
stevan | mugwump: that is kind of what next_METHOD() is doing in the prototype | 03:59 | |
the dispatcher is just a closure over a stack of iterators (themselves implemented in closures) | |||
so it is stateful, and next_METHOD just starts up the method search again | 04:00 | ||
mugwump | ok. with the C3 basic, people can sub-class the metamodel to demonstrate new features which can eventually be used as default | ||
s/features/schemes/ | |||
stevan | I dont understand? | ||
C3 is just one of the dispatch orders | |||
(which I am working on right now BTW) | 04:01 | ||
mugwump | so, once that's in the metamodel as the "canonical" method, then if somebody wants to implement what's in A12 they can prototype it by specialising your metamodel classes | ||
on the "don't implement poorly considered half-baked nice to haves in version 1" principle ;) | 04:02 | ||
stevan | well I am not sure it will be the canonical method | ||
I think it probably should be, but I am not Larry :) | |||
and we already have pre-order and breadth first in the metamodel | 04:03 | ||
there is a MetaClass::Dispatcher class | |||
which you call like this: $Foo->meta->dispatcher(':preorder'); | |||
$Foo->meta->dispatcher(':breadth');, etc | 04:04 | ||
and it returns something which responds to the next() method and returns the next metaclass in the ordering | |||
WALKMETH and WALKCLASS are implemented in terms of this | |||
if you so insane as to want to write your own dispatcher :) | 04:05 | ||
then you would likely subclass MetaClass and have it's dispatcher() method return something else | |||
mugwump | right... thanks for the insight | 04:14 | |
stevan | converting python to perl is not as simple as you might think | 04:24 | |
but I think I got the C3 stuff down now | |||
just gotta write a bunch more tests :) | |||
autrijus | rehi. | 04:43 | |
stevan: the C3 order radiates sanity in the insane land of MI. | 04:44 | ||
stevan | autrijus: I agree | ||
autrijus: I am about to commit the converted python C3 code | |||
autrijus | ooooh. | ||
stevan | I want to add more tests from the Dylan paper too | 04:45 | |
autrijus | so svn is back, and we can freely release 6.2.9 today/tomorrow if we feel like to | ||
I think I got time for releng; is there any reason we shouldn't do a 6.2.9? | |||
(instead of waiting until (say) next week) | 04:46 | ||
stevan | up to you really | ||
I am about to go to bed though, but I can do some releng in the morning (in about 9 hours) | |||
autrijus | that's fine; meanwhile I'll do the usual bug triaging | 04:47 | |
really the main benefit of weekly release to me is that I won't neglect bugs for too long :) | |||
dudley has his finger on the smoke button... | |||
autrijus | but I'd like to see your C3 code before you sleep :D | 04:48 | |
70_MRO.t? | |||
stevan | yes, just committed it | ||
it is a ugly port of the Python code | |||
autrijus | woot | ||
stevan | it could use some perlish-ness | ||
autrijus | dudley: you can press the button anytime :) | ||
stevan | autrijus: I am thinking that C3 should be the canonical order | 04:49 | |
autrijus | k | ||
svnbot6 | r5658, Stevan++ | Perl6::MetaModel - | ||
r5658, Stevan++ | * first prototype of the C3 ordering in t/70_MOR.t | |||
r5658, Stevan++ | - NOTE: this is | |||
r5658, Stevan++ | not yet added to the metamodel | |||
autrijus | stevan: I can't see a reason against that | ||
stevan | this way we can check MRO at class composition time | ||
and can croak if things are ambigious | |||
autrijus | yes. | 04:50 | |
stevan | I will need to do some thinking about how next METHOD will work | ||
should it always use the MRO from the original class? | |||
autrijus | and the thing that bugs me about p5's preorder MI was its nonmonotonicity | ||
stevan | or as it winds it way down, should it use the MRO of those classes | ||
yes, p5 was just pre-order, which is nice and easy, but hard to grok | 04:51 | ||
actually it's easy to grok, just hard to use :) | |||
autrijus | hehe | ||
I'd argue that A12 models the dispatch as a iterator loop | |||
stevan | I want to add some of the more complex examples from the Dylan paper too | ||
autrijus | over the dispatch order | ||
stevan | autrijus: yes, i think you are right (with C3 at least) | 04:52 | |
autrijus | so 'next' just means 'next' there | ||
stevan | with pre-order or breadth first its a little sillier | ||
autrijus | i.e. always from original class | ||
stevan | yes | ||
I think that will be the least suprising :) | |||
autrijus | good, then we agree :) | ||
stevan | so we are borrowing from Python and Dylan now too | ||
:) | 04:53 | ||
Perl 6 : everything and Python too | |||
autrijus | eh, p5's OO was borrowed en masse from Python already. | ||
lwall said we should blame python for p5 oo's brokenness ;) | |||
stevan | true, but Pythons was much cleaner (at least typing-wise | ||
autrijus | nod. | 04:54 | |
anyway, I like that "least surprised" r us. | |||
stevan | yes me too | ||
autrijus is reminded of why the lucky stiff's "The Least Surprised" comic strip series | |||
stevan | I really like that it is sooooo easy to blow up when things are broken | ||
autrijus | # redhanded.hobix.com/ | ||
stevan | as opposed to just doing things wonky | ||
autrijus | nodnod. | 04:55 | |
stevan | the algorithm is really pretty simple actually, once you implement it :) | 04:56 | |
of course now I have to write it in Javascript too :P | |||
oh I orderd that "art of the metaobject" book finally | 04:57 | ||
it should get here this week | |||
autrijus | cool | 04:58 | |
I don't think it will be that hard to do metaobjects in javascript really :) | |||
prototype-based modeling is clean | |||
stevan | it goes into detail about bootstraping, which is what I really need to learn | ||
autrijus | 'k. I think I need to finish re-reading TaPL and finish ATTaPL, then I need to get more books | 04:59 | |
stevan | autrijus: yes, JS wont be that hard, except my JS is rusty old 1.2 knowledge | ||
(more books)++ # can never have enough of them | |||
autrijus | I think our friendly rhinocamel friends can help :) | 05:00 | |
stevan | yes, I have been hanging around the JSAN guys lately | ||
jdv79 | nice work with the validator by the way | 05:01 | |
stevan | robkinyon (who has been JSAN-izing the Prototype library) actually works with me | ||
jdv79: thanks | |||
ok I have to sleep now | 05:02 | ||
nite all & | |||
autrijus | nite! | 05:04 | |
validator? | |||
jdv79 | openjsan.org/doc/s/st/stevan/HTML/F...index.html | 05:05 | |
autrijus | ooh. | 05:06 | |
mugwump | heh, I tried to implement a classical inheritance model in JS, but stumbled on lack of SUPER support | 05:13 | |
I got a SUPER implementation from Douglas Crockford's "JS is like LISP" site | 05:14 | ||
dudley | hmm, is javascript worth learning if I harbor a deep hatred of the web? | ||
mugwump | After I found it wasn't re-entrant I e-mailed him about it, and he told me I should be using Java | 05:15 | |
dudley | I never gave it much thought before, but everyone's talking about it lately... | ||
jql | I like JS as a language | 05:25 | |
web programming is a bit like pulling teeth, but so is writing a perl admin script that works on unix and VMS | 05:26 | ||
but that doesn't reflect on ECMA-the-script | |||
jdv79 | browser diffs and the incompleteness of CSS 2.0 are some of my more agrivating gripes with it | 05:27 | |
jql grows weary of the boiler-plate body { text-align: center; } .content { margin: 0em auto 0em auto; } or whatever | 05:29 | ||
jql kicks IE on general principle | |||
dudley joins jql in the beating | 05:30 | ||
jdv79 | we may have found a bug in it at work even - not sure though | ||
jql | I punched out a "standard" html/css webpage and was surprised to find it recognizable when I loaded it in IE4 | 05:31 | |
not sure what I did wrong. I needed to use more bells or whistles | |||
dudley | writing perl scripts that run on unix and vms is actually one of the better parts of my job | ||
jql | writing things that work on VMS gives you great respect for CPAN | 05:32 | |
dudley | maintaining 20-year-old vax basic code that was written without a single function is one of the worst :-( | ||
jql | ow | 05:33 | |
mugwump | goto insanity; | ||
jdv79 | MS SQL server stored procedures and old VB isn't very nice to maintain either | ||
dudley | yech. | 05:34 | |
jql | I like MS SQL. I do not like VB + anything | ||
coral | mugwump: heh! (re: "should be using Java") | 06:01 | |
masak tries writing using the dvorak layout | 06:35 | ||
difficult | |||
Juerd | masak: What's so difficult? | 07:08 | |
masak: Use dvorak.nl to get familiar with at least the home row before you do anything else | |||
Otherwise you'll learn dvorak the same way most people learn qwerty, and then you ruin it again for the rest of your life. | |||
masak | Juerd: what's difficult is using dvorak in vim | 07:09 | |
you'll never know what a keypress does :/ | 07:10 | ||
Juerd: thx for the url, btw, it's helping | 07:13 | ||
Juerd | masak: In vim, all that's important is to know what a *letter* does | ||
And forget entirely what a certain *key* used to do in kwertie | |||
masak | Juerd: yes, i know, but so much is reflex in vim | 07:15 | |
i reach for a key, only to discover that it's been remapped | 07:16 | ||
my muscles don't think "letters" they think coordinates | |||
Juerd | Oh, and you should probably NOT remap keys so that you have a hjkl-ishly "sane" mapping again | ||
As that'll hurt only more if you encounter a default vim | |||
If you used hjkl, keep using them | |||
It's a little awkward only the first few days | 07:17 | ||
But yes, vim is probably the hardest thing to switch layouts with :) | |||
I know someone who has gone as far as mapping all command mode back to qwerty | |||
masak | :) | 07:18 | |
Juerd | while keeping insert mode in dvorak | ||
masak | i can see why | ||
Juerd | I think it's a foolish concept. | ||
masak | it's based on habit | ||
writing text and typing commands are handled differently in the brain | |||
Juerd | Habit is exactly the thing you have to unlearn. | ||
And while you're at it, you can make them handled the same way | 07:19 | ||
When you hit dd, say (if possible, out loud) "dee dee" | |||
masak | that's an idea | ||
Juerd | It worked for me | 07:20 | |
masak | i just hope i'll still be able to use vim on qwerty keyboards | ||
Juerd | My mom wondered what I was doing when I said xxx, but still, it worked well. | ||
masak | :) | 07:21 | |
07:21
castaway_ is now known as castaway
|
|||
masak | vowels to the left, consonants to the right... i like | 07:22 | |
skugg | Juerd: bah. vim is a doodle compared to emacs's multi-keypress combos. | 08:33 | |
castaway was wondering how they translated to dvorak.. | 08:34 | ||
skugg | with great difficulty :) | ||
castaway | all a matter of training fingers I guess.. (hard enough using english layout at home, and german at work ,) | 08:35 | |
Juerd | skugg: I always assumed people smart enough to use Dvorak would also be smart enough to not use Emacs... | 08:36 | |
castaway refrains from thumping Juerd :) | |||
Juerd | Aw, come on. What's a day without holy wars? | ||
castaway | a nice quiet one? ,) | 08:37 | |
Juerd | What's nice about quiet? ;) | ||
osfameron | does anyone get worked up about vim vs emacs anymore? | ||
I thought they just pretended to now! | |||
Juerd | I dunno. I don't use emacs myself | ||
And must say it does feel a bit awkward when someone requests this 20 megabyte editor on a box I admin. | 08:38 | ||
castaway | osfameron: I dunno.. though I do think linking it to intelligence is a bit below the belt | ||
osfameron | yeah, I guess | 08:39 | |
I get annoyed when people do the same about Windows | |||
Juerd | -rw-r--r-- 1 root root 2.5M May 25 21:09 /boot/vmlinuz-2.6.11.9 | ||
-rwxr-xr-x 1 root root 4.3M Mar 17 22:48 /usr/bin/emacs21-x | |||
osfameron | I mean, it's ok to bash microsoft | ||
castaway too | |||
Juerd | castaway: Oh, below the belt it certainly was | ||
castaway | Juerd, space is cheap | ||
Juerd | Still | ||
castaway shrug. | 08:40 | ||
Juerd | The entire linux kernel on feather is 2.5 MB, while a single editor, that doesn't have all the hardware support, is almost twice as large :) | ||
castaway | s/$/s/ | ||
So? | |||
Juerd | shrug.s? ;) | ||
osfameron | :-) | ||
castaway | woops | ||
well you seem to have X support in, and probably a bundle of addons | 08:41 | ||
Juerd | Only because some people requested that. | ||
castaway | it's not really worth complaining about though IMO.. or just say no.. | ||
Juerd | I installed X for the same reason I installed emacs: user requests | ||
I'm not complaining | |||
If you have a special reason to need openoffice.org on the box, it'll be there | 08:42 | ||
castaway | Ok then | ||
Juerd | But I do think it's a huge, slow and inconvenient piece of software | ||
castaway | (thats what it sounded like) | ||
you're entitled to your opinion, as long as nobodies forcing you to use it yourself | 08:43 | ||
Juerd | Of course | ||
Although I do sometimes want to sneakily symlink emacs to vim ;) | |||
QtPlatypus wishes that he could edit word files with emacs "Then I would only need one huge slow piece of software." | |||
castaway | heh | ||
yeah, needing OOo is annoyig, but such is life | 08:44 | ||
Juerd | Have you logged in at feather with a utf8 capable terminal lately, by the way? | ||
QtPlatypus | Actually emacs is light as a feather compared to OOo. | ||
castaway | I havent ever been on there, Juerd | ||
Juerd | feather isn't all that light | ||
castaway: Oh | |||
castaway | but gimme a login and I will :) | ||
Juerd | You can request one by mailing, well, the request, including full name and preferred user name | 08:45 | |
castaway has emacs symlinked to jed on one machine, btw (much smaller, maybe you should give them that and see if they notive :) | |||
to? | |||
Juerd | me | ||
castaway | [email@hidden.address] | ||
Juerd | That'll work | ||
If you use dvorak, [email@hidden.address] is easier ;) | 08:46 | ||
castaway grins | |||
castaway cant even 10-finger type.. or even 5-finger.. | |||
Juerd | I can tell by the amount of spam I get at that address, that dvorak is gaining in popularity. | 08:47 | |
castaway: If you have at least 8 fingers and one thumb, you can learn to touch type dvorak within 10 hours | |||
Touch typing qwerty is not a requirement, and not a problem. :) | |||
Weirdly, there are both people who think touch typing qwerty will help, and who think it'll hurt... | 08:48 | ||
castaway | emailed | ||
castaway counts | |||
well, its more like 4 moveable fingers and only one on the left hand (for practical purposes) | 08:49 | ||
Juerd | DAmn | ||
Aankhen`` | Juerd >> Your typing tutor is really useful. | ||
castaway | I cant move the ones on the left hand worth a damn | ||
Juerd | I have to make the email column twice as large now! | ||
castaway | why, my email too long? :) | ||
Juerd | yea | ||
castaway grins | |||
increasingly, I try to logon places with it, and it gets rejected as invalid (sigh) | |||
Aankhen`` | Yay, `svk sync` is at r4226... | ||
ipv6guru | Hi All, anything happening | 10:41 | |
webmind | well.. if anything.. not here | 10:47 | |
ipv6guru | It seems that way, maybe being in Aus means I get to miss everybody | ||
I will try again later, was only here to have a listen at the moment, cya later. | 10:51 | ||
masak | how would i write @p = (1,2,3) »+« (4,5,6) in perl 5? | 12:14 | |
masak fears the perl6 reformatting of his brain has begun | |||
castaway | umm, whats it do? :) | 12:18 | |
osfameron | a for loop that unshifts 2 arrays at same time, much less elegant | ||
masak | osfameron: and i'd like if it left the original arrays alone | 12:28 | |
osfameron | masak: well, you could copy them... | ||
masak | castaway: the program or the perl6 reformatting? | ||
osfameron: much less elegant :) | |||
osfameron | masak: well, basically you're going to want something like | 12:29 | |
@p = hyper { $_[0] + $_[1] } [1,2,3], [4,5,6]; | |||
this is probably implemented somewhere on CPAN - dunno, List::Util maybe ? | 12:30 | ||
masak | oftentimes i find myself wishing for a variable that tells me the index of the current element in a map or for | ||
that would make this easier to do, too | |||
osfameron | yeah! apparently this is what .kv will do | ||
otherwise you end up having to set up an external iterator, which is annoying | |||
masak | yes | ||
.kv++ | 12:31 | ||
osfameron | TT has a nice awareness of its loop iterator position, I think p6 should have that too as well as kv | ||
masak | that's a good idea | ||
any thoughts on how? | |||
(syntactically) | |||
autrijus | when would you like that instead of .kv? | 12:32 | |
masak | i'm not sure i follow how to do it with .kv | 12:33 | |
i thought .kv was for hashes | |||
castaway | masak, i meant the perl6 code you gave | 12:34 | |
masak | castaway: it's meant to put (5,7, 9) into @p | 12:38 | |
it's just that one statement, not part of a bigger code | |||
osfameron | autrijus: I guess that I think something like for $x (@foo) { print $x.index } seems nicer than for $k,$v ( @foo.kv) { print $k } # or whatever the syntax is :-( | ||
partly because though I like the idea of kv, I think it's a little confusing | |||
not least because of the name. kv? | 12:39 | ||
I'll deal, of course. | |||
castaway | Oh.. in that case a for loop over the indexes, thats what i'd do anyway.. (or a map over them) - my @p = map {(1,2,3)[$_] + (4,5,6)[$_]} (0..2) ? | 12:40 | |
osfameron | castaway: cute! | 12:41 | |
castaway bows | |||
autrijus | osfameron: for @foo.pairs { say .key, .value } | 12:43 | |
osfameron | oh, well I like pairs much more than .kv - is it kosher ? | 12:44 | |
masak | castaway: thx | ||
autrijus | kosher, as in valid? sure, but currently due to an amazing design bug you need to write | ||
for [1..10].pairs -> Pair $_ { say(.key, .value) } | 12:45 | ||
I've just p6l'ed it. | |||
castaway | mm, fugly :) | ||
autrijus | (the key being the explicit "Pair $_") | ||
right. blame larry -- see my new p6l post for details. | |||
osfameron | hmmm, "Is this a desirable behaviour?". Very subtle :-) | 12:50 | |
btw, did it ever get decided if .head and .tail were synonyms of .key and .value? | |||
castaway | hmm, that sounds subtly wrong.. head - first list item, tail - rest of list .. | 12:51 | |
osfameron | castaway: well, considering that 1 => 2 => 3 is the pair 1=>(2=>3)... e.g. it's a cheeky linked list | 12:52 | |
castaway | hmm, its not a list though, really | 12:55 | |
(and if I see anyone write that I think I'll go quietly mad) | |||
osfameron | castaway: as discovered here on #perl6, you can create a linked list by doing [=>] @array | 12:57 | |
castaway wonders | 12:58 | ||
Arathorn | that is very sexy | ||
dada | osfameron: is [=>] an operator? | 13:02 | |
masak | dada: [] is the meta-operator "reduce" | 13:03 | |
dada | never heard of this one | ||
masak | it effectively replaces every comma in a list with the operator inside the [] | ||
dada | I've been away too long :-( | ||
Arathorn | i wonder what kind of memory hit you get between (1,2,3) and (1,(2,3)) etc. | ||
Aankhen`` | perlbot seen putter | 13:05 | |
dada >> `[=>] (1, 2, 3)` is equivalent to `1 => 2 => 3`. | 13:06 | ||
# which returns (1, undef) | |||
dada | Aankhen``: so `[+] (1, 2, 3)` returns 6, right? | 13:08 | |
Aankhen`` | Yep. | ||
QtPlatypus | ?eval [=>] (1,2,3,4) | ||
evalbot6 | (1 => undef) | ||
dada | ?eval [+] (1,2,3) | ||
evalbot6 | 6 | ||
dada | :-) | ||
Aankhen`` | ?eval say "My safe_say is working now!" | ||
evalbot6 | My safe_say is working now! bool::true | ||
Aankhen`` | :-o | ||
castaway | why 1, undef ? | ||
QtPlatypus | Thouh it looks like [=>] is broken at the moment. | ||
Aankhen`` | ?eval 1 => 2 => 3 | 13:10 | |
evalbot6 | (1 => (2 => 3)) | ||
dada | ?eval my %r = [=>] (1,2,3); %r | ||
evalbot6 | {('1' => undef)} | ||
dada | oops, they're even | 13:11 | |
masak | QtPlatypus: is there a corresponding failing test for that? :) | ||
Arathorn | ?eval [,] (1,2,3) | ||
evalbot6 | (1, 2, 3) | ||
Arathorn | :D | 13:12 | |
masak | :D | ||
dada | ?eval say [~" "~] <<foo bar baz>> | ||
evalbot6 | Error: unexpected "[" expecting block construct, term, ":", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
masak | dada: sorry, just operators | ||
QtPlatypus | [~] Is damn usefull. | ||
dada | masak: ok, thanks | ||
?eval say [~] <<foo bar baz>> | 13:13 | ||
evalbot6 | foobarbaz bool::true | ||
svnbot6 | r5659, iblech++ | PIL2JS: | ||
r5659, iblech++ | * pil2js.pl -- Added option --yaml-dump to dump the parsed PIL as YAML | |||
r5659, iblech++ | (clearness of YAML and other PIL2* compiler writers might benefit). | |||
r5659, iblech++ | * New shell: jspugs.pl, simplifies the usage of pil2js.pl (you can enter | |||
r5659, iblech++ | statements to compile just like in interactive Pugs). | |||
osfameron | oh, is [=>] broken now, or is that desired behaviour? | 13:17 | |
QtPlatypus | That isn't desired behavour. | 13:18 | |
[=>] (1,2,3) should be just like 1 => 2 => 3 | |||
mja | ll | 13:27 | |
oops, my bad | |||
Aankhen`` | How do I check an altered Prelude without recompiling? | 13:35 | |
Nevermind, figured it out. | 13:36 | ||
gaal++ | |||
svnbot6 | r5660, iblech++ | * Usual svn props added to ext/Recurrence. | 13:48 | |
r5660, iblech++ | * PIL2JS: jspugs.pl -- Some new functions (:js, :l). | |||
r5660, iblech++ | * PIL2JS: PIL::Nodes -- As we know, subs return the value of their last | |||
r5660, iblech++ | statement if there's no return(). Previously, I used JavaScript's eval() to | |||
r5660, iblech++ | simulate that behaviour; Now I analyse at compile-time what the last | |||
r5660, iblech++ | statement is and add an appropriate call to return(). PIL++ for the absence | |||
r5660, iblech++ | of Syn, which'd made this task a lot more complicated! :) | |||
Arathorn | this may be a really stupid question, but why is PIL2JS in the pugs/perl5 dir? | 13:58 | |
iblech | Arathorn: Because it's written in Perl 5? :) | 13:59 | |
Arathorn | hm ;) | 14:00 | |
Arathorn takes a closer look, then | |||
iblech | To start, you might want to start ./jspugs.pl | ||
Arathorn | right - that makes a whole lot more sense | 14:01 | |
iblech | And then enter :precomp | ||
And then say 3 + 4 | |||
Arathorn | :pil say "hello world" # seems out output code rather than a PIL dump, though | ||
iblech | And then you'll have a output.html, which, when run in a browser, will output 7 :) | ||
Arathorn | (unless i'm missing the point even more than normal) | ||
iblech | Oh, right | ||
Fixing | |||
Arathorn | :pil.yaml is very pretty, though | 14:02 | |
'tis a great hack :) | |||
iblech | :) | ||
svnbot6 | r5661, iblech++ | * PIL2JS: jspugs.pl -- Fix :pil not getting processed correctly, thanks to | 14:05 | |
r5661, iblech++ | Arathorn++ for noticing. | |||
r5661, iblech++ | * PIL2JS: PIL::Nodes -- Better reporting of compilation errors (now with | |||
r5661, iblech++ | line/column info, thanks to PPos). | |||
Arathorn | aah, that's more like it | 14:06 | |
woo :) | |||
iblech: fwiw, ../../pugs -Ilib6 -CPIL ../../examples/mandel.p6 | ./pil2js.pl --html --preludepc preludepc.js | mozilla | 14:28 | ||
yields a Error: box.GET is not a function | |||
Source File: arasphere.net/output.html | |||
Line: 53 | |||
iblech | Yep | ||
Arathorn | (from Venkman) | ||
iblech | Working on it :) | ||
Arathorn | cool :) | 14:29 | |
Arathorn tries to wrap his head around the code | |||
iblech | The new PIL2JS.Box.Constant(...).GET() are disturbing | 14:30 | |
(But in most cases, indispensable) | |||
Arathorn | hm, anyone know if there's any way to get a fuzzy stack backtrace in javascript? | 14:35 | |
istr that the mangled netscape 3 js engine on Liberate set-top-boxes could give you backtraces.. | 14:37 | ||
Arathorn rummages around | |||
iblech | That would be *really* great | ||
Would simplify debugging extremely | 14:38 | ||
Arathorn | well, Opera can do it, seemingly: my.opera.com/community/dev/jsdebug/ | ||
Arathorn upgrades his opera a few major revisions.. | 14:41 | ||
iblech | autrijus: Is it ok to change the definition of show (PPos x y z) to not include the y (the raw Exp)? That'd simplify my parser *extremely* (try pugs -CPIL -we '{42}()' or so -- you'll see VCode, MkEnv, etc...) | 14:43 | |
Arathorn | iblech: interestingly, Opera's js engine catches the null boxed object in a completely different place, complete with backtrace | 14:47 | |
Arathorn has a play | |||
autrijus | iblech: sure! | 14:48 | |
iblech | autrijus: Great! :) | ||
autrijus | iblech: looking at your :pil.yaml I'm further convinced that explicit arity is doomed | ||
all nodes should be given with record syntax :) | |||
PStmt { pStmtHead = ..., pStmtTail = ... } | 14:49 | ||
etc | |||
iblech | Yep | 14:50 | |
Would further simplify parsing | |||
autrijus | also do you think we should split off two version of PApp? | ||
PAppFun and PAppMeth | |||
partly to avoid the Just part | 14:51 | ||
and partly because the emission sequence is likely different anyway | |||
for the inv and noninv variants | |||
maybe PApp and PInv | |||
iblech | Yep, makes sense (but the ->isa("PIL::Just") or ->isa("PIL::Nothing") aren't thaat problematic right now) | 14:52 | |
autrijus | with that, all positionals would be eliminated from PIL tree, and everything will either be named records or rank-1 atoms | 14:53 | |
svnbot6 | r5662, iblech++ | Pugs.Compile -- Don't output the raw Exp in the show of PPos to ease the life | ||
r5662, iblech++ | of PIL parser writers. | |||
masak | autrijus: how's the tropical cyclone coming along? | 14:54 | |
svnbot6 | r5663, iblech++ | * PIL2JS: jspugs.pl -- Detect an outdated precompiled Prelude. | ||
r5663, iblech++ | * PIL2JS: PIL::Nodes -- $a = $b returned the unboxed $b, fixed. | |||
r5663, iblech++ | * PIL2JS: pil2js.pl, Prelude::JS, PIL::Nodes -- Support for $?POSITION, and | |||
r5663, iblech++ | &die reports the erroring position, too (as in normal Pugs). | |||
autrijus | masak: it's dwindling :) | ||
masak | :) | ||
putter | Aankhen``: pong? ;) | 14:58 | |
autrijus | ok, so the new PIL structure will be very YAML friendly | 14:59 | |
it's either Scalars (aka atoms, as in PLit values) | |||
Sequences (aka lists, normal Haskell lists) | |||
or Mappings (aka hashes, Haskell named records) | 15:00 | ||
that's the three node kinds | |||
of course each one is still tagged with the constructor name as the node type. | |||
but the idea is instead of the huge arity table, we only need to record the nodes as belonging to one of the 3 types | |||
autrijus praises yaml for constraining the representation space | 15:01 | ||
so in yaml the constructor name directly translated to taguri | 15:02 | ||
and the three node types are all native | |||
putter | hmm. not that I disagree, but... the only reason we need arity is because we're parsing hs. which we shouldn't be. when hs walks the tree and outputs something with parens, no arity needed. no? so that shouldnt be a reason to make the switch. | ||
autrijus | putter: uh, how is parens going to save us? | 15:03 | |
(PApp 1 2 3) | |||
even if you mean (PApp (1, 2, 3)) | |||
that is still a datatype relying on positional understanding | 15:04 | ||
putter | arity is explit. need parens for Foo Bar 2 3 -> parse me..!?! | ||
autrijus | hrm. the context here is iblech did a yaml serialisation of pil | ||
putter | yep. haven't looked at it yet :( | 15:05 | |
autrijus | jspugs> :pil.yaml 1+1 | ||
... | |||
- !perl/@PIL::PApp | |||
- !perl/@PIL::TTailCall | |||
- !perl/@PIL::TCxtVoid [] | |||
- !perl/@PIL::PExp | |||
- !perl/@PIL::PVar | |||
- '&infix:+' | |||
- !perl/@PIL::Nothing [] | |||
- | |||
- !perl/@PIL::PLit | |||
- !perl/@PIL::PVal | |||
- !perl/@PIL::VInt | |||
- 1 | |||
- !perl/@PIL::PLit | |||
- !perl/@PIL::PVal | |||
- !perl/@PIL::VInt | 15:06 | ||
- 1 | |||
sorry for the flood. | |||
but I think that illustrates my point | |||
which is that PApp etc should have named fields | |||
so we get the taguri of %PIL::PApp | |||
!perl/%PIL::PApp even | 15:07 | ||
so we can avoid code like | |||
putter | I don't disagree with named fields (though there is likely a space and speed cost). Just don't think the current arity situation is a valid motivation. | 15:08 | |
autrijus | if ($self->[2]->[0]->[0]->isa("PIL::PVar")) ... | ||
hm... just to make sure we're on the same page | 15:09 | ||
I'm talking about | |||
Arathorn | eww - opera fails on the JS because it can't handle the trailing , on hash = { foo : "bar", baz : "quux", }; | ||
autrijus | ./pugs -CPIL_YAML | ||
putter | outputing Foo { x=1 y=2} rather than Foo 1 2 | ||
autrijus | no, outputting YAML directly | ||
putter | ooo... "never mind". sorry. | ||
autrijus | np :) | 15:10 | |
autrijus ponders if ./pugs -CYAML is unambiguous enough | |||
autrijus further ponders if we can canonise YAML and make pugs -CPIL output just that | |||
putter | PIL_SEXP, PIL_PLRB (pl rb), PIL_... | 15:11 | |
autrijus | the point being yaml have good support for named, positional and scalars with tagged constructor names, and the equivalent thing in XML or S-expr are less concise | ||
yeah | |||
ok, I think "-C YAML" for now. | |||
it is in one sense a "codegen". | |||
svnbot6 | r5664, iblech++ | * PIL2JS: jspugs.pl -- Minor cosmetic fix. | 15:12 | |
r5664, iblech++ | * PIL2JS: pil2js.pl -- Don't emit trailing ","s in hashes, thanks to Arathorn++ | |||
r5664, iblech++ | for noticing. | |||
iblech | Aankhen``: See if r5664 fixes the problem? | ||
putter | there was something here a while back about p5's yaml having issues... I'm not sure what the yaml state of other languages is. | ||
iblech | Aankhen``: Err, sorry, meant Arathorn | ||
autrijus | other languages are mostly using syck | ||
and they are just fine | |||
only p5 gets to have ancient semibroken YAML library. | |||
obra | there's no syck for perl? | 15:13 | |
Arathorn | yup, that fixes it | 15:14 | |
thanks :) | |||
obra | or rather syck-wrapper | ||
putter | -C PIL_JS ... fast... | ||
autrijus | obra: there is very ancient and proof-of-concept search.cpan.org/dist/YAML-Parser-Syck/ | ||
putter: eh? :) | |||
-C JSON you mean? | 15:15 | ||
mmmmm tempting. | |||
but JSON has no taguri | |||
so we are forced to list the constructor as an additional field | 15:16 | ||
putter | re previous conversation, fastest path is for hs to crawl hs tree and emit code in language X which can simply be evaled. -C PIL_PL emits perhaps foo(x=>3,y=>4), -C PIL_JS emits... whatever iblech would find convenient. | ||
autrijus | which may actually be a win, not sure | ||
putter: iblech doesn't use PIL_JS. | 15:17 | ||
he's using perl5 :) | |||
putter | PIL_JS doesnt exist. oh, ok, then just -C PIL_PL... | ||
autrijus | but I see what you mean. maybe that shouldn't be -C then. dare we take -D for that? | ||
putter | hmm... | 15:18 | |
autrijus | or -P... | ||
because we are fairly sure -P will be Gone and Dead from p6 | |||
Arathorn | iblech: wow: the backtrace from Opera now that it can compile is quite spectacular for mandel.p6 | ||
putter | or -C backend outputform ... | ||
autrijus | what, mandel.p6 compiles to js? | ||
putter: nah... I think that's overloading things too much | 15:19 | ||
putter | k | ||
Arathorn | it doesn't run | ||
autrijus | but that's already better than any other backends :) | ||
iblech | :) | 15:20 | |
Arathorn | iblech: fwiw, the backtrace is at pastebot.nd.edu/1824 | ||
Arathorn crawls through it | |||
autrijus praises the sheer madness of iblech | |||
Arathorn | i guess it's just citing a whole wodge of the preludepc.js | ||
iblech | Arathorn: r5665 might actually fix that problem :) | 15:21 | |
Arathorn | but still, a bit more data than venkman provides | ||
autrijus | putter: ok, so worthy -P backends being: XML, YAML, Perl | ||
obra | S-expressions? ;) | ||
iblech | Arathorn: PThunk wasn't compiled correctly | ||
autrijus | the Perl one can actually be shared among p5 and p6 with some luck | ||
Arathorn | ah, cool | ||
svnbot6 | r5665, iblech++ | PIL2JS: PIL::Nodes -- Fixed compilation of PThunk. | ||
autrijus | thru creative use of &bless | ||
obra: first find us a consumer of S-exp :) | 15:22 | ||
. o O (Perl 6 refactoring browser in Emacs) | |||
putter | ruby should be ok with the p5. | ||
obra is just making trouble | |||
iblech | Arathorn: Ok, it does not, at least not here. Could you nopaste a new backtrace? :) | ||
Arathorn | hm, iblech: that breaks prelude precomping, i think | ||
oh, false alarm - sorry | |||
weird keyboard buffering going on | 15:23 | ||
that gives an identical backtrace, iblech | |||
autrijus | obra: oh, do you know if src of dev.perl.org/perl6/faq.html is kept in some svn repo? | ||
Aankhen`` | putter: Hiya. | 15:24 | |
autrijus | obra: the first entry continue to trouble my conscience, even though it's theoretically SEP | ||
Aankhen`` | putter: I was wondering if you could perhaps get sprintf() to handle '%X' correctly? | ||
autrijus | actually the second entry is dubious too. as is part of the third :) | 15:25 | |
iblech | Arathorn: Ok, thanks, investigating | ||
autrijus | (so I'm thinking of submitting a patch) | ||
putter | foo() 123 1.23 "..." , and if we do named x => . sexp (foo ) ... not sure which => to use. maybe just ",". getting the strings right ends up being the hardest part :( | ||
what's %X | |||
obra | autrijus: if it's in a repository, it'd be the perl6 one | 15:26 | |
Arathorn | iblech: for completeness (and in case i'm being blind/thick): pastebot.nd.edu/1825 | ||
autrijus | obra: oh, prolly not then | ||
Aankhen`` | putter: Uppercase '%x'. | ||
obra | autrijus: I'll see about getting it fixed | ||
autrijus | obra: thanks for the project managineering :) | ||
putter | ok, and in what way isnt it working/ | 15:27 | |
iblech | Arathorn: Ok. One problem is that empty subs don't return a boxed undef (fixing) | ||
autrijus | ?eval sprintf('%X', 1) | 15:28 | |
evalbot6 | pugs: Printf.printf: bad formatting char X | ||
putter | ah, got it. | ||
did you check D U O? | 15:29 | ||
autrijus | ?eval sprintf('%D', 1) | ||
evalbot6 | pugs: Printf.printf: bad formatting char D | ||
autrijus | ?eval sprintf('%U', 1) | ||
evalbot6 | pugs: Printf.printf: bad formatting char U | ||
autrijus | ?eval sprintf('%O', 1) | ||
evalbot6 | pugs: Printf.printf: bad formatting char O | ||
putter | k | ||
iblech | autrijus: Possibly bug in Pugs.Compile: loop my $a = 0; ; $a++ {...} | 15:32 | |
The first PThunk (the condition, which is empty in this case) is compiled to an empty PThunk | 15:33 | ||
I.e. returning undef | |||
Causing the loop to not run | |||
autrijus | hrmph it should be Noop | ||
iblech | Is this a bug in Pugs.Compile (which should instead compile to PThunk(1)) or in &statement_control:<loop>, which should treat undef as true? | ||
autrijus | evalCond | unwrap cond == Noop = return True | 15:34 | |
this Clearly Does Not Belong in Eval.hs | |||
so I'd say it's P.C's bug | |||
please fix away | |||
iblech | Ok | ||
autrijus | that's what we have PIL for -- so these reductions are not recomputed endlessly in runtime | ||
Arathorn has a crazy idea | 15:38 | ||
anyone seen mtasc.org/ before? | |||
Arathorn dreams of replacing the *horribly* broken ActionScript 2.0 with Perl 6 compiled to ActionScript 1.0 (~Javascript 1.4) via pugs | 15:39 | ||
(and then compiled into .swf using mtasc) | |||
(or perhaps i'm the only person who dirties their hands with the horror that is Flash 'round here) | 15:46 | ||
wolverian | ?eval 1.as('%X') | 15:47 | |
evalbot6 | pugs: Printf.printf: bad formatting char X | ||
wolverian | oh, that's in. yay. | 15:48 | |
putter , as he waits for a compile, wonders how one might get economies of scale among the (possibly many?) pugs backends... | |||
autrijus | putter: economies of scale? | 15:49 | |
(I know the term, but not the type context) | |||
putter | hmm, how does one generate an Inf in pugs? | 15:52 | |
autrijus | Inf | ||
putter | ?eval sprintf('%x', Inf) | ||
evalbot6 | \'10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' | 15:53 | |
putter | Inf seems small... | ||
autrijus | it's coerced into Int. | ||
putter | sprintf patch is in. 5666. | ||
autrijus | putter++ | 15:54 | |
Aankhen`` | putter++ # thanks :-) | ||
svnbot6 | r5666, putter++ | sprintf now handles X D U O E G F specifiers without crashing. Aankhen++. | ||
r5667, iblech++ | * Pugs.Compile -- loop foo; ; bar {baz} should be compiled as loop foo; | |||
r5667, iblech++ | bool::true; bar {baz}. | |||
r5667, iblech++ | * PIL2JS: jspugs.pl -- Empty lines don't cause a compile now. | |||
r5667, iblech++ | * PIL2JS: PIL::Nodes, PIL::Parser -- Support for VBool. | |||
Arathorn tries r5667 | 15:55 | ||
iblech | Ok, problem. mandel.p6 requires last. last is tricky. Can I create continuations in JavaScript? | 15:56 | |
iblech googles | |||
Arathorn | yeah, i think you can | ||
iblech | How? :) | ||
Arathorn | there's an IBM developer works article about it, iirc | ||
Arathorn googles too | |||
autrijus | iblech: last doesn't need CC, just EC | 15:57 | |
EC can be modelled with try{}. | |||
putter | hmm, both perl and pugs now sprintf("%E",<inf>), 10**1000 or Inf, as inf and INF. and I thought it was a kludge... | ||
iblech | Arathorn: www-128.ibm.com/developerworks/java...ontin.html is about server-side continuations, I think. I need client-side CCs | ||
err, s/CCs/continuations/ | |||
Aankhen`` | iblech: Continuations aren't really cleanly possible in JavaScript. | 15:58 | |
autrijus | but it's just exceptions in this case :) | ||
full CCs are rarely needed in p6 | |||
Arathorn | iblech: uneval() (if supported) | ||
iblech | Aankhen``: Do you mean the code is ugly (which would be fine) or that it isn't working 100%? | ||
autrijus | formally last and return are both "leave" style exceptions | ||
Aankhen`` | iblech: Both. | ||
iblech | Aankhen``: Oh. | ||
Arathorn | levelplusplus.blogspot.com/2004/07/...zilla.html looks like it's ugly, but it would work 100% | 15:59 | |
assuming you're running js 1.5 | |||
Aankhen`` | iblech: Try trimpath.com/blog/?p=28 | ||
putter | re scale, similar things being done n times. how to benefit, and to avoid n*cost. benefit's include see neat things iblech doing with JS and reflect in other backends. avoid cost include move PIL emiter in pugs, perhaps use some common p5-based infrastructure, ...? | 16:00 | |
autrijus | aw, vararg CPS | ||
pugs needs to have PIL serialiser, there's no doubt about it | 16:01 | ||
Aankhen`` | Bleh, I still don't understand continuations properly. -_- | ||
Arathorn | i guess comment 3. on Aankhen``'s URL spells out the limitations fairly well | 16:02 | |
iblech | autrijus: You mean, basically, loop ... { ...; last(); ... } -> try { loop ... { ...; die "LAST"; ... } }? | 16:03 | |
autrijus | iblech: right. you need the same for &return anyway. | 16:04 | |
iblech | autrijus: Ok, easier than I thought :) | 16:05 | |
Aankhen`` | You can't just use `break`, iblech? | ||
autrijus | eg you miscompile, currently | ||
sub foo { { return 1 } } say foo() | |||
putter | more common ground... a cps transformed PIL? | ||
autrijus | putter: hm? I don't think CPS is applicable in the tree level | 16:06 | |
iblech | Aankhen``: No, as &last is a separate function (I could of course hardcode &last -> JS::break, though) | ||
Aankhen`` | That's what I meant. :-P | ||
Arathorn | that seems a bit more functional :) | 16:07 | |
s/functional/pragmatic/ | |||
autrijus | iblech: all nonlocal exits are just different VControl calls | ||
iblech: the try{} blocks implicit around all non-primitive Code bodies are supposed to unwrap them | 16:08 | ||
S06: | |||
leave Loop, :label<COUNT>; # Same as: last COUNT; | |||
it doesn't need to be mapped exactly that way | |||
but the idea is the try{} block pick up the :label and other flags and either handle it or optionall rethrowl | 16:09 | ||
iblech | Ah, ok, makes sense | ||
autrijus | that's where I stopped with CodeGen.PIR | 16:10 | |
because the exception handling semantics was Totally Broken Beyond Repair | |||
fortunately it looks like leo-ctx5 has it fixed | |||
iblech | :) leo++ | ||
autrijus | leo++ indeed | ||
putter | autrijus: re cps on tree... I'm puzzled, why not? one could cps transform p6 code, so why not PIL? | 16:11 | |
autrijus | putter: I'm puzzled because I don't recall any of our current backends mandate CPS | 16:12 | |
or lambda lifting | |||
all of <PIR Perl5 JS> support inner functions and lexical pads | 16:13 | ||
so it seems to me that CPS only adds unneccessary overhead | |||
putter | but p5 at least doesnt have full continuations... what am I missing? | ||
autrijus | but p5 has escape continuations | 16:14 | |
and p6, as defined in the AES, only makes use of escape continuations | |||
it's all very well to support something more, but I don't think we need to go full CPS for full conts on p5 | 16:15 | ||
putter | ahh. that's the missing bit. I thought p6 had exposed full continuations. | ||
autrijus | not formally, no. | ||
the closest thing is coro, and that is still a pugs specific unspeccedness. | |||
so I don't think PIL need to worry about that just yet | 16:16 | ||
it's also perfectly fine to have the Perl5 backend just die on a call/cc. | |||
because I don't think any of Prelude will require that | 16:17 | ||
kungfuftr | autrijus: has Bamboo stalled? | ||
putter | ok. | ||
autrijus | kungfuftr: Bamboo wants a sane runtime :) | ||
kungfuftr: which is also part of the new PIL evaluator's goals (serialized continuations) | 16:18 | ||
Arathorn | presumably there is no hope in hell of p6->js objects working without stevan's metamodel stuff being somehow wrapped into PIL2JS? | 16:19 | |
kungfuftr | eeeepppp! | ||
autrijus: surely a serialized state machine would work? | |||
autrijus | kungfuftr: not when the state machine relies on C pointers! | ||
(see Coro.pm) | |||
kungfuftr | ah... gotcha | ||
iblech | Arathorn: Think so, too. .ref and .isa are currently just very simple stubs | ||
autrijus | kungfuftr: point being I'd like arbitary closures to participate in Bamboo logic | ||
Arathorn nods | 16:20 | ||
autrijus | kungfuftr: the more I worked toward the bamboo minilang, the more it resembles PIL | ||
and at some point it doesn't make sense anymore to not unify them :) | |||
svnbot6 | r5668, Aankhen++ | * URI::Escape: fixed &uri_escape<Str,Str> and &fail_hi. | ||
kungfuftr | gotcha | ||
svnbot6 | r5669, iblech++ | PIL2JS: Prelude::PS, pil2js.pl -- Initial support for &last. | 16:22 | |
r5668, Aankhen++ | * URI::Escape: fixed &uri_escape<Str,Str> and &fail_hi. | |||
autrijus | wow, initial support for &last. | ||
Arathorn | it's a shame - without object support i can't see any easy hack for compiling perl6 to .swf | 16:23 | |
autrijus | ... swf!? | ||
next you'll tell me compiling perl6 to PDF. | |||
Khisanth | heh | ||
that would be less sane! | |||
autrijus | there's a HTTP server written in PostScript. | ||
Arathorn | yeah - see my rant above about www.mtasc.org | 16:24 | |
Khisanth | autrijus: didn't you want to have it compiling to JS? :) | ||
autrijus | Khisanth: I did... sanity was never my forte | ||
Arathorn | oh, hang on | ||
Khisanth | well both actionscript and javascript are ECMA based aren't they? :) | 16:25 | |
insane people have all the fun... | 16:26 | ||
autrijus | exactly | ||
autrijus invokes the ponie-3 quote again | |||
"And, isn't sanity really just a one-trick ponie anyway? I mean all you get is one trick, rational thinking, but when you're good and crazy, oooh, oooh, oooh, the sky is the limit." | 16:27 | ||
svnbot6 | r5670, Aankhen++ | * fixed &URI::Escape::uri_unescape. | ||
integral | PDF can embed JS too... | 16:31 | |
autrijus | yup. | ||
JS really makes a lot of sense. | |||
eric256 | ?eval { 1 => {2 =>3 , 4=> 5}.perl | 16:33 | |
evalbot6 | Error: unexpected end of input expecting term postfix, operator, ">>=><<", "\187=>\171", "=>", "::=", "**=", "xx=", "||=", "&&=", "//=", "^^=", "+&=", "+|=", "+^=", "~&=", "~|=", "~^=", "?|=", "?^=", ":=", "~=", "+=", "-=", "*=", "/=", "%=", "x=", "Y=", "\165=", "|=", "^=", "&=", "=", postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256 | ?eval { 1 => {2 =>3 , 4=> 5}}.perl | ||
evalbot6 | '{(\'1\' => (\'2\' => 3)), (\'4 5\' => undef)}' | ||
eric256 | could anyone help me know where to put tests for that bug? (if it is a bug, or expain what i did wrong if it is not) | 16:34 | |
?eval { 1 => {2 =>3 , 4=> 5}} | |||
evalbot6 | {('1' => ('2' => 3)), ('4 5' => undef)} | ||
eric256 | hmmm..on another note, anyway else haveing trouble getting pugs to compile this morning? | 16:36 | |
putter | autrijus: have you got funding lined up for post-sabatical? perl foundation? | ||
putter wonders whether he should be nudging PF... | 16:37 | ||
Aankhen`` | `use Foo <bar baz>;` doesn't work. Bah. | 16:38 | |
autrijus | putter: no, nothing yet... didn't hear anything from the company allison mentioned either | ||
putter: worst case is I'll just take up more $work :) | |||
and try to keep 3 day a week to pugs | 16:39 | ||
that is not unlike any other lambdacamels, and I'm fine with that :) | 16:40 | ||
eric256 | autrijus - any thoughts on that eval i just did? i just want to know where I should put a test for that ? | 16:41 | |
autrijus | eric256: that's a bug. merge it with t/pugsbugs/parse_hash_ref.t or parsing_hash.t ? | 16:42 | |
svnbot6 | r5671, Aankhen++ | * added ext/URI/t/escape.t | ||
eric256 | okay. what is the deciding factor on if it goes in pugsbugs or somewhere else/ | 16:43 | |
autrijus | whether it's fixed or not :) | ||
and also whether it was immediately clreat to the submitter or not | |||
eric256 | oh.. okay. i'm posted some tests to the wrong places then ;( | ||
autrijus | oh, and the passing pugsbugs/*.t should be moved out -- if you have some cycles for that, that's cool too | ||
Arathorn | was there any conclusion on whethere [=>] @array should work? | ||
autrijus | heh, that's fine, 'svn mv' preserves history | ||
we are working with (somewhat) sane tools now | 16:44 | ||
Arathorn: it should work, that is definitely a bug, please grep and/or write a test | |||
eric256 | first i have to get pugs to actualy compile agian ( i think SVN and i are at a disaggreement) ...then i would be happy to move what i can | ||
autrijus | cool, eric256++ | ||
eric256 clears entire pugs install.....arg | 16:48 | ||
autrijus | "make unoptimised" may help | ||
eric256 | it wont even make. i think i've got a couple of files that arn't updating | 16:49 | |
autrijus | aw. | ||
eric256 | wow. watching the test directory re download....lots and lots of tests | 16:52 | |
malaire | btw, should "make pirtest" pass any sanity-tests currently? | 16:53 | |
iblech | malaire: Yes | 16:54 | |
(All of the sanity tests should pass) | |||
eric256 | i wonder if a blog showing example code of recent developments would interest anyone besides me...i'm always reading the journal but i know some stuff slips by. | 16:55 | |
and some stuff is easier shown with code | 16:56 | ||
autrijus | that will interest me a lot :) | ||
I'm trying to add more screenshots in my journal | |||
and code snippets | |||
but sometimes it's just too much to keep up :) | |||
eric256 | i'm thinking about starting a side journal to post some code...i like to explore new additions. can multiple people post to a use.perl.org journal? since some additions are just plain beyond my understanding i would need help. ;) | 16:57 | |
Khisanth | you could always make a thread as a journal :) | 16:58 | |
16:59
Aankh|Clone is now known as Aankhen``
|
|||
autrijus | right, you can annotate it just by hitting "Reply" | 17:00 | |
that will likely work very well, as I'm prone to let new developments slip by | |||
so if you notices something, or want to illustrate some points, just hit "Reply" and add more | |||
eric256 | just reply to your journals? is that what you are saying? hmmm. could be. i was thinking it might be usefull if your journal entries mentioned what revision they were current for. | 17:01 | |
masak | eric256++ # good example code blog idea | ||
autrijus | oh hm. that is a thought indeed | ||
Khisanth | eric256: you don't think the revisions change too fast for that? | ||
autrijus | although it can trivially be triaged | 17:02 | |
so , like | |||
Day 165 (r5670): ... | |||
eric256 | they change plenty fast. but i can read the journal, then hit the log for any updates since the journal. ;) hard to do now without knowing when the journal was written with respect to the current revision | ||
yea ;) | |||
autrijus | I'll try that. actually you can probably write a script to retrieve the rss metadata and triage using svn's -r DATE syntax | 17:03 | |
so I can retroactively add rev annotations to earlier entries with a script | |||
wouldn't that be nice. | |||
but sure, I'll start with the new format today | 17:04 | ||
eric256 | it would indeed. i guess i'll try posting code as replies, if that gets out of hand or to cumbersome i can always start a seperate journal later | ||
autrijus | right. | ||
eric256++ # ideas | |||
eric256 | ideas are easy, implementing them is the hard part | 17:05 | |
eric256 off to meeting. ick | |||
malaire | for me "make pirtest" currently dies on all sanity test with same error: | 17:06 | |
Null PMC access in get_string() | |||
current instr.: 'EVAL_1' pc 10 (EVAL_1:7) | |||
autrijus | parrot 0.2.2? | ||
iblech | malaire: It works here fine, using latest leo-ctx5 | 17:07 | |
autrijus | malaire: oh, btw, have you got back to JaffaCake re GHC bug? | ||
wolverian | do you think URI::uri_unescape is sane, compared to URI.new.unescape, or so? (I specifically hate the uri_ in the name..) | ||
(er, URI::Escape::uri_unescape, that is.) | |||
malaire | I have parrot 0.2.2-devel (r8644) | ||
autrijus | wolverian: I think both styles are sane :) | ||
malaire: the parrot trunk is in a weird state, last I heard. | 17:08 | ||
wolverian | autrijus, right. maybe I should code URI.pm itself, then? :) | ||
autrijus | wolverian: yes :) | ||
wolverian | autrijus, I'll look into it! my girlfriend is over for the first time in a few weeks, so I'm a bit low on time | ||
malaire | I don't know enough of GHC to help in that bug. I just reported it, but I think I can't help much more in it. | ||
autrijus | malaire: aw. :/ since it's nonreproducable here anymore | ||
malaire: I think Jaffa's problem is mostly he can't get the bug manifest | 17:09 | ||
Aankhen`` | wolverian: iblech already ported the URI distribution to "pure" Perl 6 (i.e. currently non-working Perl 6 :-). You could try back-porting it: tpe.freepan.org/repos/iblech/URI/ | 17:14 | |
wolverian | Aankhen``, ah, thanks! | ||
Aankhen`` | I had got a nearly working version, but then I deleted the entire source tree... | 17:15 | |
My fault, though. I'd been sitting on it for a long time without checking it in. | 17:17 | ||
wolverian | oh, he did a straight port of the perl5 module | 17:18 | |
Aankhen`` | Yes | ||
. | |||
wolverian | I'll try refactoring it into something I like more. | 17:19 | |
s,module,modules, | |||
(not a small feat in itself :) | |||
Aankhen`` | Have fun. :-) | ||
I'll probably do the same with some parts of LWP eventually. | 17:20 | ||
Though that'll take considerable care. | |||
iblech | Aankhen``++ wolverian++ :) | ||
food & | |||
kolibrie | autrijus: pugs with embed perl5 worked fine after installing debian libperl-dev | 17:41 | |
perl-base provides libperl.so.5.8.7, et al, libperl-dev provides the plain libperl.so | 17:42 | ||
autrijus | but is the two identical? | 17:43 | |
kolibrie | I think so | ||
I think they just want to have a -dev package, so separated it out | 17:44 | ||
autrijus | can you do a cmp? | ||
kolibrie | just a sec, that was at home, I'll install here too | ||
autrijus | however, well, if it is the way it is, maybe just add a note to INSTALL, or better, detect for this in Makefile.PL | ||
kolibrie | I have almost no Makefile.PL foo | 17:45 | |
hah, all the libperl-dev package does is set up a symlink to libperl.so.5.8 | 17:47 | ||
autrijus | this is borderline insane ;) | 17:48 | |
but I can see that if -dev is the convention for everything else | |||
kolibrie | so, how to detect in Makefile.PL? | 17:49 | |
autrijus | I have no debian-fu, but I suspect you can look at %Config and see which keys should match | ||
Khisanth | hmm | 17:50 | |
autrijus | but maybe ask around other debian folks | ||
Khisanth | what is the => operator called? | ||
kolibrie | I mean, where in Makefile.PL does such a check go | 17:51 | |
autrijus | Khisanth: &infix:=> in the symbol table | ||
in src land is &infix:«=>» | |||
Khisanth | no I am trying to look for it in t/operators :) | 17:52 | |
autrijus | kolibrie: see similar checks about Tiger and gcc4 | ||
kolibrie looks | |||
autrijus | [not|autrijus]~/work/pugs$ grep -r '\[=>\]' t | ||
t/builtins/lists/reduce.t: # 18:45 < autrijus> [=>] 1..10; | |||
hm, I probably need to sleep now | 17:53 | ||
kolibrie | ok, that doesn't look too hard | ||
autrijus | got some onsite $work tomorrow. | ||
have fun :) | |||
autrijus waves & | |||
kolibrie | goodnight | ||
Khisanth | ah ha! data_types/pair.t :) | ||
iblech | [PIL2JS] !!! &return and &last work, &leave is simple now :) | 17:54 | |
Night autrijus :) | |||
autrijus | iblech: wow. :) | ||
eric256 and others: journal up; feel free to Reply and add more info | |||
autrijus waves again, for real & | 17:55 | ||
gaal | hi all. | 17:56 | |
very very cool stuff recently | 17:57 | ||
?eval {module f;}; $?PACKAGE | 18:08 | ||
evalbot6 | \::main | ||
svnbot6 | r5672, eric256++ | Testing for hash parse error on nested structure | ||
r5673, iblech++ | PIL2JS -- Proper support for &last and &return. | |||
gaal | ?eval {module f;} $?PACKAGE | ||
evalbot6 | Error: unexpected "$" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
gaal | bug, right? | ||
iblech | !!!!! | 18:09 | |
mandel.p6 runs on JS!!! | |||
gaal | !!!!! | 18:10 | |
iblech++ | |||
iblech | uploading | ||
gaal | applauding | ||
Aankhen`` | Jeez. | ||
iblech++ | |||
Hi gaal. :-) | 18:11 | ||
gaal | hey :) | ||
Aankhen`` | I think Pugs is going to rule the world. :-P | ||
Juerd | I'm leaving for a few weeks of vacation next friday | ||
Aankhen`` | Today: Perl 6 to JavaScript. Tomorrow: World domination. | ||
Juerd | During that period, if feather goes down, I won't be able to fix it. | ||
And neither will anyone else | |||
gaal | i hope it doesn't | 18:12 | |
might be very useful for the hackathon | |||
Juerd | If you know me well, and want root access and to monitor things, contact me | ||
gaal | but if it does we'll use nothingmuch's server | ||
iblech | m19s28.vlinux.de/iblech/stuff/not_p...el.p6.html | ||
gaal | mr pastaman | ||
Juerd | There's one condition in which the commercial emergency number can be used: broken hard drive | ||
which will be noticeable from /proc/mdstat | 18:13 | ||
iblech | (Firefox complains about the script slowing it down, though) | ||
Juerd | But I'm not going to give that number to everyone :) | ||
gaal | iblech: it's kinda cute how it does that | ||
iblech | If somebody replied this news to autrijus' journal, I'd be grateful (I don't have a use.perl account) :) | 18:14 | |
gaal | doesn't run at all on msie | ||
iblech | err, s/replied/relayed/ | ||
gaal: Error msg? | |||
gaal | juerd: thanks, i think we'll fall back on either a local box or yuval's machine | 18:15 | |
iblech: syntax error at line 85, char 13 | |||
gaal doesn't have a use.perl account either. kinda silly that you have to have one | 18:16 | ||
iblech | gaal: Weird, there's nothing special about that line | ||
gaal waits for openID | |||
Aankhen`` | iblech++ iblech++ iblech++ | 18:17 | |
18:18
tehpinktaco is now known as tehpwn
|
|||
Juerd | gaal: Well, if the current uptime is any indication, it'll hold | 18:19 | |
It's a justincase thing | |||
gaal | right | ||
Juerd | As the box has *no* user limits | ||
Any user can easily forkbomb it. | |||
gaal | i doubt we have that kind of user around | ||
Juerd | It's easy to do by accident | ||
Trust me on that :) | 18:20 | ||
gaal | speaking of uptime: 48 minutes to 200 days on one of my boxen | ||
Juerd | Nice | ||
Awful maintenance though ;) | |||
gaal | *shrug* at some point in life, you have to stop compiling kernels | ||
Juerd | hehe | 18:21 | |
For a home box, it's okay | |||
I'm still running 2.6.6 at home | |||
nothingmuch | moo | 18:24 | |
gaal | se! | ||
does use really work in BEGIN already? | 18:26 | ||
iblech | Yep, think so | ||
gaal | good, i think that means the prelude inlining stuff can be made much better | 18:27 | |
iblech | How so? | ||
gaal | instead of manging in the source code of random modules and hacking in manual %*INC settings, i can just mangle in "use" statements. | 18:28 | |
or better - -M switches. | |||
this means you can inline anything in your PERL6LIB | 18:29 | ||
of course it means some care should be taken to get the right version during the build process, not one from the system install | 18:30 | ||
kungfuftr | ingy: about? | ||
seen ingy | 18:34 | ||
jabbot | kungfuftr: ingy was seen 3 hours 36 minutes 17 seconds ago | ||
gaal | oh, actually, that (my -M idea) won't work | 18:36 | |
because the extra modules won't pass compilation because they likely require Prelude functionality, whcih isn't available yet | 18:37 | ||
hmm, but i could add the Prelude.pm to the search path and -M it first :) | 18:38 | ||
Juerd | holy crap, there's sound in Mail.app! | 18:45 | |
And it actually sounds fun. | |||
In stereo. | |||
svnbot6 | r5674, Stevan++ | Perl6::MetaModel - | 18:54 | |
r5674, Stevan++ | * 'canonical' dispatch order is now C3 | |||
r5674, Stevan++ | - tests to check this is true | |||
r5674, Stevan++ | - tests to check we die with inconsitent hierarchies | |||
r5674, Stevan++ | - test for new class precendence list orders | |||
stevan | horay, we now support all the dispatch orders in A12 | 18:55 | |
(as if there was any good use for that) | |||
that also assumes that :descendant is just the reverse of :ascendent | 18:56 | ||
PerlJam | There is a good use for that. If you're going to implement a compiler in perl6, you want the object language and the target language to share as many semantics as possible. So, for instance, this opens the door for (quickly) implementing say, python, using perl6. | 18:57 | |
er, I meant implement a compiler that targets perl6 | 18:58 | ||
That and interacting with other languages where your class hierarchy spans multiple implementation languages are the only reasons I can imagine right off where you'd want such control over the dispatch order. | 18:59 | ||
eric256 | whats the t/pugsrun directory for? | 19:00 | |
stevan | eric256: it tests the command line options of pugs | 19:01 | |
PerlJam: ok, thats the first sane explaination I have heard | 19:02 | ||
of course it doesnt matter, they are all there | |||
breadth, preorder descendant ascendant | |||
and I made ascendant the canonical | 19:03 | ||
oh darnit | |||
thats backwards | |||
descendant is the canonical | |||
eric256 | any thoughts on where encoding tests should go? | 19:04 | |
make an encoding directory possibly? | |||
gaal | there already is a simple one, eric256. | ||
unicode.t i think | |||
extend that? | 19:05 | ||
eric256 | i'm moving test out of pugsbugs hyper_latin1.t now works... of course it might already be covered in another test. but i wanted to move it somewhere meaningfull... i thought about operators or encoding ...i'm guessing there will be mroe encoding tests in the future. should i just make a directory for encoding test? | 19:06 | |
or i could put it in the syntax folder.. maybe i'll just put it in there for now | |||
makes enough sense i think | |||
gaal | sounds fine to me | ||
be careful with svn prop btw | 19:07 | ||
you need to mark each of these files in the appropraite encoding | |||
eric256 | if i svn mv it will keep the file the same as it is right? | ||
gaal | yes (i hope :-) | 19:08 | |
if you add other files, svn propset svn:mime-type "text/plain; charset=SOMETHING" the-file | |||
stevan | ok question here, least-derived basically means Object right? | 19:09 | |
stevan didnt get much sleep last night | |||
eric256 | i'll try to remember that.... do i need to change that for the file i added earlier if it is just a normal file? | ||
gaal | if it's a normal file, use util/add-svn-props.sh on it | 19:10 | |
svnbot6 | r5675, fglock++ | Span::Code.union() finally works (some weird syntax problems) | ||
gaal | that sets it as utf-8 | ||
see the other svn propset in that script too (the one setting lineendings) - you want that on your files too, if you propset them manually | 19:11 | ||
Juerd | haha | 19:12 | |
stevan un-warnocked himself | |||
that's funny. | |||
stevan | Juerd: I probably shouldn't have sent the mail on a weekend | 19:13 | |
Juerd | There's no good day for perl messages, I've discovered. | ||
Well, if you post on a saturday evening, you'll get most XP on PM, but apart from that, there's no good day. | 19:14 | ||
stevan | :D | ||
eric256 | don't post on PM on sat morning though, you may never get an answer. or maybe my question was just too out there | 19:15 | |
Arathorn | the question seemed like the kind of thing lwall would normally like to pounce on | 19:16 | |
stevan | Arathorn: which one? | 19:17 | |
Arathorn | your one about MMD ordering | 19:20 | |
or method resolution ordering, more accurately | 19:21 | ||
svnbot6 | r5676, Stevan++ | Perl6::MetaModel - I need sleep, I had ascend and descend mixed up | ||
r5677, eric256++ | Cleaned out pugsbug directory some. | |||
Arathorn can't get mandel.p6 to work :( | |||
claims substr isn't implemented in prelude.. | |||
iblech | Arathorn: :precomp | 19:22 | |
Arathorn | i did.. | 19:23 | |
Arathorn does again | |||
iblech | Maybe I haven't checked everything in | ||
Arathorn | yup, still fucked | 19:24 | |
by diffing your preludepc.js with mine, i'd say the only difference is the substr impl | |||
svnbot6 | r5678, eric256++ | Missed the addition part of the move somehow | 19:26 | |
r5679, iblech++ | * Usual svn props. | |||
r5679, iblech++ | * PIL2JS: &last, &next, &return, more work on the README. | |||
iblech | Try r5679 :) | ||
Arathorn does so | |||
wooha :D | 19:28 | ||
works lovelily on Opera without a firefox-styloe sogging-up-CPU warning | |||
congrats :) | |||
iblech | :) | ||
Arathorn goes to dry off after thoroughly soggy ultimate frisbee | |||
Limbic_Region | seen nothingmuch | 19:34 | |
jabbot | Limbic_Region: nothingmuch was seen 1 hours 9 minutes 55 seconds ago | ||
Limbic_Region | nothingmuch ping | ||
Arathorn | should mandel.p6 work with the parrot backend? | ||
nothingmuch | Limbic_Region: semi pong | ||
Limbic_Region | oh - just a short note to say that I am abandonging the yaml project - and everything Pugs related until further notice | 19:36 | |
sorry to bail | |||
personal life has driven everything else to the back seat | |||
Arathorn | :/ | ||
(pugs -Bparrot -e 'say "hello world"' -> Null PMC access in get_string() current instr.: 'EVAL_1' pc 10 (EVAL_1:7) is presumably a stupid mistake on my behalf somewhere?) | |||
(brb) | 19:37 | ||
svnbot6 | r5680, kolibrie++ | check for libperl.so when PUGS_EMBED contains perl5 (Debian only for now) | ||
iblech | Arathorn: IIRC yes. But it's probably not Pugs' fault, but Parrot's | ||
Aankhen`` goes to sleep. | 19:39 | ||
G'night. | |||
iblech | Night :) | ||
svnbot6 | r5681, philcrow++ | Added defaults.t to point out a namespace problem with default Code | 19:42 | |
r5681, philcrow++ | parameters. When called from other packages, default code params must | |||
r5681, philcrow++ | be fully qualified with package names. | |||
nothingmuch | Limbic_Region: oh my! | 19:45 | |
Limbic_Region: i hope whatever it is it's not causing you too much trouble | 19:46 | ||
to follow your metaphore, when I'm no longer driving 200mph at work I'll do the YAML thing | |||
Limbic_Region | for me, stress manifests itself in physical ailments and ATM - I need to cut out whatever sources I can | 19:47 | |
Khisanth points at Yaakov | 19:49 | ||
svnbot6 | r5682, iblech++ | * Usual svn props. | 19:53 | |
r5682, iblech++ | * PIL2JS: Beginning of support for named parameters (not finished yet). | |||
iblech goes to sleep, too | |||
Night all :) | |||
stevan | nite iblech | ||
nothingmuch: ping | 19:59 | ||
Khisanth | hmm | 20:04 | |
Limbic_Region: what have you been trying to do with YAML? | |||
jdv79 | I couldn't get it to work in p5 y'day so good luck! | 20:08 | |
eric256 | shouldn't objects defined in the main file have access to all subs defined in the main file? | 20:09 | |
PerlJam | eric256: all those within the same scope, sure. | ||
eric256 | i'm having issues with wizard.p6 not being able to find a multi sub delcared earlier...realy wish the error message would show the signature it is looking for in a sub...that would make life easier cannont find "&prompt($,@)" or something | 20:11 | |
eric256 beggins to boil it down to reproduce.. fun | 20:13 | ||
svnbot6 | r5683, eric256++ | wizard.p6 almost working agian | ||
eric256 | well that was quick and easy. | 20:15 | |
?eval sub test () { "PASSED"}; class Foo { method testing { test() } }; Foo.new.testing; | 20:16 | ||
evalbot6 | Error: No compatible subroutine found: "&test" | ||
eric256 | bug or feature? | ||
eric256 reflects that is probably not the best thing to do anyway....but that doesn't mean this behaviour isn't a bug.. | 20:20 | ||
seems like the class scope is too tight, but then maybe methods in a class shouldn't be able to call functions from main.....guess i'll see what i can find in the S* documents | 20:21 | ||
nothingmuch | stevan: pong | 20:40 | |
svnbot6 | r5684, fglock++ | t/span-code.t passes all tests, but emits some warnings | 20:41 | |
stevan | nothingmuch: pong back | 20:52 | |
svnbot6 | r5685, fglock++ | updated TODO | 21:08 | |
r5686, Stevan++ | Perl6::MetaModel - | 21:24 | ||
r5686, Stevan++ | * BUILDALL and DESTORYALL are now implemented with WALKMETH | |||
r5686, Stevan++ | and so take advantage of the new C3 dispatch order. This | |||
r5686, Stevan++ | means that a given DESTROY will not execute twice with | |||
r5686, Stevan++ | diamond inheritance. | |||
r5686, Stevan++ | - tests for this added too | |||
nothingmuch | stevan: ping pong moose | 21:30 | |
brentdax | If a try {} block dies, is there a way to see what file and line number it died at? | ||
nothingmuch | actually no, i'm headed home | ||
0:30 instead of 3:30 this time... Woohoo! | |||
mugwump | brentdax: I'd guess there would be a property on $! | ||
tehpwn | word son | 21:31 | |
brentdax | Is there some way to see which properties have ben set on a value, then? Or is that still in the works? | ||
*been | |||
(wow, Parrot's a mess right now.) | 21:33 | ||
mugwump | I don't know, I guess it might be in A12, or maybe "each" should work | ||
again it is a small case of the "visitor pattern" | 21:36 | ||
svnbot6 | r5687, fglock++ | added myself to the list | ||
mugwump | So the answer guaranteed to work is, look at the meta object | 21:37 | |
guaranteed to work eventually, that is | |||
brentdax | Eventually isn't quite soon enough for me, I'm afraid. | 21:38 | |
mugwump | sadly it looks like $! is currently a scalar only ... | 21:45 | |
Darren_Duncan | yes, that's sad ... I need it to be able to store an object reference | 21:49 | |
as Perl 5.006+ can | |||
mugwump | (as found by looking for various findSymRef "$!" / writeRef statements in Pugs source | 21:50 | |
brentdax | Guess I'll leave the try {} in the supervisor loop commented out, then. | ||
trigger | Hey, what's the official word on perl 6. Is it possible it will go into production next year? | 21:52 | |
jeezus. Pugs? Is that for realz? | |||
Haskell? | 21:53 | ||
kungfuftr | trigger: it'll be done by christmas | ||
jdv79 | haha | ||
mugwump thwaps kungfuftr | |||
tehpwn | trigger: more like 5 years from now | ||
mugwump | yes, he didn't say _which_ Christmas ;) | ||
tehpwn chuckles | |||
trigger | LOL | ||
tehpwn | the CHristmas of 2010 | 21:54 | |
trigger | no, really | ||
oh ok | |||
is haskell like lispy? | |||
tehpwn | no | ||
yes | |||
but no | |||
it's harder than lisp | |||
trigger | functional, so yes, but totally different syntax (O | ||
tehpwn | haskell is declaritive | ||
trigger | I'm guessin?) | ||
ohhhhh | |||
jdv79 | where's that timeline autrijus made? | ||
trigger | deCLARative | ||
jdv79 | show him that | ||
tehpwn | or "functional" | ||
trigger | phew I got that right | 21:55 | |
tehpwn | indeed | ||
trigger | there's a 'timeline'? | ||
tehpwn | haskell is like reading abstract algebra | ||
trigger | tehpwn: wow that sounds fun | ||
tehpwn is also curious of this "timeline" you speak of | |||
jdv79 | trigger, svn.perl.org/perl6/pugs/trunk/docs/...rview.html | ||
21:56
Amnesiac_ is now known as Amnesiac
|
|||
tehpwn | jdv79: type it to me too! | 21:56 | |
jdv79: the link won't work unless you do | |||
trigger | jdv79: svn.perl.org/perl6/pugs/trunk/docs/...rview.html | ||
jdv79 | i'm trying to find it | ||
tehpwn | lol | ||
jdv79 | trigger, ? | 21:57 | |
trigger | I thought you wanted somone to type the link to you | ||
jdv79 | i didn't say that | ||
? | |||
tehpwn | jdv79: that's not a timeline dongface | ||
jdv79 | yeah, no way dude | ||
trigger | ooops, yeah that's no timeline donger | ||
jdv79 | i DIDN"T FIND IT YET:) | ||
tehpwn | ohhh | 21:58 | |
trigger | www.google.com/search?q=perl6+timeline ain't got doodley | ||
ahh, here bulknews.net/lib/tmp/perl6.log Damian predicts it will be released January 2004. | 21:59 | ||
eric256 | lol | ||
Khisanth | "will" | ||
eric256 | sure. the plan was to spend twenty years programming it, by then time travel will be invented and we'll send it back in time to jan 2004.. see no sweat we have all the time in the world | 22:00 | |
jdv79 | perlcabal.org/~autrijus/perl6-timeline.png | ||
trigger | ok then. Thank you gentlemen and gentlewomen. | ||
jdv sweet thx | 22:01 | ||
tehpwn | are there enough people working on that Parrot whatchyamathingy? | ||
jdv79 | NO | ||
mugwump | Actually in the Conway universe, it's already released. He's actually a pandimensional being who will appear inconsistently in your local idea of spacetime. | ||
trigger | I'm not even sure people are even really stoked on the parrot thing anymore | ||
'People" | |||
tehpwn | stoked or not it seems like a good idea | ||
trigger | I thought so. | ||
mr_ank | and in Bizarro world, tehpwn is the main developer! | ||
trigger | But I'm not writin' perl6 | ||
mugwump | trigger: don't confuse the language Perl 6 with the runtime Parrot with the compiler pugs | ||
tehpwn | mr_ank: tEh trUth | ||
trigger | mug: no, I don't | 22:02 | |
mugwump | Bizarro! Bizarro! Bizarro! | ||
tehpwn | Parrot needs to be done first right? Then Perl6? | ||
trigger | that was the original plan | ||
tehpwn | well if it's gonna be that kind of party I'm sticking my dick in the mash potatoes | ||
eric256 | since pugs runs Perl6 code right now i don't think you could claim that any more | ||
mr_ank | tehpwn: dont look for an excuse you were goona do it anyway | 22:03 | |
jdv79 | parrot is only loosely coupled to perl6 | ||
tehpwn | mr_ank: damnit how'dyou know?! | ||
mr_ank | tehpwn: i know you -- from slashdot? Anonymous Coward? | ||
tehpwn | well someone needs to finish that shit right now so I can have real honst OO up in this piece | ||
mr_ank: dude your totally pwning me!! | 22:04 | ||
trigger | so is perl6 on haskell like a serious idea, or just for development? Is it comparable in speed to parrot? | ||
tehpwn can't stop teh pwnage seeping out of mr_ank | |||
jdv79 | AFAIK its much slower than p5 at the moment | ||
mugwump | trigger: well, what started as a proof of concept to test the language is fast developing into a compiler that can target multiple back-ends | 22:05 | |
tehpwn | i would think it will always be much slower | ||
jdv79 | not on parrot hopefully | ||
tehpwn | anyway when you lazy bastards finish writing teh Real Perl6 for me let me know so I can start benefiting from your work | ||
trigger | you tell them tehpwn | 22:06 | |
jdv79 | slow or not its just damn cool that p6 can run atop js:) | ||
mugwump | for instance, pugs can compile to parrot's IMC or PASM, a new language called PIL, Various Template Haskell back-ends including C, heck some crazy bugger even got it working on ... js | ||
trigger | js=javascript? | ||
jdv79 | jah | ||
tehpwn | buh? | 22:07 | |
trigger | bfwah? | ||
tehpwn | haskell != js | ||
mugwump recommends /ignore tehpwn | |||
tehpwn | at least last time i smelt | ||
jdv79 | sounds good mugwump | ||
tehpwn | mugwump: it didn't work | ||
c'mon I'm bored entertain me! | 22:08 | ||
find i get the idea | |||
mugwump | Oh, did I forget to mention the Perl 6 to Perl 5 compiling? :) | ||
tehpwn | i'll retract all my commits | ||
trigger | perl6 to perl5 sounds fucking brilliant. I love haskell in the middle. | 22:09 | |
no, really | |||
eric256 scratches his head, tilts it to the side.......and then slowly sinkins into a deep fog | |||
jdv79 | too bad firefox keeps asking me if i want to kill the slow js script when i run the mandel script:) | 22:10 | |
mugwump | do you have a url demo for that jdv79 ? | ||
jdv79 | m19s28.vlinux.de/iblech/stuff/not_p...el.p6.html | 22:11 | |
its in the comments on autrijus's latest journal entry | |||
mugwump | maybe that backend could use some timeslicing or something | 22:12 | |
jdv79 | i'm not sure what leo means in his comment though | ||
trigger | so does perl6 have those 200 wacky operators and everything? | 22:15 | |
wilx | Yup, and more :) | ||
jdv79 | trigger, dev.perl.org/perl6/ | ||
mugwump | trigger: well, for instance, there is an assignment operator and an add operator. but combine them, and you have +=. Is that a third operator or a combination? | 22:16 | |
trigger | so, all these are in? [[periodic table of perl operators : www.acc.umu.se/~maswan/PeriodicTable.pdf ]] | ||
mugwump | the table is old, see S03 in the Perl6::Bible for a more up to date list | 22:17 | |
trigger | perl6:bible bzwah? | 22:18 | |
reading. | |||
holy fucking shit | 22:19 | ||
oops pardon the french | |||
so is perl6 going to make anything cleaner? | 22:21 | ||
mugwump | sadly, that's still up to the programmer | ||
trigger | lol | ||
mugwump | but the tools are sharper ;) | ||
jdv79 | timeslicing could be cool on the js backend - its killing my browser with no output:( | 22:28 | |
Khisanth | I get output, still killing it though | 22:29 | |
jdv79 | huh, FF? | 22:30 | |
Khisanth | no moz 1.7.six | ||
let see FF .. | |||
jdv79 | and i thought this box was fast but p6 on js - WOW | ||
this may take 10 minutes:) | 22:32 | ||
Khisanth | hmm the JS version is even slower than the Haskell version | ||
jdv79 | no doubt about that | 22:33 | |
eric256 | what a shock | ||
lol | |||
jdv79 | took about 8 minutes here | 22:34 | |
Khisanth | as opposed to less than a second for .p5 :) | 22:35 | |
jdv79 | there's room for improvement;) | ||
be cool to profile that out | |||
Khisanth | your FF doesn't give you 1 line of output every time that dialog popups up? | 22:37 | |
jdv79 | i set the dialog timer to 5 minutes | 22:38 | |
max_script_run_time or something | |||
in about:config | |||
search for script and you'll see it | |||
mugwump | Hmm, I set it to 300 but still getting the dialog | 22:39 | |
jdv79 | probably just be better to get parrot embedded into the browsers - i'm going to assume IE wouldn't allow that | ||
you have to restart FF:( |