Parrot 0.6.0 "P&P" released | Please mentor for SoC | parrotcode.org/ | YAPC::NA talks deadline is Mar 31 | tinyurl.com/2pmnlq
Set by moderator on 18 March 2008.
00:04 muixirt2 joined 01:10 davidfetter joined 01:25 grim_fandango joined 01:50 Theory joined
dalek r26708 | duff++ | trunk: 02:19
: [rakudo] when statement modifier
diff: www.parrotvm.org/svn/parrot/revision?rev=26708
pmichaud PerlJam: ping 02:31
dalek r26709 | rgrjr++ | trunk: 02:32
: * examples/pasm/fact.pasm:
: + Use array push/pop instead instead of save, saveall, etc.
: [Patch #1 of the user_stack cleanup.]
diff: www.parrotvm.org/svn/parrot/revision?rev=26709
02:33 confound joined
dalek r26710 | rgrjr++ | trunk: 02:37
: Replace or remove saveall and restorall from all tests.
: [Patch #2 of the user_stack cleanup.]
: * t/compilers/imcc/syn/bsr.t:
: + Remove five tests for "stack calling conventions".
: + Change the "recursive bsr" test to use array push/pop instead
: instead of save, saveall, etc.
: * t/op/stacks.t:
: + Remove a saveall/restoreall test.
: * t/op/gc.t:
: + Remove the "sweepoff with newpmcs" and "reg_stack marking" tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=26710
PerlJam pm: pong 02:45
pmichaud nice work on loop and when
PerlJam thanks. 02:46
not sure how to do the for/given modifiers though. 02:47
pmichaud given and for probably need some work yet 02:49
well, maybe not
it's not basically the same as the for/given statement? 02:50
PerlJam for_statement has a pointy block, the for modifier doesn't. given is probably the same (looking now)
pmichaud well, you could cheat slightly by embedding the expression in a PAST::Block 02:52
(if it's not already one)
Infinoid what does the :base_core attribute mean, in an .ops file? what code checks it?
lots of ops are declared with it, but I'm having difficulty acking for any users of it. 02:53
cotto_home compilers/imcc/optimizer.c:1629: warning: 'is_ins_save' defined but not used 02:55
just in case someone 02:56
's bored
Infinoid used by is_invariant when DO_LOOP_OPTIMIZATION is defined. maybe I should just move the "#if DO_LOOP_OPTIMIZATION" up by one function? 02:59
cotto_home your call
I didn't bother looking at it to decide whether it's a false alarm or not 03:00
normally I would, but I'm exercising atm 03:01
Infinoid then I get a warning about unused _is_ins_save, and a warning about the is_ins_save prototype without any definition.
I'll try to remember to clean that up later, once I'm done breaking everything in src/ops/. 03:02
03:24 tetragon joined
Infinoid inline op noop() :base_core:next {} 03:27
die "goto NEXT();" die.
03:32 AndyA joined 03:44 Ademan joined 03:46 Andy joined 04:47 Maddingu2 joined 06:15 jan joined 06:35 Tene joined 07:25 iblechbot joined
dalek r26711 | fperrad++ | trunk: 07:31
: [Lua]
: - shift to PCT/POST.pir
: ... many breakages ...
diff: www.parrotvm.org/svn/parrot/revision?rev=26711
09:10 ruoso joined 09:39 kj joined 09:45 Ademan_ joined
dalek r26712 | fperrad++ | trunk: 09:59
: [Lua]
: -fix forlist
diff: www.parrotvm.org/svn/parrot/revision?rev=26712
10:04 Ademan_ joined 10:36 wknight8111 joined
Coke tickets are cheap, but opening a new ticket about an old ticket is silly. =-) 10:48
10:48 muixirt joined 11:37 rdice joined 11:58 tetragon joined
dalek r26713 | fperrad++ | trunk: 11:58
: [Lua]
: -fix fornum
diff: www.parrotvm.org/svn/parrot/revision?rev=26713
12:34 iblechbot joined 12:39 Senaka joined
Senaka need some help on GC 12:44
anyone around?
lathos PANIC.
moritz in soviet russia GC helps YOU! 12:46
Senaka moritz;??
:)
moritz Senaka: not serious ;-) 12:47
Senaka well basically, need some info...
U track objects on heap as PMC is it? 12:48
and need to know abt Object pools
lathos Most people stay the hell away out of the GC system because it's scary. But have you looked at parrot/docs/pdds/pdd09_gc.pod ? 12:50
Senaka starting to.... i just saw it being referred in dod.c
thanks
dalek r26714 | fperrad++ | trunk: 12:53
: [Lua]
: -fix assignlist
diff: www.parrotvm.org/svn/parrot/revision?rev=26714
Senaka hi lathos 13:10
13:10 skids joined
Senaka what's Global stash? 13:10
shouldn't that be stack? 13:11
moritz I think parrot is stackless
Senaka or what is it?
purl it's it!
lathos Parrot is stackless.
Senaka System stack?
purl System stack is, like, always contiguous, so it's not a problem
Senaka ok purl.... isn't it a stack? 13:12
PMC register stack?
u've got some I guess
so if its stack-less then what are these?
I didn't understand that part. Thanks in advance for any help in this regard 13:13
moritz it's continuation based
Senaka that means? 13:14
moritz so instead of creating a new item on the stack, a continuation is put on the heap (for a function call, for example)
so if you want to throw an execption, you don't have to unwind the stack...
Senaka aha
moritz but you can jump straight to the continuation that you want to execute next
Senaka so how does it clean up? 13:15
mark-n-sweep?
moritz with garbage collection
yes
Senaka oh I see
and do u have docs on copying and compacting with buffers? 13:16
like moving them around and all
ah ok 13:17
they are only for buffers
1 Question though
when copying, what are the memory regions spoken here?
are they within a single arena?
moritz doesn't know 13:18
Senaka hmm....
ok thanks anyway
particle did you read the gc pdd?
Senaka yes
particle stop-the-world mark-and-sweep 13:19
Senaka most of the questions were solved
particle compacting collector
we're going to go incremental by 1.0
Senaka stop-the-world mark-and-sweep?
stop is not found in it
particle if you have questions on the pdds, it's a good idea to email the list so we can clarify the spec
ok. sorry. 13:20
Senaka hmm ok
particle the current gc is stop-the-world
Senaka found it
this is not exactly like VM
*VIM
:)
i mean perldoc
moritz what are the release goals for 1.0? 13:21
particle you can open the file in vim... it's still readable :)
moritz grep -ri 'release goal' docs/ didn't help me :/
Senaka but the info you have of pdd09 doesn't say much about stop-the-world
particle moritz: coke is currently working on a doc for that
moritz particle: ok
particle Senaka: that's because we're moving away from the current implementation to an incremental one 13:22
Senaka hmm
particle we don't want to stop the world for gc
Senaka :)
u don't have parallel collecting?
13:23 jhorwitz joined
moritz do you want to implement it? ;-) 13:23
particle no, we don't have || 13:24
Senaka well I'm working on pluggin the Harmony VM to Parrot and it has it
particle we have two students interested in gc for SoC
Senaka :)
particle great!
Senaka Apache Harmony
particle we have an implementation of a generational gc in a branch 13:25
branches/gmc iirc
Senaka so if can get things straight... I mean aligning the interfaces yes
ok thanks on that
particle it's suffered a little bitrot, i'm sure, but it might give you some help
Senaka btw.... I gotta find about one more thing
13:26 confound joined
Senaka how does Parrot enumerate the thread stack? 13:26
u don't have anything as a thread stack?
lathos For that you may want the concurrency PDD. That's another one worth staying away from.
Senaka :) 13:27
oh!!!
Coke moritz: at the moment, "implement everything the pdd's discuss" 13:30
moritz Coke: I seem to remember that implenting two (major) languages in parrot is also a goal 13:31
is that correct and still active?
Coke two!?
purl two is one too many; two can be as bad as one, it's the loneliest number since the number one...
moritz Coke: I think I heard that in a talk by allison, but I'm not sure ;-) 13:32
Coke: what's your opinion on how many you should have?
Coke depends on who you ask. Certainly our goal is to make that possible.
And having a language that is implemented will certainly show that the goal is achievable. =-) 13:33
moritz is there already a ruby implementation on parrot?
Coke there is no full implementation of any non-trivial language of which I am aware.
moritz I'm not talking about a *full* implemenation ;) 13:34
particle cardinal is the ruby lang
pynie is python
Coke moritz: still, better for me to avoid confusion.
particle perl6 is perl 6
kj cardinal sure could use some updates
Coke poor tcl. ignored by so many. =-)
moritz ah, cardinaly
s/y//
particle tcl was sexy, once
she's showing her age now 13:35
moritz so many names ;)
kj as ruby has a lot in common with perl6, and perl6 's implementation is worked on actively, would be interesting to see how much can be reused 13:38
ehm. common with perl, not perl6 per se
Coke so, moritz: I don' 13:59
t have a particular number that is required for 1.0; Two would help us verify that HLL interop worked to some degree. 14:01
particle 1145*.8 14:07
purl 916
14:09 jan joined 14:13 contingencyplan joined
jhorwitz particle: my talk was rescheduled (allison++), so we don't have to split our 4-person audience. ;-) 14:13
particle yep. patrick took care of that for you
jhorwitz yeah, patrick++ too. :) 14:14
er, pmichaud++, so purl knows it.
14:20 grim_fandango joined
Senaka aren't private conversations on channel logged? 14:29
particle the channel is logged. 14:30
Senaka I see
particle private messages are not
Senaka I shouldn't have closed the IM windows.... :(
particle perhaps your client keeps a log of private messages 14:31
Senaka nope
I haven't enabled it
:(
neh mind
I nw know the setup
Tene Class today is mostly labs, so there's a chance I might not be too tired to code tonight. 14:49
I could show cardinal some love. 14:50
Coke teeeetcl! 14:51
er, tcl. =-)
though both mdiep are independently pondering rewrites, so nevermind.
particle that's what i love about tcl. the spirit of working independently without communication. 14:52
:P
jonathan is hackathoning Sat-Mon. :-) 14:56
dalek r26715 | fperrad++ | trunk: 15:09
: [Lua]
: -fix constructor
diff: www.parrotvm.org/svn/parrot/revision?rev=26715
Coke the part I love about tcl is how many times I had to rewrite it because something about parrot changed. =-) 15:14
Basically, this last rewrite is playing catchup with the PCT.
s/I/we/
15:17 peeps[work] joined
Coke If we were doing more than *pondering*, there'd be more communication. =-) 15:17
15:32 sjansen joined
kj Coke: hi, did you have a chance to browse through pdd29? 15:34
just to see if it makes any sense
Tene Coke: kj asked first.
kj mm? 15:35
purl mm is millimetres or #wiccan for "merry meet", which can scare newbies off... or MetaModel or "Mother of Moose!" or the response to things that make you go mm or MakeMaker or the classic macro package for troff
kj I just hate editing in blogger :-( 15:40
Coke kj: I have not had a chance yet, no. 15:42
kj oki. 15:43
dalek r26716 | fperrad++ | trunk: 15:46
: [Lua]
: -fix sub
diff: www.parrotvm.org/svn/parrot/revision?rev=26716
15:53 Theory joined, Senaka left 16:04 ask_ joined 16:16 jan joined
jonathan pmichaud: Got someone having an issue with $x.WHAT returning Ref rather than what the value in $x actually is. Is that a hard thing to fix - I think I mentioned it once before and you knew what was wrong... 16:40
dalek r26717 | fperrad++ | trunk: 16:43
: [Lua]
: - refactor label
diff: www.parrotvm.org/svn/parrot/revision?rev=26717
r26718 | fperrad++ | trunk: 16:47
: [Lua]
: - refactor break
diff: www.parrotvm.org/svn/parrot/revision?rev=26718
17:06 Psyche^ joined 17:09 ambs joined
ambs rdice: ping_ 17:13
(it was a ping?)
Coke ping? 17:17
rdice ambs, hello.
ambs :)
17:19 paco joined 18:06 Ademan joined
pmichaud jonathan: (Ref) I'm thinking/hoping that switching over to the 'copy' opcode will resolve that. I haven't done that yet, it's on my list of high-priority items 18:07
Coke: I think I asked this before but lost the answer -- what's the status of the nifty RT-high-priority-ticket-tracker you were working on in Jan? 18:08
particle needs rt integration iirc 18:09
pmichaud I thought we just needed to get it on a perl.org server
particle did the rt->json dumper get written? 18:10
Coke pmichaud: I need an RT instance to play with. 18:11
particle: no. see my previous send. 18:12
pmichaud okay, I was just curious. Thanks.
Coke If anyone could setup an RT, say, on feather, that would be awesome.
18:24 Theory joined 18:35 rotty joined
rotty hi! is there a PMC that is good for use as cons cells for Lisp? The "Pair" PMC doesn't fit, because its first element can only be set once... 18:36
particle see if languages/pheme has anything up it's sleeves that might help 18:39
otherwise you'll have to roll your own
18:39 Andy joined
rotty seems SArray might do it 18:47
18:52 barney joined
dalek r26719 | jkeenan++ | trunk: 18:53
: Make PPD conform to coding standard for PDDs (rt.perl.org/rt3/Ticket/Display.html?id=52054).
diff: www.parrotvm.org/svn/parrot/revision?rev=26719
r26720 | jkeenan++ | trunk: 18:56
: Make PPD conform to coding standard for PDDs (rt.perl.org/rt3/Ticket/Display.html?id=52054).
diff: www.parrotvm.org/svn/parrot/revision?rev=26720
particle ppd? 18:57
purl ppd is, like, (: see ppm)
Coke particle: I'm guessing that's a typo. 19:00
particle me too. 19:01
dalek r26721 | jkeenan++ | trunk: 19:03
: Make PPD conform to coding standard for PDDs (rt.perl.org/rt3/Ticket/Display.html?id=52054).
diff: www.parrotvm.org/svn/parrot/revision?rev=26721
r26722 | jkeenan++ | trunk: 19:08
: Make PPD conform to coding standard for PDDs (rt.perl.org/rt3/Ticket/Display.html?id=52054).
diff: www.parrotvm.org/svn/parrot/revision?rev=26722
r26723 | jkeenan++ | trunk: 19:13
: Make PPD conform to coding standard for PDDs (rt.perl.org/rt3/Ticket/Display.html?id=52054).
diff: www.parrotvm.org/svn/parrot/revision?rev=26723
r26724 | chromatic++ | trunk: 19:15
: [pbc_to_exe] Reordered link flags to prefer freshly-built libparrot over an
: installed libparrot (see RT #52288).
diff: www.parrotvm.org/svn/parrot/revision?rev=26724
tewk rotty: We should write a MutablePair if we don't have one. 19:33
19:44 slightlyoff joined
rotty tewk: at least on the website it's not listed 19:47
19:55 grim_fandango joined 19:56 grim_fandango_ joined 19:59 ruoso joined
dalek r26725 | bernhard++ | trunk: 20:06
: #41783: [BUG?] main isn't in src/parrot.c
: Don't claim that 'main' is in compilers/imcc/main.c
diff: www.parrotvm.org/svn/parrot/revision?rev=26725
20:10 ambs joined
dalek r26726 | bernhard++ | trunk: 20:12
: #41783: [BUG?] main isn't in src/parrot.c
: Remove useless src/parrot.c
diff: www.parrotvm.org/svn/parrot/revision?rev=26726
ambs AAAAAAAAAAAAAAARGH! dalek is alive! 20:14
dalek r26727 | bernhard++ | trunk: 20:15
: #41783: [BUG?] main isn't in src/parrot.c
: symlink.pl was looking for src/parrot.c
diff: www.parrotvm.org/svn/parrot/revision?rev=26727
20:21 Psyche^ joined 20:22 IllvilJa joined
cotto_work that really depends on your definition of 'alive' 20:26
20:31 ambs joined
dalek r26728 | bernhard++ | trunk: 20:32
: Add POD and beautify tools/dev/symlink.pl
diff: www.parrotvm.org/svn/parrot/revision?rev=26728
Infinoid come to think of it, me too.
21:09 wknight8111 joined
particle jonathan: ping 21:09
21:14 confound joined 21:16 confound joined 21:42 pjcj joined
dalek r26729 | fperrad++ | trunk: 21:42
: [pct]
: - add tailcall (needed by Lua)
diff: www.parrotvm.org/svn/parrot/revision?rev=26729
r26730 | fperrad++ | trunk: 21:46
: [Lua]
: - clean up
diff: www.parrotvm.org/svn/parrot/revision?rev=26730
21:54 wknight8111 joined
jonathan particle: pong 21:55
Infinoid do STRING* buffers need to be null terminated? (there is a separate "strlen" field.) 21:57
FixedIntegerArray->new_from_string() is assuming they are null terminated, which causes a hanging test for me on gc=libc. 21:58
21:59 wknight8111 joined
jonathan Infinoid: No, they don't need to be null terminated; they may contain NULL bytes. 21:59
Infinoid thought so. I'll fix up FixedIntegerArray->new_from_string() then, thanks 22:00
jonathan Cool, thanks. 22:01
Infinoid passing a non-terminated string directly to strtoul() is bad, m'kay.
22:03 pjcj joined 22:10 cognominal joined
dalek r26731 | fperrad++ | trunk: 22:21
: [Lua]
: - refactor return (with PCT)
diff: www.parrotvm.org/svn/parrot/revision?rev=26731
22:23 rotty left
Infinoid are you supposed to free STRING*'s you create, somehow? or does GC do that? 22:23
Andy GC does 22:24
wknight8111 the garbage collector is supposed to free buffers like that. Whether it currently actually does it is a different story
Andy Assuming you get them the proper way.
Infinoid great, thanks.
(I'm used to GC systems which have explicit refcounting, what a pain in the ass that is. parrot++) 22:25
22:25 peepsalot joined
wknight8111 if i have anything to say about it, and i just might one day, our GC will be very nice 22:46
Infinoid ugliest hack of the day: RT#52462 22:47
wknight8111 we need a bot that converts /#\\d{5}/ into a url that we can click on 22:48
because having to go there manually is putting a cramp in my style
Infinoid that sounds like a good idea.
it also sounds trivial to write. 22:49
wknight8111 so trivial that i feel bad that I bitched about it instead of just writing it myself in the first place
wknight8111 fires up his text editor... 22:50
Infinoid if you write a botnix plugin for it, diakopter might be kind enough to plug it into dalek 22:51
wknight8111 i wouldn't even know where to start. what is botnix?
I was just going to throw together something easy with POE 22:52
Infinoid botnix is an irc bot written in perl 22:53
dalek is an instance of it.
www.botnix.org
wknight8111 oh, okay 22:55
23:02 wknibot joined
wknight8111 okay...#12345 23:02
damnit
23:24 tetragon joined
Tene Hm... sure would be nice to be able to do sdl stuff with rakudo. 23:27
Thoughts on stealing NQP's PIR directive?
Ideal, of course, would be "use SDL::App; use SDL::Rect; use ..." 23:28
'use' doesn't seem to do anything useful in rakudo atm. 23:29
Infinoid I managed to convince it to load Something.pm in the current directory, a few days ago, which seemed to work great 23:31
Tene Hmm.
jonathan What's the Perl 6 syntax for declaring some external thing like that? 23:32
Could always "just" implement that in Rakudo.
Infinoid perl6 for keys(%hash) is %hash.keys(), right? I want to implement that. 23:33
Tene declaring what, exactly?
Infinoid: you'll want to add it to perl6/src/classes/Hash.pir 23:34
jonathan Infinoid: Yes.
Tene: I thought there was some Perl 6 syntax for declaring symbols from external libraries. 23:35
Infinoid is there a wrapper around NCI? 23:36
Tene Also, rakudo seems to choke on POD. 23:38
pmichaud we had one at one time 23:39
ww 23:40
(link to RT#\\d{5}) I just have a keyboard macro that does that for me
Tene pmichaud: thoughts on the appropriate way to be loading SDL/App.pir from rakudo? 23:41
pmichaud we probably need a generic Parrot library for loading pbc's and importing symbols
then it would be something like Parrot::load_bytecode 'SDL/App.pir', <SDL::App SDL::Rect SDL::Color>; 23:43
Tene Hm.
pmichaud or perhaps thats
Parrot::load_bytecoe 'SDL/App.pir', :import<SDL::App SDL::Rect SDL::Color>; 23:44
*bytecode
23:44 wknibot joined
pmichaud right now the 'use' directive only knows how to handle Perl 6 modules 23:44
Tene pmichaud: will it eventually load arbitrary pbcs written in whatever language? 23:45
pmichaud I don't know
Tene Fair enough.
wknight8111 being able to specify an optional language, like "use [LANG] module" would help fix that
pmichaud it might become something like use Parrot <SDL::App>;
in which case Parrot.pm can be in Perl 6 :-) 23:46
Tene In the short term, what do you think about stealing NQP's PIR for rakudo so that I can start playing with SDL in rakudo?
jonathan use langname:Module::Name; # is I think what is spec'd
wknight8111 maybe create a module PMC that all languages could share, and use libraries from all other languages
pmichaud NQP's PIR is essentially a macro at the moment
I'm not wanting to do macros in Rakudo that way, though
Tene Okay.
jonathan Could maybe make "use pir:Module::Name;" work in Rakudo without too much hassle. 23:47
pmichaud I'd rather we figure out a more standard way (i.e., closer to spec) for loading other modules
maybe use PBC:Module::Name;
but we still have to figure out how we want to have symbols imported into rakudo's namespace
jonathan Yes, true.
Since pir is the language rather than PBC, then use pir:Module::Name would be more natural to me. 23:48
pmichaud iirc, that's not really specced yet. But it's also one of those areas where an implementation should preceed a spec
wknight8111 an Exporter PMC?
jonathan OH? I thought the use langname:Module::Name; was spec'd.
pmichaud sorry 23:49
I meant "how we want to have symbols imported" isn't really speced yet
jonathan Ah, OK.
pmichaud yes, langname:Module::Name is probably spec'd (more)
jonathan In which case, yes, I agree, I don't think it is. :-)
pmichaud to me pir:Module::Name would imply to me that we would load Module/Name.pir in preference to Module/Name.pbc
23:50 skids joined
pmichaud and if something is a .pbc, we really don't care what source language it is 23:50
jonathan Hmm, that's true.
Tene pmichaud: if we support one of pir: and pbc:, it shouldn't be much work to also support the other.
jonathan Aside from, it would tell us about the namespace.
Since HLLs live in the root namespace with their HLL name. 23:51
pmichaud well, iiuc, the module being loaded should know what symbols it exports by default
the thing doing the loading shouldn't have to grab them explicitly
Tene I must go. Will scrollback when I come back.
jonathan Right, which is why namespaces has a export_to, IIRC. 23:52
Infinoid do we have a %ENV{PERL6LIB} yet? Will we?
pmichaud I think export_to should be re-spec'd. It was created before we had PCCMETHODs available
i.e., we can do a much better job with the namespaces pdd now that we have PCCMETHODs
jonathan True. 23:53
pmichaud and make it look more like the pdd15 (objects) spec
anyway, what needs to happen for SDL from rakudo is loading the pbc's and creating protoobjects in rakudo's namespace 23:54
for whatever SDL::* we want to create
everything else is methods and "just works"
see examples/sdl/blue_rect.pl for an example
in some sense I'd prefer to see that SDL create its own protoobjects when loaded, though. But I don't think we can rely on every external module to create protoobjects for us 23:55
so our "use language" module probably needs to know how to do that
jonathan Can probably just interogate the namespaces for classes attached to them. 23:56
pmichaud that might work... but searching all of the namespaces might be a bit of a pain 23:57
on "use pir:module" versus "use pbc:module" -- I suspect it really ought to be "use parrot:module" since 'parrot' is the hll namespace where the module will get loaded 23:58
jonathan True.
Matching it to the namespace sounds sane.
wknight8111 use Parrot::Language::Module 23:59
jonathan BTW, on a different subject - is there an SVN repo where the latest synopses are kept?
pmichaud the latest official synopses are svn.perl.org:perl6/doc/trunk/design/syn
or, as a url: svn.perl.org/perl6/doc/trunk/design/syn