-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