|
Parrot 1.2.0 released | parrot.org/ | 304 RTs left | Weekly Priority: Profiling Set by moderator on 26 May 2009. |
|||
| 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 | ||
| and then throw an exception when the method doesn't exist | |||
| dalek | tracwiki: v12 | whiteknight++ | IOTasklist | 00:01 | |
| tracwiki: trac.parrot.org/parrot/wiki/IOTask...ction=diff | |||
| Infinoid foresees himself catching a lot of exceptions, but that's ok | |||
| Whiteknight | or a role would work too, I just need to make sure the code is there to support it | ||
| we could have an INTVAL flags field in the IO handle base class that has enum_IO_seek, enum_IO_socket, etc | 00:02 | ||
| although that's particularly inelegant | |||
| 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 | ||
| 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 | ||
| 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
|
|||
| Infinoid | perl5 has a whole separate subclass (IO::Seekable) to represent the seek role | 00:04 | |
| I do think that's a bit overboard. (perl5's I mean) | |||
| Whiteknight | do the different types of sockets have substantially different APIs? | ||
| 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 | ||
| so in other words, you're explicit about the target address for every UDP packet you send | |||
| send() and recv() do not work with connectionless sockets. Nor do read() and write(). | 00:06 | ||
| (well, read() might work on some OSes, but you won't be able to find out where it came from.) | |||
| so basically, connectionless sockets break the whole IO API | |||
| you can use select() with them, but that's about it | |||
| Whiteknight | okay, I remember some of this stuff from my networking class years ago | ||
| so we can have a PMC that does "Socket" AND does "Connection" or "Connectionless" | |||
| 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 | ||
| Infinoid | yeah. If it's even worth doing that | 00:08 | |
| I'm not really sure | |||
| Whiteknight | we could just have a "write" function that differentiates sockets based on the PMC base type | ||
| 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 | ||
| Whiteknight | or have a mode flag in Socket that says whether it's TCP or UDP | ||
| Infinoid | I suspect they're just going to be orthogonal, no matter what I we do | 00:09 | |
| s/ I/ | |||
| Whiteknight | you're the expert here, you just say what we need and we'll do it | ||
| Infinoid | ok. we need seek() | ||
| Whiteknight | if we need to have a dozen different types of Socket PMCs, we'll do that | ||
| Infinoid | and we need Socket to stop subclassing FileHandle :) | ||
| wayland | I missed the start of this conversation, but I presume you've seen S32/IO in the Perl6 doco? | ||
| Whiteknight | Sockets don't seek(), right? I don't think so just sanity checking | ||
| 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 | |
| correct | |||
| Whiteknight | wayland: a while ago, I don't venture into Perl6 land as often as I like | ||
| wayland | Ok. The basic idea is, they have different roles for all kinds of things | ||
| IO::Readable, etc | |||
| Infinoid | Great, that sounds very relevant | ||
| Infinoid googles for s32 | |||
| Whiteknight | wayland: Yeah, that sounds exactly like what I am planning | ||
| purl | well, planning is what it's all about. :] or www.moderndrunkardmagazine.com/issu...anning.jpg | ||
| Whiteknight | purl forget planning | ||
| purl | Whiteknight: I forgot planning | ||
| wayland | perlcabal.org/syn/ | 00:11 | |
| That link has links to the different sections of S32 | |||
| As well as the other stuff | |||
| dalek | tracwiki: v13 | whiteknight++ | IOTasklist | ||
| tracwiki: trac.parrot.org/parrot/wiki/IOTask...ction=diff | |||
| wayland | Keep in mind that S32 is still in Draft mode | ||
| Whiteknight | well, we're not going to track the synopses too close anyway, because our implementation needs to support all languages | ||
| but Parrot does have a role facility that we should be able to make good use of | 00:12 | ||
| our implementation will probably be similar, but not perfectly symmetrical, with the P6 version | |||
| 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) | ||
| At the very least, I didn't have nearly as many roles in mind | |||
| 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:13 | |
| 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 | ||
| do pipes need anything special? | |||
| Infinoid | Pipe isn't a subclass of Handle, but it will have reader() and writer() which return subclasses of Handle | 00:15 | |
| Pipe is just a container object. | |||
| in fact, it might just return Handle directly, the underlying fds are pretty generic | |||
| wayland | Argh! Have to recompile parrot because I referred to a MAINFEST in a makefile (instead of a MANIFEST like I should've) | ||
| 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:16 | |
| 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 | |
| I can be so useless without the proper references | |||
| Infinoid | oh. does FileHandle do fcntl() yet? I want to put that in Handle | 00:18 | |
| Infinoid wants O_NONBLOCK | |||
| Whiteknight | I don't see any calls to fcntl anywhere in src/pmc/ | ||
| we'll get that added as a method if we need | 00:19 | ||
| Infinoid | k, I'll add that when I extract Handle | ||
| Whiteknight | w00t | ||
| Infinoid | and some constants | ||
| Whiteknight | are we interesting in supporting XTI at all? | ||
| dalek | cnum-dynpmcs: r65 | darbelo++ | trunk/src/pmc/decnum.pmc: Implement a method for comparations following the IEEE 754 total ordering of Simplify the pmc VTABLE. |
||
| Infinoid | XTI? | 00:21 | |
| Whiteknight | it's in this book as a networking API | ||
| I'll assume that the answer is "no" | |||
| Infinoid | ah, docsrv.sco.com/SDK_netapi/sockC.sock2XTI.html | 00:22 | |
| sockets is the portable one, I'm not even sure I have an OS that supports the XTI API | |||
| Whiteknight | okay, forget I mentioned it (again, I'm definitely no expert) | ||
| purl | Whiteknight, I didn't have anything matching i mentioned it (again, i'm definitely no expert) | ||
| 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 :) | ||
| Whiteknight | better then I am | ||
| 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
|
|||
| Infinoid | So okay. To sum up my task list: | 00:28 | |
| 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.) | |||
| 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 | ||
| 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? | ||
| Infinoid | 4. Add UDP and nonblocking operation | ||
| yeah, Pipe is a separate task, which only depends on #1 in that above list | |||
| 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 | ||
| Infinoid | no problem. I can bang on Pipe first | 00:31 | |
| Whiteknight | great, this is a good plan I think | ||
| and I think performance will be much better then it is | |||
| 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 | ||
| Whiteknight | irclogs? | ||
| purl | irclogs is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| Whiteknight | Infinoid: I'm hoping to land all these cleanups within two weeks, and have AIO in place by 1.3 | ||
| Infinoid | cool! Will you be blocking on any of the tasks I listed? | ||
| Whiteknight | I'm going to be working on them with you, so no | 00:33 | |
| Infinoid | ok, I'll try not to disappear then | ||
| Whiteknight | You can if you need, there are plenty of parallel development pahs here | 00:34 | |
| paths* | |||
| nothing is going to block me, I'm too determined to make all this shit work | |||
| Infinoid | Whiteknight++ | ||
| 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:35 | ||
| A whole lot of scalability problems just vanish when you switch to AIO | 00:36 | ||
| Whiteknight | yeah, that's what I'm hoping for | 00:50 | |
| 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:51 | ||
| Infinoid | Testing that it works well with threads might get a little weird | 00:54 | |
| Whiteknight | yeah, I imagine we are going to run into a lot of issues | 00:57 | |
|
00:58
ilia joined
|
|||
| Whiteknight | I'm getting excited about this, lots of good things are going to result from all this work! | 01:00 | |
| wayland | No manual entry for AIO | 01:03 | |
| What's the manpage called? | 01:04 | ||
| is it on fnctl or whatever? | |||
| Infinoid | wayland: on linux, it's aio(3) | ||
| man 3 aio | |||
| wayland | Not on Fedora, it's not | ||
| What package is it part of? | |||
| Infinoid | you might need to install manpages-dev or whatever it is on fedora. | ||
| wayland | I'll investigate | 01:05 | |
| Infinoid | purl, aio? | ||
| purl | well, aio is asynchronous input and output | ||
| Infinoid | purl, aio is also a push (callback)-based I/O system | ||
| purl | okay, Infinoid. | ||
| Whiteknight | here's the reference I've been using: www.ibm.com/developerworks/linux/li...index.html | 01:06 | |
| not a manpage, but very informative. Plus, pictures! | |||
| 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 | ||
| that chart is interesting. I don't find select very useful without O_NONBLOCK, and vice versa :) | 01:08 | ||
| My normal model is in the block of their chart occupied by AIO... but would call AIO that + 1 | 01:09 | ||
|
01:10
Coke joined
|
|||
| Coke | Anyone want to try to reduce a tcl segfault to parrot? =-) | 01:10 | |
| wayland | MENE MENE TCL U-PARROT | 01:11 | |
| 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) | ||
| 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 | ||
| Coke | Infinoid: parrot latest, partcl latest, on feather, "make test" segfaults in t/cmd_array.t; I'm trying to track it down. | ||
| Infinoid | got a backtrace? | ||
| Coke | was trying to get the PIR first. lemme get a backtrace. | ||
| Infinoid | oh, ok | ||
| Infinoid kinda assumed the pir would be huge | 01:14 | ||
| wayland: On my gentoo box, the manpage came from the dev-libs/libaio-0.3.106-r1 package | |||
| nopaste | "coke" at 72.228.52.192 pasted "segfault" (46 lines) at nopaste.snit.ch/16673 | 01:15 | |
| wayland | Oh, ok, thanks | ||
| Whiteknight | Infinoid, I'm forseeing it will be almost seamlessly usable from PIR | ||
| 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 | ||
| Coke | Infinoid: I also get a ton of # got : 'get_attr_str() not implemented in class 'TclArray'' | ||
| Infinoid | cute, your Class object has a corrupt attr | ||
| Whiteknight: *drool* | 01:17 | ||
| Coke | I suspect this is a result of Whiteknight's fix to the assign problem I was having. | ||
| 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 | ||
| Infinoid | Coke: is your gdb still open? | ||
| 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 | ||
| Coke | $1 = (PMC *) 0x11 | ||
| is 0x11 undef? | |||
|
01:18
bacek_ joined
|
|||
| Coke | oh, no, that's not the type. | 01:18 | |
| Infinoid | no, it's supposed to be a pointer to a Namespace object | 01:19 | |
| ...or NULL | |||
| is TCL subclassing Class and screwing up the attr list and overwriting the field with something numeric? | |||
| Coke | not on purpose. =-) | ||
| TclArray, which you see when the segfault is averted with -G, is just a PIR class. | 01:20 | ||
| code.google.com/p/partcl/source/bro...larray.pir | |||
| 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 | |
| trigger the crash, not class. | |||
| Infinoid tired | |||
| Coke | "running all of tcl"? | ||
| 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. | ||
| s/ran/fixed/ | |||
| I'm now trying to get some pir to duplicate. | |||
| Infinoid | oh, hmm | ||
| Whiteknight | urg, I hope all that code doesn't cause new problems | ||
| Infinoid | Whiteknight: See that? You fix something, now you get blamed for all subsequent bugs. :) | ||
|
01:24
patspam joined
|
|||
| Coke | Yup. | 01:24 | |
| well, it's working better than it /did/ | |||
| slightly larger test case incoming. | 01:25 | ||
| Whiteknight | so you're subclassing Class, then assigning that Class to an Undef $P register? | ||
| Coke | no. | 01:26 | |
| Whiteknight | The only case where any of my TT #696 code gets invoked is when we assign an Object to an Undef | 01:27 | |
| the assign and set_pmc vtables in Undef were the only things I really changed | |||
| Coke | Whiteknight: yes, I'm doing that. | 01:28 | |
| Whiteknight | oh, okay then | ||
| Oooh, I have a weird recursion relationship in my head now | |||
| 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. | ||
| Whiteknight | well, it would be if the hll_map bindings are established after the subclass is defined | ||
| Okay, so #711 is basically just #696 but with attributes? | 01:30 | ||
| Coke | basically. | ||
| 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. | ||
| This is slightly more like real tcl. | |||
| if you tackle this one, feel free to just run "make test" in partcl. =-) | |||
| 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 | ||
| Coke | well, at least it'll build now. =-) | ||
| Whiteknight | that's a step up | ||
| I'll take the ticket, but I am going to sleep soon and won't work on it tonight | 01:33 | ||
| Can I ask why you are vivifying the destination register to Undef anyway? | |||
| dalek | rtcl: r369 | coke++ | wiki/ParrotIssues.wiki: fixed one bug, found another |
01:34 | |
| Whiteknight | seems like a useless step to me, unless I am missing something | ||
| 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? | ||
| Coke | Maybe. the parts of tcl that are doing what they're doing predate rakudo. | 01:37 | |
| This all used to work. :| | |||
| 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. | ||
| it somewhat replaces the "morph to Undef and then assign" that we used to do. | |||
| Whiteknight | I was looking at the copy opcode today, after you mentioned it in #ps | ||
| 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" | ||
| Whiteknight | (in either case, what he is trying should not segfault, whether it's the Right Way or not) | ||
| 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. | ||
| (the assign to Under trick having been taken from Tcl, fwiw :-) | 01:40 | ||
| Whiteknight | and Copy handles all attributes? | ||
| pmichaud | Copy just does a clone. | ||
| whatever clone does, it uses. | |||
| basically the copy opcode is "clone into an existing PMC" | |||
| Whiteknight | yeah, I'm reading the source now | 01:42 | |
| The work I did earlier for TT #696 basically just abstracted the guts of clone, so the two ideas are very similar | |||
| I don't understand why copy maintains the metadata from the destination PMC though | 01:43 | ||
| dalek | rtcl: r370 | coke++ | trunk/Configure.pl: slightly better error message if "install-dev" wasn't run. |
01:44 | |
| Coke | as I recall, it was a hack. =-) | ||
| Whiteknight | does clone on an RPA do a deep clone or a shallow one? | 01:45 | |
| Coke | I see -t4 is still (*)!@#&$#()@$& broken. | ||
| pmichaud | clone on RPA is shallow, iirc | ||
| clone on Hash is deep, though. | 01:46 | ||
| because PMCs are considered "containers" | |||
| and in Rakudo, at least, the properties of a container are independent of its value | |||
| i.e., we consider the properties to be properties of the PMC, not of the value it contains. | 01:47 | ||
| Whiteknight | okay | ||
| This copy opcode doesn't look right to me. it looks like it's leaking memory | |||
| and it NULLs out the pmc_ext pointer, but never replaces it | 01:48 | ||
| pmichaud | we first clone the source | ||
| Whiteknight | oh, nevermind. I see what it's doing | 01:49 | |
| so metadata is container-based, and attributes are data-based? | 01:50 | ||
| or are they one and the same? | |||
| pmichaud | they're separate, afaik | ||
| "properties" aren't the same as "attributes" | |||
| Whiteknight | right, okay | ||
| I CAN HAZ TERMINOLOGEE! | 01:51 | ||
| Okay, Ive hit my Parrot quota for the day. Now it's time for some union-mandated sleep | 01:52 | ||
| later | |||
| wayland | My sleep is sometimes intersection-mandated :) | 01:53 | |
|
01:54
Maghnus_ joined
|
|||
| dalek | rrot: r39188 | jkeenan++ | branches/pbc_info_remove: Create pbc_info_remove branch to work on |
02:12 | |
| wayland | developers++ :) | 02:14 | |
|
02:28
Theory joined
02:35
janus joined
|
|||
| dalek | rrot: r39189 | jkeenan++ | trunk (2 files): Make this file conform to linelength coding standard. |
02:39 | |
| rrot: r39190 | jkeenan++ | branches/pbc_info_remove (15 files): 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 | ||
| tewk | I know I've asked before but what is the most reliable quasi-offical git mirror for the parrot project? | 02:46 | |
| Coke | git-svn? | 02:48 | |
| purl | git-svn is amazingly great | ||
| Coke | infiniod git? | ||
| infinoid? | |||
| purl | infinoid is, like, Mark Glines <mailto:mark@glines.org> or likes shiny things | ||
| Coke | git mirror? | ||
| it's in there somewhere. =-) | |||
| 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 | |||
| Infinoid | oh | 02:54 | |
| I think it's git://quack.glines.org/parrot-trunk/, let me verify that | |||
| yep. | 02:55 | ||
| purl, git mirrors of parrot is git://quack.glines.org/parrot-trunk/ | 02:58 | ||
| purl | OK, Infinoid. | ||
| 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
03:48
darbelo joined
04:44
Andy joined
04:55
tetragon joined
05:06
flh joined
05:08
buildbot joined
05:16
davidfetter left
05:23
darbelo joined,
masak joined
|
|||
| dalek | kudo: 14b8735 | pmichaud++ | src/classes/IO.pir: Update IO.get to return a single line. Remove obsolete IOIterator class. |
05:50 | |
|
05:56
patspam joined
06:10
chromatic joined
06:36
cotto joined
06:51
cognominal joined
|
|||
| Austin_Hastings | Good morning, #parrot. | 07:10 | |
| parrot | Awk! | 07:16 | |
|
07:17
iblechbot joined
07:21
donaldh joined
|
|||
| cotto | well, this is awkward | 07:25 | |
| moritz | not seductivve? | ||
| wayland | Stop that, or I'll bash you both :) | 07:29 | |
| (Which reminds me. Hash! Bang! Bin! Bash! Is this a shell script, or a Batman comic? ) | 07:30 | ||
| btw, how do you do "bold" in IRC | |||
| cotto | test | ||
| wayland | (bold font formtting) | ||
| cotto | in my client, it's ctrl-b | ||
| moritz | wayland: in irssi you press Ctrl+b | ||
| wayland | test | ||
| moritz | then some text | ||
| then again Ctrl+b | 07:31 | ||
| wayland | Hmm. Konversation doesn't do that | ||
| cotto | Hmmm. Apparently I can do all kinds of silly and ill-advised stuff. | ||
| moritz | www.mitja-schmakeit.de/wordpress/wp...garten.jpg | 07:32 | |
| wayland | Īλλ Ī Ļαν Γο Ī¹Ļ ĻĪ·Ī¹Ļ | ||
| mj41 | Good morning. Any ideas how to compile Parrot on VMWare virtual machine? ... Problem is probably here ttcopy.ro.vutbr.cz:4000//file/cmdout/19239.txt ... auto::jit - Determine JIT capability...p = 0x8920000 PAGE_SIZE = 4096 (0x1000) failure: Permission denied | ||
| wayland | (All I can do is this) | ||
| cotto | mj41, are you using selinux or something to prevent executing malloc'd memory | 07:34 | |
| (also, I can't access that site) | 07:35 | ||
| wayland | mj41: ...and are you running linux in the VM? | 07:36 | |
| mj41 | hmm, selinux, rebooting | 07:37 | |
| wayland: yes, linux in the VM | |||
| cotto | istr a similar issue with recent versions of Fedora Core | 07:38 | |
| mj41 | cotto: thanks, without selinux configure pass | 07:39 | |
| wayland | Do we have a trouble ticket for that? | 07:42 | |
| cotto | #581 is the closest I can find, but in that one Configure.pl works fine and something in PGE explodes. | 07:43 | |
| fwiw, it's still open | 07:44 | ||
| actually, Lu's error looks almost exactly like yours, mj41 | 07:45 | ||
| mj41 | Anybody else has problem access ttcopy.ro.vutbr.cz:4000 ? | ||
| cotto | mj41, can you compile and nopaste the output from trac.parrot.org/parrot/raw-attachm...ght-work.c | 07:46 | |
| it'd probably be helpful to get that tt moving again | |||
| wayland | mj41: I can access your site fine from here (Australia, good ISP) | ||
| mj41 | cotto: I just disable selinux. | ||
| cotto | right. silly me | ||
| but our general solution to this shouldn't be "put selinux in permissive mode" | 07:48 | ||
| mj41 | cotto: but no problem :-) | 07:50 | |
| cotto | mj41, apologies for my isp, which I assume is blocking that site | 07:51 | |
| mj41 | cotto: And tt.ro.vutbr.cz is ok ? | ||
| nopaste | "mj41" at 147.229.5.176 pasted "output from /ticket/581/test-jit-might-work.c" (10 lines) at nopaste.snit.ch/16674 | 07:54 | |
| cotto | mj41, nope | 07:56 | |
| mj41 | cotto: :-( and www.vutbr.cz/ ? | 07:57 | |
| cotto | that one works | ||
| don't even ask my why | 07:58 | ||
| wayland | Different Class C subnets, probably | 07:59 | |
| 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:00 | |
| Could it be as simple as treating the PMC as a hash? | 08:07 | ||
| mj41 | New TapTinder client (32bit linux) is online tt.ro.vutbr.cz/buildstatus/pr-Parrot/rp-trunk . Thanks. | 08:22 | |
|
08:45
bacek joined
|
|||
| chromatic | Austin_Hastings, that's exactly what to do. | 08:57 | |
|
08:58
Maghnus joined
|
|||
| Austin_Hastings | chromatic: Thanks, it's harder than it looked. | 09:09 | |
| Woo-hoo! A crapload of stuff! | 09:12 | ||
|
09:14
mikehh joined
|
|||
| 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:15 | |
| chromatic | typeof $P0 | 09:17 | |
| $S0 = typeof $P0 | |||
|
09:20
bacek joined
|
|||
| bacek | good evening | 09:21 | |
| Austin_Hastings | That doesn't seem entirely useful. | ||
| I get key "crt_init" pointing to | 09:22 | ||
| wayland | I find good evenings quite useful myself :) | ||
| (sorry :) ) | |||
| Austin_Hastings | Good evening, bacek. | ||
| wayland | bacek: o/ | ||
| I've now gotten to the point where Rakudo builds on a Parrot TPM | 09:23 | ||
| RPM | |||
| Austin_Hastings | Nevermind. | ||
| Didn't indirect far enough. | |||
| OTOH, what's the C<typeof Null> ? | |||
| wayland | Now I just need to make Rakudo work as an RPM | ||
| Austin_Hastings | (Hint: Null PMC access in get_string()) | 09:24 | |
| Is there an official pod format for tables? | |||
| dalek | TT #68 closed by bacek++: runtime/parrot/library/tcpstream.pir broken | 09:25 | |
| chromatic | POD doesn't support tables. PseudoPOD does. | 09:31 | |
|
09:32
skv joined
|
|||
| wayland | Had to smile at PseudoPOD :) | 09:32 | |
| Austin_Hastings | Okay, what is parrot::Null ? | 09:40 | |
| It's not "null" according to the unless_null opcode. | |||
| So it's a ... PMC that "does landmine"? | |||
| bacek | Austin_Hastings: yes. It's called.. erm.. Null | 09:45 | |
| :) | |||
| Austin_Hastings | Right. | 09:47 | |
| But when I do "typeof $P0" I get an exception :( | |||
| And checking unless_null doesn't work. So what do I use -- "issame" ? | 09:49 | ||
| bacek | if_null | 09:50 | |
| it should work... | |||
| unless_null should work too | |||
| Austin_Hastings | I think if_null tests for uninitialized $P0, while in this case $P0 = get_global 'Null' | 09:52 | |
| bacek | Austin_Hastings: no. if_null checks that pmc is NULL or Null | 09:53 | |
| Austin_Hastings | Hmm...boxing $S0 | 09:58 | |
| Now everything is a NameSpace. | |||
| 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 | ||
| Woot. | |||
| How do I get the PMC for a class, if the namespace PMC is going to be rturned by its name? | 10:06 | ||
| Ahh. nsp.get_class() | 10:07 | ||
| Wayland, what's new on the other side of the world? | 10:08 | ||
| 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? | ||
| (Does that even make sense?) | |||
| wayland | I think the Parrot RPM already included those | 10:18 | |
| I know for sure it includes lib/Parrot/Install.pm | |||
| The only downside is that it probably also includes stuff we don't need | |||
| But I'm willing to live with that at the moment. | |||
| Austin_Hastings | :) | 10:19 | |
|
10:29
bacek joined
|
|||
| dalek | rrot: r39191 | fperrad++ | trunk/README_win32.pod: [win32] update with ICU 4.2 |
10:33 | |
| Austin_Hastings | Welcome back, bacek. | ||
| bacek | Austin_Hastings: OH HAI | ||
| bacek wish to have good internet at new home. | 10:34 | ||
| And ./parrot -t4 working. | |||
| see also: opny | |||
| pony | |||
| Austin_Hastings | :) | 10:36 | |
| Where is your new home, Bacek? | |||
| bacek | Austin_Hastings: closer to $dayjob | ||
| dalek | rrot: r39192 | bacek++ | trunk/src/packfile.c: [cage] Don't try to deref NULL interp->pdb pointer during tracing. |
||
| Austin_Hastings | But with poor internet? | ||
| wayland | Well, Australia has blackspots | 10:38 | |
| 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 | ||
| and it's incompatible with ADSL, which is basically the only cheap fast internet available in most of .au | |||
| bacek | Austin_Hastings: technically - without any internet. I'm using 3G now | 10:40 | |
| Austin_Hastings | Ouch! Iphone = modem? | 10:42 | |
| Here's a question: when you import a namespace, you don't get sub-namespaces, right? | 10:43 | ||
|
10:43
wayland76 joined
|
|||
| wayland76 | Sorry about that -- xorg died on me :) | 10:44 | |
|
10:49
bacek joined
|
|||
| bacek | oh hai... | 10:49 | |
| It was bad idea to check model of this 3g modem... | |||
| 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? | ||
| Rarf. | 10:52 | ||
| Let's try that question again: Given that I have a Sub PMC, how can I find out information about its signature? | |||
| 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 | ||
| But I see nothing about types. | |||
| bacek | Coke: around? | 11:17 | |
|
11:20
donaldh joined
11:47
whoppix joined
11:48
tetragon joined
|
|||
| bacek | msg Coke -t4 now (almost) works | 11:52 | |
| purl | Message for coke stored. | ||
| dalek | rrot: r39193 | bacek++ | trunk (2 files): Factor out debugger_or_interp helper function to fetch debugger or interp itself during tracing. |
||
|
11:55
burmas joined
|
|||
| bacek | msg Coke ignore my last message. It doesn't crash, but doesn't work | 11:57 | |
| purl | Message for coke stored. | ||
| jonathan | Austin_Hastings: Types as in, what Parrot registers? | 12:03 | |
|
12:03
Whiteknight joined
|
|||
| jonathan | (erm, register types I mean) | 12:04 | |
| I'm can't immediately recall how that's exposed. | |||
| Or if that's exposed | |||
|
12:04
burmas left
|
|||
| wayland76 | kid51: I've had an idea | 12:18 | |
| 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 | ||
| 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 | ||
| 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 | ||
| purl | wayland76: huh? | ||
| 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 | ||
| Austin_Hastings | wayland: try "msg" | 12:21 | |
| moritz | wayland76: it's "msg $nick $message" here | ||
| 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 | ||
| purl | Message for kid51 stored. | ||
| wayland76 | Thanks! :) | ||
| Austin_Hastings | 8-) | ||
| jonathan: I put it on my list of things to do later. | 12:22 | ||
| Coke | bacek: pong. | ||
| bacek | Coke: unping :) | ||
| -t4 still failing. | 12:23 | ||
| Not so miserable as before, but... | |||
| 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. | ||
| 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 | |
| Thoughts? | |||
| purl | i like cheese | ||
| wayland76 | Cheesy thoughts? | ||
| Coke | test | 12:27 | |
| bacek;I already fixed -t4 once. I don't think I can do it again. =-) | 12:29 | ||
| bacek imaging "job security" in open source world | 12:30 | ||
| Coke | I don't WANT job security! | ||
| (not in open source, anyway) | |||
| bacek | In Soviet Russia job secure you! | 12:32 | |
| oh wait... | |||
|
12:37
iblechbot joined
12:40
rg1 joined
12:47
ruoso joined
|
|||
| 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. | ||
| Coke is happy to see codetest smolders clean. | 12:49 | ||
| Coke looks at ali.as/top100/, and wonders how many of the FAIL 100 are owned by folks who frequent this room. | 12:51 | ||
| bacek | Coke: not me! I'm not CPAN "commiter" :) | 12:54 | |
| whoppix | Coke, that thing uses strange metrics. | 12:59 | |
| 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 ... | ||
| Coke | it is tempting to start skip/todo'ing those. | 13:01 | |
| dalek | rrot: r39194 | whiteknight++ | branches/io_rewiring: Creating a new branch to fix up the IO system |
||
| wayland76 | Coke: not me either :) | 13:03 | |
| msg kid51 if you're interested in helping me with the Rakudo RPM ticket, trac.parrot.org/parrot/attachment/ticket/712 | 13:04 | ||
| purl | Message for kid51 stored. | ||
| Austin_Hastings | wayland76: At some point, you should maybe switch to email... | 13:07 | |
| Coke | kid51 does tend to respond to messages here. YMMV. | ||
| 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. | ||
| wayland76 | I prefer e-mails too :) | ||
| 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
|
|||
| Austin_Hastings | Is there any way to mark a class as "private"? | 13:09 | |
| Or is it just a case of exporting nothing? | |||
| Coke | hey, I can 'make tclsh' again. | 13:10 | |
| Austin_Hastings: the latter, I believe. | 13:11 | ||
| Austin_Hastings | thx | ||
| Coke | oh. I still have the build dir around. :| | 13:12 | |
|
13:14
skids joined
13:15
Andy joined
|
|||
| 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. | ||
| dalek | tracwiki: v14 | whiteknight++ | IOTasklist | 13:28 | |
| tracwiki: Add two idle thoughts about IO to the page | |||
| tracwiki: trac.parrot.org/parrot/wiki/IOTask...ction=diff | |||
| rrot: r39195 | whiteknight++ | branches/io_rewiring/src/pmc (3 files): [io_rewiring] Create Handle PMC type, start abstracting stuff into it. |
13:29 | ||
| Coke | ah, the good ole days; program behaves differently with -G | 13:31 | |
| Austin_Hastings | :-D | ||
| No dangling pointers here, sir! | 13:32 | ||
| Nothing on the stack but us chickens... | |||
| Coke | Whiteknight: I'm getting my segfault on copy. | 13:36 | |
| Whiteknight: aha. my .cloneable helper is a problem. Never used to be. | 13:46 | ||
| Whiteknight | on copy? you mean the copy opcode? | 13:47 | |
| Coke | yes. | 13:48 | |
| but if I remove .cloneable, I get virtually no errors in make test. | |||
| let me show you the code: | |||
| code.google.com/p/partcl/source/bro...ros.pir#83 | 13:49 | ||
| Whiteknight | .cloneable is a method? | ||
| Coke | it's a macro that implements the clone vtable on objects. | ||
| it used to be required. Now it segfaults. | |||
| (or causes them later.) | |||
| 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. | ||
| Whiteknight | So you ARE using the copy opcode with this? | ||
| Coke | I mainly switched over to copy some time ago, it seems. | ||
| so in my segfaults, the copy opcode is the last one shown with -t1. | 13:51 | ||
|
13:51
Andy joined
|
|||
| 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 | ||
| Coke | down to 19 errors in make test now. | ||
| Whiteknight | w00t | 13:52 | |
| Coke | (from about 200) | ||
| Whiteknight | progress++ | 13:54 | |
| dalek | rtcl: r371 | coke++ | trunk/src/ (5 files): Remove the .cloneable macro necessary, but default or class or object or whatever needed it seems to have a workable default now anyway. less code, less segfaults. |
13:57 | |
| Coke | next bug: set a 3; incr a -1; puts $a | 13:59 | |
| that should print "2" (a tclint), but instead prints "2.0" (a tclfloat) | 14:00 | ||
| Whiteknight | what does the incr op do? | ||
| Coke | += | 14:01 | |
| s/op/command/ | |||
| Whiteknight | try: set a 3; puts $a. is it a tclint at that point? | ||
| what I mean is, what does it do internally | 14:02 | ||
| Coke | code.google.com/p/partcl/source/bro...n/incr.pir | ||
| I see that I'm returning a clone. No idea why, let me see if I can remove that. | 14:03 | ||
| it's a MMD problem. TclInt + TclInt is returning a TclFloat | 14:06 | ||
| s/returning/converting to/? | |||
| Whiteknight | weird | ||
| Coke | it's really TclInt += TclInt; that's converting the TclInt to a Float. | ||
| Whiteknight | MMD is one of those systems that I haven't gotten my grubby paws into yet | ||
| Coke | I blame bacek. =-) | 14:07 | |
| seems to work with core parrot types. | 14:08 | ||
| sadly, since this involves PMCs, making a test case becomes less trivial. | 14:11 | ||
| Infinoid | most of what I know about MMD is to avoid it wherever possible | 14:13 | |
| Coke | code.google.com/p/partcl/issues/detail?id=81, if anyone can help me whittle that down to a parrot test case, awesome. | 14:15 | |
|
14:18
Andrey_Grehov joined
|
|||
| Andrey_Grehov | hi guys, I was trying to `make` parrot and got this error, any ideas ? pastebin.com/d37fd3e27 | 14:20 | |
| 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 | |
| unfortunately, TclInt inherits from TclObject, and TclObject's set_number_native() automatically morphs to TclFloat. | |||
| Whiteknight | Andrey_Grehov, that's a very interesting error | 14:22 | |
| Infinoid | Coke: So that's why you're getting that behavior | ||
| Coke | Infinoid: "this used to work" | ||
| Whiteknight | what platform are you on? | ||
| Andrey_Grehov | (gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)) | ||
| Infinoid | hmm... | 14:23 | |
| Infinoid appends a ")" to one of his lines above | |||
| Coke | Infinoid: I also extend inInteger. | ||
| "Integer" | |||
| did MMD and multiple inheritence recently change/break? | |||
| Infinoid | Reversing the order of those "extends" lines might make a difference | ||
| pmichaud | Coke: fsvo "recently" | 14:24 | |
| although I don't know about multiple inheritance | |||
| 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. :| | ||
| Infinoid | oh, I was wrong | 14:26 | |
| Coke | "stable for HLL developers my shiny metal ass." | ||
| Infinoid | Did this work in 1.0? | ||
| particle1 | partcl didn't work with parrot 1.0 | ||
| so it is stable :P | |||
| wayland76 | purl, remember, dead is stable | 14:27 | |
| purl | OK, wayland76. | ||
| wayland76 | purl, dead | ||
| purl | "God is dead." - Nietzsche "Nietzsche is dead." - God | ||
| Coke | parrot broke so much for partcl since 0.9 I am just now (post 1.2) getting it working again. | ||
| Infinoid | Coke: Okay. Next idea, implement i_add method in TclInt and add a switchcase so it recognises TclInt PMCs | ||
|
14:27
NotFound joined
|
|||
| 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 | ||
| 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? | |||
| 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 :) | ||
| pmichaud | afaik, there are still quite a few unresolved issues from the mmd changes that occurred in the past few months | ||
| do an RT search for "parrot mmd" and look for the open tickets. | |||
| Infinoid | iiuc, all he did was move the type-switching logic out of MMD and into actual switch() statements | ||
| 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 | |
| <shrug> i'll see if I can provide a test case, but it's just a PITA, is all. | |||
| s/he/the parrot test suite/ | 14:32 | ||
| </vent> | |||
| Infinoid | I tested it with rakudo | ||
| 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 nopaste.snit.ch/16685 | ||
| Andrey_Grehov | Whiteknight: any ideas why that can happen ? | ||
| Coke | hurm. my $Id$ strings are still reflecting parrot. whoops. | 14:34 | |
| Infinoid: EW. | |||
| 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. | ||
| Coke | I don't want to hardcode every single kind of integer out there. =-) | 14:37 | |
| and, as you noted, enum_class_TclInt doesn't work. | |||
| Infinoid | Integer assumes you've given it a float unless it recognises the type as an integer | ||
| Coke | then Integer's integer recognition is wrong. | ||
| 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." | ||
| Infinoid | I don't know of a better way, but I'm certainly open to suggestion | ||
| trac.parrot.org/parrot/browser/tru...r.pmc#L428 is the current way | 14:39 | ||
| Is this something that would work as a role? | 14:42 | ||
|
14:42
Theory joined
|
|||
| Infinoid | ah, I guess the right value is dynpmc_TclInt | 14:44 | |
| Whiteknight | NotFound: ping | 14:45 | |
| NotFound | pong | ||
| Whiteknight | NotFound: Infinoid are doing some refactoring in the IO subsystem that will probably mix nicely with your work on StringHandle | 14:46 | |
| trac.parrot.org/parrot/wiki/IOTasklist and the "io_rewiring" branch | |||
| 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. | ||
| Coke | Infinoid: there. my suggest is to revert that commit. =-) | ||
| "suggestion" | |||
| 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? | ||
| 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 | ||
| 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 | ||
| NotFound | Whiteknight: and what attribute type can be used to the handlers? | ||
| pmichaud | I wonder to what degree TT #713 is related to RT #60036 | ||
| Infinoid | Coke: But if we find a better way of resolving types for one, we should review the other as well | 14:51 | |
| pmichaud | I should note that Rakudo's "solution" to the mmd issues with the inplace opcodes has been to avoid them altogether. | 14:52 | |
| 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:53 | |
| 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. | ||
| Coke | Infinoid: documented confirmation on 713. | 14:56 | |
| pmichaud: do you create a new pmc and then copy it over the old one? | 15:00 | ||
| I'll use whatever the /right/ solution is. that just seems to change too often to keep up. =-) | |||
| pmichaud | Coke: yes, that's what we effectively do. | 15:03 | |
| I don't know that that's the "right" solution, but it's the only reliable one at the moment. | |||
| Whiteknight | NotFound: okay, that makes good sense | ||
| 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 | rtcl: r372 | coke++ | wiki/ParrotIssues.wiki: another parrot bug |
||
|
15:05
exec-kula joined
|
|||
| 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. | ||
| Whiteknight | in the refactor, I'm planning to use roles like "read" and "write" to determine behavior | ||
| so your StringHandle will always return true for "does 'read'" or "does 'write'" | |||
| 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.) | ||
| 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? | ||
| jonathan | awoooe: It has socket support. | ||
| awoooe | jonathan: thanks | 15:09 | |
| NotFound | Whiteknight: but we can make rw the default, if we find that is the most common usage. | 15:10 | |
| Whiteknight | NotFound, the default rw works too. Whatever you think is best | 15:11 | |
| 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 | ||
| jonathan | awoooe: I think there's some examples of it in the examples directory. | ||
| Whiteknight | NotFound, we could use add_role and remove_role to change it's behavior without having to close/open it | 15:13 | |
| dalek | kudo: 5e132db | moritz++ | lib/Safe.pm: crude initial safe mode |
||
| awoooe | jonathan: Is there a list of what the win32 binary variant *doesn't* have? | 15:14 | |
| jonathan | awoooe: Not quite sure I follow - you mean what isn't included in the Win32 Parrot binary package on SourceForge? | 15:15 | |
| If so I guess check its wiki...but I think the script used to produce the binary is also there. | 15:16 | ||
| 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:18 | |
|
15:20
donaldh joined
|
|||
| NotFound | awoooe: there is no *nix setup. Any binary package is a thing under control of the people that creates that package. | 15:20 | |
| awoooe | NotFound: I meant the svn co /config/make chain by that setup | 15:22 | |
| NotFound | awoooe: the parrot svn repository now doesn't have a buch of languages. Most migrated to their own homes. | 15:24 | |
| awoooe | Ok thanks | 15:25 | |
| dalek | kudo: b6640c2 | moritz++ | lib/Safe.pm: [Safe.pm] remove debugging statement; add documentation |
15:30 | |
|
15:32
Andrey_Grehov left
|
|||
| 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 nopaste.snit.ch/16686 | ||
| Whiteknight | Infinoid: I can't imagine it's expected, but I haven't run any tests yet | 15:39 | |
| Have to double-check all the packfile stuff to make sure FileHandle.freeze() isn't being borked by these changes | |||
| Coke | Infinoid: trying now. | 15:40 | |
| dalek | rrot: r39196 | whiteknight++ | branches/io_rewiring/src/pmc (2 files): [io_rewiring] add a prototype does() vtable for FileHandle |
||
| Infinoid | I'm out of parrot tuits for today, I didn't manage to get any nifty I/O stuff done :( | ||
| bye all & | |||
| Whiteknight | Don't worry about it, we have plenty of time | ||
| later | |||
| Whiteknight out to lunch | |||
| Coke | Infinoid: ping! | 15:41 | |
| Coke updates the ticket. (Infinoid++'s patch works) | 15:43 | ||
|
16:05
darbelo joined
16:17
iblechbot joined
|
|||
| Coke finds YA BUg. | 16:20 | ||
| dalek | TT #714 created by coke++: can't copy undef to null | ||
| rtcl: r373 | coke++ | wiki/ParrotIssues.wiki: Edited wiki page through web user interface. |
16:23 | ||
| Whiteknight | Coke: TT # 714 is nonsensical. an error message is what it should do | 16:32 | |
| Coke | again, "this code used to work." | ||
| Whiteknight | then it was working mistakenly, and should not have been working | ||
| Coke | what is nonsensical about it? | ||
| Whiteknight | you can only copy a PMC to existing storage. No storage, no copy | 16:33 | |
|
16:33
dukeleto joined
|
|||
| Coke | PMCNULL has storage, no? | 16:33 | |
| Whiteknight | not in the normal sense, it's a singleton | ||
| and you don't want to be overwriting that for the entire Parrot core | |||
| NotFound | Coke: PMCNULL is just a NULL on steroids. | ||
| Coke | no, but THIS USED TO WORK. =-) | ||
| Austin_Hastings | Copy-on-write? | 16:34 | |
| purl | it has been said that Copy-on-write is difficult to force.. | ||
| NotFound | Is a NULL that can catch bad usages and throw nicely. | ||
| Whiteknight | Coke: again, should not have worked | ||
| Coke | Whiteknight: Patches Welcome for partcl. | ||
| 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:35 | |
| maybe sombody more knowledgable then myself has a better answer | 16:36 | ||
| Coke | wow, svn-bisect has horked my checkout dir. | ||
| 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
|
|||
| NotFound | If we decide to make it work, we must definitely add a test for it. | 16:40 | |
| Coke | bah. going back so far, languages/ just re-appeared. | 16:43 | |
| NotFound | And if not, we must also a test. | 16:45 | |
| Whiteknight | I really don't like this copy opcode | 16:46 | |
| 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. | ||
| Whiteknight | I'm convinced it's borking up handling of pmc_ext | ||
| and it obviously doesn't support null properly | |||
| Coke | NOW. | 16:48 | |
| sorry to keep harping on that. :| | |||
| Whiteknight | Coke: did it "work" previously, or did it just not fail like this? | ||
| because there's a difference between it being essentially a no-op, and it being a failure condition | |||
| Coke | "make test" passed. | 16:49 | |
| now it don't. | |||
| NotFound | Making it a no-op might be a good solution. | ||
| 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. | ||
| 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? | ||
| Whiteknight | where "worked" means something different from "just didn't fail" | ||
| urg, this is a pain. I'm going to have to make a branch to get this fixed | 16:56 | ||
| need to edit too many functions in too many files | |||
| awoooe: like a fork? | |||
| awoooe | Whiteknight: yeah. I want to be able to call a proc without blocking and just pass through. | 16:58 | |
| 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. :( | ||
| 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 | ||
| 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? | ||
| awoooe | so ssh somehost.org using a cert -L5900:127.0.0.1:5900 | ||
| Win32 hopefully | |||
| (so techinically plink, but same thing) | 17:02 | ||
|
17:03
davidfetter joined
|
|||
| Coke wonders where the karma is. | 17:05 | ||
| 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 | ||
| Coke | moritz: I am having the same trouble with tcl against parrot head. | ||
| (and I'm not using PCT at all.) | |||
| moritz | Coke: which troubles? | ||
| dalek | rtcl: r374 | coke++ | trunk/runtime/builtin/array.pir: Whiteknight++ points out it doesn't make sense to try to replace a Null |
17:07 | |
| rtcl: r375 | coke++ | wiki/ParrotIssues.wiki: avoided a not-quite-a-bug. |
|||
| Coke | moritz: perl#66050 | ||
| hit ^D, it's just like hitting enter. | |||
| I suspect something in IO changed recently. | |||
| moritz | Coke: seems like | 17:08 | |
| Coke | exit doesn't work for me either. | ||
| 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 | ||
| Coke | oh. | ||
| which means it's probably not IO but exception handling. | |||
| moritz | Coke: is exit a tcl function? | ||
| Coke | moritz: yes. moment. | ||
| NotFound | awoooe: I mean the setsid command, not the function | ||
| awoooe | Then no. | 17:09 | |
| Coke | code.google.com/p/partcl/source/bro...n/exit.pir | ||
| line 26 is the important one. =-) | |||
| awoooe | winders does not have proper command line handling of processes | ||
| Coke | down to 10 failures in partcl, thanks to Whiteknight++'s suggestion. | ||
| awoooe | which is why I am toying with the idea of having the VM shore up the weak points. | 17:10 | |
| Whiteknight | Don't thank me, I was being a curmudgeonly naysayer | 17:11 | |
| 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:12 | |
| awoooe | NotFound: but what if I want to take care of child processes? | 17:16 | |
| :( | |||
| 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:17 | |
|
17:20
flh joined
|
|||
| Coke | Whiteknight: it's my way of apologizing for getting pissed at the messenger. | 17:20 | |
| 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. | ||
| [namespace children] used to return ::tcl ; now it seems to be returning lots of things under ::parrot. | |||
|
17:22
HG` joined
|
|||
| NotFound | I've tested two ways of copy to PMCNULL: doing a clone, and doing nothing. Both pass all test. | 17:24 | |
| Coke | NotFound: might make more sense to throw an error as WK suggests. | 17:25 | |
| making null as infectious as it is elsewhere. | |||
| NotFound | EXCEPTION_NULL_REG_ACCESS? | 17:26 | |
| EXCEPTION_INVALID_OPERATION? | |||
| Coke | probably the former. | ||
| purl | i guess probably the former is good enough | ||
| NotFound | EXCEPTION_UNEXPECTED_NULL? | ||
| Coke | (whatever you get when you do something like null $P1; $P1 = 3) | ||
| at a aguess. | 17:27 | ||
| Any idea why I have a Codestring namespace in my HLL 'tcl' namespace? | 17:28 | ||
| ah. wonder if I need to update to use root_new. :| | |||
| NotFound | NULL PMC vtable functions throws EXCEPTION_NULL_REG_ACCESS "Null PMC access in ...." | 17:29 | |
| Coke | ayup. | 17:31 | |
| pmichaud: does that make sense to you? "new 'CodeString'" was infecting the top level 'tcl' namespace, but root_new doesn't. | 17:32 | ||
| (and <broken record> this didn't use to happen.) | |||
| Austin_Hastings | I have a PCT question. | 17:36 | |
| 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> | ||
| Coke | NotFound: what things? =-) | ||
| Austin_Hastings | Can you pass more than one parameter? If so, what's the syntax? | ||
| Coke will find the root_new thread and comment on it. :| | |||
| pmichaud | Coke: yes. | 17:38 | |
| NotFound | Coke: infecting hll namespaces, doing inconsistent things, or broke code. | ||
| pmichaud | Coke: using new 'CodeString' causes a new PMCProxy to be placed in the current HLL namespace | ||
| (which is bad) | |||
| so, the solution is to use root_new ['parrot';'CodeString'] instead | 17:39 | ||
| NotFound | And hopefully, in future releases will not work. | ||
| pmichaud | what is worse, when run from an HLL other than Parrot, "new 'CodeString'" creates a new PMCProxy object on each invocation | ||
| that's what caused Rakudo to become so slow. | 17:40 | ||
| (when it switched to its own HLL) | |||
| Coke | pmichaud: It didn't use to do that. when did that behavior change? | ||
| pmichaud | Coke: I suspect it has always done that. | ||
| NotFound | The alternative was to always look for the PMC in the parrot namespace. root_new is a shorthand of that. | ||
| Coke | pmichaud: again, no. | ||
| as with most of my other complaints today, "tcl used to work. now it doesn't." =-) | |||
| 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 | |
| most of them stemming from trying to use strings as class identifiers. | |||
| (passing parameters to rules) -- at present can only pass one parameter | 17:42 | ||
| and the parameter needs to be quoted | |||
| <string_literal: 'x'> | |||
| <string_literal: X> # works, but is deprecated | |||
| Austin_Hastings | Okay, thanks. I'll split the param | 17:43 | |
| 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 :-) | ||
| Coke | pmichaud: followed up to your root_new post. | 17:47 | |
| dalek | rrot: r39197 | NotFound++ | trunk/src/ops/set.ops: [cage] cleaner fail when dest of the copy opcode is null, TT #714 |
17:49 | |
| Coke | NotFound: should that error say "in clone" or "in copy" ? | 17:50 | |
| NotFound | Oooopsssss :-X | ||
| Coke | NotFound++ | 17:51 | |
| pmichaud | Coke: making "new" work the way it used to is probably not a good idea. | ||
| $P0 = new "Integer" could mean something different depending on whether the HLL has defined its own Integer class | 17:52 | ||
| I agree that the existing creation of proxies in the HLL namespace is broken and needs fixing. | |||
| fixing that should correct the problems you're seeing with NCI, Sub, and MultiSub | 17:53 | ||
| 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 | |
| but at this point will settle for a workaround. | |||
| s/workaround/something that works/ | 17:56 | ||
| dalek | rrot: r39198 | NotFound++ | trunk/src/ops/set.ops: [cage] fix a silly mistake in r39197 |
||
| Coke | I look forward to actually being to run partcl's test suite just before the 1.3 release. =-) | ||
| pmichaud | it's completely valid to claim that 'new' is broken and should be fixed to work the way it did before | ||
| NotFound | Coke: the deprecation cycle is the reason that it keeps creating proxys. If not, it just will fail. | ||
| pmichaud | we aren't deprecating 'new' itself, nor has anyone made an intentional change | ||
| Coke | NotFound: it did not used to fail. =-) | 17:57 | |
| pmichaud | 'new' still doesn't fail. | ||
| it just creates proxies where youdon't expect them. | |||
| Coke | pmichaud: it fails to not cram stuff into my namespace. | ||
| where it did not used to do that. | |||
| NotFound | Coke: I think still not fails, just does a bad work. | ||
| pmichaud | okay, and that's not a desired feature | ||
| nobody is expecting new to do that | |||
| afaik, nobody wants new to do that | |||
| nor does anyone rely on new doing that | |||
| Coke | ok. saying "it doesn't fail" is just wordsmithing. | ||
| NotFound | I'm the Spanish Inquisition | ||
| 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 | ||
| Coke | hokay. | ||
| 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 | ||
| Coke | NotFound: *THWAP* | ||
| pmichaud | NotFound: do we? | ||
| NotFound: that would depend on when it broke, wouldn't it? | |||
| Coke | I hope he's just funning with me. | ||
| 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 | ||
| one fix would be to make sure that new 'Something' doesn't create PMCProxies in the HLL namespace | |||
| that would make it work like it did before | |||
| 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 | ||
| that definitely requires a deprecation notice | |||
| 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 | |||
| because that shouldn't happen regardless | |||
| NotFound | pmichaud: ah, yes, I forgot that possibility, but I don't think we want that. | 18:01 | |
| pmichaud | I do. | ||
| As Coke points out, there are places where we cannot easily switch to 'root_new', and where it's currently broken. | |||
| For example, Sub, MultiSub, and NCI. | |||
| 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. | |||
| 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." =-) | ||
| pmichaud | It would be good to know at what point the Parrot behavior changed there. | 18:04 | |
| 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." | ||
| "it no longer does". | |||
| pmichaud | Given what Coke says, I'm about 80% certain the behavior changed. | ||
| Coke | so, yes, I'm fairly certain that some behavior has changed. this particular behavior looks pretty incriminating. | ||
| 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
|
|||
| 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:09 | |
| 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 | |
|
18:10
contingencyplan joined
|
|||
| Coke | pmichaud: nah. I've had to upgrade through six versions of tcl 8.5. =-) | 18:12 | |
| I still have todo tests where I implemented something and they changed the spec on me. =-) | |||
| granted, they move a LOT slower than @Larry does. | |||
| pmichaud | :-) | ||
|
18:14
nixfreak joined
|
|||
| 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 ? | ||
| Coke | pynie? | ||
| purl | pynie is going to be nqp-ized as well | ||
| Coke | no, pynie is code.google.com/p/pynie/ or a Python implementation for the Parrot virtual machine | 18:16 | |
| purl | okay, Coke. | ||
| nixfreak | yeah I read that already | ||
| Coke | just feeding the bot. | ||
| nixfreak | can you run python on parrot yet | 18:17 | |
| Coke | nixfreak: code.google.com/p/pynie/source/brow...unk/README has docs on building pynie. not sure if they're up-to-date after the 1.0 parrot release. | ||
| pmichaud is listed as a maintainer, though; I'll defer to him; I haven't hacked on pynie at all. | 18:18 | ||
| 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 | |
| I would expect it to be "perl Configure.pl; make" if it matches other languages | |||
| Coke | nixfreak: at a guess, the lib/Test/parrot/*.py files passed at one point. | ||
| Austin_Hastings | Is there a way to express if-then inside a rule? | ||
| 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. | ||
| NotFound | pmichaud: last time I checked, it wasn't | ||
| Austin_Hastings | It's not quite [ A B ]? | ||
| Coke | parrot doesn't ship with python, no. | ||
| dalek | rrot: r39199 | NotFound++ | trunk/t/op/copy.t: [test] add a test for copy to null, TT #714 |
||
|
18:20
Theory_ joined
|
|||
| pmichaud | Austin_Hastings: why isn't it [A B ]? | 18:20 | |
| 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 ? | ||
| Austin_Hastings | What I need is, "if A, then B is required. If not A, nevermind | ||
| pmichaud | oh, I see | ||
| Coke | nixfreak: no. there's a bunch of languages in various states of done-ness. moment. | 18:22 | |
| pmichaud | [ A [ B || <.fail> ] ]? | ||
| Austin_Hastings | I think there is some talk about & in the grammar spec, but I don't know if it's there yet. | ||
| NotFound | nixfreak: several languages used to be in the parrot repository. Now most of them migrated, you need to install them separately | ||
| Coke | nixfreak: trac.parrot.org/parrot/wiki/Languages | ||
| Austin_Hastings | Is || working ? | 18:23 | |
| pmichaud | Yes, it's | that doesn't quite work properly. | ||
| (The | fails to understand LTM) | |||
| currently | and || are identical in PGE | |||
| Austin_Hastings | [ <?decl_mode_is: 'param'> [ <!before ')'> || <.fail> ] ]? | 18:24 | |
| Coke | yay, I can run partcl on osx again. | 18:29 | |
| (still get a ton of linking issues, but they are not fatal now.) | 18:30 | ||
| pmichaud | Coke: reply sent. | 18:31 | |
| Coke | already read. danke. | ||
| nixfreak | looks like lua is being activly developed | ||
| Coke | yes. lua is pretty much the poster child. | 18:32 | |
| fperrad++ | |||
| 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:35 | ||
| (and if root_new always works, why do we need new at all?) | 18:37 | ||
| (ignoring my proxy issues) | |||
| nixfreak | It looks like pirate is still being developed | ||
| 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:38 | ||
|
18:39
iblechbot joined
|
|||
| NotFound | nixfreak: that message just means that is actively tested | 18:39 | |
| Coke | pretty much everything is still "under development", yes. | ||
| oh, great, tcl 8.6 is in beta. | |||
| Coke sees an APL comment perl6-l and refrains. | 18:40 | ||
| nixfreak | so why did all the languages get taken out of parrot | ||
| Coke | packaging, encouraging development against stable releases of parrot, licensing, copyright... | 18:42 | |
| NotFound | 'Because the bosses said so' X-) | ||
| 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 ? | ||
| pmichaud | Coke: one could use root_new exclusively and avoid new altogether. However, 'new' is slightly faster. | ||
| Coke | in all cases? wasn't root_new also a speed concern? | 18:46 | |
| er, implemented because of speed concerns? | |||
| pmichaud | root_new was a speed concern because 'new' was generating the extra PMCProxys | ||
| root_new itself is slower than 'new' | |||
| (slightly, but slower) | |||
| 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 ? | ||
| pmichaud | probably multiple closable tracs, yes. | ||
| I need to build a test case for the incorrect PMCProxy creation | |||
| I'm about to do that but have a couple of other things that need doing first | |||
| that's an obvious trac | |||
| dalek | rkdown: fb85fc4 | fperrad++ | config/makefiles/root.in: [config] update variable name (doc_dir -> docdir) |
18:49 | |
| l: 3db549f | fperrad++ | build/Makefile.in: [config] update variable name (doc_dir -> docdir) |
|||
| 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 | a: 1a2aa57 | fperrad++ | config/makefiles/root.in: [config] update variable name (doc_dir -> docdir) |
||
| lscript: 6fdee41 | fperrad++ | config/makefiles/root.in: [config] update variable name (doc_dir -> docdir) |
|||
| 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! | ||
| 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
|
|||
| pmichaud | Tene: joining namespace keys with ';' -- No. | 19:26 | |
| I'm really against string representations of namespaces/classes unless/until there's a definitive separator. | |||
| 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 | ||
| but I don't know if other parrot libraries will like that. | |||
| I'm in the process of refactoring 'use' and 'import' in Rakudo today -- perhaps I'll have some better ideas when I complete that. | |||
| 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 | |
| I'll wait for your refactors. | |||
| pmichaud | my apologies -- I misunderstood what you were asking before | ||
| for the generic HLLCompiler interface, I think it should not rely on namespaces | |||
| but for the 'parrot' HLLCompiler, namespaces would be okay with me. | 19:30 | ||
| Tene | OK | ||
|
19:34
ZuLuuuuuu joined
19:42
davidfetter joined
|
|||
| pmichaud | phone | 20:00 | |
|
20:07
Austin_Hastings left
20:45
rdice joined
20:46
bacek joined
21:09
comet joined
|
|||
| afk_coke | oh, hay, that's 2 things I missed this week. | 21:10 | |
| 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 | |
| which means we can fix it without a deprecation cycle. | |||
| Indeed, it means we would officially need a deprecation cycle to keep the incorrect behavior. | |||
| (which we don't want) | |||
| NotFound | Coke: do you want a partcl patch with a lot of new -> root_new changes? | 21:13 | |
|
21:14
szbalint left
|
|||
| NotFound | BTW, the creator of the Sub, MultiSub and NCI proxies is the isa_s opcode. | 21:14 | |
| isa calls Parrot_oo_get_class_str | 21:15 | ||
| pmichaud | oh! | ||
| in that case, those need to be changed. | |||
| the correct way to test 'isa' would be | |||
| $P0 = get_root_namespace ['parrot';'Sub'] | 21:16 | ||
| $I0 = isa $P1, $P0 | |||
|
21:17
szbalint joined
|
|||
| NotFound | Sorry, I don't explain well. The calls to VTABLE_isa are. | 21:17 | |
| And they are done from C. | |||
| pmichaud | I'm not seeing that. | 21:18 | |
| (from my PIR code) | |||
| NotFound | src/pmc/namespace.pmc line 250 | 21:20 | |
| 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 | ||
| The fail is the namespace test in partcl | |||
| pmichaud | I've got another small test that should fail if that's the culprit. | 21:24 | |
| NotFound | Let me see it | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "test for pmcproxy creation via vtable_isa" (23 lines) at nopaste.snit.ch/16692 | 21:25 | |
| bacek | morning, good morning | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "example of incorrect pmcproxy creation" (13 lines) at nopaste.snit.ch/16693 | 21:26 | |
| mj41 | TapTinder is back online with 32bit FreeBSD and Linux (on VMWare) ... tt.ro.vutbr.cz/ | 21:30 | |
| night, good night | 21:31 | ||
| Coke | NotFound: Sure, patches welcome. I'll even give you commit bits if you want. | ||
| pmichaud | afaict, the NameSpace PMC inherits VTABLE_isa from Hash.pmc, which inherits it from default.pmc | ||
| and VTABLE_isa in default.pmc doesn't call Parrot_oo_get_class_str, afaict | |||
|
21:31
Whiteknight joined
|
|||
| NotFound | pmichaud id isa in the Class PMC | 21:32 | |
| s/id/is | |||
|
21:33
skids joined
|
|||
| pmichaud | oh yes, because it's from value | 21:33 | |
| which would be a Sub in this case | |||
| NotFound | I don't know why this examples don't fail, but when I tweaked it to avoid creating Sub proxies, worked fine. | ||
| pmichaud | I can get one that fails. | ||
| Just a sec. | |||
| bingo | 21:34 | ||
| nopasting. | |||
|
21:34
nixfreak left
|
|||
| nopaste | "pmichaud" at 72.181.176.220 pasted "example of incorrect pmcproxy creation" (15 lines) at nopaste.snit.ch/16694 | 21:35 | |
| pmichaud | so, the real problem seems to be VTABLE_isa in the class.pmc | ||
| 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. | ||
| more nopastes coming. | |||
| nopaste | "pmichaud" at 72.181.176.220 pasted "worked correctly in 1.0.0" (24 lines) at nopaste.snit.ch/16695 | ||
| "pmichaud" at 72.181.176.220 pasted "another failure in trunk, not involving the NameSpace PMC" (14 lines) at nopaste.snit.ch/16696 | 21:37 | ||
| pmichaud | the problem isn't the NameSpace PMC | 21:38 | |
| (as nopaste #16696 demonstrates) | |||
| 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 | ||
| pmichaud | making a ticket for it. | 21:42 | |
| nopaste | "NotFound" at 213.96.228.50 pasted "parctl root_new patch" (1133 lines) at nopaste.snit.ch/16697 | 21:43 | |
| NotFound | Coke: here is | 21:44 | |
| Coke | NotFound: testing... | 21:52 | |
|
21:55
kesselhaus joined
|
|||
| kesselhaus | hi, does someone here maintain SF net packages? | 21:56 | |
| Coke | do you mean 'parrotwin32' ? | 21:57 | |
| kesselhaus: do you mean 'parrotwin32' ? | |||
| kesselhaus | actually, setup-parrot-1.2.0-rakudo-17.exe | 21:58 | |
| SF net says, there is none available | |||
| pmichaud | Coke: TT #715 should be your friend, if someone will address it :-) | 22:00 | |
| afk # dinner | |||
| NotFound | pmichaud: I'm checkin a dirty quick fix | ||
| pmichaud | I really worry about the "dirty quick fix"es | 22:01 | |
| I suspect it's a "dirty quick fix" that led to this problem in the first place. | |||
| 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 ... | ||
| rrot: r39200 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc: [pmc] Fall to MMD in default case of Integer.i_op. |
22:13 | ||
| rrot: r39201 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc: [pmc] Refactor Integer.i_divide to the same style as other i_op methods. |
|||
|
22:15
wayland76 joined
|
|||
| kesselhaus | pmichaud: its not in parrot-1.1.0 | 22:18 | |
| NotFound | With my previous partcl patch and the quick fix, partcl namespace tests pass | 22:20 | |
| kesselhaus | took the code from TT#715 -> codepad.org/CWLW3618 | 22:21 | |
| pmichaud | kesselhaus: the bug isn't in parrot-1.1.0 ? | 22:22 | |
| kesselhaus | seems like it | ||
| purl | seems like it is, like, creating a conflict somewhere, which then creates a requires condition | ||
| pmichaud | okay, that's good to know. | ||
| nopaste | "NotFound" at 213.96.228.50 pasted "Testing quick fix for TT #715" (31 lines) at nopaste.snit.ch/16698 | ||
| pmichaud | NotFound: that patch *has* to be wrong. | 22:24 | |
| oh wait, maybe not. | |||
| looking. | |||
| NotFound | Maybe the universe is wrong ;) | 22:25 | |
| pmichaud | yes, it looks wrong to me. | ||
| kesselhaus | pmichaud: how would you proceed to find it? go backwards from 1.2.0 in the patchlist, until you find the causing patch? ;) | ||
| NotFound | kesselhaus: bisection is usually faster than going 1 by 1 | ||
| dalek | kudo: 5ac642b | masak++ | src/setting/Any-str.pm: [setting/Any-str.pm] implemented the .bytes method |
22:26 | |
| pmichaud | kesselhaus: I might look at commits that affected src/oo.c, though | ||
| since that's where the problem likely lies. | 22:27 | ||
| Coke | NotFound: that reduces the leakage in my namespace tests to sub/multisub/nci (your patch for partcl) | 22:28 | |
| NotFound | pmichaud: coretest pass | ||
| Coke: same here | 22:29 | ||
| Coke | NotFound++ | ||
| (applied) | |||
| Seriously, if you want commit bits... | |||
| NotFound | Coke: I'll tell you tomorrow, now I'm tired | ||
| dalek | rtcl: r376 | coke++ | trunk/ (39 files): Switch to using root_new where applicable. |
||
|
22:30
rg joined
22:32
kid51 joined
|
|||
| wayland76 | purl: ping | 22:35 | |
| purl | wayland76: huh? | ||
| pmichaud | NotFound: I'll give you the test case where your patch fails... just a sec | 22:43 | |
| but the biggest problem is that it *still* wants to create PMCProxy's in the HLL namespace. | 22:44 | ||
| oh, wait | |||
| NotFound | pmichaud: the intention is to look for it and create in the PMC namespace | 22:45 | |
| The code is not clean, I reused variable names. | 22:46 | ||
| The HLL namespace of the PMC, I mean | 22:47 | ||
| pmichaud | Yes, I see that now. | ||
| I overlooked the line | |||
| hll_ns = interp->vtables[type]->_namespace; | |||
| okay, the patch looks pretty good to me now. | 22:52 | ||
| NotFound | Needs cleaning and comenting, but I must go to bed now | 22:53 | |
| Feel free to clean and apply if you want. | 22:54 | ||
| 'night | |||
| Whiteknight | the "does" vtable gives me carte blanche to abuse the english language | 22:57 | |
| dalek | rrot: r39202 | whiteknight++ | branches/io_rewiring/src/pmc/handle.pmc: [io_rewiring] a few fixes, and handles now does 'IO' |
23:00 | |
| rrot: r39203 | whiteknight++ | branches/io_rewiring/src/pmc/socket.pmc: [io_rewiring] socket now does socket |
23:03 | ||
|
23:06
cognominal joined
|
|||
| darbelo | OpenBSD/amd64 is tickling the gc again. | 23:16 | |
|
23:16
tetragon joined
|
|||
| darbelo | I got failures in several places (that move arround from a commit to the next) caused by segfaults in mark_special() | 23:17 | |
|
23:20
donaldh joined
|
|||
| nopaste | "darbelo" at 200.49.154.172 pasted "Backtrace of OpenBSD/amd64 t/pmc/sub.t failure" (92 lines) at nopaste.snit.ch/16699 | 23:21 | |
| kid51 | Am I correct in thinking that Smolder is working again? smolder.plusthree.com/app/public_pr..._reports/8 | 23:30 | |
| dalek | rrot: r39204 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc: [pmc] Reuse dest PMC in Integer ariphmetic ops. |
23:36 | |
| rrot: r39205 | bacek++ | branches/tt452_reduce_mmd/src/pmc/scalar.pmc: [pmc] Reuse dest if possible in Scalar ops. |
|||
| cnum-dynpmcs: r66 | darbelo++ | trunk/build/Makefile.in: Update DOCDIR in the Makefile. |
23:47 | ||
|
23:57
patspam joined
|
|||