pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | <stevan> Moose... it's the new Camel ":P | .pmc == PPI source filters!
Set by Alias_ on 16 March 2006.
dduncan so, according to audreyt's newest blog, Pugs now passes all its tests, and so I interpret that it is about preflight time save for changelogging ... 01:10
I will now cleanly build and smoke the current revision 01:11
Captain_Fourier hmm im playing with pugs now
dduncan r10557
Captain_Fourier and if i enter expressions as seperate lines i get weird errors
dduncan that will take me a few hours ... unless there is another preflight I should wait for ...
Captain_Fourier like pugs> my $a =5; 01:15
pugs> if ($a ==) {3;} else {2;}
returns 5
pugs> if ($a == 0) {3;} else {2;}
QtPlatypus ?eval list [,] (0..5) 01:39
evalbot_10557 (0, 1, 2, 3, 4, 5)
Captain_Fourier so why would i get that strange input 01:56
dduncan build complete ... now starting that smoke ... 02:17
cmarcelo spinclad: ping? 03:37
svnbot6 r10558 | cmarcelo++ | * More work on Judy.BitSet2 (will turn into BitSet when ready). Using
r10558 | cmarcelo++ | typeclasses and requiring Enum types only (maybe too restrictive?).
dduncan 90 mins later, smoker now on t/rules/ ... 03:42
nevermind, the smoker isn't going alphabetic anymore 03:43
I'm very pleased to report that Pugs now actually seems to be honoring my concurrent=2 setting, and utilizing both CPUs on my machine with 2 separate Pugs processes 03:44
some ++ to whomever got that to work
previously, only 1 Pugs process was running for me, despite the longstanding concurrent=2 setting 03:49
dduncan audreyt, it appears that your r10554 made this work, though perhaps accidentally 03:50
... since that commit only seemed to be about adjusting balances, not splitting the balance in the first place 03:51
cmarcelo audreyt: ping? 04:19
Captain_Fourier im still curious how does pugs perform compared to ruby 04:27
or perl5
bsb dduncan: pugs.blogs.com/pugs/2006/06/6212_releng_res.html for smoke_concurrent
dduncan bsb, I see that 04:29
however, smoke_concurrent has been a config option for something like a year now, or half a year ...
I've always set it to 2, but it never ran more than one process, until today
supposedly other people with dual processors got the desired behaviour months ago, but I didn't 04:31
bsb ah, ok 04:32
gaal when did it break? it was added like a year ago! 04:34
(hi, all)
cmarcelo gaal: hi 04:48
dduncan smoke is uploaded 04:57
Pugs 6.2.11 r10557 05 Jun 2006 04:54 Mon 134.90 min 100.00 % ok 11428: 11428, 0, 1404, 1738, 0 04:58
and sure enough, the time has been halved, to about 2 hours from about 4 hours, on this 4 year old machine
gaal, I don't recall the multi ever working for me 04:59
it always just did one process
I don't know why ... but I didn't look too deep since there were other priorities
svnbot6 r10559 | cmarcelo++ | * Make BitSet2 interface similar to IntSet. 05:44
gaal dduncan: try upping concurrent by one. you might shave off a minute or two. 06:02
dduncan hello 06:03
gaal (or not, but it's worth a shot)
hi :)
dduncan you mean using 3 instead of 2?
gaal yes
dduncan shaving a minute or 2 is irrelevant when the run time is 4 hours with 1 process, and 2 hours with 2, that is now working 06:04
but thanks anyway
unless that minute will scale up for my slower machine
to something more
gaal well, 1 or 2 may turn out to be 5 or 10
dduncan in that case, what would happen if I set it to 4, say? can raising it like that make things worse? 06:05
gaal there is no hard and fast rule, but in general (assuming you don't run out of ram) you want to make sure that if something is blocked on io, another test can take cpu 06:06
dduncan well, I have 768MB of RAM ... I will experiment to see what uses the most but not too much RAM
thanks for the tip
gaal and since our task allocation is very KISS (we just cut the tests to n pieces at start and spawn them off), if one process was unlucky and got a lot of long ones, it'll be running alone in the last duration of the test run 06:07
dduncan fyi, with that much RAM, disk swapping is done when compiling Pugs, though just running the tests it has over 200MB free
I'll see to getting more RAM some time
hopefully a 1GB stick is cheap 06:08
good quality stuff that is
gaal this kind of work distribution is unfair, but we have so many tests we assume it's not going to bite too hard, and also, fixing it portably is Hard
no actually it's just hard
dduncan no problem
gaal 1gb stick for a 4 year old machine may not be very cheap... 06:09
dduncan over time, though I expect that when the test suite settles down and pugs/perl6 gets close to 1.0, we should have a better idea what the generally slow tests are, and perhaps arrange the test dirs such that things are divided up well
gaal but you oughta be OK with 768M if oyou aren't doing much other stuff at the same time. 06:10
dduncan the RAM type is DDR SDRAM, if that says anything
fyi, during smoking I"m fine
gaal dduncan: nah, by that time we can rewrite the harness in perl6 and portable threading will be easier :)
dduncan its when compiling the Haskell that I get disk swapping, and general slowdowns
eg, during 'make' 06:11
gaal sure, ghc is hungry. but a pack of fifteen pugs would also be hungry :)
gotta $work some &
dduncan good $time
Captain_Fourier is anyone up now? 08:59
stephanepayrard_ yes 09:03
Captain_Fourier im trying commit to svn 09:05
but it wont keeps just asking for my user/pass
i got an invite and registered
Captain_Fourier is there anything else im suppose to do 09:05
Captain_Fourier i guess not 09:09
svnbot6 r10560 | audreyt++ | * Fix embedding on MacIntel by forcing pulling in EXTERN.h 09:21
r10561 | audreyt++ | * Pugs.Run.Args: support for the "=" variant of -M: 09:30
r10561 | audreyt++ | pugs -Mlib=foo
svnbot6 r10562 | scw++ | Pugs::Compiler::Rule 10:02
r10562 | scw++ | * $<var> := [pattern] and $<var> := <subrule> parsed
r10562 | scw++ | * implemented in Perl 5 Ratchet backend
r10562 | scw++ | * some tests
r10563 | audreyt++ | * lexical subroutine imports from Perl 5 packages now work! 10:05
r10563 | audreyt++ | % ./pugs -Mperl5:CGI=header -e 'header.print'
r10563 | audreyt++ | Content-Type: text/html; charset=ISO-8859-1
gaal wow! 10:13
svnbot6 r10564 | scw++ | Pugs::Compiler::Rule 10:27
r10564 | scw++ | * $<var> := [] and $<var> := <subrule> already work on
r10564 | scw++ | non-ratchet Perl 5 emitter
r10564 | scw++ | * test for ratchet produce correct possitional matches
svnbot6 r10565 | audreyt++ | * t/perl5/import.t: Digest::MD5 is not part of 5.6, so we 11:54
r10565 | audreyt++ | use the more universal Text::Wrap to test (and it passes).
audreyt Captain_Fourier: hi 11:55
svnbot6 r10566 | audreyt++ | * Pugs.Parser.Export: More sanity checking on the export list.
audreyt Captain_Fourier: what username are you registered with? 11:55
Captain_Fourier: if it's "cfourier", sorry, you are in the commit list now 11:57
I didn't know why the signup didn't add your to the project member list; it should happen automatically if you click on the invitation link
Captain_Fourier: but in any case, it's fixed now, so please try to commit again
Captain_Fourier: apologies for the inconvenience :/
audreyt dduncan: r10495 is the real (and intentional) fix on concurrent smoke 12:05
clkao $ ab -clkao- [~/work/pugs] make 12:29
/home/clkao/work/pugs/0: not found
audreyt say wha? 12:31
which perl are you using?
clkao old one 12:46
8
585
clkao audreyt, appearantly there's haskell street near obra's 13:01
audreyt can't dupe the problem here, weird 13:02
oh? nice
audreyt fixes the parrot-side api a bit
clkao might be the locale problem since i upgraded to freebsd6
TimToady audreyt: ping 15:16
audreyt: on = parsing, I'm looking at how the context rules are starting to look like your old dwimmer, and wondering whether a better approach is to separate the parsing concern from the context concern. 15:18
we could say that only $x = ... parses as a scalar assignment, and everything else parses as list assignment.
but then say that the context rules are more like the dwimmy version. 15:19
anyway, that's my pre-caffiene thought... 15:20
Limbic_Region TimToady - it looks like she has her parrot hat on today 15:21
TimToady that's okay, I'm bugging her about some parrot issues too. :) 15:21
Limbic_Region of course, she can get away with wearing many hats simultaneously and still look very fashionable
gaal conjures a mental image of audrey wearing a hat on each tine 15:25
rgs scalar(@list) = $value 15:27
TimToady I'm sure some mathematicians would like that... 15:27
but a Perl 5 programmer would expect it to set the length. 15:28
rgs that feels a bit like $#array = $size - 1
so, yes
anyway, my point was that on the left, you can have something that is a scalar, but that doesn't parse as a scalar 15:29
like the return value of substr() (better example than scalar())
TimToady when I say "parse as a scalar" here, all I'm meaning is how the right side of = is parsed
precedence-wise
rgs hmm precedence, ok 15:30
TimToady that is, if you say MUMBLE = 1, 2
is the 2 part of the assignment?
rgs notes that most of the discussion in #perl6 happens out of his timezone
TimToady about the only use case for the scalar form is
loop ($a = 1, $b = 2; ...) 15:31
rgs $a = 1, $b = 2 if $condition
TimToady yes, that's certainly what a P5 programmer would expect. 15:32
but is it uncommon enough that we could make people write
($a = 1), ($b = 2) if $condition.
I'm just trying to keep the parsing rules simple, but not too simple... 15:33
rgs cleaner, also, visually
TimToady and should it be ($a = 1; $b = 2) if $condition?
particle_ why not {} ? 15:34
TimToady {} would require a () to execute
particle_ ah, yes, 'if' is a statement modifier, not block modifier 15:35
rgs also, does this return a list, as in @x = ($a = 1, $b = 3) 15:36
TimToady As currently specced, ($a = 1; $b = 2) presumably returns a multi-dimensional list, which would flatten to an ordinary list unless bound to an @@ variable. 15:40
TimToady loop(($a = 1; $b = 2); $c; $d++) does not read very well. 15:49
but maybe (;;) form is just borken C-age we should jettison 15:50
rgs that form of loop is awful anyway
TimToady loop $a = 1; $b = 2 while $c next $d++ {...}
gives us
loop $a = 10 until $a == 0 next $a-- {...} 15:51
getting kind of Algolesque there...
I dunno, my eyes go all mush when I try to read that... 15:54
audreyt TimToady: the segfault is due to PGE not supporting @x in rules
TimToady loop $a = 10; until $a == 0; next $a-- {...}
audreyt s/segfault/IMCC error/
but I'll make it nonfatal
rgs maybe write NEXT in upper case.
TimToady okay, thanks
audreyt (parrot+perl5 embed works here now) 15:55
TimToady cool
what do you think of only $a = being parsed scalar, with context a separate concern?
rgs (my eyes never go mush anymore. side-effect of staring all day at a language whose symbol is an onion:) 15:56
TimToady or just parsing everything list?
PerlJam good morrow #perl6 15:57
Juerd TimToady: I think C-style loop can be left out of the language completely, and implemented as an optionally importable macro.
PerlJam Juerd: I agree!
Juerd That clearly indicates the social status of the construct, without taking it away from those who want it.
TimToady loop $a = 1; $b = 2; $c = 3; while $x; $x-- {...} is also a possibility. 15:58
Juerd TimToady: I find all variants unclear. 15:59
Hard to grok, error prone, and annoying to read.
PerlJam had to read it approximately 5 times before he understood what it was supposed to mean.
integral it certainly challenge's CL loop for incomprehensibility 16:00
TimToady :)
clkao what?
Juerd clkao: Do you have a highlight on CL? :)
clkao loops
no, i just happened to see it
Juerd Ah :)
integral *challenges CL's
Juerd Mental highlight :)
clkao a friend always do /me -> CL to indicate he is going to the cambrdige library 16:01
PerlJam loop {...} is nice, but the C-style variant not so much.
TimToady I'm just wondering if there's some kind of thing that says "while {...}" is just a degenerate case of "loop while {...}" 16:03
where "loop" sets up the possibility of extra shenanigans.
Juerd { my $i; loop :pre{ $i = 0 } :check{ $i < 15 } :next{ $i++ } { ... } } # ugly, but comprehensible 16:04
PerlJam Juerd: ETOOMANYBRACES 16:05
Juerd PerlJam: As I said: ugly.
TimToady loop ($a = 0) while $a < 10; $a-- {...} 16:06
Juerd The greatest trouble with the C-style loop is that it was created without lexical scope in mind.
TimToady which is fine, since we don't have any -> binding going on.
TimToady but yes, if you wanted $a scoped... 16:07
Juerd loop { $_ = 0 }, { $_ < 10 }, { $_-- } -> $a { ... }
TimToady pardon me while I find a bucket... 16:07
Juerd :) 16:08
I'm not looking for something that's nice to read, because that doesn't exist.
It makes no sense in our world to want three statements that are executed at different times, together in one block.
TimToady well, I think it's still loop ($a = 0; $a < 10; $a++) and only $a = does scalar parsing on the rhs. 16:09
Juerd If you must have C-style loops, then that may be the best way to do it.
PerlJam Is it really that important to have some looping construct where initialization, conditional testing, and umm ... tail-of-iteration processing are all mentioned up front?
Juerd PerlJam: If you want it, you can still do it without loop 16:10
TimToady psychologically, it's valuable.
Juerd PerlJam: Something like: { my $i = 0; while ($i < 10) { NEXT { $i++ } ... } }
TimToady: I doubt that.
PerlJam TimToady: why do you say so? 16:11
TimToady "Here's everything you need to know about the control of this loop."
"All in one convenient place".
Juerd TimToady: But it's incredibly rare that a loop is best expressed listless.
And when you do build a list (lazy or not), you already have everything up front. 16:12
It's a bad idea to put ugly stuff in the language that is never needed, and nice to have only in extreme circumstances.
In fact, C-style for is mostly fun for golfing. 16:13
And obfu.
PerlJam Maybe it's just my brain, but I don't ever think of loop control in that fashion. I always tell myself "that first thing happens only once, the second thing at the beginning of each iteration and the the third thing at the end". If it were written more while-loopy, it would be slightly better because I wouldn't have to remind myself of the timing of the parts.
TimToady there are problems and programmers that will tend toward the C idiom.
Juerd TimToady: Making it importable fixes that.
And makes these programmers conscious of the fact that there are alternatives, and that those alternatives are to be preferred. 16:14
I'm not saying the construct shouldn't be offered at all. It should be, but not by default. 16:15
PerlJam if it didn't exist in perl6, I'd be half-inclined to create that syntax calling as "cfor (A; B; C) { ... }"
Juerd IMO, the name of the construct is least relevant, but I like "cfor"
PerlJam Juerd: sure, but note that the parens are important too :) 16:16
TimToady FAQ: "What's a cf or?"
Juerd PerlJam: They are.
TimToady: "The thing you explicitly requested with "use cfor;". Why are you requesting things you don't understand?"
Hm, """" doesn't work well :) 16:17
TimToady I haven't conceded the import part yet.
particle_ for( $a= Iterator.new($foo); $a->has_next; $a->next) { ... }
Juerd TimToady: But I have :) 16:17
TimToady Yeah, well, you're good at that. :P
Juerd particle_: Much better expressed with a list.
particle_ i'm just sayin' it'll happen 16:18
Juerd particle_: Lists can be lazy now
particle_: Of course it will, and that's why the construct should be offered.
I'm just saying that making people conscious about it, and keeping the thing out of normal teaching etc may be a good idea.
TimToady well, I'm not sure if any of this helps me with assignment parsing...
Juerd I can argue assignment parsing three ways, so I'm fine with either solution. 16:19
PerlJam TimToady: yes.
particle_ for( $tangent= 0; ...
TimToady this is all about as easy as a protein-folding problem... 16:21
but I think we're solving it much the same way that nature does.
just keep rattling around till you find a lower-energy state...
Juerd I hope we can de better than nature. 16:23
s/ de / do /
particle_ better coding through physics?
perhaps 'metaphysics' is more appropriate
PerlJam particle_: so where's the moral equivalent to moose? :) 16:24
TimToady I think moose and squirrel are morally equivalent. 16:25
Boris and Natasha are bad though.
PerlJam TimToady: Watch me pull a rabbit out of my hat!
TimToady that trick never works 16:26
PerlJam Well, it'd better work for perl6 ;)
TimToady nothing up my sleeve...
sec&
PerlJam meaningless (to most people) trivia: A lady I used to work with had her name legally changed to "Rocky" because of childhood trauma and a certain moose+squirrel got her through it. 16:29
rgs "my step sister was bitten by a m􏿽xF8􏿽xF8se" 16:32
particle_ thinks timtoady is the moral equivalent of mr. peabody 16:36
PerlJam TimToady has a wayback machine? 16:37
It would be much nicer if he had a wayforward machine so he could peek ahead at what perl6 looks like and then just design it that way. :) 16:38
particle_ perl6 lets you program in all the languages of the past :)
PerlJam But I want to program in a language of the future! 16:40
rw-rw-r-- PerlJam: You think they could design a wayforward machine that really goes ahead *that* far? ;) 16:50
rw-rw-r-- ducks
PerlJam Is that you Wassercrats? 16:51
Limbic_Region are any tests supposed to be failing on Win32 ATM?
particle_ juerd: could you install Test::Base on feather? for testing APL on parrot 16:56
Juerd particle_: Sure
particle_: Done 16:57
Captain_Fourier hello, how do i add myself to the project on foundry 17:02
KingDillyDilly Who do you think is me? 17:03
audreyt Captain_Fourier: I think it's done already 17:04
Captain_Fourier oh ok
audreyt Captain_Fourier: see backlog; can you commit again?
Captain_Fourier thanks audreyt
svnbot6 r10567 | cfourier++ | Adding a test case for recursive operators
Captain_Fourier guess so 17:05
KingDillyDilly Anyway, it's not me.
audreyt Captain_Fourier++
particle_ juerd++ 17:06
Limbic_Region audreyt - did you see TimToady's ping from earlier? 17:08
Limbic_Region also, are any tests supposed to be failing currently on Win32 17:08
oh, /me sees you did indeed chat with TimToady - must have been at lunch 17:09
audreyt TimToady: wow.
IMCC syntax error calls "Parrot_exit"
untrappable
contacting leo for a fix 17:11
clkao audreyt: new modinstall release? 17:15
audreyt clkao: find Alias on #perl 17:16
clkao ah right. 17:18
svnbot6 r10568 | audreyt++ | * parrotembed.c - first sketch at working around Parrot/IMCC's 17:34
r10568 | audreyt++ | abysmal state at exception raising and handling.
Captain_Fourier eval? my $a = 5 17:44
eval? if ($a == 0) {1;} else {2;} 17:45
?eval my $a = 5 17:46
evalbot_10568 \5 17:46
Captain_Fourier ?eval if ($a == 0) {1;} else {2;} 17:47
evalbot_10568 Error: Undeclared variable: "$a"
audreyt it's not persistent 17:48
Captain_Fourier i was trying to emulate a weird bug i get when i run pugs
pugs> my $a = 5
5
pugs> if ($a == 0) {1;} else {2;}
5
audreyt it's not really a bug... 17:50
the statement "if" has no return value
so the previous rv is displayed
but I agree it's surprising 17:51
Captain_Fourier i would think the number should be it
but thanks for the explanation
TimToady statement "if" has to be able to have a return value if it's the last statement in a block.
audreyt Captain_Fourier: write a test? 17:52
Captain_Fourier now i dont get these issues if i just write a file
audreyt is((do if (1) { 2 }), 2) 17:53
something like that
hm indeed
fixing
Captain_Fourier like if that input were 2 lines in a file they work fine
audreyt fixed
wolverian audreyt, maybe we need a testbot so we can write tests in-channel
Captain_Fourier pugs> my $a = 5; if ($a == 0) {1;} else {2;}
2
TimToady audreyt: what do you think of decoupling context from "$a =" decision? 17:54
svnbot6 r10569 | audreyt++ | * Give up hope on multiply embedding parrot for now. 17:56
clkao audreyt: did you get around to make jsbackend smoke pass? 17:57
audreyt clkao: that's tomorrow 17:58
TimToady: you mean upon parsing it's always listop unless very-clearly unary
and cxt becomes dynamic?
TimToady as discussed in BL, possibility of only $a = parsing as scalar
everything else parses as list, 17:59
but context is dwum semantically
audreyt i.e. cxt is no longer statically inferrable even locally
TimToady either at compile or run time.
audreyt but if compile time, then certainly parse time as well, no?
same amount of information
TimToady but could be analyzed after the parse is done.
audreyt but all info is present before we see the = 18:00
it can't depend on RHS
TimToady true
audreyt so analysis is going to give the same result
iff it can be done statically
TimToady I'm just getting the jitters about the current formulation.
mostly from an explanatory perspective 18:01
TimToady but I suppose "it dwims" is sufficient most of the time. 18:01
audreyt understood, but I think it's easier to couple them
otherwise
"it parses as listop but runs the expressions asif it's a scalar"
is a bit unprecedented.
TimToady okay, then I'll leave it as is currently (note that it's ANY[SIMPLE] though currently.
audreyt k
TimToady not just $a[SIMPLE] 18:02
audreyt k
TimToady is this something that slowed down the parser before?
audreyt can you find some soul to write tests for that? :)
the runtime actually
it's currently dynamically inferred on each assignment call 18:03
I'd like to lift it to parsetime
TimToady at run time? curious.
sure
audreyt at run time = because I depend on funsig
TimToady I guess MMD would force runtime
audreyt and funcsig can change
TimToady righto
audreyt yes.
TimToady okay. I can probably write some tests myself.
audreyt which is why we had this SIMPLE discussion at the first place
yay
TimToady++ 18:04
audreyt I clearly should sleep 18:04
Captain_Fourier: I'll checkin the if(){} fix tomorrow
ludan re
TimToady you should sleep clearly
related to colorless green ideas, I suppose
Captain_Fourier cool 18:05
TimToady myself, I should go to work about an hour ago... 18:06
audreyt btw, all tests should pass for you with embedparrot now 18:07
as of r10570
svnbot6 r10570 | audreyt++ | * Allow recovery from abysmally fatal Parrot failures.
TimToady okay, 566 didn't... 18:08
audreyt its 570 that fixed it
TimToady will resmoke at $job. 18:09
audreyt++
audreyt at the cost of some three or four longjmp()s.
np :)
TimToady C, C, senorita.
audreyt aye
*wave* &
TimToady sweet colorless green dreams. 18:10
commutating &
svnbot6 r10571 | lwall++ | Tests for compile-time assignment dwimmery. 20:56
r10572 | fglock++ | ChangeLog - logged misc/pX/Common/* - please review! 21:11
svnbot6 r10573 | lwall++ | Couple tweaks to recursive factorial test. 21:50
r10574 | lwall++ | Hide factorial parsefail inside eval so TAP matrix comes out redder. :) 21:53
TimToady <audreyt> btw, all tests should pass for you with embedparrot now 22:03
if I run the GATTACA tests by themselves, they now catch the Parrot explosion. However, if I run them as part of array_cap.t, they still segv.
hence the red spots in my TAP matrix. 22:04
(running with parrot r12885, if it matters) 22:06
TimToady hmm, actually, it's the second GATTACA test that's segfaulting. 22:09
mugwump heh, I like your description about virtualised time and atomicity TimToady 22:23
corresponds very closely to ACID ideas 22:24
leo audreyt: linking pugs/bugs with embedded parrot seems to need 'export LD_LIBRARY_PATH=...', *if* parrot isn't installed (linux/x86) 22:46
TimToady leo: I always install parrot, and I'm seeing the segfaults too, if that's what you're talking about. 22:53
bx420 if pugs is functional and it's adopted. is it equivalent to the real perl? 22:54
leo no segv - it's not even building w/o export LD_LIBRARY_PATH
TimToady k
leo testing now
bx420 in the sense that Perl 5 was written?....i guess perl 5 is in C?
TimToady bx420: what do you mean by "functional", "adopted", and "real"?
bx420 i don't know. i'm asking if you can take pugs and rename it #!/usr/bin/perl 22:55
and it would be like Perl 5.....the real thing?
the better perl
6
i'm confused about the new name 22:56
TimToady at this point pugs makes no attempt to try to emulate Perl 5.
bx420 it could'd been perl6 unfinished/work in progress
QtPlatypus If your asking will pugs ever be a drop in replacement for perl(lowercase) I don't think it will ever be. 22:56
mugwump bx420: atm perl6 is a language, not an implementation. there are at least 3 implementations in progress
bx420 they don't call whatever the latest python by a different name so i guess that's where it confuses me
szbalint bx420: what new name? 22:57
mugwump eg, with java you have to talk about language version and which JVM/compiler you are using
bx420 this is strange i guess. what's the need for competing implementations? 22:58
there's only one gcc, perl, python, etc. i guess you can say borland C++, ms C++, etc.
QtPlatypus Mostly its to get around the bootstrapping .
mugwump they're complementary in many ways, not competing
leo bx420: at least CPython, Jython, PyPy come to my mind and there are more (e.g. the .net thingy)
TimToady and in the sense that they compete, it's a friendly competition that keeps each project honest. 22:59
mugwump besides, it's not about "need"; no-one dictated from high that anyone even implement perl 6 at all
TimToady but they're all trying to converge on a common goal.
szbalint bx420: in a way you're right. perl the interpreter/compiler is the Perl 5 design document. Perl 6's design documents are the Synopses
mugwump there was no high to dictate from, really - without getting metaphysical
TimToady the only thing I saw on high was flying mugs. :) 23:00
QtPlatypus @larry isn't on high?
lambdabot Is that a hornpipe in yer pocket, or arr ya just happy ta see me?
szbalint s/design document(s)?/specification/
mugwump but what do you know, in the end three implementations are being built because people enjoy working on them
QtPlatypus Because it scratches there an itch. 23:01
mugwump: pugs, parrot and ? (What is the third implementation) 23:02
mugwump lrep. oh, and I forgot MiniPerl
mugwump doesn't pick nits at parrot being called a perl6 implementation there
TimToady hey, it already runs some of the sanity tests... 23:03
mugwump I mean, there's a perl6 implementation written using and distributed with parrot, but that's not parrot 23:04
TimToady gotcha 23:05
QtPlatypus mugwump: Point taken its like saying hascall is a perl6 implementation.
mugwump or GNU as is a C compiler
szbalint "hascall" very well could be. Not a bad name. :)
QtPlatypus Excuse spelling, though it is a good name for soemthing else. 23:07
leo bx420: IronPython was that one, and there's Stackless - a lot of implementations (all a bit different) for one language 23:15
TimToady so another reason for developing all these things in parallel is to try to understand all these little differences in advance, and maybe even tweak the language design to minimize them, and test for conformance with a standard test suite. 23:17
ayrnieu still amused by Vyper -- an implementation of Python in O'Caml with IIRC a very silly license. Why go to such obviously silly trouble to then get creative with your license? 23:20
bx420 there are people who wrote languages for the purpose of writing new languages 23:26
ANTLR
QtPlatypus Why did python end up with so meany implementations when perl5 only ended up with 1 and a 1/2? 23:39
bx420 no idea 23:40
cognominal with perl5, the implemantation is the specification 23:48
szbalint Yes, maybe thats why. 23:53
cognominal there is many way to code in Perl, but there is only one perl :) 23:54
mugwump heh, there's semantic efficiency for you: the Chinese term for "opium eater" (癮君子 / yǐn jūn zǐ ) also means "chain smoker" 23:58