Parrot 1.3.0 "Andean Swift" released | parrot.org
Set by moderator on 23 June 2009.
00:23 bacek_ joined
bacek_ good morning #parrot 00:23
00:32 flexibeast joined 00:33 bacek_ joined 00:39 dduncan joined
Whiteknight Infinoid++ 00:41
00:44 snarkyboojum joined
dalek tracwiki: v5 | bacek++ | RewritingPMCsInNQP 00:45
tracwiki: Add some more ideas about PMC, NQP and L1
tracwiki: trac.parrot.org/parrot/wiki/Rewrit...ction=diff
tracwiki: v95 | whiteknight++ | Languages 00:49
tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff
00:58 cognominal joined
Whiteknight Infinoid: ping 01:30
dalek rrot: r39805 | whiteknight++ | branches/io_cleanups (134 files):
[io_cleanups] merge from trunk r39664:39804. This introduces errors in t/op/io.t that I havent resolved yet
01:34
01:34 amuck joined
Whiteknight purl msg Infinoid I have a failure appearing now in the io_cleanups branch in t/op/io.t dealing with pipes after r39805. Could you take a look at it when you get a chance? Thanks. 01:35
purl Message for infinoid stored.
02:32 snarkyboojum joined
cotto squeak? 02:50
purl squeak is, like, at www.create.ucsb.edu/squeak/ or at www.squeakland.org. or at minnow.cc.gatech.edu/squeak.1 or at www.squeak.org or a great cross-platform smalltalk from the people that brought you Smalltalk-80 or a 12' sail boat that Stephen Ladd built and sailed for three years down the mississippi, over the andes and down the orinoco and all the way back to florida via Cuba
cotto purl dtrt. How nice.
purl cotto: sorry...
cotto botsnack
purl :)
cotto unbotsnack. That first link is dead.
purl thanks cotto :)
02:52 snarkyboojum joined 02:54 bacek_ joined 03:13 kid51 joined
dalek rrot: r39806 | jkeenan++ | trunk/lib/Parrot/OpsRenumber.pm:
Two corrections in documentation.
03:27
03:42 tetragon joined 03:50 dc_offset joined
dalek rrot: r39807 | cotto++ | trunk (3 files):
[docs] fix some typos, add a clarifying comment
04:05
04:54 amuck joined 05:02 s1n joined 05:04 s1n joined
s1n particle: ping 05:22
dalek ose: r7 | austin_h...@yahoo.com++ | wiki/CloseIntro.wiki:
Edited wiki page through web user interface.
05:37
05:38 Theory joined
dalek ose: r8 | austin_h...@yahoo.com++ | wiki/CloseIntro.wiki:
Edited wiki page through web user interface.
05:42
05:49 MoC joined
dalek ose: r9 | austin_h...@yahoo.com++ | wiki/CloseIntro.wiki:
Edited wiki page through web user interface.
05:52
ose: r10 | austin_h...@yahoo.com++ | wiki/CloseIntro.wiki:
Edited wiki page through web user interface.
06:04 flh joined 06:08 mberends joined
dalek rrot: r39808 | cotto++ | branches/pmc_pct/config/gen/makefiles/pmcc.in:
[makefile] fix Makefile dependencies to avoid mysterious failures with -j
06:13
07:39 tetragon joined
cotto tetragon, are you more of a diamond or a square? ;) 07:40
08:00 iblechbot joined 08:28 patspam joined 08:46 tetragon joined 09:05 tetragon joined 09:11 particle1 joined 09:23 tetragon joined 09:37 tetragon joined 10:21 flh joined 10:22 muixirt joined
muixirt what does 'Null PMC access in invoke()' precisely mean? 10:26
10:42 whoppix joined
flh muixirt, it means that you have tried to do something like: $P0(), where $P0 is Null 11:10
muixirt flh, ok 11:11
but I have no clue where this pmc is located
flh usually, I get this error when I try to get a sub into $P0 using a get_* opcode, but the sub is not found 11:12
11:45 tetragon joined 12:00 ruoso joined 12:17 skids joined, Whiteknight joined 12:35 jdv79 joined 12:46 janus joined
Whiteknight good morning 12:54
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
13:13 Whiteknight joined 13:15 st joined
st hi! does parrot have a way to specify an identifier guaranteed to be unique across different pbc files? 13:17
Whiteknight st: I think so, but I dont know the incantation 13:19
what are you looking to do exactly?
st i need to define global values
with an identifier
unique to a single compilation session
i've tried to use .const directive 13:20
but without success
Whiteknight PCT has a tool somewhere for generating GUIDs, you could probably tap into that
st i'll have a look at it, thanks 13:21
Whiteknight purl msg Infinoid currently the statement "$P0 = open cmd, 'p'" opens a filehandle, not a pipe. Is this what we want? Parrot_io_open_pipe_unix defintely doesn't look right, don't know about other platforms 13:29
purl Message for infinoid stored.
13:31 tetragon joined 13:39 snarkyboojum joined
dalek TT #769 closed by whiteknight++: downloads link on parrot.org points to wrong tarball 13:45
13:59 tetragon joined 14:00 MoC joined
afk_coke grumbles at TT#731. 14:10
Coke Whiteknight: if i /can/ get that information with stat, it's certainly not easy for someone not willing to read the C source (not the docs), and who doesn't understand the underlying result of stat(). 14:14
I am now trying to write a PIR snippet that gets me this information.
14:17 dalek joined
Whiteknight Coke, you're probably right, I'm just saying, it is a mechanism to probably get what you need 14:45
not a good one, and definitely needs a'documentin' 14:46
Coke actually, it won't work. =-) 14:48
Whiteknight okay, that's fine too
Coke I can certainly get at the file's mode; but I can only tell the bits; I can't say "am I in this group?" "am I the file's owner?"
so it'll work if the file is o+x, but not g+x or u+x 14:49
Whiteknight ok 14:50
14:51 Limbic_Region joined
Coke which is more than I had, and might be enough for the general case of getting tcl's [unknown] working. 14:52
14:52 PacoLinux joined
pmichaud good morning, #parrot 14:54
14:56 rakudohudson joined
Whiteknight good morning pmichaud 14:59
Coke pmichaud~~ 15:00
pmichaud looks across the river to the great state of New York and waves at Coke :-) 15:02
Coke you in jersey?
pmichaud other border :-)
canada
Coke I was going to go for vermont, next. =-)
nice time of year to visit canada. =-)
Whiteknight last time I went to canada it was like -10C 15:03
pmichaud Paula and I came up to Niagara Falls for the weekend :-)
Whiteknight oh, i hear thats a great place to visit
I've tried to get my wife to go several times
Coke pmichaud: You're definitely on the right side, then. =-) 15:04
last time rachael and I went, I think there was a blizzard.
dalek rtcl: r513 | coke++ | trunk/runtime/builtin/file.pir:
Add a stub implementation of [file executable]
Whiteknight polyglotbot: help
polyglotbot Whiteknight: To execute code, your send should begin with the name of a language, a colon, then the code to execute. Your code must generate output. You can optionally modify the language with a period and a target; e.g. perl6.past: 'hi'.say Note: Not all languages support all targets.
..Languages: abc APL befunge bf cardinal chitchat lolcode lua partcl perl6 pheme pipp punie pynie squaak tcl rakudo ruby smalltalk bc php python
..Targets: { parse past pir paste }
15:05 PacoLinux joined
Whiteknight who do we talk to for getting another language on polyglotbot? 15:06
Coke partcl: puts hi
polyglotbot OUTPUT[Parrot VM: Can't stat languages/tcl/tcl.pbc, code 2.␤main: Packfile loading failed␤]
Whiteknight B0RKED! 15:07
Coke whee. getting close to getting [unknown] working.
(in interactive tcl, you can say, e.g. "ls foo", and if it can't find a builtin with that name, it'll check your PATH, and if it finds it there, it'll run it instead.) 15:08
Whiteknight Coke: how are you doing with the GCable contexts? 15:11
Coke Whiteknight: all progress is in branch. 15:17
which is to say "not far."
15:18 PacoLinux joined
Whiteknight okay 15:23
dalek TT #794 created by coke++: split opcode should respect HLL mappings 15:27
15:29 tetragon joined 15:32 PacoLinux joined
Coke any other language currently supporting something like exec? 15:33
Whiteknight what do you mean by that? 15:34
Coke www.tcl.tk/man/tcl8.5/TclCmd/exec.htm
dalek rtcl: r514 | coke++ | trunk/runtime/builtin/file.pir:
Add a simple, unix-friendly version of [file split]
15:34 kj joined
Coke or, perl5-y, something like `` or system(). 15:35
ooh, I don't have to save the output. that should be easy. 15:36
skids You mean, languages currently on Parrot, not in general, and not necessarily with that (kinda interesting, actually) pipe building?
Coke skids: yes, on parrot. Sorry, assumed that was obvious given the channel. =-) 15:37
skids Just didn't know if you were after that piping feature. 15:38
ISTR rakudo adding shell out support via a quote operator. 15:39
Hrm, or maybe they were just playing with Q:PIR I do recall evalbot getting a good workover by a tipsy jnthn. 15:44
dalek rtcl: r515 | coke++ | trunk/runtime/builtin/exec.pir:
Make the [exec] stub actually exec.
Coke whee. 15:51
Whiteknight are the packfile tests failing in trunk for anybody else? 15:52
because they're failing for me
15:52 PacoLinux joined
nopaste "coke" at 72.228.52.192 pasted "tcl interactive mode now dispatches vaguely like shell." (37 lines) at nopaste.snit.ch/17038 15:53
Coke Whiteknight: I am getting trunk test failures on feather.
presumably a conflict with a previously installed 1.2.0
I don't recall if they were packfile failures, though. 15:54
Coke does a little jig about the unknown stuff working.
dalek rtcl: r516 | coke++ | trunk/runtime/builtin/exec.pir:
Since supporting all the shell items in [exec] is hard, for now, just ignore

With this, [unknown] is now able to run shell commands in interactive mode!
Whiteknight urg 15:55
16:01 PacoLinux joined
cotto Whiteknight, sounds like you're working on the bird. :} 16:06
cotto seems to be on East Coast time. It's kinda nice to be wide awake at 0900. 16:07
Whiteknight what bird am I working on? 16:10
cotto Parrot 16:11
Parrot? 16:12
purl it has been said that Parrot is our teacher, our mother, our secret lover or the reason Dan started or the reason Dan left or pretty onionish:) or www.youtube.com/watch?v=4vuW6tQ0218...re=related
cotto Anyway, is it possible to use regexes (esp capturing) in nqp? 16:13
16:14 iblechbot joined
cotto I could do what I need to in the grammar (PMC function body mangling a la SELF->pmc, etc) but it'd be easier to do directly in nqp. 16:14
16:21 PacoLinux joined
Whiteknight Coke: you mind if I get my grubby hands on that context PMC branch? 16:31
I've got a few tuits today to play with it 16:32
16:36 PacoLinux joined 16:37 kj left, mikehh joined 16:43 Psyche^ joined
cotto pmichaud, ping 16:48
seen pmichaud 16:51
purl pmichaud was last seen on #parrot 1 hours, 47 minutes and 28 seconds ago, saying: Paula and I came up to Niagara Falls for the weekend :-)
17:15 Theory joined
dalek TT #795 created by whiteknight++: Kill Parrot_sub and Parrot_cont structures 17:28
17:39 mberends joined
muixirt is it possible to get the address of a FixedIntegerArray (pointer to the 1st element)? 17:43
cotto muixirt, in C or PIR? 17:44
muixirt cotto, in PIR
or, of course, in Perl6 ... 17:45
dalek TT #796 created by flh++: Rewrite globals.t and integer.t in PIR
cotto Exposing internals like that is something we're trying to avoid. What problem are you trying to solve?
If you just want the first element, array[0] will get it for you. 17:46
muixirt cotto, let's say i want to call a c-library function that can read some binary data put into that FixedIntegerArray 17:51
i can do something like $I0 = get_addr $P0 but it seems that isn't the real address of the 1st element of that array 17:53
cotto In PIR you'd have to do it indirectly by putting the return value into an INTVAL register and then putting that into the array.
Whiteknight muixirt: get_addr is deprecated anyway, going to be removed after 1.4 I think 17:54
muixirt well reading and writing values into that array is no problem, but i need the address of the first element 17:55
muixirt wants to do dirty things 17:57
Whiteknight you're probably going to have to interact with the guts thn
include src/pmc/pmc_fixedintegerarray.h, and use the PARROT_FIXEDINTEGERARRAY() macro to get a pointer to the PMC data
wait, you're talking about using C or PIR? 17:58
muixirt PIR
Whiteknight oh, nevermind them
cotto muixirt, if your function returns an int array, you could use an UnmanagedStruct. 17:59
muixirt cotto, another pmc?
cotto muixirt, yes; one that allows you to deal with a C struct. 18:03
muixirt and FixedIntegerArray is managed memory anyways, right?
cotto yup. 18:05
muixirt so it is not possible for pir/perl6 programs to get the memory address of a FixedIntegerArray 18:07
cotto If it's possible, it shouldn't be. 18:08
muixirt gives up
18:08 kid51 joined
Whiteknight muixirt: what exactly are you trying to do? 18:16
muixirt Whiteknight, put some bytes into a chunk of memory and call that machine code 18:17
Whiteknight oh wow, okay 18:18
well you might probably have to create your own PMC type in C to do that
you could play with bytes in a string I think, but I dont think you could execute that
18:20 Austin joined
cotto muixirt, Parrot definitely doesn't allow that kind of evil by default. If you insist, you could pretty easily subclass String or ResizableIntegerArray to add an invoke VTABLE function. 18:21
muixirt Whiteknight, you cam't put arbitrary binary data into strings, it gets mangled by encoding issues (i think)
cotto s/subclass/write a PMC in C that subclasses/
cotto wonders what madness motivates muixirt 18:22
Whiteknight muixirt: I thought there was a biary: encoding that wouldn't monkey with the data 18:23
cotto pmichaud, unping 18:24
muixirt Whiteknight, how?
plus, i don't know whether my $t="test"; say $T.WHERE really point to the 1st bytes in the string 18:25
18:26 masak joined
kid51 /w muixirt 18:30
muixirt kid51, ?
purl well, kid51, is it not possible to link something else with dynamic pmc's?
cotto forget kid51,
purl cotto: I forgot kid51,
Austin What's the subject under discussion, please? 18:32
kid51 is demonstrating the powers of purl for an old programming buddy 18:33
Austin Whiteknight: There are parrot opcodes for doing bitwise math on strings (as a sequence of bytes), so there must be some support for un-encoded strings. 18:35
Whiteknight exactly, that's what I was thinking
cotto Austin, muixirt wants to do something strange and terrible with a PMC that involves writing bytes to it and calling it machine code.
I suspect an execution is involved.
Austin Nothing wrong with that. It's how regex'es used to be done. 18:36
cotto or possibly some sort of cool machine language parser
Austin (Also, it's how JIT works)
Cotto: changing the subject slightly, I'd like to propose a L1 task for you 18:37
or to you
cotto I'll point in the right direction, as long as I don't have to maintain it.
Austin, I'd like to listen to your proposal.
muixirt thinks parrot is a big bureaucracy and resists to do *real* work ;-)
cotto layers upon layers upon layers 18:38
Austin muixirt: you're right. We're all Frenchmen, disgruntled graduates of L'ecole Polytecnique unable to find real work. We've taken over this project, which was abandoned by real programmers years ago, and are simply shuffling paper. 18:39
cotto It's called making the machine do the work.
Austin, oui
Austin cotto: One of the "calling conventions" problems that Patrick mentioned was the scenario where a function is prototyped with a certain number of required, named arguments that can be passed as positionals, but then the caller delivers some of them as named args. I think you should aim for that as your default "call a sub" example. 18:40
extern void foo(a, b, c) ; Hash args; args['c'] = "see"; args['a'] = "ay"; foo(1, args :flatten); 18:41
cotto Austin, you're saying that C functions should have something like named params? 18:42
interesting idea
It'd work for functions where we have the C source (or at least debugging symbols, but I don't want to get into that). 18:43
Austin No, I'm saying that "some function" (c or otherwise) might get called that way. And since it's one of the current problem areas, showing how to solve it is important.
Maybe it's showing how to implement L1CC in L1. I dunno.
But if my perl code is going to eventually compile down to L1, what's it look like?
FWIW, I think that "calling conventions" should probably be a pluggable module. Just like GC. 18:44
Whiteknight Austin: it sort of is now
Austin Laugh.
Whiteknight Well, not entirely, but you can override Sub and MultiSub to insert some custom behaviors 18:45
Austin Except that someone, I think it was you WhiteKnight, told me that PCC was scattered all throughout the code.
cotto Rakudo does some of that, or so I've heard.
Whiteknight Austin: ignore that!
Austin LOL
Ignore which?
What you said three days ago, or three seconds ago? 18:46
Whiteknight both
:)
Austin Okay.
Austin is ignoring Whiteknight.
cotto Australia? 18:48
purl well, Australia is the mysterious XXXX continent or the native habitat of the skud, bekj, sharky, kd, Alias, dec, Nom, TonyC and xfire or crappy or populated entirely with criminals and their descendents! as everybody knows! and criminals are used to not being trusted, as YOU ARE not trusted by me, so i can clearly not choose the wine in front of me. or the continent of fourecks or godzone
cotto Australia is also like WTF, mate? 18:49
purl okay, cotto.
Austin Also home of Damian, the progenitor of my favorite witty reply.
cotto which is?
Australia?
purl Australia is the mysterious XXXX continent or the native habitat of the skud, bekj, sharky, kd, Alias, dec, Nom, TonyC and xfire or crappy or populated entirely with criminals and their descendents! as everybody knows! and criminals are used to not being trusted, as YOU ARE not trusted by me, so i can clearly not choose the wine in front of me. or the continent of fourecks or godzone or like WTF, mate?
Austin Damian once was writing about I-don't-remember-what on P6L, and he said "think of it as evolution in action." 18:50
muixirt Austin, of course i meant parrot the software, not parrot the team of devs
Austin To which I replied "This from the guy whose national bird is the Platypus?"
I slay me.
Don't sweat it, Mux. Software inertia is real. 18:51
Infinoid Ok, there. The rest of the world is appeased, so now I can hack parrots from 3pm to 8am tomorrow 18:55
Austin Here it is: groups.google.com/group/perl.perl6....73db09a673 18:56
Infinoid Whiteknight: Yes, Pipe objects are in but the open() special-case code hasn't been adapted yet
Austin Best thing I ever said on P6L.
Whiteknight Infinoid: okay, so what do we need to do to make that work right?
Infinoid I can work on that today
Coke Whiteknight: play away; I put it in a branch for a reason. =-) 18:57
Infinoid Austin: I was going to set up a karma alias for your googlecode commits, but I wanted to ask what nickname you wanted that karma to go to? (or has someone already added you to CREDITS?)
Whiteknight Coke: I was already playing :) I've got a big commit coming through on it soon
18:59 MoC joined
Infinoid Whiteknight: I just read through Parrot_io_open_pipe_unix, and yes, it's hackish. The child process handling will probably stay the same but I'll adapt the pipe handling part 19:00
Austin Infinoid: I confess I have absolutely no idea what you're talking about.
Infinoid Austin: k, moment
:52 <+dalek> close: r10 | austin_h...@yahoo.com++ | wiki/CloseIntro.wiki:
Edited wiki page through web user interface.
Austin (Infinoid: Sounds like a Trac/Parrot Developers wiki page.) 19:01
Infinoid Austin: When I add you to CREDITS, it will say "Austin++" or "Austin_Hastings++" or whatever you want. Do you plan to continue using the name Austin in here?
karma austin
purl austin has karma of 6
Infinoid karma austin_hastings
purl austin_hastings has karma of 15
kid51 purl, can you consolidate someone's karma?
purl kid51: i haven't a clue
Infinoid See, your karma is already divided (ohnoes)
karma austin_h...@yahoo.com 19:02
purl austin_h...@yahoo.com has karma of 5
Coke (binary strings): binary:"random bytes"
cotto karma is serious business
purl is serious business has neutral karma
cotto < purl-- > is also serious business 19:03
Austin Infinoid: That works for me.
Infinoid Ok, will do
(is serious business)++
cotto just like the Internet 19:04
19:05 zak_ joined 19:08 dukeleto_ joined
dalek rrot: r39809 | Infinoid++ | trunk/CREDITS:
Add Austin++ to CREDITS, to get his karma logging right.
19:10
19:22 Whiteknight joined
dalek ose: r11 | austin_h...@yahoo.com++ | wiki/Milestones.wiki:
Created wiki page through web user interface.
19:23
19:39 mvuets joined
dalek rrot: r39810 | whiteknight++ | branches/context_pmc (17 files):
[context_pmc] flesh out the new PMC type a little bit more, and start making the switch. Obviously haven't gotten very far
19:41
Whiteknight Coke: I've looked at this job a few times before, and I'm still astounded by the sheer amount of work required for this 19:44
20:22 eiro joined
cotto pmichaud, ping 20:22
20:27 Zak joined 20:30 eternaleye joined, magnachef joined
TimToady Austin: Damian was quoting Oath of Fealty, Niven and Pournelle 20:31
20:34 mvuets left
Austin Ayup. 20:35
cotto misparsed and wondered why Niven and Pournelle were part of the oath 20:39
20:41 flh joined 20:47 chromatic joined
dalek TT #797 created by jkeenan++: Eliminate need to expand Makefile variables in parrot_config and other ... 21:05
21:11 MoC joined 21:47 magnachef_ joined
dalek rrot: r39811 | whiteknight++ | branches/context_pmc (3 files):
[context_pmc] adding some vtables necessary to calculate all the offsets in JIT, but haven't put together the necessary macros yet. Also switched over some other stuff
22:01
cotto pmichaud, unping' 22:02
22:09 chromatic joined 22:34 rg1 joined
dalek ose: r12 | austin_h...@yahoo.com++ | wiki/CloseIntro.wiki:
Make intro a featured page.
22:42
22:46 dduncan joined 22:47 Eevee joined 22:49 PacoLinux joined 22:51 dduncan left 22:54 snarkyboojum joined
Infinoid The "pipes" created by Parrot_io_open_pipe_unix() are special magical pipes that also do a waitpid() on the child process during close/destroy 22:59
I could write a very small C program which closes its stdout and keeps running, hanging your GC. Is that really what we want? 23:00
Now, I'm sure that cleaning up zombie processes is a good idea... but I have to wonder if there's a cleaner way to do this 23:01
chromatic fork and detach, let init handle it?
Infinoid Yeah, maybe. 23:02
purl it has been said that yeah, maybe is what i need for optional positionals
Infinoid Of course, then we don't get the cleanup action we want if the user ^C's us 23:05
(I think. Process groups have always confused me.)
23:55 Theory joined