|
-Ofun: xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 Set by apple-gunkies on 11 November 2005. |
|||
| nothingmuch | geoffb: pong | 00:26 | |
| geoffb waggles his eyebrows: | |||
| : BETWEEN DO I . LOOP ; | 00:27 | ||
| OK | |||
| 10 0 BETWEEN | |||
| 0 1 2 3 4 5 6 7 8 9 OK | |||
| It bloody works | |||
| FINALLY | |||
| wolverian installs goo | |||
| geoffb | I figured you might appreciate that, nothingmuch :-) | 00:28 | |
| nothingmuch | ouch | 00:34 | |
| nothingmuch didn't want to implement do/loop | |||
| begin/while were working so well that I thought they were enough ;-) | |||
| geoffb | :-) | 00:35 | |
| nothingmuch | anyway, sleepy time | ||
| geoffb | do/loop are actually quite a pain | ||
| g'night | |||
|
00:48
f0rth_ is now known as forth
|
|||
| Alias_ | autrijus: ping? | 00:51 | |
| autrijus | Alias_: pong | 00:54 | |
| Alias_ | You are on the list of "naughty presenters that haven't registered for OSDC" | ||
| Wanna go register, and I'll confirm you to the mailing list | |||
| autrijus | but I already did! | ||
| Alias_ | ok, will let them know | 00:55 | |
| autrijus | danke | ||
|
01:01
Lopo_ is now known as Lopo
|
|||
| Alias_ | autrijus: There are no records of you registering, please re-register | 01:01 | |
| Khisanth | would setting ghc_heap_size to 200m be ok? | 01:04 | |
| autrijus | Alias_: that can't be :/ | ||
| a sec | |||
| Alias_: I fwd'ed you the system mail | 01:05 | ||
| Alias_ | ok | 01:06 | |
| autrijus | (I finished the registration upon receiving Scott's prodding, so that's within 1 hour) | ||
| maybe it takes some time to propagate? | 01:07 | ||
| Alias_ | So it's done in the last hour? | 01:08 | |
| geoffb | Hey, autrijus, welcome back! | ||
| stevan | autrijus: ping | 01:47 | |
| Alias_ | autrijus: osdc list says thanks | ||
| svnbot6 | r8049 | fglock++ | * misc/Parser-Mini/parser.p6 - 'pugs parser.p6 parser.p6' works | 01:56 | |
| stevan | fglock++ # very nice | 01:57 | |
| fglock | stevan: that was the easy part | ||
| integrating with the runtime looks really tough | 01:58 | ||
| stevan | fglock: I started some of that with the Perl6-ObjectSpace work | ||
| fglock | I was reading it other day - maybe I can use that as a starting point | 01:59 | |
| stevan | look at the metamodel implementation | ||
| fglock | but I'm trying to program in p6 instead of p5 | ||
| stevan | hmmm | ||
| thats trickier,.. | |||
| although I suppose the P6ObjectSpace could be ported to a simplified version of p6 | 02:00 | ||
| that was one of the things autrijus and I talked about | |||
| fglock | I think I'll not use pugs's objects - maybe something like perl5/Perl6-Container, but in p6 | 02:01 | |
| stevan | fglock: we could program like it was the late 70s, and use ADTs and modules :) | 02:02 | |
| p6objectspace is based on your p6 container work too | |||
| I tried to determine the smallest set of "things" I would need to create the metamodel | 02:03 | ||
| fglock | does parrot need a metamodel? it already handles objects | 02:06 | |
| stevan | I am not sure the Parrot object model will support all the features that p6 needs | ||
| not to mention ruby, python, etc | |||
| I think it can serve as a base, but there will need to be a metamodel atop it for each language | |||
| leo | fglock: parrot should support a lot of p6 objects (it's designed for it) | 02:07 | |
| stevan | leo: what about roles? | ||
| leo | that's up to the compiler (+ parrot to put parts together probably) | 02:08 | |
| stevan | leo: yes, that is what I was thinking,.. but we will need some runtime support for roles as well | ||
| do you envision the p6 runtime to be purely parrot? | 02:09 | ||
| leo | sure - we need some more interface defintion, which isn't there yet, I think | ||
| stevan | so there will be no p6 runtime, it will all be compiled down to parrot then | 02:10 | |
| fglock | p6 = compiler + runtime. It looks like we can have a very simple parser if the runtime is "fat" enough. | ||
| the division between compiler and runtime is not much clear to me | 02:11 | ||
| leo | different parts will compile down to different levels (a lot to parrot) | ||
| stevan | my concern is that without a p6 runtime which lives on top of Parrot, we will not have the enough object reflection and introspection capabilities | ||
| leo | there is for sure a p6 runtime too | ||
| stevan | oh,.. ok :) | ||
| but implemented on parrot (PIR, PMC, or some other 3 letter acronym) | 02:12 | ||
| leo | it's just a problem of: how much does the compiler know about the runtime and then use that | ||
| stevan | I always saw the compiler as doing a lot of "desugaring" of the more complex p6 syntax | 02:13 | |
| and then the runtime would not need bear that complexity | |||
| leo | sure, but you can desugar down to SKI or some such | ||
| stevan | SKI? | ||
| leo | en.wikipedia.org/wiki/Unlambda | 02:15 | |
| also in parrot languages | 02:16 | ||
| stevan | this would fit nicely with my idea of a metamodel in pure lambda calc | ||
| leo | yes but you might have a look at execution times ;-) | 02:17 | |
| stevan | :) | ||
| leo: I stumbled on this recently, it might interest you : www.coyotos.org/docs/bitc/spec.html | |||
| it is a scheme like dialect which is meant to be as low level as C | 02:18 | ||
| might be an interesting parrot language | |||
| leo | such theories and abstractions are really nice, but run some benchmarks with the abstract model | ||
| stevan: BitC has a formal semantics, static typing, ... | 02:20 | ||
| that's neither perl6 nor parrot nor other clients of parrot | 02:21 | ||
| stevan | yes, but could parrot support it possibly? | ||
| or is that low-level of access not possible | 02:22 | ||
| stevan is not very familiar with parrot past the mailing lists and O'Reilly books | |||
| leo | when ypu compile down that low-level you are at c-- or assembler or such | 02:23 | |
| stevan | ah,.. okay | ||
| leo | parrot with objects, closures, continuations, exceptions, ... and unicode string support is far above that low-level stuff | 02:24 | |
| stevan | true :) | ||
| fglock | translating p6 runtime to Parrot looks like a good idea, but I wonder how difficult it would be to maintain it | 02:25 | |
| stevan | hmmm,,.. trying to sync two moving targets at once,.. | ||
| leo | well, we are always trying to have a stable PIR interface, but we aren't at 1.0 yet | 02:26 | |
| stevan | leo: the movement of the p6l end is more the problem at this point | 02:27 | |
| leo | OTOH and e.g. I wrote a PIR presentation program for YAPC::Paris, which still is running (ok - after chaning one line) | ||
| stevan: exactly | 02:28 | ||
| stevan | the movement on that end makes even slight movements on the parrot end seem bigger | ||
| leo | p6l should take a freeze, really | ||
| stevan | :) | ||
| leo | and define the language, which is necessary to be name 6.00 | ||
| stevan thinks maybe language design is just too much fun | |||
| leo | well they can define 6.1.0 then | 02:29 | |
| obra | leo: send that to me along with why it'll help you get more work done | ||
| leo | or in the meantime | ||
| stevan | switch to ruby? | ||
| leo | obra: this doesn't parse for me at 3,5 am | 02:30 | |
| stevan | obra: you mean to freeze the language design? | ||
| fglock | stevan: how about targetting Ruby? Are the runtimes reasonably compatible/fast? | 02:31 | |
| stevan | fglock: no, I mean switch from p5 to Ruby for everyday usage | 02:32 | |
| Khisanth | hmm | ||
| leo | obra: I don't have much problem with it *yet* - pugs has it or any other implementation | ||
| Khisanth | ?eval 1 == any( 1, 2, 3, 4 ) | ||
|
02:32
evalbot_8048 is now known as evalbot_8049
|
|||
| evalbot_8049 | bool::false | 02:32 | |
| Khisanth | hrm | ||
| stevan | fglock: there is a RubyVM out there which presents an interesting target | ||
| Khisanth | ?eval 1 eq any( 1, 2, 3, 4 ) | ||
| evalbot_8049 | bool::false | ||
| stevan | I don't recall the name though | 02:33 | |
| Khisanth | ?eval any(1,2,3,4,5) | ||
| wolverian | Khisanth, evalbot still has problems with junctions | ||
| evalbot_8049 | 1 | ||
| stevan | fglock: www.atdot.net/yarv/ | ||
| fglock | I mean, emit Ruby from the compiler | ||
| Khisanth | wolverian: oh right I think it's always collapsing them or something | 02:34 | |
| stevan | fglock: emitting YARV instructions might easier | ||
| wolverian | it always takes the smallest value or something like that | ||
| what that is in boolean logic don't ask me | |||
| ?eval 3 > any 2,3,4,5,6 | |||
| evalbot_8049 | bool::false | ||
| stevan | fglock: the instruction table is quite nice www.atdot.net/yarv/insnstbl.html (only the first 50 are relevant, the rest are optimizations) | ||
| wolverian | ?eval 3 > 2,6 | 02:35 | |
| evalbot_8049 | (bool::true, 6) | ||
| wolverian | erm. | ||
| I'll go sleep :) | |||
| leo | stevan: have a look at lua opcodes | ||
| stevan | leo: no I havent | 02:36 | |
| leo | you don't need much indeed | ||
| see ya & #bed | 02:38 | ||
| stevan | nite | ||
| stevan is signing off as well & | 02:39 | ||
| fglock | nite all | 02:40 | |
| ?eval ( 1 == all(1..5) ).values | |||
| evalbot_8049 | (bool::false, bool::true) | ||
| fglock | ?eval ( 1 == any(1..5) ).values | 02:41 | |
| evalbot_8049 | (bool::false, bool::true) | ||
| buu | I like how it returns false and true | 03:35 | |
| So you can take your pick. | |||
| Khisanth | hmm I am glad . will no longer be used for string concat | 03:40 | |
| can never be sure if there is a . or if it's dirt on my screen :/ | |||
|
05:06
Emacs is now known as b00t
06:15
khisanth_ is now known as Khisanth
|
|||
| svnbot6 | r8050 | Darren_Duncan++ | r1064@Darren-Duncans-Computer: darrenduncan | 2005-12-01 22:27:11 -0800 | 06:33 | |
| r8050 | Darren_Duncan++ | /ext/Rosetta-Incubator : updated Locale::KeyedText version to 1.71.0, as 1.70.0 was released | |||
| Khisanth | ?eval my $foo = "foo bar"; my @foo = <<$foo>>; | 08:17 | |
|
08:17
evalbot_8049 is now known as evalbot_8050
|
|||
| evalbot_8050 | ["foo", "bar"] | 08:17 | |
| GeJ | ?eval my $foo = "foo bar"; my @foo = ōæ½xAB$fooōæ½xBB; | 08:18 | |
| evalbot_8050 | ["foo bar",] | ||
| Khisanth | I don't think the eval bot likes unicode | 08:19 | |
| devin | why trailing comma in the [] ? | ||
| (and that wasn't unicode, it was iso-8859-1) | |||
| GeJ | Well, I can get that, but in theory, aren't those supposed to be the same? | ||
| Khisanth | GeJ: yes | 08:45 | |
| GeJ | devin: I think Khisanth meant not in the ASCII 7 bits chars | 08:50 | |
| Khisanth has his encoding set to utf8 | 08:51 | ||
| regardless it's hard to tell what encoding someone is using just by the characters :) | |||
| GeJ | did anyone get news from The Man? did he get at the Aussies yet? | ||
| r0nny | yo | 09:25 | |
| autrijus | GeJ: I'm going to be in the airport in 1hr | 09:43 | |
| then checkback after ~20 hours | 09:44 | ||
| finally free from $job, thank $deity | |||
| that's the good news... bad news is I havn't even started pacing. | 09:46 | ||
| packing, even. | 09:47 | ||
| obra | pacing? | ||
| autrijus goes packing. | |||
| obra | ah | ||
| go pack | |||
| GeJ | autrijus: well, enjoy the flight and don't watch the same movie 4 times. :) | 09:48 | |
| autrijus | ok :) | 09:49 | |
|
10:01
davidra is now known as jp-autark
|
|||
| xerox | Hi. | 15:54 | |
| r0nny | re | 15:55 | |
| xerox | Do you remember that video of that guy doing some presentation in takashi style? | ||
| It was about... a new kind of "identity" which could run on many site or something. | |||
| autrijus: don't you remember? | 15:59 | ||
| Ah! | 16:03 | ||
| identity. | |||
| stevan just discovered seaside (www.seaside.st/) | 17:26 | ||
| very nice stuff | |||
| nothingmuch | yeah, it's cool | 17:57 | |
| fglock | parser.p6 doesn't run in Parrot - "error:imcc:syntax error, unexpected INTC, expecting '('" :( | 18:11 | |
| r0nny | yo | 18:41 | |
| stevan | leo: ping | 20:17 | |
| leo | stevan: pong | 20:18 | |
| stevan | leo: what is the best resource for PIR | 20:22 | |
| leo | docs and existing code | 20:23 | |
| stevan | ok, any recommendations on what code to read? | ||
| leo | generally or regarding a specific topic? | ||
| stevan | generally | 20:24 | |
| leo | I'd start with docs/compiler_faq.pod | ||
| then for some existing code to get a feeling about it: examples/pir/sudoku.pir | 20:25 | ||
| the latter of course only, because I've written it ;-) | 20:26 | ||
| stevan | :) | 20:27 | |
| leo | or compilers/pge/*.pir | 20:28 | |
| or compilers/tge/*.pir | |||
| stevan | what is TGE? | ||
| leo | tree grammar engine | ||
| L::AG in pir | 20:29 | ||
| stevan | cool | ||
| is the O'Rielly book (2nd edition) good.,.. or hopelessly out of date? | |||
| leo | it's good when it's about basics and philosphy ... | 20:30 | |
| stevan | ok | ||
| does PIR have lists? | |||
| leo | PASM & PIR basics still apply though | ||
| define list ;-) | |||
| stevan | something akin to Perl 5's @arrays | 20:31 | |
| leo | sure - a lot of these *<type>Array | ||
| stevan | k | 20:32 | |
| leo | see classes/*.pmc | 20:33 | |
| stevan | oh nice | 20:34 | |
| is there a place where the APIs for the classes/*.pmc are documented? | 20:37 | ||
| my C fu is weak | |||
| leo | perldoc docs/pdds/clip/pdd02_vtables.pod | 20:49 | |
| or just perldoc classes/<which>.pmc | 20:50 | ||
| DesreveR | yo | 20:51 | |
| leo | but from PIR you don't deal with PMCs directly, you are using them via opcodes | ||
| e.g. | |||
| ar = new .FixedPMCArray | 20:52 | ||
| ar = 5 # set size | |||
| ar[0] = b | |||
| DesreveR | yo | ||
| i got a problem with method-dispatching on pugs | |||
| leo | stevan: more on #parrot (irc.pobox.com) | 20:53 | |
| DesreveR | rafb.net/paste/results/x1U6eP49.html <- allways fails | ||
| anyone got an idea? | 20:56 | ||
| -_- | 20:59 | ||
| Khisanth | perhaps not yet implemented? | 21:01 | |
| DesreveR | ? | 21:06 | |
| how to get it work ? | 21:10 | ||
| luqui | stevan, ping | 22:36 | |
|
22:37
khisanth_ is now known as Khisanth
|
|||
| Khisanth | ?eval class foo { has $.baz; method doit() { if $counter++ < 10 { $.baz.doit } } } my foo $t1.=new; | 23:01 | |
| evalbot_8050 | \foo.new(); | ||
| Khisanth | oO that is a weird syntax | ||
| ?eval class foo { has $.baz; method doit() { if $counter++ < 10 { $.baz.doit } } } my foo $t1.=new; $t1.perl | |||
| evalbot_8050 | "\\foo.new();" | ||
| luqui | the semicolon especially | 23:02 | |
| Khisanth | I mean the .= | ||
| luqui | oh | ||
| Khisanth | which semicolon were you refering to? | ||
| luqui | ?eval class foo { } my foo $t1 .= new; $t1 | ||
| evalbot_8050 | \foo.new(); | ||
| luqui | ?eval class foo { } my foo $t1 .= new; [3,$t1] | ||
| evalbot_8050 | [3, foo.new();] | ||
| luqui | that one! | ||
| fixing | |||
| Khisanth | heh yeah that is an odd one | 23:03 | |
| btw, have you ever gotten an error message about system call interrupted while doing a "make unoptimized" ? | 23:04 | ||
| after which the build fails | |||
| luqui | nope | ||
| svnbot6 | r8051 | luqui++ | There should not be a semicolon in dumped structures (Fixed for | 23:26 | |
| r8051 | luqui++ | Foo.new.perl). | |||
| Khisanth | hmm | 23:29 | |
| ?eval class foo { has $.baz; method doit() { if $counter++ < 10 { $.baz.doit } } } my foo $t1.=new; $t1.baz.perl | 23:30 | ||
|
23:30
evalbot_8050 is now known as evalbot_8051
|
|||
| evalbot_8051 | "\\undef" | 23:30 | |
| Khisanth | ?eval class foo { has foo $.baz; method doit() { if $counter++ < 10 { $.baz.doit } } } my foo $t1.=new; $t1.baz.perl | ||
| evalbot_8051 | "\\undef" | ||
| Khisanth | hrm so what was DesreveR testing for? | 23:31 | |
| luqui doesn't think he was here when that happened | |||
| svnbot6 | r8052 | luqui++ | It seems that svnbot6 would only correctly report to a single channel. | 23:39 | |
| r8052 | luqui++ | Fixed (untested). | |||
| Khisanth | luqui: rafb.net/paste/results/x1U6eP49.html that | 23:43 | |
| luqui | ahh, that code was infinite looping | 23:44 | |
| it was calling doit() on self instead of $.baz | |||
| ?eval my $counter = 0; class foo { has $.baz; method doit() { if $counter++ < 10 { $.baz.doit } } } say foo.new.doit(); say $counter | 23:45 | ||
|
23:45
evalbot_8051 is now known as evalbot_8052
|
|||
| evalbot_8052 | OUTPUT[ 11 ] bool::true | 23:45 | |
| luqui | and that bug still exists | ||
| it seems... | |||
| ?eval my $counter = 0; class foo { has $.baz; method doit() { if $counter++ < 10 { $.baz.doit } } } say foo.new(baz => 42).doit(); say $counter | 23:46 | ||
| evalbot_8052 | Error: Can't modify constant item: VUndef | ||
| luqui | interesting | ||
| ?eval my $counter = 0; class foo { has $.baz; method doit() { if $counter++ < 10 { $.baz.doit } } } say foo.new(baz => undef).doit(); say $counter | 23:47 | ||
| evalbot_8052 | OUTPUT[ 11 ] bool::true | ||
| luqui | 42.doit | 23:48 | |
| ?eval 42.doit | |||
| evalbot_8052 | Error: No such method: "&doit" | ||
| Khisanth | why would that be calling it on self? | 23:49 | |
| luqui | bug? | 23:50 | |
| Khisanth | but what is $.baz.doit() expected to call? | 23:51 | |
| luqui | "no method found: undef.doit" | 23:52 | |
| man, if I have to look at findSub again, I think I'll go blind | 23:54 | ||
| is there a way to tell unix sort to sort in place? | 23:55 | ||
| yes :-) | 23:56 | ||