Camelia, the Perl 6 bug

IRC log for #parrot, 2009-05-27

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 Infinoid You at least know what to call them, which gives you an advantage over me. :)
00:00 Whiteknight For operations that aren' common, like seek(), peek(), etc, we could use methods still
00:00 Whiteknight and then throw an exception when the method doesn't exist
00:01 dalek tracwiki: v12 | whiteknight++ | IOTasklist
00:01 dalek tracwiki: https://trac.parrot.org/parrot/wiki/I​OTasklist?version=12&action=diff
00:01 * Infinoid foresees himself catching a lot of exceptions, but that's ok
00:01 Whiteknight or a role would work too, I just need to make sure the code is there to support it
00:02 Whiteknight we could have an INTVAL flags field in the IO handle base class that has enum_IO_seek, enum_IO_socket, etc
00:02 Whiteknight although that's particularly inelegant
00:03 Infinoid eew.  I'd prefer to just have the subclass implement seek() and the base class toss an exception
00:03 Whiteknight yeah, I think we can definitely use VTABLE_does for that kind of stuff. Just need to decide what different roles we want to support
00:04 Infinoid The first major one: seek
00:04 Whiteknight if(VTABLE_does(interp, self, CONST_STRING("file")) would return true if we have file operations like seek, peek, etc
00:04 Infinoid I'm not really sure how to differentiate connected sockets from connectionless (SOCK_DGRAM, SOCK_RDM and so forth), but I'm not sure roles are it
00:04 wayland joined #parrot
00:04 Infinoid perl5 has a whole separate subclass (IO::Seekable) to represent the seek role
00:04 Infinoid I do think that's a bit overboard.  (perl5's I mean)
00:04 Whiteknight do the different types of sockets have substantially different APIs?
00:05 Whiteknight I'm most familiar with TCP/IP, not other types of sockets
00:05 Infinoid Okay.  UDP sockets use sendmsg() and recvmsg(), which take and return a Sockaddr along with the data buffer and length
00:05 Infinoid so in other words, you're explicit about the target address for every UDP packet you send
00:06 Infinoid send() and recv() do not work with connectionless sockets.  Nor do read() and write().
00:06 Infinoid (well, read() might work on some OSes, but you won't be able to find out where it came from.)
00:06 Infinoid so basically, connectionless sockets break the whole IO API
00:06 Infinoid you can use select() with them, but that's about it
00:06 Whiteknight okay, I remember some of this stuff from my networking class years ago
00:06 Whiteknight so we can have a PMC that does "Socket" AND does "Connection" or "Connectionless"
00:07 Infinoid it's true of any SOCK_DGRAM or SOCK_RDM socket type.  UDP is just the most common example, but you can do this in AF_UNIX and AF_TIPC as well
00:07 Whiteknight ...or whatever you want to call them
00:08 Infinoid yeah.  If it's even worth doing that
00:08 Infinoid I'm not really sure
00:08 Whiteknight we could just have a "write" function that differentiates sockets based on the PMC base type
00:08 Infinoid The thing is, this kind of thing has to be application-specific by definition, so I'm not sure there's any point to adding tools so generic code can try to be smart with them
00:08 Whiteknight or have a mode flag in Socket that says whether it's TCP or UDP
00:09 Infinoid I suspect they're just going to be orthogonal, no matter what I we do
00:09 Infinoid s/ I/
00:09 Whiteknight you're the expert here, you just say what we need and we'll do it
00:09 Infinoid ok.  we need seek()
00:09 Whiteknight if we need to have a dozen different types of Socket PMCs, we'll do that
00:09 Infinoid and we need Socket to stop subclassing FileHandle :)
00:09 wayland I missed the start of this conversation, but I presume you've seen S32/IO in the Perl6 doco?
00:09 Whiteknight Sockets don't seek(), right? I don't think so just sanity checking
00:10 Infinoid we will probably have a dozen different types of Socket PMCs, just to make Sockaddr handling easier (like IO::Socket::INET and IO::Socket::UNIX do)
00:10 Infinoid correct
00:10 Whiteknight wayland: a while ago, I don't venture into Perl6 land as often as I like
00:10 wayland Ok.  The basic idea is, they have different roles for all kinds of things
00:10 wayland IO::Readable, etc
00:10 Infinoid Great, that sounds very relevant
00:10 * Infinoid googles for s32
00:10 Whiteknight wayland: Yeah, that sounds exactly like what I am planning
00:10 purl well, planning is what it's all about. :] or http://www.moderndrunkardmagazine.com/iss​ues/12_02/images/mot-posters-planning.jpg
00:10 Whiteknight purl forget planning
00:10 purl Whiteknight: I forgot planning
00:11 wayland http://perlcabal.org/syn/
00:11 wayland That link has links to the different sections of S32
00:11 wayland As well as the other stuff
00:11 dalek tracwiki: v13 | whiteknight++ | IOTasklist
00:11 dalek tracwiki: https://trac.parrot.org/parrot/wiki/I​OTasklist?version=13&action=diff
00:11 wayland Keep in mind that S32 is still in Draft mode
00:11 Whiteknight well, we're not going to track the synopses too close anyway, because our implementation needs to support all languages
00:12 Whiteknight but Parrot does have a role facility that we should be able to make good use of
00:12 Whiteknight our implementation will probably be similar, but not perfectly symmetrical, with the P6 version
00:12 Infinoid Yeah.  I was just wondering whether we should conform to that, or if we should stay as far away from it as possible (It seems like Rakudo generally tries to do everything their own way)
00:12 Infinoid At the very least, I didn't have nearly as many roles in mind
00:13 Whiteknight I think we're going to find that borrowing a good amount from the P6 version will help us a lot towards working an elegant solution
00:14 Infinoid ok, Socket will have a few extra methods for getsockaddr(), getpeeraddr(), setsockopt(), getsockopt() and all of those fun things
00:14 Whiteknight right, and FileHandle will have methods for seek() and whatever else files do
00:14 Whiteknight do pipes need anything special?
00:15 Infinoid Pipe isn't a subclass of Handle, but it will have reader() and writer() which return subclasses of Handle
00:15 Infinoid Pipe is just a container object.
00:15 Infinoid in fact, it might just return Handle directly, the underlying fds are pretty generic
00:15 wayland Argh!  Have to recompile parrot because I referred to a MAINFEST in a makefile (instead of a MANIFEST like I should've)
00:16 Infinoid I'd love a way to do socketpair() in the same way, as it gives you the same thing as pipe() except the handles are bidirectional, but I don't want to add yet another class just for that
00:17 Whiteknight I finally got my copy of "Unix Network Programming" from my parent's house, so I have a good reference book here to guide me through all this
00:17 Whiteknight I can be so useless without the proper references
00:18 Infinoid oh.  does FileHandle do fcntl() yet?  I want to put that in Handle
00:18 * Infinoid wants O_NONBLOCK
00:18 Whiteknight I don't see any calls to fcntl anywhere in src/pmc/
00:19 Whiteknight we'll get that added as a method if we need
00:19 Infinoid k, I'll add that when I extract Handle
00:19 Whiteknight w00t
00:19 Infinoid and some constants
00:19 Whiteknight are we interesting in supporting XTI at all?
00:19 dalek decnum-dynpmcs: r65 | darbelo++ | trunk/src/pmc/decnum.pmc:
00:19 dalek decnum-dynpmcs: Implement a method for comparations following the IEEE 754 total ordering of
00:19 dalek decnum-dynpmcs: floating point values.
00:19 dalek decnum-dynpmcs: Simplify the pmc VTABLE.
00:19 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=65
00:21 Infinoid XTI?
00:21 Whiteknight it's in this book as a networking API
00:21 Whiteknight I'll assume that the answer is "no"
00:22 Infinoid ah, http://docsrv.sco.com/SDK_​netapi/sockC.sock2XTI.html
00:22 Infinoid sockets is the portable one, I'm not even sure I have an OS that supports the XTI API
00:22 Whiteknight okay, forget I mentioned it (again, I'm definitely no expert)
00:22 purl Whiteknight, I didn't have anything matching i mentioned it (again, i'm definitely no expert)
00:23 Whiteknight thanks purl, just rub it in my face
00:23 Infinoid well, I've never heard of it before, but I'm not authoritative :)
00:23 Whiteknight better then I am
00:25 Infinoid in fact, if we came across an OS that supported XTI but not berkeley sockets, I'd be more inclined to convert sockets calls to the XTI backend, to maintain portability
00:25 Whiteknight okay
00:28 eternaleye_ joined #parrot
00:28 Infinoid So okay.  To sum up my task list:
00:28 Infinoid 1.  Split out Handle from FileHandle (but you're welcome to beat me to it; I've still got at least one more day's worth of moving work to do.)
00:29 Infinoid 2.  Convert socket to be a subclass of that, add some nifty methods to Handle and Socket (and some parrot-level constants for portable PBC)
00:29 Whiteknight I'm going to create the branch tomorrow, give us tonight to just stew on the design
00:30 Infinoid 3.  Add Select (but I'm keen on seeing whether your work will satisfy that need)
00:30 Whiteknight and then we're separating out Pipe from FileHandle?
00:30 Infinoid 4.  Add UDP and nonblocking operation
00:30 Infinoid yeah, Pipe is a separate task, which only depends on #1 in that above list
00:30 Whiteknight Yeah, let's hold off on Select just for now, if I can't do it soon enough as part of AIO we can implement it separately
00:31 Infinoid no problem.  I can bang on Pipe first
00:31 Whiteknight great, this is a good plan I think
00:31 Whiteknight and I think performance will be much better then it is
00:32 Whiteknight irclogs
00:32 Infinoid once we have nonblocking operation and some form of select or poll or aio, I can start writing big intarwebs servers
00:32 Whiteknight irclogs?
00:32 purl irclogs is http://irclog.perlgeek.de/parrot/today or see also: infrared clogs
00:32 Whiteknight Infinoid: I'm hoping to land all these cleanups within two weeks, and have AIO in place by 1.3
00:32 Infinoid cool!  Will you be blocking on any of the tasks I listed?
00:33 Whiteknight I'm going to be working on them with you, so no
00:33 Infinoid ok, I'll try not to disappear then
00:34 Whiteknight You can if you need, there are plenty of parallel development pahs here
00:34 Whiteknight paths*
00:34 Whiteknight nothing is going to block me, I'm too determined to make all this shit work
00:34 Infinoid Whiteknight++
00:35 Infinoid AIO is really interesting.  I've been drooling over the manpage and dancing around it for years, but never actually got the chance to play with it
00:36 Infinoid A whole lot of scalability problems just vanish when you switch to AIO
00:50 Whiteknight yeah, that's what I'm hoping for
00:51 Whiteknight the problem is making sure we get it right, a system that is portable transparently across many platforms, and still has the functionality that people need
00:54 Infinoid Testing that it works well with threads might get a little weird
00:57 Whiteknight yeah, I imagine we are going to run into a lot of issues
00:58 ilia joined #parrot
01:00 Whiteknight I'm getting excited about this, lots of good things are going to result from all this work!
01:03 wayland No manual entry for AIO
01:04 wayland What's the manpage called?
01:04 wayland is it on fnctl or whatever?
01:04 Infinoid wayland: on linux, it's aio(3)
01:04 Infinoid man 3 aio
01:04 wayland Not on Fedora, it's not
01:04 wayland What package is it part of?
01:04 Infinoid you might need to install manpages-dev or whatever it is on fedora.
01:05 wayland I'll investigate
01:05 Infinoid purl, aio?
01:05 purl well, aio is asynchronous input and output
01:05 Infinoid purl, aio is also a push (callback)-based I/O system
01:05 purl okay, Infinoid.
01:06 Whiteknight here's the reference I've been using: http://www.ibm.com/developerworks​/linux/library/l-async/index.html
01:06 Whiteknight not a manpage, but very informative. Plus, pictures!
01:07 Whiteknight does a good job of explaining several different types of IO too, all four of which I want Parrot to support.
01:07 Infinoid IBM has been doing something very similar to AIO in os/390 and various other mainframe-type products for decades
01:08 Infinoid that chart is interesting.  I don't find select very useful without O_NONBLOCK, and vice versa :)
01:09 Infinoid My normal model is in the block of their chart occupied by AIO... but would call AIO that + 1
01:10 Coke joined #parrot
01:10 Coke Anyone want to try to reduce a tcl segfault to parrot? =-)
01:11 wayland MENE MENE TCL  U-PARROT
01:12 Infinoid Whiteknight: Do you think AIO will be useful for PIR code without having to define a class?  Will we be mapping AIO callbacks to Continuation objects, or to class methods, or what?
01:12 wayland (apologies to all those who haven't read the Book of Daniel)
01:13 Infinoid Coke: Whatcha got?
01:13 wayland Don't seem to be able to find relevant man pages.  I have a man-pages package installed, and there doesn't appear to be a man-pages-devel
01:13 Coke Infinoid: parrot latest, partcl latest, on feather, "make test" segfaults in t/cmd_array.t; I'm trying to track it down.
01:13 Infinoid got a backtrace?
01:13 Coke was trying to get the PIR first. lemme get a backtrace.
01:13 Infinoid oh, ok
01:14 * Infinoid kinda assumed the pir would be huge
01:14 Infinoid wayland: On my gentoo box, the manpage came from the dev-libs/libaio-0.3.106-r1 package
01:15 nopaste "coke" at 72.228.52.192 pasted "segfault" (46 lines) at http://nopaste.snit.ch/16673
01:15 wayland Oh, ok, thanks
01:15 Whiteknight Infinoid, I'm forseeing it will be almost seamlessly usable from PIR
01:16 Coke Infinoid: if I run with -G it runs through all 50 tests before segfaulting. :|
01:16 Whiteknight We might need a special open flag, so like '$P0 = open "filename", "nr"', where "n" makes it asynchronous
01:16 Coke Infinoid: I also get a ton of #      got : 'get_attr_str() not implemented in class 'TclArray''
01:16 Infinoid cute, your Class object has a corrupt attr
01:17 Infinoid Whiteknight: *drool*
01:17 Coke I suspect this is a result of Whiteknight's fix to the assign problem I was having.
01:17 Whiteknight but once we have an asynchronous stream, you'll be able to pass that to a normal read/print opcode, with an optional callback
01:17 Infinoid Coke: is your gdb still open?
01:18 Coke I can rerun. what do you need?
01:18 Infinoid well, "up" and "print _class->_namespace" should give you an 0x11, but that doesn't tell us *why* it is 0x11
01:18 Coke $1 = (PMC *) 0x11
01:18 Coke is 0x11 undef?
01:18 bacek_ joined #parrot
01:18 Coke oh, no, that's not the type.
01:19 Infinoid no, it's supposed to be a pointer to a Namespace object
01:19 Infinoid ...or NULL
01:19 Infinoid is TCL subclassing Class and screwing up the attr list and overwriting the field with something numeric?
01:19 Coke not on purpose. =-)
01:20 Coke TclArray, which you see when the segfault is averted with -G, is just a PIR class.
01:20 Coke http://code.google.com/p/partcl/sourc​e/browse/trunk/src/class/tclarray.pir
01:23 Infinoid are you doing anything complicated to a TclArray object to trigger the class?  Or just creating one and letting the GC run?
01:23 Infinoid trigger the crash, not class.
01:23 * Infinoid tired
01:23 Coke "running all of tcl"?
01:24 Infinoid I'm hoping to reduce it a little farther than that. :)
01:24 Coke it might be a result of the assign to Undef trick that Whiteknight ran.
01:24 Coke s/ran/fixed/
01:24 Coke I'm now trying to get some pir to duplicate.
01:24 Infinoid oh, hmm
01:24 Whiteknight urg, I hope all that code doesn't cause new problems
01:24 Infinoid Whiteknight: See that?  You fix something, now you get blamed for all subsequent bugs. :)
01:24 patspam joined #parrot
01:24 Coke Yup.
01:24 Coke well, it's working better than it /did/
01:25 Coke slightly larger test case incoming.
01:25 Whiteknight so you're subclassing Class, then assigning that Class to an Undef $P register?
01:26 Coke no.
01:27 Whiteknight The only case where any of my TT #696 code gets invoked is when we assign an Object to an Undef
01:27 Whiteknight the assign and set_pmc vtables in Undef were the only things I really changed
01:28 Coke Whiteknight: yes, I'm doing that.
01:28 Whiteknight oh, okay then
01:28 Whiteknight Oooh, I have a weird recursion relationship in my head now
01:29 Whiteknight because the Class of an object of your Class subtype will be an object of your class Subtype
01:29 Coke TT #711 has the revised (failing) case.
01:29 Whiteknight well, it would be if the hll_map bindings are established after the subclass is defined
01:30 Whiteknight Okay, so #711 is basically just #696 but with attributes?
01:30 Coke basically.
01:31 Whiteknight that's weird, I copied all the attribute copying logic from Object:clone()
01:31 Coke my original test was the bare minimum to duplicate the error.
01:31 Coke This is slightly more like real tcl.
01:31 Coke if you tackle this one, feel free to just run "make test" in partcl. =-)
01:32 dalek TT #711 created by coke++: can't assign class with attributes to undef
01:32 Whiteknight urg, I haven't even checked TCL out in months
01:32 Coke well, at least it'll build now. =-)
01:32 Whiteknight that's a step up
01:33 Whiteknight I'll take the ticket, but I am going to sleep soon and won't work on it tonight
01:33 Whiteknight Can I ask why you are vivifying the destination register to Undef anyway?
01:34 dalek partcl: r369 | coke++ | wiki/ParrotIssues.wiki:
01:34 dalek partcl: fixed one bug, found another
01:34 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=369
01:34 Whiteknight seems like a useless step to me, unless I am missing something
01:36 Coke It might already be Undef by the time I have a new value to assign to it.
01:36 Infinoid is pmichaud's comment to #696 regarding the "copy" opcode relevant here?
01:37 Coke Maybe. the parts of tcl that are doing what they're doing predate rakudo.
01:37 Coke This all used to work. :|
01:38 Coke let me try a global s/assign/copy/
01:38 pmichaud The "copy" opcode is intended to replace an existing PMC with a copy of another PMC.
01:38 pmichaud it somewhat replaces the "morph to Undef and then assign" that we used to do.
01:38 Whiteknight I was looking at the copy opcode today, after you mentioned it in #ps
01:39 Whiteknight does it really do this operation that Coke needs it to do?
01:39 pmichaud I don't know what Tcl needs/wants, I just know that the description sounded a lot like "copy"
01:39 Whiteknight (in either case, what he is trying should not segfault, whether it's the Right Way or not)
01:39 pmichaud and that previously Rakudo and other languages were also trying to assign things to Undef, which is when we came up with the "copy" opcode.
01:40 pmichaud (the assign to Under trick having been taken from Tcl, fwiw :-)
01:40 Whiteknight and Copy handles all attributes?
01:40 pmichaud Copy just does a clone.
01:40 pmichaud whatever clone does, it uses.
01:40 pmichaud basically the copy opcode is "clone into an existing PMC"
01:42 Whiteknight yeah, I'm reading the source now
01:42 Whiteknight The work I did earlier for TT #696 basically just abstracted the guts of clone, so the two ideas are very similar
01:43 Whiteknight I don't understand why copy maintains the metadata from the destination PMC though
01:44 dalek partcl: r370 | coke++ | trunk/Configure.pl:
01:44 dalek partcl: slightly better error message if "install-dev" wasn't run.
01:44 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=370
01:44 Coke as I recall, it was a hack. =-)
01:45 Whiteknight does clone on an RPA do a deep clone or a shallow one?
01:45 Coke I see -t4 is still (*)!@#&$#()@$& broken.
01:45 pmichaud clone on RPA is shallow, iirc
01:46 pmichaud clone on Hash is deep, though.
01:46 pmichaud because PMCs are considered "containers"
01:46 pmichaud and in Rakudo, at least, the properties of a container are independent of its value
01:47 pmichaud i.e., we consider the properties to be properties of the PMC, not of the value it contains.
01:47 Whiteknight okay
01:47 Whiteknight This copy opcode doesn't look right to me. it looks like it's leaking memory
01:48 Whiteknight and it NULLs out the pmc_ext pointer, but never replaces it
01:48 pmichaud we first clone the source
01:49 Whiteknight oh, nevermind. I see what it's doing
01:50 Whiteknight so metadata is container-based, and attributes are data-based?
01:50 Whiteknight or are they one and the same?
01:50 pmichaud they're separate, afaik
01:50 pmichaud "properties" aren't the same as "attributes"
01:50 Whiteknight right, okay
01:51 Whiteknight I CAN HAZ TERMINOLOGEE!
01:52 Whiteknight Okay, Ive hit my Parrot quota for the day. Now it's time for some union-mandated sleep
01:52 Whiteknight later
01:53 wayland My sleep is sometimes intersection-mandated :)
01:54 Maghnus_ joined #parrot
02:12 dalek parrot: r39188 | jkeenan++ | branches/pbc_info_remove:
02:12 dalek parrot: Create pbc_info_remove branch to work on
02:12 dalek parrot: https://trac.parrot.org/parrot/ticket/440.
02:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39188/
02:14 wayland developers++ :)
02:28 Theory joined #parrot
02:35 janus joined #parrot
02:39 dalek parrot: r39189 | jkeenan++ | trunk (2 files):
02:39 dalek parrot: Make this file conform to linelength coding standard.
02:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39189/
02:45 dalek parrot: r39190 | jkeenan++ | branches/pbc_info_remove (15 files):
02:45 dalek parrot: Move src/pbc_info.c to examples/c/.  As part of deprecation plan, remove pbc_info targets from Makefile and remove pbc_info and related files from files governing ports.
02:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39190/
02:46 tewk I know I've asked before but what is the most reliable quasi-offical git mirror for the parrot project?
02:48 Coke git-svn?
02:48 purl git-svn is amazingly great
02:48 Coke infiniod git?
02:48 Coke infinoid?
02:48 purl infinoid is, like, Mark Glines <mailto:mark@glines.org> or likes shiny things
02:48 Coke git mirror?
02:48 Coke it's in there somewhere. =-)
02:49 tewk I use git-svn, but if I based it off Marks mirror it may be easier for other git users to follow.
02:49 * tewk goes to search irc logs
02:54 Infinoid oh
02:54 Infinoid I think it's git://quack.glines.org/parrot-trunk/, let me verify that
02:55 Infinoid yep.
02:58 Infinoid purl, git mirrors of parrot is git://quack.glines.org/parrot-trunk/
02:58 purl OK, Infinoid.
02:59 Infinoid purl, git mirrors of parrot is also git://repo.or.cz/parrot.git (not always up to date)
02:59 purl okay, Infinoid.
03:20 donaldh joined #parrot
03:48 darbelo joined #parrot
04:44 Andy joined #parrot
04:55 tetragon joined #parrot
05:06 flh joined #parrot
05:08 buildbot joined #parrot
05:16 davidfetter left #parrot
05:23 darbelo joined #parrot
05:23 masak joined #parrot
05:50 dalek rakudo: 14b8735 | pmichaud++ | src/classes/IO.pir:
05:50 dalek rakudo: Update IO.get to return a single line.  Remove obsolete IOIterator class.
05:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​4b8735db3fbe4448a0c5deee34af9aa0b56e0f3
05:56 patspam joined #parrot
06:10 chromatic joined #parrot
06:36 cotto joined #parrot
06:51 cognominal joined #parrot
07:10 Austin_Hastings Good morning, #parrot.
07:16 parrot Awk!
07:17 iblechbot joined #parrot
07:21 donaldh joined #parrot
07:25 cotto well, this is awkward
07:25 moritz not seductivve?
07:29 wayland Stop that, or I'll bash you both :)
07:30 wayland (Which reminds me.  Hash!  Bang!  Bin!  Bash!  Is this a shell script, or a Batman comic? )
07:30 wayland btw, how do you do "bold" in IRC
07:30 cotto test
07:30 wayland (bold font formtting)
07:30 cotto in my client, it's ctrl-b
07:30 moritz wayland: in irssi you press Ctrl+b
07:30 wayland test
07:30 moritz then some text
07:31 moritz then again Ctrl+b
07:31 wayland Hmm.  Konversation doesn't do that
07:31 cotto Hmmm.  Apparently I can do all kinds of silly and ill-advised stuff.
07:32 moritz http://www.mitja-schmakeit.de/wordpress/wp-c​ontent/uploads/2008/06/kde-kindergarten.jpg
07:32 wayland Αλλ Ι ψαν δο ισ τηισ
07:32 mj41 Good morning. Any ideas how to compile Parrot on VMWare virtual machine? ... Problem is probably here http://ttcopy.ro.vutbr.cz:4​000//file/cmdout/19239.txt ... auto::jit -           Determine JIT capability...p = 0x8920000  PAGE_SIZE = 4096 (0x1000) failure: Permission denied
07:32 wayland (All I can do is this)
07:34 cotto mj41, are you using selinux or something to prevent executing malloc'd memory
07:35 cotto (also, I can't access that site)
07:36 wayland mj41: ...and are you running linux in the VM?
07:37 mj41 hmm, selinux, rebooting
07:37 mj41 wayland: yes, linux in the VM
07:38 cotto istr a similar issue with recent versions of Fedora Core
07:39 mj41 cotto: thanks, without selinux configure pass
07:42 wayland Do we have a trouble ticket for that?
07:43 cotto #581 is the closest I can find, but in that one Configure.pl works fine and something in PGE explodes.
07:44 cotto fwiw, it's still open
07:45 cotto actually, Lu's error looks almost exactly like yours, mj41
07:45 mj41 Anybody else has problem access  http://ttcopy.ro.vutbr.cz:4000 ?
07:46 cotto mj41, can you compile and nopaste the output from https://trac.parrot.org/parrot/raw-atta​chment/ticket/581/test-jit-might-work.c
07:46 cotto it'd probably be helpful to get that tt moving again
07:46 wayland mj41: I can access your site fine from here (Australia, good ISP)
07:46 mj41 cotto: I just disable selinux.
07:46 cotto right.  silly me
07:48 cotto but our general solution to this shouldn't be "put selinux in permissive mode"
07:50 mj41 cotto: but no problem :-)
07:51 cotto mj41, apologies for my isp, which I assume is blocking that site
07:51 mj41 cotto: And http://tt.ro.vutbr.cz is ok ?
07:54 nopaste "mj41" at 147.229.5.176 pasted "output from /ticket/581/test-jit-might-work.c" (10 lines) at http://nopaste.snit.ch/16674
07:56 cotto mj41, nope
07:57 mj41 cotto: :-( and http://www.vutbr.cz/ ?
07:57 cotto that one works
07:58 cotto don't even ask my why
07:59 wayland Different Class C subnets, probably
08:00 Austin_Hastings Anyone know how to dump a namespace from PIR? There seem to be "lookup name" ops, but there is no "gimme the names you have" op, and the "default exporter" is NYI.
08:07 Austin_Hastings Could it be as simple as treating the PMC as a hash?
08:22 mj41 New TapTinder client (32bit linux) is online http://tt.ro.vutbr.cz/buil​dstatus/pr-Parrot/rp-trunk . Thanks.
08:45 bacek joined #parrot
08:57 chromatic Austin_Hastings, that's exactly what to do.
08:58 Maghnus joined #parrot
09:09 Austin_Hastings chromatic: Thanks, it's harder than it looked.
09:12 Austin_Hastings Woo-hoo! A crapload of stuff!
09:14 mikehh joined #parrot
09:15 Austin_Hastings If I want to decode "what" a thing is, do I use the .type() method on the PMC or is there some higher-level opcode for that?
09:17 chromatic typeof $P0
09:17 chromatic $S0 = typeof $P0
09:20 bacek joined #parrot
09:21 bacek good evening
09:21 Austin_Hastings That doesn't seem entirely useful.
09:22 Austin_Hastings I get key "crt_init" pointing to
09:22 wayland I find good evenings quite useful myself :)
09:22 wayland (sorry :) )
09:22 Austin_Hastings Good evening, bacek.
09:22 wayland bacek: o/
09:23 wayland I've now gotten to the point where Rakudo builds on a Parrot TPM
09:23 wayland RPM
09:23 Austin_Hastings Nevermind.
09:23 Austin_Hastings Didn't indirect far enough.
09:23 Austin_Hastings OTOH, what's the C<typeof Null> ?
09:23 wayland Now I just need to make Rakudo work as an RPM
09:24 Austin_Hastings (Hint: Null PMC access in get_string())
09:24 Austin_Hastings Is there an official pod format for tables?
09:25 dalek TT #68 closed by bacek++: runtime/parrot/library/tcpstream.pir broken
09:31 chromatic POD doesn't support tables.  PseudoPOD does.
09:32 skv joined #parrot
09:32 wayland Had to smile at PseudoPOD :)
09:40 Austin_Hastings Okay, what is parrot::Null ?
09:40 Austin_Hastings It's not "null" according to the unless_null opcode.
09:40 Austin_Hastings So it's a ... PMC that "does landmine"?
09:45 bacek Austin_Hastings: yes. It's called.. erm.. Null
09:45 bacek :)
09:47 Austin_Hastings Right.
09:47 Austin_Hastings But when I do "typeof $P0" I get an exception :(
09:49 Austin_Hastings And checking unless_null doesn't work. So what do I use -- "issame" ?
09:50 bacek if_null
09:50 bacek it should work...
09:50 bacek unless_null should work too
09:52 Austin_Hastings I think if_null tests for uninitialized $P0, while in this case $P0 = get_global 'Null'
09:53 bacek Austin_Hastings: no. if_null checks that pmc is NULL or Null
09:58 Austin_Hastings Hmm...boxing $S0
09:58 Austin_Hastings Now everything is a NameSpace.
10:04 Austin_Hastings Aha. Not everything is a Namespace. Only the first hundred or so. Then things are "Sub" or "close;Grammar" or "FixedPMCArray" or whatever.
10:04 Austin_Hastings Woot.
10:06 Austin_Hastings How do I get the PMC for a class, if the namespace PMC is going to be rturned by its name?
10:07 Austin_Hastings Ahh. nsp.get_class()
10:08 Austin_Hastings Wayland, what's new on the other side of the world?
10:15 wayland Other than making the Parrot RPM cover everything Rakudo seems to need at the moment, nothing springs to mind
10:15 Austin_Hastings I saw you mention that earlier. Did you include all the perl modules?
10:15 Austin_Hastings (Does that even make sense?)
10:18 wayland I think the Parrot RPM already included those
10:18 wayland I know for sure it includes lib/Parrot/Install.pm
10:18 wayland The only downside is that it probably also includes stuff we don't need
10:18 wayland But I'm willing to live with that at the moment.
10:19 Austin_Hastings :)
10:29 bacek joined #parrot
10:33 dalek parrot: r39191 | fperrad++ | trunk/README_win32.pod:
10:33 dalek parrot: [win32] update with ICU 4.2
10:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39191/
10:33 Austin_Hastings Welcome back, bacek.
10:33 bacek Austin_Hastings: OH HAI
10:34 * bacek wish to have good internet at new home.
10:34 bacek And ./parrot -t4 working.
10:34 bacek see also: opny
10:34 bacek pony
10:36 Austin_Hastings :)
10:36 Austin_Hastings Where is your new home, Bacek?
10:36 bacek Austin_Hastings: closer to $dayjob
10:36 dalek parrot: r39192 | bacek++ | trunk/src/packfile.c:
10:36 dalek parrot: [cage] Don't try to deref NULL interp->pdb pointer during tracing.
10:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39192/
10:36 Austin_Hastings But with poor internet?
10:38 wayland Well, Australia has blackspots
10:39 wayland Basically, there's a piece of telco equipment called a RIM that's used to multiplex multiple phone lines over one set of copper wires
10:39 wayland and it's incompatible with ADSL, which is basically the only cheap fast internet available in most of .au
10:40 bacek Austin_Hastings: technically - without any internet. I'm using 3G now
10:42 Austin_Hastings Ouch! Iphone = modem?
10:43 Austin_Hastings Here's a question: when you import a namespace, you don't get sub-namespaces, right?
10:43 wayland76 joined #parrot
10:44 wayland76 Sorry about that -- xorg died on me :)
10:49 bacek joined #parrot
10:49 bacek oh hai...
10:49 bacek It was bad idea to check model of this 3g modem...
10:50 wayland76 Austin_Hastings: Are you jinxing me and bacek? :)
10:50 Austin_Hastings If a Sub (PMC) was not declared :multi, does it still have a MMD signature?
10:52 Austin_Hastings Rarf.
10:52 Austin_Hastings Let's try that question again: Given that I have a Sub PMC, how can I find out information about its signature?
10:53 Austin_Hastings Apparently I can discover the arity(), and I can inspect() it to find the number of positional+required, pos+optional, named+req, named+opt, and slurpy args.
10:53 Austin_Hastings But I see nothing about types.
11:17 bacek Coke: around?
11:20 donaldh joined #parrot
11:47 whoppix joined #parrot
11:48 tetragon joined #parrot
11:52 bacek msg Coke -t4 now (almost) works
11:52 purl Message for coke stored.
11:52 dalek parrot: r39193 | bacek++ | trunk (2 files):
11:52 dalek parrot: Factor out debugger_or_interp helper function to fetch debugger or interp itself during tracing.
11:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39193/
11:55 burmas joined #parrot
11:57 bacek msg Coke ignore my last message. It doesn't crash, but doesn't work
11:57 purl Message for coke stored.
12:03 jonathan Austin_Hastings: Types as in, what Parrot registers?
12:03 Whiteknight joined #parrot
12:04 jonathan (erm, register types I mean)
12:04 jonathan I'm can't immediately recall how that's exposed.
12:04 jonathan Or if that's exposed
12:04 burmas left #parrot
12:18 wayland76 kid51: I've had an idea
12:19 Austin_Hastings jonathan: that would do for a start.
12:19 wayland76 Maybe we can replace the %metatransforms, etc, in the install_files.pl, etc, with a text file that contains a source/dest translation table
12:19 Austin_Hastings I looked in the sub.pmc code, and it's glossed over. The code parses that data in order to compute the number-of-positional type info
12:19 wayland76 purl: tell kid51 I've had an idea.  Maybe we can replace the %metatransforms, etc, in the install_files.pl, etc, with a text file that contains a source/dest translation table
12:19 purl wayland76: huh?
12:20 wayland76 purl: help
12:20 purl #perl is not a help channel, and I'm not a help bot.  If you want Perl help, try #perl-help or #metallica. or (see the 'help channel' factoid as well) or
12:21 Austin_Hastings wayland: try "msg"
12:21 moritz wayland76: it's "msg $nick $message" here
12:21 wayland76 msg kid51 I've had an idea.  Maybe we can replace the %metatransforms, etc, in the install_files.pl, etc, with a text file that contains a source/dest translation table
12:21 purl Message for kid51 stored.
12:21 wayland76 Thanks! :)
12:21 Austin_Hastings 8-)
12:22 Austin_Hastings jonathan: I put it on my list of things to do later.
12:22 Coke bacek: pong.
12:22 bacek Coke: unping :)
12:23 bacek -t4 still failing.
12:23 bacek Not so miserable as before, but...
12:24 wayland76 msg kid51 Oh, also, I'm depending on Parrot::Install for Rakudo, but using a modified version of install_files.  I uncovered a place where Parrot::Install maybe to give an error message.
12:24 purl Message for kid51 stored.
12:26 wayland76 everyone: it seems to me that it would be a good idea to make /usr/lib/parrot/<version>/dynext work like /usr/lib does, ie. have a separate directory for each package (ie. parrot, rakudo), and softlink to them from the main directory
12:26 wayland76 Thoughts?
12:26 purl i like cheese
12:26 wayland76 Cheesy thoughts?
12:27 Coke test
12:29 Coke bacek;I already fixed -t4 once. I don't think I can do it again. =-)
12:30 * bacek imaging "job security" in open source world
12:30 Coke I don't WANT job security!
12:30 Coke (not in open source, anyway)
12:32 bacek In Soviet Russia job secure you!
12:32 bacek oh wait...
12:37 iblechbot joined #parrot
12:40 rg1 joined #parrot
12:47 ruoso joined #parrot
12:47 wayland76 msg kid51 Ok, I have a working Rakudo RPM on the Parrot RPM.  This needs some more changes to the build scripts.  Want to help me review these too?
12:47 purl Message for kid51 stored.
12:49 * Coke is happy to see codetest smolders clean.
12:51 * Coke looks at http://ali.as/top100/, and wonders how many of the FAIL 100 are owned by folks who frequent this room.
12:54 bacek Coke: not me! I'm not CPAN "commiter" :)
12:59 whoppix Coke, that thing uses strange metrics.
13:00 Coke anyone know who the AIX smoke system belongs to?
13:00 dalek TT #712 created by wayland++: Some changes are needed to the install system so that Parrot installs in a ...
13:01 Coke it is tempting to start skip/todo'ing those.
13:01 dalek parrot: r39194 | whiteknight++ | branches/io_rewiring:
13:01 dalek parrot: Creating a new branch to fix up the IO system
13:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39194/
13:03 wayland76 Coke: not me either :)
13:04 wayland76 msg kid51 if you're interested in helping me with the Rakudo RPM ticket, https://trac.parrot.org/pa​rrot/attachment/ticket/712
13:04 purl Message for kid51 stored.
13:07 Austin_Hastings wayland76: At some point, you should maybe switch to email...
13:07 Coke kid51 does tend to respond to messages here. YMMV.
13:08 wayland76 Austin_Hastings: Well, I think I'm done now, until he responds :)
13:08 Coke I personally tend to prefer emails, and I monitor the trac mailing list.
13:08 wayland76 I prefer e-mails too :)
13:08 Austin_Hastings Sure, but the poor guy has been typing these messages for an hour or more, with no hope of editing...
13:08 gryphon joined #parrot
13:09 Austin_Hastings Is there any way to mark a class as "private"?
13:09 Austin_Hastings Or is it just a case of exporting nothing?
13:10 Coke hey, I can 'make tclsh' again.
13:11 Coke Austin_Hastings: the latter, I believe.
13:11 Austin_Hastings thx
13:12 Coke oh. I still have the build dir around. :|
13:14 skids joined #parrot
13:15 Andy joined #parrot
13:20 Whiteknight purl msg Infinoid I created the io_rewiring branch, started moving some stuff around in src/pmc/. Feel free to start playing around
13:20 purl Message for infinoid stored.
13:28 dalek tracwiki: v14 | whiteknight++ | IOTasklist
13:28 dalek tracwiki: Add two idle thoughts about IO to the page
13:28 dalek tracwiki: https://trac.parrot.org/parrot/wiki/I​OTasklist?version=14&amp;action=diff
13:29 dalek parrot: r39195 | whiteknight++ | branches/io_rewiring/src/pmc (3 files):
13:29 dalek parrot: [io_rewiring] Create Handle PMC type, start abstracting stuff into it.
13:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39195/
13:31 Coke ah, the good ole days; program behaves differently with -G
13:31 Austin_Hastings :-D
13:32 Austin_Hastings No dangling pointers here, sir!
13:32 Austin_Hastings Nothing on the stack but us chickens...
13:36 Coke Whiteknight: I'm getting my segfault on copy.
13:46 Coke Whiteknight: aha. my .cloneable helper is a problem. Never used to be.
13:47 Whiteknight on copy? you mean the copy opcode?
13:48 Coke yes.
13:48 Coke but if I remove .cloneable, I get virtually no errors in make test.
13:48 Coke let me show you the code:
13:49 Coke http://code.google.com/p/partcl/sou​rce/browse/trunk/src/macros.pir#83
13:49 Whiteknight .cloneable is a method?
13:49 Coke it's a macro that implements the clone vtable on objects.
13:49 Coke it used to be required. Now it segfaults.
13:49 Coke (or causes them later.)
13:50 Whiteknight hmmm, that's very weird
13:50 Coke I'm guessing that class or object or default is now cloning properly, so I don't need it. Not sure why it would totally screw things up, though.
13:50 Whiteknight So you ARE using the copy opcode with this?
13:50 Coke I mainly switched over to copy some time ago, it seems.
13:51 Coke so in my segfaults, the copy opcode is the last one shown with -t1.
13:51 Andy joined #parrot
13:51 Coke but if I remove .cloneable, no more segfaults.
13:51 Whiteknight because the copy opcode calls VTABLE_clone internally, but the "set to undef" assignment there in your clone also calls clone on Object
13:51 Coke down to 19 errors in make test now.
13:52 Whiteknight w00t
13:52 Coke (from about 200)
13:54 Whiteknight progress++
13:57 dalek partcl: r371 | coke++ | trunk/src/ (5 files):
13:57 dalek partcl: Remove the .cloneable macro
13:57 dalek partcl: This was causing segfaults later in the bytecode; This macro used to be
13:57 dalek partcl: necessary, but default or class or object or whatever needed it seems to
13:57 dalek partcl: have a workable default now anyway. less code, less segfaults.
13:57 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=371
13:59 Coke next bug: set a 3; incr a -1; puts $a
14:00 Coke that should print "2" (a tclint), but instead prints "2.0" (a tclfloat)
14:00 Whiteknight what does the incr op do?
14:01 Coke +=
14:01 Coke s/op/command/
14:01 Whiteknight try: set a 3; puts $a. is it a tclint at that point?
14:02 Whiteknight what I mean is, what does it do internally
14:02 Coke http://code.google.com/p/partcl/source​/browse/trunk/runtime/builtin/incr.pir
14:03 Coke I see that I'm returning a clone. No idea why, let me see if I can remove that.
14:06 Coke it's a MMD problem. TclInt + TclInt is returning a TclFloat
14:06 Coke s/returning/converting to/?
14:06 Whiteknight weird
14:06 Coke it's really TclInt += TclInt; that's converting the TclInt to a Float.
14:06 Whiteknight MMD is one of those systems that I haven't gotten my grubby paws into yet
14:07 Coke I blame bacek. =-)
14:08 Coke seems to work with core parrot types.
14:11 Coke sadly, since this involves PMCs, making a test case becomes less trivial.
14:13 Infinoid most of what I know about MMD is to avoid it wherever possible
14:15 Coke http://code.google.com/p/p​artcl/issues/detail?id=81, if anyone can help me whittle that down to a parrot test case, awesome.
14:18 Andrey_Grehov joined #parrot
14:20 Andrey_Grehov hi guys, I was trying to `make` parrot and got this error, any ideas ? http://pastebin.com/d37fd3e27
14:21 Infinoid Integer.i_add(PMC*) doesn't recognise the base_type from TclInt, so it calls VTABLE_set_number_native() as a generic fallback (because it can't know whether the second PMC has a decimal component, and doesn't want to reduce precision.
14:21 Infinoid unfortunately, TclInt inherits from TclObject, and TclObject's set_number_native() automatically morphs to TclFloat.
14:22 Whiteknight Andrey_Grehov, that's a very interesting error
14:22 Infinoid Coke: So that's why you're getting that behavior
14:22 Coke Infinoid: "this used to work"
14:22 Whiteknight what platform are you on?
14:22 Andrey_Grehov (gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9))
14:23 Infinoid hmm...
14:23 * Infinoid appends a ")" to one of his lines above
14:23 Coke Infinoid: I also extend inInteger.
14:23 Coke "Integer"
14:23 Coke did MMD and multiple inheritence recently change/break?
14:23 Infinoid Reversing the order of those "extends" lines might make a difference
14:24 pmichaud Coke: fsvo "recently"
14:24 pmichaud although I don't know about multiple inheritance
14:25 Infinoid Integer.set_number_native seems to do the right thing, so if you can somehow convince it to call that instead of TclObject.set_number_native without breaking everything else, it should be progress
14:25 Coke if I reverse the lines, I get TclInt+=TclInt morphing to /Float/, not TclFloat, which is even worse. :|
14:26 Infinoid oh, I was wrong
14:26 Coke "stable for HLL developers my shiny metal ass."
14:26 Infinoid Did this work in 1.0?
14:26 particle1 partcl didn't work with parrot 1.0
14:26 particle1 so it is stable :P
14:27 wayland76 purl, remember, dead is stable
14:27 purl OK, wayland76.
14:27 wayland76 purl, dead
14:27 purl "God is dead." - Nietzsche "Nietzsche is dead." - God
14:27 Coke parrot broke so much for partcl since 0.9 I am just now (post 1.2) getting it working again.
14:27 Infinoid Coke: Okay.  Next idea, implement i_add method in TclInt and add a switchcase so it recognises TclInt PMCs
14:27 NotFound joined #parrot
14:28 Coke but I think this points out that bacek's change is probably not safe to go in without a deprecation warning. :|
14:28 Infinoid ...or just call SUPER() for everything other than TclInts
14:28 Infinoid I'm not so sure bacek's change was the cause of this.  He consolidated the previous MMD stuff, but did the behavior actually change?
14:30 Coke I'd have to bisect, which I can't do without a minimal test case, since parrot and partcl didn't work together for 3 or so revisions. =-)
14:30 wayland76 'night all, and thanks :)
14:30 pmichaud afaik, there are still quite a few unresolved issues from the mmd changes that occurred in the past few months
14:30 pmichaud do an RT search for "parrot mmd" and look for the open tickets.
14:30 Infinoid iiuc, all he did was move the type-switching logic out of MMD and into actual switch() statements
14:31 Coke Infinoid: did he test with HLLs? multiple inheritence? it's possible that MMD was handling a case that his simple switch fails at.
14:31 Coke <shrug> i'll see if I can provide a test case, but it's just a PITA, is all.
14:32 Coke s/he/the parrot test suite/
14:32 Coke </vent>
14:32 Infinoid I tested it with rakudo
14:33 Infinoid so I know he was at least *aware* of the failures :)
14:33 nopaste "Infinoid" at 24.182.55.77 pasted "I think TclInt needs this vtable" (13 lines) at http://nopaste.snit.ch/16685
14:33 Andrey_Grehov Whiteknight: any ideas why that can happen ?
14:34 Coke hurm. my $Id$ strings are still reflecting parrot. whoops.
14:34 Coke Infinoid: EW.
14:34 Infinoid Coke: please try my above nopaste, but I don't understand dynpmcs very well, so the enum_class_TclInt may need to be replaced with something more dynamic.
14:37 Coke I don't want to hardcode every single kind of integer out there. =-)
14:37 Coke and, as you noted, enum_class_TclInt doesn't work.
14:37 Infinoid Integer assumes you've given it a float unless it recognises the type as an integer
14:37 Coke then Integer's integer recognition is wrong.
14:38 Infinoid Patches welcome.
14:38 purl rumour has it patches welcome is ponies welcome or Set Objectives, Achieve Results! or swahili for "Put up or shut up."
14:38 Infinoid I don't know of a better way, but I'm certainly open to suggestion
14:39 Infinoid https://trac.parrot.org/parrot/brow​ser/trunk/src/pmc/integer.pmc#L428 is the current way
14:42 Infinoid Is this something that would work as a role?
14:42 Theory joined #parrot
14:44 Infinoid ah, I guess the right value is dynpmc_TclInt
14:45 Whiteknight NotFound: ping
14:45 NotFound pong
14:46 Whiteknight NotFound: Infinoid are doing some refactoring in the IO subsystem that will probably mix nicely with your work on StringHandle
14:46 Whiteknight https://trac.parrot.org/parrot/wiki/IOTasklist and the "io_rewiring" branch
14:47 NotFound I was just reading fperrad message abou Lua using StringHandle
14:47 dalek TT #713 created by coke++: Too little MMD? i_add doesn't know about subclasses.
14:47 Coke Infinoid: there. my suggest is to revert that commit. =-)
14:47 Coke "suggestion"
14:48 Whiteknight We're trying to refactor out the PCCINVOKE calls from the IO system, and use inheritance to group IO PMCs
14:48 Infinoid Coke: Does reverting it locally have an effect on partcl?
14:49 NotFound Whiteknight: using vtable functions instead of methods?
14:49 Whiteknight NotFound: VTABLEs are too limiting for this, probably poking at the Parrot_*_attributes structures directly
14:50 Whiteknight we're going to try it, don't know if it will work out. We have high hopes!
14:50 Infinoid Coke: Also, this was cotto's r38000, bacek's tt452_reduce_mmd branch hasn't hit trunk yet
14:50 NotFound Whiteknight: and what attribute type can be used to the handlers?
14:50 pmichaud I wonder to what degree TT #713 is related to RT #60036
14:51 Infinoid Coke: But if we find a better way of resolving types for one, we should review the other as well
14:52 pmichaud I should note that Rakudo's "solution" to the mmd issues with the inplace opcodes has been to avoid them altogether.
14:53 NotFound Whiteknight: the problem I'm looking now is that the StringHande has no mean for setting or getting the string other than read or write. So you need to always open for rw or reopen... or just ignore the mode as the current status does.
14:55 Coke Infinoid: Yes, reverting r38000 (which was integer only) fixes the partcl bug.
14:55 NotFound Solving that anomaly may simplify testing of any refactor.
14:56 Coke Infinoid: documented confirmation on 713.
15:00 Coke pmichaud: do you create a new pmc and then copy it over the old one?
15:00 Coke I'll use whatever the /right/ solution is. that just seems to change too often to keep up. =-)
15:03 pmichaud Coke: yes, that's what we effectively do.
15:03 pmichaud I don't know that that's the "right" solution, but it's the only reliable one at the moment.
15:03 Whiteknight NotFound: okay, that makes good sense
15:05 NotFound Whiteknight: using methods can be the safer way for a now, to leave vtable clean in case we want to use it for generic handles
15:05 dalek partcl: r372 | coke++ | wiki/ParrotIssues.wiki:
15:05 dalek partcl: another parrot bug
15:05 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=372
15:05 exec-kula joined #parrot
15:06 NotFound So I plan to add get_string and set_string methods, and fix examples, test and Lua to use them before any other change.
15:06 Coke with that patch to parrot, down to 11 errors.
15:06 Whiteknight in the refactor, I'm planning to use roles like "read" and "write" to determine behavior
15:06 Whiteknight so your StringHandle will always return true for "does 'read'" or "does 'write'"
15:07 Whiteknight and then you don't need to open it specially
15:07 Coke (6 of which will go away when auto-loading of commands written in tcl works again.)
15:08 NotFound I don't think that is a good idea. Allowing writing in a StringHandle intended only for reading is a source of difficult to catch bugs.
15:08 awoooe Question: Does Parrot have VM services to handle network stuff?
15:08 jonathan awoooe: It has socket support.
15:09 awoooe jonathan: thanks
15:10 NotFound Whiteknight: but we can make rw the default, if we find that is the most common usage.
15:11 Whiteknight NotFound, the default rw works too. Whatever you think is best
15:12 NotFound The current examples seems to like rw, but this is just beacuse of not having other way to get the result after writing on it.
15:12 Whiteknight right
15:12 jonathan awoooe: I think there's some examples of it in the examples directory.
15:13 Whiteknight NotFound, we could use add_role and remove_role to change it's behavior without having to close/open it
15:13 dalek rakudo: 5e132db | moritz++ | lib/Safe.pm:
15:13 dalek rakudo: crude initial safe mode
15:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​e132db58d50f00bcef887b4b4a535c15ddc1741
15:14 awoooe jonathan: Is there a list of what the win32 binary variant *doesn't* have?
15:15 jonathan awoooe: Not quite sure I follow - you mean what isn't included in the Win32 Parrot binary package on SourceForge?
15:16 jonathan If so I guess check its wiki...but I think the script used to produce the binary is also there.
15:18 awoooe Well no, it's not that, but it just doesn't have examples or anything and I'm not really 100% sure how parrot is setup yet. I mean if only abc, befunge and squaak are setup by default that's fine and I have to figure out how everything else is working, but if the *nix setup has more stuff and it's stripped out I have to fill in the gaps.
15:20 donaldh joined #parrot
15:20 NotFound awoooe: there is no *nix setup. Any binary package is a thing under control of the people that creates that package.
15:22 awoooe NotFound: I meant the svn co /config/make chain by that setup
15:24 NotFound awoooe: the parrot svn repository now doesn't have a buch of languages. Most migrated to their own homes.
15:25 awoooe Ok thanks
15:30 dalek rakudo: b6640c2 | moritz++ | lib/Safe.pm:
15:30 dalek rakudo: [Safe.pm] remove debugging statement; add documentation
15:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​6640c252cdbc1a3026ae508864fd20834046f54
15:32 Andrey_Grehov left #parrot
15:37 Infinoid Whiteknight: None of the packfile* tests pass in the io_rewiring branch, is that expected?
15:37 nopaste "infinoid" at 65.18.171.17 pasted "[PATCH] TT #713: try to be a little smarter about Integer subclasses" (42 lines) at http://nopaste.snit.ch/16686
15:39 Whiteknight Infinoid: I can't imagine it's expected, but I haven't run any tests yet
15:39 Whiteknight Have to double-check all the packfile stuff to make sure FileHandle.freeze() isn't being borked by these changes
15:40 Coke Infinoid: trying now.
15:40 dalek parrot: r39196 | whiteknight++ | branches/io_rewiring/src/pmc (2 files):
15:40 dalek parrot: [io_rewiring] add a prototype does() vtable for FileHandle
15:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39196/
15:40 Infinoid I'm out of parrot tuits for today, I didn't manage to get any nifty I/O stuff done :(
15:40 Infinoid bye all &
15:40 Whiteknight Don't worry about it, we have plenty of time
15:40 Whiteknight later
15:40 * Whiteknight out to lunch
15:41 Coke Infinoid: ping!
15:43 * Coke updates the ticket. (Infinoid++'s patch works)
16:05 darbelo joined #parrot
16:17 iblechbot joined #parrot
16:20 * Coke finds YA BUg.
16:20 dalek TT #714 created by coke++: can't copy undef to null
16:23 dalek partcl: r373 | coke++ | wiki/ParrotIssues.wiki:
16:23 dalek partcl: Edited wiki page through web user interface.
16:23 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=373
16:32 Whiteknight Coke: TT # 714 is nonsensical. an error message is what it should do
16:32 Coke again, "this code used to work."
16:32 Whiteknight then it was working mistakenly, and should not have been working
16:32 Coke what is nonsensical about it?
16:33 Whiteknight you can only copy a PMC to existing storage. No storage, no copy
16:33 dukeleto joined #parrot
16:33 Coke PMCNULL has storage, no?
16:33 Whiteknight not in the normal sense, it's a singleton
16:33 Whiteknight and you don't want to be overwriting that for the entire Parrot core
16:33 NotFound Coke: PMCNULL is just  a NULL on steroids.
16:33 Coke no, but THIS USED TO WORK. =-)
16:34 Austin_Hastings Copy-on-write?
16:34 purl it has been said that Copy-on-write is difficult to force..
16:34 NotFound Is a NULL that can catch bad usages and throw nicely.
16:34 Whiteknight Coke: again, should not have worked
16:34 Coke Whiteknight: Patches Welcome for partcl.
16:35 Whiteknight I'm happy to help you work around it, but I can't think of a sane way to make it do what you think it should do
16:36 Whiteknight maybe sombody more knowledgable then myself has a better answer
16:36 Coke wow, svn-bisect has horked my checkout dir.
16:38 NotFound First argument of copy is inout, so it looks like it can be made to work.
16:38 Coke "again"
16:39 flh joined #parrot
16:40 NotFound If we decide to make it work, we must definitely add a test for it.
16:43 Coke bah. going back so far, languages/ just re-appeared.
16:45 NotFound And if not, we must also a test.
16:46 Whiteknight I really don't like this copy opcode
16:47 Coke neither did chromatic, as I recall, and he wrote it.
16:47 NotFound Whiteknight: I'm looking at it, and the memmove smell bad to me.
16:47 Whiteknight I'm convinced it's borking up handling of pmc_ext
16:47 Whiteknight and it obviously doesn't support null properly
16:48 Coke NOW.
16:48 Coke sorry to keep harping on that. :|
16:48 Whiteknight Coke: did it "work" previously, or did it just not fail like this?
16:48 Whiteknight because there's a difference between it being essentially a no-op, and it being a failure condition
16:49 Coke "make test" passed.
16:49 Coke now it don't.
16:49 NotFound Making it a no-op might be a good solution.
16:49 Coke So it may very well have been a do nothing in my case before. I can't tell you without finding the version where it used to work.
16:50 Whiteknight I don't know that this particular use-case ever "worked"
16:50 awoooe Question: Is there an opcode for spawn but don't wait?
16:50 Whiteknight where "worked" means something different from "just didn't fail"
16:56 Whiteknight urg, this is a pain. I'm going to have to make a branch to get this fixed
16:56 Whiteknight need to edit too many functions in too many files
16:56 Whiteknight awoooe: like a fork?
16:58 awoooe Whiteknight: yeah. I want to be able to call a proc without blocking and just pass through.
16:59 Whiteknight awoooe: We do have pipes now, but I don't think we have a non-blocking stand-alone spawn
16:59 awoooe This makes me sad. :(
17:00 NotFound awoooe: Why do you need that? Maybe there's a easy workaround
17:00 Whiteknight it's probably a feature we need to add eventually
17:01 awoooe NotFound: the particular case I want to do is to have my program running on the VM to open a ssh tunnel to a remote server
17:01 NotFound awoooe: What OS?
17:01 awoooe so ssh somehost.org using a cert -L5900:127.0.0.1:5900
17:01 awoooe Win32 hopefully
17:02 awoooe (so techinically plink, but same thing)
17:03 davidfetter joined #parrot
17:05 * Coke wonders where the karma is.
17:06 awoooe I mean in theory I can embed it but I would rather hook it up via PIR or a language on top of PIR instead of embedding it in an executable and dealing with writing a config manager. I don't know, it just seems roundabout that way.
17:06 NotFound Mmmm... I don't know if there is a windows equivalent of the setsid command
17:06 Coke moritz: I am having the same trouble with tcl against parrot head.
17:06 Coke (and I'm not using PCT at all.)
17:06 moritz Coke: which troubles?
17:07 dalek partcl: r374 | coke++ | trunk/runtime/builtin/array.pir:
17:07 dalek partcl: Whiteknight++ points out it doesn't make sense to try to replace a Null
17:07 dalek partcl: with an Undef here; Just leave it alone.
17:07 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=374
17:07 dalek partcl: r375 | coke++ | wiki/ParrotIssues.wiki:
17:07 dalek partcl: avoided a not-quite-a-bug.
17:07 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=375
17:07 Coke moritz: perl#66050
17:07 Coke hit ^D, it's just like hitting enter.
17:07 Coke I suspect something in IO changed recently.
17:08 moritz Coke: seems like
17:08 Coke exit doesn't work for me either.
17:08 awoooe There is a Win32 set pid function, I guess I could dll load it and strip it out all backwards but I don't know. It seems sort of roundaboutl
17:08 Coke oh.
17:08 Coke which means it's probably not IO but exception handling.
17:08 moritz Coke: is exit a tcl function?
17:08 Coke moritz: yes. moment.
17:08 NotFound awoooe: I mean the setsid command, not the function
17:09 awoooe Then no.
17:09 Coke http://code.google.com/p/partcl/source​/browse/trunk/runtime/builtin/exit.pir
17:09 Coke line 26 is the important one. =-)
17:09 awoooe winders does not have proper command line handling of processes
17:09 Coke down to 10 failures in partcl, thanks to Whiteknight++'s suggestion.
17:10 awoooe which is why I am toying with the idea of having the VM shore up the weak points.
17:11 Whiteknight Don't thank me, I was being a curmudgeonly naysayer
17:12 NotFound awoooe: using the setsid command, or an equivalent, has the advantage that parrot doesn't need to take care of child processes hanging around.
17:16 awoooe NotFound: but what if I want to take care of child processes?
17:16 awoooe :(
17:17 NotFound awoooe: here lies the difficult: to implement want you want, we need a way to tell if we want to take care of them or not.
17:20 flh joined #parrot
17:20 Coke Whiteknight: it's my way of apologizing for getting pissed at the messenger.
17:21 awoooe I mean all I really want is spawn to pass through and continue running and give me a kill command and I'm happy.
17:21 Coke last failure seems to be namespace related.
17:21 Coke [namespace children] used to return ::tcl ; now it seems to be returning lots of things under ::parrot.
17:22 HG` joined #parrot
17:24 NotFound I've tested two ways of copy to PMCNULL: doing a clone, and doing nothing. Both pass all test.
17:25 Coke NotFound: might make more sense to throw an error as WK suggests.
17:25 Coke making null as infectious as it is elsewhere.
17:26 NotFound EXCEPTION_NULL_REG_ACCESS?
17:26 NotFound EXCEPTION_INVALID_OPERATION?
17:26 Coke probably the former.
17:26 purl i guess probably the former is good enough
17:26 NotFound EXCEPTION_UNEXPECTED_NULL?
17:26 Coke (whatever you get when you do something like null $P1; $P1 = 3)
17:27 Coke at a aguess.
17:28 Coke Any idea why I have a Codestring namespace in my HLL 'tcl' namespace?
17:28 Coke ah. wonder if I need to update to use root_new. :|
17:29 NotFound NULL PMC vtable functions throws EXCEPTION_NULL_REG_ACCESS "Null PMC access in ...."
17:31 Coke ayup.
17:32 Coke pmichaud: does that make sense to you? "new 'CodeString'" was infecting the top level 'tcl' namespace, but root_new doesn't.
17:32 Coke (and <broken record> this didn't use to happen.)
17:36 Austin_Hastings I have a PCT question.
17:37 NotFound Coke: root_new has been introduced to clean up that things
17:37 Austin_Hastings In the current PGE/PCT system, I know you can pass parameters to rules, like <string_literal: X>
17:37 Coke NotFound: what things? =-)
17:37 Austin_Hastings Can you pass more than one parameter? If so, what's the syntax?
17:37 * Coke will find the root_new thread and comment on it. :|
17:38 pmichaud Coke: yes.
17:38 NotFound Coke: infecting hll namespaces, doing inconsistent things, or broke code.
17:38 pmichaud Coke: using new 'CodeString'  causes a new PMCProxy to be placed in the current HLL namespace
17:38 pmichaud (which is bad)
17:39 pmichaud so, the solution is to use    root_new ['parrot';'CodeString']     instead
17:39 NotFound And hopefully, in future releases will not work.
17:39 pmichaud what is worse, when run from an HLL other than Parrot,   "new 'CodeString'"  creates a new PMCProxy object on each invocation
17:40 pmichaud that's what caused Rakudo to become so slow.
17:40 pmichaud (when it switched to its own HLL)
17:40 Coke pmichaud: It didn't use to do that. when did that behavior change?
17:40 pmichaud Coke:  I suspect it has always done that.
17:40 NotFound The alternative was to always look for the PMC in the parrot namespace. root_new is a shorthand of that.
17:40 Coke pmichaud: again, no.
17:40 Coke as with most of my other complaints today, "tcl used to work. now it doesn't." =-)
17:41 pmichaud Coke: then I don't know.  There have been a number of "fixes" to Parrot_oo_get_class to try to get it to work properly with namespaces
17:41 pmichaud most of them stemming from trying to use strings as class identifiers.
17:42 pmichaud (passing parameters to rules)  -- at present can only pass one parameter
17:42 pmichaud and the parameter needs to be quoted
17:42 pmichaud <string_literal:  'x'>
17:42 pmichaud <string_literal: X>  # works, but is deprecated
17:43 Austin_Hastings Okay, thanks. I'll split the param
17:44 NotFound Testing now throwing EXCEPTION_NULL_REG_ACCESS, "Null PMC in clone". I think is safe to commit it right now, anyone objects?
17:44 pmichaud if it passes tests, I see no problem :-)
17:47 Coke pmichaud: followed up to your root_new post.
17:49 dalek parrot: r39197 | NotFound++ | trunk/src/ops/set.ops:
17:49 dalek parrot: [cage] cleaner fail when dest of the copy opcode is null, TT #714
17:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39197/
17:50 Coke NotFound: should that error say "in clone" or "in copy" ?
17:50 NotFound Oooopsssss :-X
17:51 Coke NotFound++
17:51 pmichaud Coke: making "new" work the way it used to is probably not a good idea.
17:52 pmichaud $P0 = new "Integer"     could mean something different depending on whether the HLL has defined its own Integer class
17:52 pmichaud I agree that the existing creation of proxies in the HLL namespace is broken and needs fixing.
17:53 pmichaud fixing that should correct the problems you're seeing with NCI, Sub, and MultiSub
17:55 Coke ok. I again posit that whenever we broke new (and before we said "root_new is the new new") we should have gone through a deprecation cycle.
17:55 Coke but at this point will settle for a workaround.
17:56 Coke s/workaround/something that works/
17:56 dalek parrot: r39198 | NotFound++ | trunk/src/ops/set.ops:
17:56 dalek parrot: [cage] fix a silly mistake in r39197
17:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39198/
17:56 Coke I look forward to actually being to run partcl's test suite just before the 1.3 release. =-)
17:56 pmichaud it's completely valid to claim that 'new' is broken and should be fixed to work the way it did before
17:56 NotFound Coke: the deprecation cycle is the reason that it keeps creating proxys. If not, it just will fail.
17:56 pmichaud we aren't deprecating 'new' itself, nor has anyone made an intentional change
17:57 Coke NotFound: it did not used to fail. =-)
17:57 pmichaud 'new' still doesn't fail.
17:57 pmichaud it just creates proxies where youdon't expect them.
17:57 Coke pmichaud: it fails to not cram stuff into my namespace.
17:57 Coke where it did not used to do that.
17:57 NotFound Coke: I think still not fails, just does a bad work.
17:57 pmichaud okay, and that's not a desired feature
17:57 pmichaud nobody is expecting new to do that
17:57 pmichaud afaik, nobody wants new to do that
17:57 pmichaud nor does anyone rely on new doing that
17:57 Coke ok. saying "it doesn't fail" is just wordsmithing.
17:57 NotFound I'm the Spanish Inquisition
17:58 pmichaud if you're saying "we should fix new", I'm 100% with you
17:58 NotFound But to fix it, we need the deprecation cycle
17:58 Coke hokay.
17:58 pmichaud if you're saying "we should fix new to work exactly like it did before", I need to know which "before" you're referring to
17:58 Coke NotFound: *THWAP*
17:58 pmichaud NotFound: do we?
17:58 pmichaud NotFound: that would depend on when it broke, wouldn't it?
17:58 Coke I hope he's just funning with me.
17:59 NotFound pmichaud: I don't see any other reason for not making it fail now.
17:59 pmichaud NotFound: okay, that's a different "fix new" then
17:59 pmichaud one fix would be to make sure that  new 'Something'  doesn't create PMCProxies in the HLL namespace
17:59 pmichaud that would make it work like it did before
18:00 Coke yes, if the current broken behavior shipped in 1.0 (which is entirely possible), we need a deprecation notice.
18:00 pmichaud another fix would be to cause    new 'Something' to fail completely
18:00 pmichaud that definitely requires a deprecation notice
18:00 pmichaud if creating PMCProxies in the HLL namespace is a behavior that was introduced after 1.0, then we can fix that without having to make a deprecation notice
18:00 pmichaud because that shouldn't happen regardless
18:01 NotFound pmichaud: ah, yes, I forgot that possibility, but I don't think we want that.
18:01 pmichaud I do.
18:01 pmichaud As Coke points out, there are places where we cannot easily switch to 'root_new', and where it's currently broken.
18:01 pmichaud For example, Sub, MultiSub, and NCI.
18:01 pmichaud The only way to fix those will be to fix the behavior of the existing PMCProxy creation so that it does them in the 'parrot' namespace.
18:02 pmichaud and that is independent of whether or not    new 'Something'   fails from PIR.
18:02 Coke I'm glad pmichaud understood my bug report, as I'm just starting with "my test fails and it didn't used to." =-)
18:04 pmichaud It would be good to know at what point the Parrot behavior changed there.
18:05 NotFound Are we sure the behavior changed? Maybe just no one noticed the problem.
18:05 Coke NotFound: Let me repeat myself: "Tcl used to pass this test."
18:05 Coke "it no longer does".
18:05 pmichaud Given what Coke says, I'm about 80% certain the behavior changed.
18:05 Coke so, yes, I'm fairly certain that some behavior has changed. this particular behavior looks pretty incriminating.
18:06 NotFound Ah, sorry, I thing I was mixing problems.
18:06 pmichaud I _know_ that there have been quite a few changes to proxypmc handling over the past 4 months.
18:06 japhb joined #parrot
18:09 Coke I do wish I had been able to keep up with all the parrot changes that occurred as 1.0 was getting prepped so these sorts of things could have been caught as they happened.
18:10 pmichaud Coke: if it makes you feel any better, keep in mind that I get to deal with changes on two fronts (both parrot and Perl 6)
18:10 contingencyplan joined #parrot
18:12 Coke pmichaud: nah. I've had to upgrade through six versions of tcl 8.5. =-)
18:12 Coke I still have todo tests where I implemented something and they changed the spec on me. =-)
18:12 Coke granted, they move a LOT slower than @Larry does.
18:12 pmichaud :-)
18:14 nixfreak joined #parrot
18:15 Coke so if that issue is fixed, it just leaves [auto_load] failing.
18:15 nixfreak are there any docs for compiling pyton on parrot ?
18:15 Coke pynie?
18:15 purl pynie is going to be nqp-ized as well
18:16 Coke no, pynie is http://code.google.com/p/pynie/ or a Python implementation for the Parrot virtual machine
18:16 purl okay, Coke.
18:16 nixfreak yeah I read that already
18:16 Coke just feeding the bot.
18:17 nixfreak can you run python on parrot yet
18:17 Coke nixfreak: http://code.google.com/p/pyni​e/source/browse/trunk/README has docs on building pynie. not sure if they're up-to-date after the 1.0 parrot release.
18:18 Coke pmichaud is listed as a maintainer, though; I'll defer to him; I haven't hacked on pynie at all.
18:19 pmichaud There have been a number of changes to pynie in the past couple of months, so I don't really know what its current status is.
18:19 pmichaud I would expect it to be   "perl Configure.pl;  make"  if it matches other languages
18:19 Coke nixfreak: at a guess, the lib/Test/parrot/*.py files passed at one point.
18:19 Austin_Hastings Is there a way to express if-then inside a rule?
18:20 nixfreak so do iI need to d/l pynie then , or does parrot already have a python compiler in it ?
18:20 Austin_Hastings I'm looking to say that if this pattern is true, this other pattern must match, else never mind.
18:20 NotFound pmichaud: last time I checked, it wasn't
18:20 Austin_Hastings It's not quite [ A B ]?
18:20 Coke parrot doesn't ship with python, no.
18:20 dalek parrot: r39199 | NotFound++ | trunk/t/op/copy.t:
18:20 dalek parrot: [test] add a test for copy to null, TT #714
18:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39199/
18:20 Theory_ joined #parrot
18:20 pmichaud Austin_Hastings: why isn't it  [A B ]?
18:21 Austin_Hastings Because they can fail, and it doesn't have any effect.
18:21 nixfreak is parrot only used for perl6 and NQP at the moment ?
18:21 Austin_Hastings What I need is, "if A, then B is required. If not A, nevermind
18:21 pmichaud oh, I see
18:22 Coke nixfreak: no. there's a bunch of languages in various states of done-ness. moment.
18:22 pmichaud [ A [ B || <.fail> ] ]?
18:22 Austin_Hastings I think there is some talk about & in the grammar spec, but I don't know if it's there yet.
18:22 NotFound nixfreak: several languages used to be in the parrot repository. Now most of them migrated, you need to install them separately
18:22 Coke nixfreak: https://trac.parrot.org/parrot/wiki/Languages
18:23 Austin_Hastings Is || working ?
18:23 pmichaud Yes, it's | that doesn't quite work properly.
18:23 pmichaud (The | fails to understand LTM)
18:23 pmichaud currently | and || are identical in PGE
18:24 Austin_Hastings [ <?decl_mode_is: 'param'> [ <!before ')'> || <.fail> ] ]?
18:29 Coke yay, I can run partcl on osx again.
18:30 Coke (still get a ton of linking issues, but they are not fatal now.)
18:31 pmichaud Coke: reply sent.
18:31 Coke already read. danke.
18:31 nixfreak looks like lua is being activly developed
18:32 Coke yes. lua is pretty much the poster child.
18:32 Coke fperrad++
18:35 Coke pmichaud: based on your comments in the email, the /right/ way to create a CodeString if you're not sure you're in the root NS is root_new ?
18:37 Coke (and if root_new always works, why do we need new at all?)
18:37 Coke (ignoring my proxy issues)
18:37 nixfreak It looks like pirate is still being developed
18:38 nixfreak PIRATE TEST RESULTS last run: Wed May 27 08:00:41 EDT 2009 this file is generated daily from the latest versions of pirate and parrot.
18:39 iblechbot joined #parrot
18:39 NotFound nixfreak: that message just means that is actively tested
18:39 Coke pretty much everything is still "under development", yes.
18:39 Coke oh, great, tcl 8.6 is in beta.
18:40 * Coke sees an APL comment perl6-l and refrains.
18:40 nixfreak so why did all the languages get taken out of parrot
18:42 Coke packaging, encouraging development against stable releases of parrot, licensing, copyright...
18:42 NotFound 'Because the bosses said so' X-)
18:45 darbelo nixfreak: it also avoids bloating the parrot realeases with languages you don't care about.
18:45 nixfreak ok makes sense , is there going to be a "package manager" for parrot for installing other languages ?
18:45 pmichaud Coke: one could use root_new exclusively and avoid new altogether.  However, 'new' is slightly faster.
18:46 Coke in all cases? wasn't root_new also a speed concern?
18:46 Coke er, implemented because of speed concerns?
18:46 pmichaud root_new was a speed concern because 'new' was generating the extra PMCProxys
18:46 pmichaud root_new itself is slower than 'new'
18:46 pmichaud (slightly, but slower)
18:47 pmichaud if 'new' hadn't been generating the extra PMCProxys, then speed likely wouldn't have been an issue.
18:47 Coke pmichaud: any chance you could convert the conversation on list to a closable trac ?
18:47 pmichaud probably multiple closable tracs, yes.
18:47 pmichaud I need to build a test case for the incorrect PMCProxy creation
18:47 pmichaud I'm about to do that but have a couple of other things that need doing first
18:47 pmichaud that's an obvious trac
18:49 dalek markdown: fb85fc4 | fperrad++ | config/makefiles/root.in:
18:49 dalek markdown: [config] update variable name (doc_dir -> docdir)
18:49 dalek markdown: see http://trac.parrot.org/parrot/changeset/39165
18:49 dalek markdown: review: http://github.com/fperrad/markdown/commit​/fb85fc46702a5d29420c956e22073464d92fe80c
18:49 dalek xml: 3db549f | fperrad++ | build/Makefile.in:
18:49 dalek xml: [config] update variable name (doc_dir -> docdir)
18:49 dalek xml: see http://trac.parrot.org/parrot/changeset/39165
18:49 dalek xml: review: http://github.com/fperrad/xml/commit/3d​b549f7762a0d59a4962569c42f12c589fa8558
18:50 pmichaud nixfreak: (package manager)  - in general, I think that we expect individual distributions (linux, bsd, windows, other) to handle packaging, instead of a parrot-specific package manager.
18:50 dalek lua: 1a2aa57 | fperrad++ | config/makefiles/root.in:
18:50 dalek lua: [config] update variable name (doc_dir -> docdir)
18:50 dalek lua: see http://trac.parrot.org/parrot/changeset/39165
18:50 dalek lua: review: http://github.com/fperrad/lua/commit/1a​2aa578b7afd87333905a971597da5e6a58f126
18:50 dalek wmlscript: 6fdee41 | fperrad++ | config/makefiles/root.in:
18:50 dalek wmlscript: [config] update variable name (doc_dir -> docdir)
18:50 dalek wmlscript: see http://trac.parrot.org/parrot/changeset/39165
18:50 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/6fdee41897a1025db1b8a6565e655a2f6813d7c3
18:51 nixfreak I was just curious , just trying to learn more about parrot , I really think the vm is going to take off and I hope it works out better then mono /.NET / jvm
18:51 Whiteknight nixfreak: we hope so too!
18:54 nixfreak and its all open that's the best of it all
18:54 Tene pmichaud: you recommended storing exported symbols for the 'parrot' compiler internal to the compiler... how would you like that indexed?  join the namespace keys with ';' and put stuff in a hash?
19:20 donaldh joined #parrot
19:26 pmichaud Tene: joining namespace keys with ';'  -- No.
19:26 pmichaud I'm really against string representations of namespaces/classes unless/until there's a definitive separator.
19:27 pmichaud for the 'parrot' compiler itself, I wouldn't be against following the way rakudo/Perl 6 is managing its exported symbols (as custom namespaces)
19:27 pmichaud but I don't know if other parrot libraries will like that.
19:27 pmichaud I'm in the process of refactoring 'use' and 'import' in Rakudo today -- perhaps I'll have some better ideas when I complete that.
19:29 Tene pmichaud: I wanted to store them in the namespace like rakudo does, but you suggested using an internal hash instead.  I was asking for more details on how you imagined I'd do that.  I don't like the stringification either.  :)
19:29 Tene I'll wait for your refactors.
19:29 pmichaud my apologies -- I misunderstood what you were asking before
19:29 pmichaud for the generic HLLCompiler interface, I think it should not rely on namespaces
19:30 pmichaud but for the 'parrot' HLLCompiler, namespaces would be okay with me.
19:30 Tene OK
19:34 ZuLuuuuuu joined #parrot
19:42 davidfetter joined #parrot
20:00 pmichaud phone
20:07 Austin_Hastings left #parrot
20:45 rdice joined #parrot
20:46 bacek joined #parrot
21:09 comet joined #parrot
21:10 afk_coke oh, hay, that's 2 things I missed this week.
21:12 pmichaud Coke: as a useful data point -- whatever happened to cause the PMCProxy objects to start showing up in the HLL namespace has happened since 1.0.0 (i.e., it wasn't occurring in 1.0.0 itself)
21:12 pmichaud which means we can fix it without a deprecation cycle.
21:12 pmichaud Indeed, it means we would officially need a deprecation cycle to keep the incorrect behavior.
21:12 pmichaud (which we don't want)
21:13 NotFound Coke: do you want a partcl patch with a lot of new -> root_new changes?
21:14 szbalint left #parrot
21:14 NotFound BTW, the creator of the Sub, MultiSub and NCI proxies is the isa_s opcode.
21:15 NotFound isa calls Parrot_oo_get_class_str
21:15 pmichaud oh!
21:15 pmichaud in that case, those need to be changed.
21:15 pmichaud the correct way to test 'isa' would be
21:16 pmichaud $P0 = get_root_namespace ['parrot';'Sub']
21:16 pmichaud $I0 = isa $P1, $P0
21:17 szbalint joined #parrot
21:17 NotFound Sorry, I don't explain well. The calls to VTABLE_isa are.
21:17 NotFound And they are done from C.
21:18 pmichaud I'm not seeing that.
21:18 pmichaud (from my PIR code)
21:20 NotFound src/pmc/namespace.pmc line 250
21:23 pmichaud I'm still not able to get it to fail.
21:23 NotFound In this function checks with VTABLE_isa the three offenders: Sub, MultiSub and NCI
21:23 NotFound The fail is the namespace test in partcl
21:24 pmichaud I've got another small test that should fail if that's the culprit.
21:24 NotFound Let me see it
21:25 nopaste "pmichaud" at 72.181.176.220 pasted "test for pmcproxy creation via vtable_isa" (23 lines) at http://nopaste.snit.ch/16692
21:25 bacek morning, good morning
21:26 nopaste "pmichaud" at 72.181.176.220 pasted "example of incorrect pmcproxy creation" (13 lines) at http://nopaste.snit.ch/16693
21:30 mj41 TapTinder is back online with 32bit FreeBSD and Linux (on VMWare) ... http://tt.ro.vutbr.cz/
21:31 mj41 night, good night
21:31 Coke NotFound: Sure, patches welcome. I'll even give you commit bits if you want.
21:31 pmichaud afaict, the NameSpace PMC inherits VTABLE_isa from Hash.pmc, which inherits it from default.pmc
21:31 pmichaud and VTABLE_isa in default.pmc doesn't call Parrot_oo_get_class_str, afaict
21:31 Whiteknight joined #parrot
21:32 NotFound pmichaud id isa in the Class PMC
21:32 NotFound s/id/is
21:33 skids joined #parrot
21:33 pmichaud oh yes, because it's from value
21:33 pmichaud which would be a Sub in this case
21:33 NotFound I don't know why this examples don't fail, but when I tweaked it to avoid creating Sub proxies, worked fine.
21:33 pmichaud I can get one that fails.
21:33 pmichaud Just a sec.
21:34 pmichaud bingo
21:34 pmichaud nopasting.
21:34 nixfreak left #parrot
21:35 nopaste "pmichaud" at 72.181.176.220 pasted "example of incorrect pmcproxy creation" (15 lines) at http://nopaste.snit.ch/16694
21:35 pmichaud so, the real problem seems to be VTABLE_isa in the class.pmc
21:36 NotFound That depends. If we avoid to call isa 'Sub' from namespace, maybe the problem disappears without touching class.
21:36 pmichaud no, that's not it.
21:36 pmichaud more nopastes coming.
21:36 nopaste "pmichaud" at 72.181.176.220 pasted "worked correctly in 1.0.0" (24 lines) at http://nopaste.snit.ch/16695
21:37 nopaste "pmichaud" at 72.181.176.220 pasted "another failure in trunk, not involving the NameSpace PMC" (14 lines) at http://nopaste.snit.ch/16696
21:38 pmichaud the problem isn't the NameSpace PMC
21:38 pmichaud (as nopaste #16696 demonstrates)
21:39 pmichaud the *real* problem is that Parrot_oo_get_class_str builds PMCProxy objects in namespaces it has no business doing so.
21:39 NotFound Yes, looks like that is the main problem
21:42 pmichaud making a ticket for it.
21:43 nopaste "NotFound" at 213.96.228.50 pasted "parctl root_new patch" (1133 lines) at http://nopaste.snit.ch/16697
21:44 NotFound Coke: here is
21:52 Coke NotFound: testing...
21:55 kesselhaus joined #parrot
21:56 kesselhaus hi, does someone here maintain SF net packages?
21:57 Coke do you mean 'parrotwin32' ?
21:57 Coke kesselhaus: do you mean 'parrotwin32' ?
21:58 kesselhaus actually, setup-parrot-1.2.0-rakudo-17.exe
21:58 kesselhaus SF net says, there is none available
22:00 pmichaud Coke: TT #715 should be your friend, if someone will address it :-)
22:00 pmichaud afk # dinner
22:00 NotFound pmichaud: I'm checkin a dirty quick fix
22:01 pmichaud I really worry about the "dirty quick fix"es
22:01 pmichaud I suspect it's a "dirty quick fix" that led to this problem in the first place.
22:02 NotFound I can clean it after testing, I hope ;)
22:02 dalek TT #715 created by pmichaud++: [bug] various operations create (incorrect) PMCProxy objects in HLL ...
22:13 dalek parrot: r39200 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc:
22:13 dalek parrot: [pmc] Fall to MMD in default case of Integer.i_op.
22:13 dalek parrot: This preserve old behavior of MMD based dispatch.
22:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39200/
22:13 dalek parrot: r39201 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc:
22:13 dalek parrot: [pmc] Refactor Integer.i_divide to the same style as other i_op methods.
22:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39201/
22:15 wayland76 joined #parrot
22:18 kesselhaus pmichaud: its not in parrot-1.1.0
22:20 NotFound With my previous partcl patch and the quick fix, partcl namespace tests pass
22:21 kesselhaus took the code from TT#715 -> http://codepad.org/CWLW3618
22:22 pmichaud kesselhaus: the bug isn't in parrot-1.1.0 ?
22:22 kesselhaus seems like it
22:22 purl seems like it is, like, creating a conflict somewhere, which then creates a requires condition
22:22 pmichaud okay, that's good to know.
22:22 nopaste "NotFound" at 213.96.228.50 pasted "Testing quick fix for TT #715" (31 lines) at http://nopaste.snit.ch/16698
22:24 pmichaud NotFound: that patch *has* to be wrong.
22:24 pmichaud oh wait, maybe not.
22:24 pmichaud looking.
22:25 NotFound Maybe the universe is wrong ;)
22:25 pmichaud yes, it looks wrong to me.
22:25 kesselhaus pmichaud: how would you proceed to find it? go backwards from 1.2.0 in the patchlist, until you find the causing patch? ;)
22:25 NotFound kesselhaus: bisection is usually faster than going 1 by 1
22:26 dalek rakudo: 5ac642b | masak++ | src/setting/Any-str.pm:
22:26 dalek rakudo: [setting/Any-str.pm] implemented the .bytes method
22:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​ac642b6d17abd4266fcb0e34a655b8dabe7c6f5
22:26 pmichaud kesselhaus: I might look at commits that affected src/oo.c, though
22:27 pmichaud since that's where the problem likely lies.
22:28 Coke NotFound: that reduces the leakage in my namespace tests to sub/multisub/nci (your patch for partcl)
22:28 NotFound pmichaud: coretest pass
22:29 NotFound Coke: same here
22:29 Coke NotFound++
22:29 Coke (applied)
22:29 Coke Seriously, if you want commit bits...
22:29 NotFound Coke: I'll tell you tomorrow, now I'm tired
22:29 dalek partcl: r376 | coke++ | trunk/ (39 files):
22:29 dalek partcl: Switch to using root_new where applicable.
22:29 dalek partcl: Courtesy NotFound++
22:29 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=376
22:30 rg joined #parrot
22:32 kid51 joined #parrot
22:35 wayland76 purl: ping
22:35 purl wayland76: huh?
22:43 pmichaud NotFound: I'll give you the test case where your patch fails... just a sec
22:44 pmichaud but the biggest problem is that it *still* wants to create PMCProxy's in the HLL namespace.
22:44 pmichaud oh, wait
22:45 NotFound pmichaud: the intention is to look for it and create in the PMC namespace
22:46 NotFound The code is not clean, I reused variable names.
22:47 NotFound The HLL namespace of the PMC, I mean
22:47 pmichaud Yes, I see that now.
22:47 pmichaud I overlooked the line
22:47 pmichaud hll_ns = interp->vtables[type]->_namespace;
22:52 pmichaud okay, the patch looks pretty good to me now.
22:53 NotFound Needs cleaning and comenting, but I must go to bed now
22:54 NotFound Feel free to clean and apply if you want.
22:54 NotFound 'night
22:57 Whiteknight the "does" vtable gives me carte blanche to abuse the english language
23:00 dalek parrot: r39202 | whiteknight++ | branches/io_rewiring/src/pmc/handle.pmc:
23:00 dalek parrot: [io_rewiring] a few fixes, and handles now does 'IO'
23:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39202/
23:03 dalek parrot: r39203 | whiteknight++ | branches/io_rewiring/src/pmc/socket.pmc:
23:03 dalek parrot: [io_rewiring] socket now does socket
23:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39203/
23:06 cognominal joined #parrot
23:16 darbelo OpenBSD/amd64 is tickling the gc again.
23:16 tetragon joined #parrot
23:17 darbelo I got failures in several places (that move arround from a commit to the next) caused by segfaults in mark_special()
23:20 donaldh joined #parrot
23:21 nopaste "darbelo" at 200.49.154.172 pasted "Backtrace of OpenBSD/amd64 t/pmc/sub.t failure" (92 lines) at http://nopaste.snit.ch/16699
23:30 kid51 Am I correct in thinking that Smolder is working again?  http://smolder.plusthree.com/app​/public_projects/smoke_reports/8
23:36 dalek parrot: r39204 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc:
23:36 dalek parrot: [pmc] Reuse dest PMC in Integer ariphmetic ops.
23:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39204/
23:36 dalek parrot: r39205 | bacek++ | branches/tt452_reduce_mmd/src/pmc/scalar.pmc:
23:36 dalek parrot: [pmc] Reuse dest if possible in Scalar ops.
23:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39205/
23:47 dalek decnum-dynpmcs: r66 | darbelo++ | trunk/build/Makefile.in:
23:47 dalek decnum-dynpmcs: Update DOCDIR in the Makefile.
23:47 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=66
23:57 patspam joined #parrot

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

Parrot | source cross referenced