Camelia, the Perl 6 bug

IRC log for #parrot, 2008-04-03

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced