|
Please mentor for SoC | parrotcode.org/ | YAPC::NA talks deadline is Sat Mar 15 | tinyurl.com/2pmnlq Set by moderator on 8 March 2008. |
|||
| Tene | Yay, segfault! | 00:00 | |
| Infinoid | heh. I don't understand perlio.c, either. | ||
| #define PerlLIO_dup(fd) dup((fd)) | 00:01 | ||
| #define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2)) | |||
| ah. win32 uses stdio, not file descriptors, so they specialcase their dup routine to call win32_dup(win32_fileno(file)) | 00:04 | ||
| Tene | Hmm... there's a problem with the io layer. | 00:05 | |
| chromatic | Hey, we're down to one. Nice. | ||
| nopaste | "tene" at 166.70.38.237 pasted "problems with PIO_dup" (86 lines) at nopaste.snit.ch/12478 | 00:07 | |
| Infinoid | fd=-1 | 00:08 | |
| Tene | Ahh. | ||
| Well, that's a problem. | |||
| chromatic | Welcome to PDP-8 assembly language. | ||
| Tene | What's the difference between dup'ing the fd and re-opening the same fd? | 00:13 | |
| Infinoid | depends a lot on where it came from | 00:14 | |
| if you open a file twice, changes made to one fd will supercede changes made to the other | |||
| Tene | Infinoid: fdopen() the same fd, that is. | 00:15 | |
| Infinoid | oh. fdopen() is just C library stuff, it will behave the same as a dup()'d fd | 00:16 | |
| Tene | I'm doing something wrong with the ParrotIOLayer. | ||
| Infinoid | hrm | 00:17 | |
| except that fclose() on both FILE*'s will try to close() the same underlying fd twice | |||
| when you destroy one file handle, the other one becomes inoperative | 00:18 | ||
| did you figure out why dup() returned -1? was the input valid? can you check errno? | 00:20 | ||
| Tene | The problem I'm working on right now is that I can't get a valid ParrotIOLayer. Both ->stack of the pmc it's called with and interp->piodata->default_stack throw segfaults when fdopen_down tries to access ->api on them. | 00:22 | |
| they're 0x20 and 0x1b respectively, which don't look like valid pointers. | |||
| Infinoid | ok. in PIO_dup, layer is a copy of io->stack | 00:26 | |
| io is the pmc data pointer, casted to ParrotIO | |||
| if io->stack is 0x20, are you sure that was really a ParrotIO PMC? | 00:27 | ||
| Tene | It's called like: | 00:28 | |
| PMC * const dest = PIO_dup(SELF); | |||
| from parrotio.pmc | |||
| Infinoid | ok, that makes sense | 00:32 | |
|
00:33
GeJ joined
|
|||
| Infinoid | do you have to pass in INTERP too, or does the pmc2c thingy handle that for you? | 00:34 | |
| Tene | ... | 00:35 | |
| I think I have to pass that myself. | |||
| Infinoid | the odd thing is, if it was supposed to be "PMC * const dest = PIO_dup(INTERP, SELF);", I would have expected the compiler to barf | 00:36 | |
| Tene | Yeah, me too. | ||
| Infinoid | missing a prototype perhaps? | ||
| Tene | I don't know where I should put a prototype. | 00:37 | |
| i could find one mentioned for PIO_destroy anywhere. | |||
| compiles fine with INTERP being passed in and seems to run fine, too. | |||
| Infinoid | the prototype for that is in include/parrot/io.h | ||
| Tene | Except for that same double free I was trying to get rid of in the first place. ;) | ||
| Infinoid | so, invalid pointer problem solved? :) | 00:38 | |
| Tene | Yes. | ||
| Infinoid | great. so, your strategy is basically to take a new fd (created with dup()), and wrap a new ParrotIO around it, right? | 00:39 | |
| Tene | Right. | ||
| Infinoid | that sounds good... no chance of sharing the same allocated buffers, thus, no chance of double frees | ||
| what's your PIO_dup() look like currently? | |||
| nopaste | "tene" at 166.70.38.237 pasted "PIO_dup" (30 lines) at nopaste.snit.ch/12479 | 00:42 | |
| Infinoid | if newfd is -1, I'm really curious what io->fd was, and also, what errno is | 00:43 | |
| chromatic | Do you mean to use io->fd or newfd in PIO_fopen_down? | 00:44 | |
| Infinoid | he replaced newfd with io->fd because newfd was -1 | 00:45 | |
| the disturbing thing is, even after creating a new ParrotIO around the same fd, he still sees a double free. | |||
| chromatic | There's no code in the -1 case here. | ||
| Tene | No, newfd isn't getting set to -1 anymore. | 00:46 | |
| Works fine with newfd, just put it back. | 00:47 | ||
| Infinoid | getting a double free? | ||
| Tene | Yes. | ||
| Now trying to figure out where. | |||
| Infinoid | valgrind might help | 00:48 | |
| also, at some point it's probably a good idea to put some real error checking in there for the return value of dup()... you never know, big processes might run out of fds | 00:50 | ||
| chromatic | real_exception... errno... | 00:51 | |
| nopaste | "tene" at 166.70.38.237 pasted "assign_pmc" (20 lines) at nopaste.snit.ch/12480 | ||
| Tene | When I add that PMC_data(other) = NULL; the double-free goes away. | ||
| Doesn't go away when I do it to the clone. | 00:52 | ||
| ... oh. | 00:53 | ||
| I was returning new_io_pmc(io), not (newio) | |||
| Infinoid | awesome | 00:54 | |
| Tene | Huh. It works. | ||
| purl | of course it works | ||
| Coke | tello? | 00:55 | |
| Coke pats purl onna head. | |||
| hurm. I'm supposed to see a 3 element list. instead, I see the number '3'. This *should* be easy to track down. | 00:57 | ||
| Infinoid | scalar context? :) | 00:59 | |
| chromatic | Scalar context and Tcl... yeah, that's head-explodey. | 01:00 | |
| Tene | some tests in t/postconfigure/ always hang for me, but seem to complete successfully if I ^C them. | 01:01 | |
| Coke | puts [join [list {*}{a b c}] ,] # should print "a,b,c\\n", instead prints "3\\n". It's related to the {*} syntax. (yes, tcl has syntax now. Shhh. It'll be ok.) | 01:02 | |
| Tene | what does {*} do? | 01:04 | |
| Coke | it expands the next word into multiple words. | 01:06 | |
| it's as if you had typed: puts [join [list a b c]] | |||
| which is much handier when the thing following {*} is not a literal, obviously. | 01:08 | ||
|
01:20
Ademan joined
|
|||
| Coke is lost in sea of trace output and gives up for the night. | 01:22 | ||
| kid51 | Tene: can you send me instances of those t/postconfigure/ tests hanging, including OS/platform details? | 01:47 | |
| And can you pinpoint hang locations by running prove -v? | |||
| I wrote the tests, but have never experienced this hanging or heard reports of that. | 01:48 | ||
| Also: Are they hanging during 'perl Configure.pl --test' or during 'make test'? | |||
|
02:05
particl1 joined
02:10
chromatic joined
02:28
rdice joined
03:19
teknomunk joined
03:50
b2gills left
|
|||
| Tene | So, if 'make test' passes just the same after my ParrotIO changes, it should be okay to commit? | 04:07 | |
| particle | yep | 04:08 | |
| PerlJam | Tene: if not, someone will scream at you :-) | ||
|
04:09
Ademan joined
|
|||
| PerlJam | woo ... I'm losing it. I just tried "perl perl6.pbc" several times and was puzzled why it wasn't working. | 04:19 | |
| Tene | Heh. | ||
| particle | hrmm... maybe you should build perl with an embedded parrot and direct it to run .pbc files via parrot. | 04:21 | |
| it's definitely a sign. | |||
| PerlJam | Well ... I /have/ wanted access to p6 regex (PGE) in perl 5 on occasion ... ;) | 04:22 | |
| chromatic | ext/Parrot-Embed/ | ||
| avar | Are there any examples of how to use specific pir libs w. Parrot::Embed and how to convert pir->perl datastructures? | 04:23 | |
| PerlJam | avar: I don't know how chromatic's parrot column it going, but that sounds like a good topic at some point ;) | 04:26 | |
| Tene | Okay, I'm looking at include/parrot/io.h and I'm uncertain about the attribute and FUNC_MODIFIES stuff. It looks autogenerated. Is it a generated file? | 04:27 | |
| particle | if it's generated, it'll be in a comment at the top | ||
| Tene | Oh, clever! | 04:28 | |
| Okay, thanks. | |||
| particle++ | |||
| avar | PerlJam: If someone parrot-y could spoonfeed me info I might bother to write re::engine::PGE :) | 04:29 | |
| PerlJam | avar: what info do you need? | ||
| (how much spoon feeding do you require?) | 04:30 | ||
| particle looks for a silver spoon | |||
| PerlJam | are the pmcs in languages/perl6/src/pmc used for anything? | 04:31 | |
| particle | yes | ||
| PerlJam | or, put another way, how can I make perl6.pbc use the perl6bool.pmc? | ||
| particle | see languages/perl6/Makefile | ||
| avar | PerlJam: I'm not sure, I just remember peeking at it once and being very confused:) | ||
| How to make a match and access match buffers and such would be nice | 04:32 | ||
| PerlJam | particle: been there, done that, but my changes don't seem to have affected anything. | ||
| avar | And how to feed it a new grammar etc. | ||
| But I really don't want to bother anyone else with it unless they're really excited about it since I'm being really lazy about it:) | |||
| particle | omg my head just exploded | 04:33 | |
| i imagined using re:engine:PGE to run Perl5Rules in perl 5 | |||
| er, Perl5Regex | |||
| Tene | I'm rather uncertain about my addition to include/parrot/io.h | 04:34 | |
| Is it enough to bother asking the list, or just commit and let someone complain to me about it? | |||
| particle | well, we don't like it when trunk breaks | ||
| but if make test passes. what's the prob? | 04:35 | ||
| PerlJam | particle: for instance, as a test, I made perl6str.pmc's get_integer routine always add 7 to the value it returns, yet I can't get perl6.pbc to ever do that. | ||
| particle | i've fallen way behind on reviewing commits, but chromatic reviews most (and all c commits afaict) | ||
| avar | PerlJam: It's probably best not to make it a re::engine | 04:36 | |
| PerlJam | avar: there is a bit of an impedence mismatch between the perl5 "interface" and the perl6 semantics. | ||
| $0 vs $1 for instnace | 04:37 | ||
| avar | The main problem is that p5 regexes are strings and p6 regexes are objects | ||
| particle | p5 regexes are still strings? | ||
| PerlJam | yeah, I was just about to say something about hacking a "match object" :) | ||
| particle | hrmm. a reentrant string. | 04:38 | |
| PerlJam | avar: qr// gives an object doesn't it? | ||
| avar | No they're first class objects (in 5.11) but you always end up with the quote problem | ||
| particle | i suppose that makes as much sense as "a reentrant object" | ||
| avar | yeah, but the // part quotes which will screw you up in lots of cases | ||
| PerlJam | avar: you can't turn off the quoting and just grab what's in between and shunt it off to the re engine? | 04:39 | |
| avar | no, it'll still be interpolated | ||
| PerlJam | avar: or, better yet, morph the quoting to use perl6 rules. | ||
| avar | But generally it's just a lot of troble and it would be easier to start by doing my $rule = Grammar::Foo->new; my $m = $rule->match($str): say $m->[0]; and so on | 04:40 | |
|
04:41
Theory joined
|
|||
| particle | could possible be shimmed in with m/(?p6).../ | 04:43 | |
| avar | Yes, I'm just saying if you want a p5 interface to pge it's best to start by doing a regular XS/Parrot::Embed module rather than using re::engine stuff | 04:45 | |
| particle | yep. i'm not too interested in that, though | 04:46 | |
| i'd rather get p5 on p6 or parrot | |||
| or just xlate | |||
| avar | Well, if you'd get PGE working on something people actually use in production you'd have a lot more .pg stuff to play with once p6 becomes usable:) | 04:47 | |
| particle | i hope that as parrot approaches 1.0 this year, it'll be used in production | 04:48 | |
| PerlJam | I hope that as rakudo approaches perl 6, it'll be used in production :) | 04:50 | |
| (I'm not so hopeful for "this year" as I should be though) | 04:51 | ||
| particle | yeah, meetoo | ||
| my tuit supply is near nil lately | |||
| PerlJam | particle: do you know why Str.pir does $P0('String', 'Str') and $P0('Perl6Str', 'Str') (where $P0 is make_proto) > | 04:53 | |
| er ? | |||
| purl | derrr.. or www.imdb.com/title/tt0108757/ | ||
| PerlJam | that would seem to map both String and Perl6Str to the Str type in perl 6 | 04:54 | |
| particle | that's exactly right | ||
| PerlJam | but that doesn't make much sense to me since Perl6Str extends String | ||
| particle | but sometimes you are dealing with a parrot String | 04:55 | |
| and you want to treat it as a Str | |||
| it's a bit of a mess that needs cleaning eventually | |||
| PerlJam | okay, then how would I do the same for Bool? | 04:56 | |
| (All I wanted to do was something simple to whet my appetite and hone my skills a little before I tried something slightly more complex and simple is turning out to not be so) | |||
| particle | what do yo want to do with bool? | ||
| PerlJam | I was just trying to implement increment() and decrement() | 04:57 | |
| (in Perl6Bool.pmc) | |||
| currently it appears that the only pmc that's actually used is perl6str.pmc | 04:58 | ||
| particle | hrmm | ||
| c:\\usr\\local\\parrot\\trunk\\languages\\perl6>perl6 -e "say 1 ~~ Bool::True" | |||
| 1 | |||
| PerlJam | Maybe I should just skip to my next trick which was to implement increment() and decrement() for Perl6Str | ||
| particle | the ACCEPTS method is definitely called for Bool | 04:59 | |
| PerlJam | um ... where is ACCEPTS documented? | 05:01 | |
| svnbotl | r26320 | tene++ | trunk: | 05:02 | |
| : Fix ParrotIO's clone() | |||
| : Add PIO_dup to dup an fd | |||
| : Add a set_pmc to ParrotIO | |||
| : chromatic++ pmichaud++ Infinoid++ | |||
| PerlJam | Tene++ again! :) | ||
| particle | .sub 'increment' :method | ||
| $P0 = get_global 'True' | |||
| .return ($P0) | |||
| .end | |||
| that'd be my off-the-cuff guess for increment | 05:03 | ||
| PerlJam | particle: I can do it in pir, the execise here was for me to do it in the .pmc file. | ||
| particle | oh. i see. | ||
| src/classes/Bool.pir is where i was looking | |||
| i guess i didn't realize you were looking at src/pmc/ | 05:04 | ||
| PerlJam | I'm looking at both because they apparently interact. | ||
| or, they would if I could make make_proto('Perl6Bool','Bool') work :) | |||
| particle | ok, well perl6bool isn't built | ||
| there's no perl6bool.c file on my system | 05:05 | ||
| PerlJam | particle: it is in my copy :) | ||
| as I said, perl6str.pmc appears to be the only one of the pmcs that's actually in use. | |||
| particle | ok, so you have METHOD increment() { ... } | ||
| PerlJam: onload in bool.pir makes objects of type Boolean | 05:09 | ||
| and sets them as globals | |||
| PerlJam | I can tell you exactly what I have: METHOD increment() { SELF.set_bool(1); } and then in Bool.pir, I replaced $P0('Boolean', 'Bool') with $P0('Perl6Bool', 'Bool'); | ||
| particle | ok | 05:10 | |
| what happens? | |||
| of course, you also modified the makefile to build perl6bool.pbc | |||
| PerlJam | yep | ||
| and my test is: parrot perl6.pbc -e 'my $x = Bool::True; $x++; $x++; say $x;' # I expect to get a 1 as output. | 05:11 | ||
| I get 3 | |||
| particle | ok, so find out what type $x is | ||
| PerlJam | er, how? | 05:12 | |
| purl | i think er, how is that a problem ? | ||
| particle | i bet it's Integer | ||
| $x.WHAT iirc | |||
| PerlJam | oh, right. I'm not fully in perl6-think right now. | ||
| Bool | |||
| particle | maybe $x.WHAT.WHAT | 05:14 | |
| PerlJam | still Bool :) | 05:15 | |
| Is there a way to trace the method calls? | |||
| particle | not really, no | ||
| particle is in really-tired-wife-is-away-two-beers-for-dinner-mode | 05:16 | ||
| davidfetter hands particle another beer | 05:18 | ||
| particle | PerlJam: try SELF.set_integer(1) | ||
| PerlJam | I've convinced myself that my increment() method isn't being called at all. | 05:19 | |
| wknight8111 | Force your increment method to output an error diagnostic. It's crude, but it should show you if something is happening | 05:20 | |
| PerlJam | (I added a printf(), re-make, and don't see the output. I did the same with perl6str and I do see the output (yay! a positive result) ) | ||
| :-) | |||
| wknight8111 | ...nevermind then | ||
| PerlJam | okay, that's weird. | 05:21 | |
| oh, no it's not. | |||
| particle | alert('foo'); | 05:22 | |
| PerlJam | get_string() is called from the pmc just fine. | ||
|
05:22
teknomunk joined
|
|||
| particle | please tell me your increment sub is before the final } | 05:22 | |
| PerlJam | yes. :-P | 05:23 | |
| particle | good, because i would have been upset if you weren't getting compile errors | ||
| PerlJam | aha! s/METHOD/VTABLE void/ | 05:24 | |
| PerlJam does the happy dance | |||
| particle | ahhhh.... duh. | ||
| PerlJam doesn't understand it all yet, but it's sinking into the grey matter slowly | 05:25 | ||
| particle | good point, though. i find it odd that the perl 6 pmc's functions aren't decorated with METHOD or VTABLE | 05:26 | |
| it should be REQUIRED by pdd17 | |||
| perhaps chromatic's parser is still forgiving | |||
| PerlJam | now to adding increment and decrement to perl6str :-) | 05:27 | |
| s/ing// | |||
| er, how do I remake the Makefile? | 05:30 | ||
| particle | make Makefile | 05:31 | |
| purl | i heard make Makefile was a shortcut | ||
| PerlJam | i.e., it's generated from config/makefiles/root.in | ||
| particle | that's one of my favorite hacks | ||
| PerlJam | It mildly bothers me as it's so close to make -f Makefile | 05:32 | |
| but, still neat :) | |||
| svnbotl | r26321 | duff++ | trunk: | 06:02 | |
| : [rakudo] implement auto{increment,decrement} semantics as per S03 | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26321 | |||
| PerlJam | boy that was a useless message. It didn't even mention Bool | 06:04 | |
| PerlJam was distracted by using "git svn" to push something upstream for the first time. | 06:05 | ||
| chromatic | Is Bool now one of the Rakudo PMCs, and built by default? | 06:06 | |
| PerlJam | yes. | ||
| chromatic | Good stuff. | 06:07 | |
| Hm, the commit mail is taking a while to come through. | 06:14 | ||
| I can't abuse you^Hyour patch until it does. Sigh. | |||
| PerlJam | chromatic: my next commit will venture into territory I'm even less familiar with (I'm going to flesh out initial implementations for auto{inc,dec} strings) | 06:16 | |
| I'm not really sure about STRING* v. char and such. (I assume that I should use INTVAL rather than int too) | 06:17 | ||
| er, s/char/char*/ | |||
| chromatic | There are encoding considerations. That could be tricky. | 06:19 | |
| Start with STRING and only use char if lathos says you can. | |||
| (I suspect that he will not.) | 06:20 | ||
| PerlJam | well, I figure I'll do something very ASCII (since that's better than /* do nothing */) and then let someone else show me the right way to respect encodings, etc. | ||
| also, there appears to be some prior art of ignoring the encoding in perl6str.pmc so I wouldn't be treading anywhere someone else hasn't already tread :) | 06:22 | ||
| lathos | If only someone wrote a design document about all this. | 06:23 | |
| PerlJam senses sarcasm | |||
| lathos | svn.perl.org/viewvc/parrot/trunk/do...iew=markup | 06:24 | |
| shorten | lathos's url is at xrl.us/bhjfk | ||
| chromatic | I skimmed the doc; it's not entirely clear to me how to make increment/decrement respect encodings. | ||
| PerlJam | lathos: tell me, how do I do the equivalent of isalpha() or isdigit()? | ||
| chromatic | Then again, I have very much not the smartest person in the room syndrome with regard to this. | ||
| lathos | The problem is that the whole infrastructure just isn't there right now, so it can't be helped. | 06:25 | |
| Right now it's unfortunately probably best just to hack away and we'll clean it up later. | |||
| PerlJam | that's exactly what I figured. | 06:26 | |
| chromatic | When you commit, then file a bug that it needs robustification. | ||
| PerlJam | will do | ||
| lathos | But if you're doing stuff like isalpha (or anything really), it could be worth creating a stub Parrot_string_isalpha (or whatever) abstraction and we'll make *that* do the right thing later, rather than having to go through everyone's code looking for all the different ways they've done things.. | ||
| chromatic | There are some suspicious functions in src/charset/*.c | 06:27 | |
| lathos | Everything in src/charset is suspicious. :( | ||
| PerlJam | heh ... I'll just use to_ascii() first ;) | 06:28 | |
| lathos | is_cclass does look like the right thing. | ||
| PerlJam | perhaps someone who knows what's what could satisfy RT#48260 | 06:29 | |
| is there a pastebot on this channel? | 06:38 | ||
| oh, never mind | |||
| purl | Okie dokie | ||
| Tene | purl: nopaste | 06:39 | |
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating | ||
| PerlJam | Tene: yeah, I got it. (there are so many different names to remember in all of the channels I frequent) | ||
| nopaste | "PerlJam" at 75.43.16.244 pasted "Perl6Str autodecrement implementation." (42 lines) at nopaste.snit.ch/12488 | 06:40 | |
| PerlJam | here's a first cut at autodecrement. Be kind I haven't coded in C in a while. | ||
| but feedback is *most* welcome. | 06:41 | ||
| chromatic | I'm getting lost in the single- and double-character variable names. | ||
| s and i I get, but.... | |||
| PerlJam | sx and ex are just the previous values of s and e so we can take care of finding the . if there is one. | 06:43 | |
| (so that blah-999.jpg becomes blah-998.jpg) | 06:44 | ||
| lathos | Do extra characters really cost that much? :) | ||
| PerlJam | btw, is there a tool that tidies C code to whatever the standard is for parrot? | 06:46 | |
| (well, something that I can apply to the .pmc file) | |||
| chromatic | svk diff | mail -s 'chromatic|Andy please tidy my code' | ||
| PerlJam | chromatic: well, if you don't mind the busy work, feel free to recast that paste in a more parroty manner. :-) | 06:48 | |
| chromatic | If you fix up the variable names and throw in some newlines, I'll poke at it. | 06:50 | |
| PerlJam | It's nigh on my bedtime, so perhaps tomorrow. | 06:55 | |
| good night all. | |||
|
07:05
uniejo joined
|
|||
| svnbotl | r26322 | chromatic++ | trunk: | 07:11 | |
| : [IMCC] Sped up compute_dominators() by about 75%. In particular, walking | |||
| : backwards through the three-level runner loop is responsible for most of the | |||
| : gains. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26322 | |||
| r26323 | chromatic++ | trunk: | 07:30 | ||
| : [IMCC] Minor cleanups of this file. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26323 | |||
|
07:46
cognominal joined
07:47
cognominal left
07:48
cognominal joined
08:09
iblechbot joined
08:11
wknight8111 joined
|
|||
| svnbotl | r26324 | fperrad++ | trunk: | 08:14 | |
| : [Lua] | |||
| : now works without --no-gc | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26324 | |||
| chromatic | Heh. I've said that for while. | 08:16 | |
| lathos | chromatic: I take it you know about valgrind massif? I only just found out about it. | 08:17 | |
|
08:18
kj joined
|
|||
| chromatic | I've run it a couple of times, but I'm not a thread person, so I don't really know how to use it. | 08:19 | |
| I do love Valgrind and Callgrind. | |||
| lathos | It's not a thread thing, it's more of a heap profiler. May be handy with GC leak detection. | 08:20 | |
| chromatic | I've found the gc-debug runcore good at that. | 08:21 | |
| svnbotl | r26325 | chromatic++ | trunk: | 08:26 | |
| : [PMC] Removed a few unnecessary STRING allocations within CodeString's emit(). | |||
| : This improves the performance of this METHOD by around 5%, but it has the nice | |||
| : effect of reducing GC time by the same amount (at least going by the p6rx | |||
| : tests). | |||
| : The fewer PObjs we create, the faster we go. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26325 | |||
|
08:29
AndyA joined
|
|||
| jrt4 | Before I post this as a bug, will someone make sure I'm not being stupid ... I'm looking at fixup_unpack() in packfile.c at switch (entry->type) -- the docs (pdd13) say "0x01 - Subroutine fixup", however gdb, and enum_fixup_t both have entry->type at 2 for sub fixups. Are the docs wrong? | 08:34 | |
| lathos | If so then docs/parrotbyte.pod:169 is also wrong. | 08:37 | |
| jrt4 | Ah ... they must have added in enum_fixup_none since the docs were written. | 08:40 | |
| lathos | Dunno, the docs look newer. Certainly file it as a bug. | 08:42 | |
|
09:00
mj41 joined
|
|||
| jrt4 | Done ... Is there any way to keep rt from collapsing the whitespace in the bugs I email in? Does it take HTML <code> || <pre> tags? | 09:03 | |
| Tene | chromatic: thank you for comments. | ||
| chromatic | Glad to help. | 09:04 | |
| It's really minor stuff. | |||
| Tene | Yes, but coding style guidelines make me comfortable. | 09:10 | |
| chromatic | They make bugs easier to spot too. | 09:13 | |
|
10:15
wknight8111 joined
10:18
kj joined
10:58
ruoso joined
11:31
liona29 joined
12:04
iblechbot joined
|
|||
| Coke | jrt4: for anything where you care about whitespace, send it as an attachment. | 12:21 | |
| (like, code.) | 12:22 | ||
| chromatic++ # code reviews. | 12:32 | ||
|
12:34
Theory joined
|
|||
| svnbotl | r26326 | fperrad++ | trunk: | 12:46 | |
| : [codingstd] | |||
| : C parentheses | |||
| r26327 | fperrad++ | trunk: | |||
| : [Lua] | |||
| : now works without --no-gc | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26327 | |||
|
12:55
cosimo_ joined
|
|||
| svnbotl | r26328 | coke++ | trunk: | 12:59 | |
| : [t] | |||
| : ' isn't a quote delimiter in tcl, so this test would have always failed. | |||
| : fperrad++ # I didn't even know this file was in the repo. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26328 | |||
|
13:24
Psyche^ joined
13:28
parrot-poke joined
13:55
wknight8111 joined
14:20
Psyche^ joined
14:23
gryphon joined
14:25
skids joined
|
|||
| cognominal | I got lexical self working... | 14:34 | |
|
14:35
Alias_ joined
|
|||
| particle | cognominal++ | 14:49 | |
| cognominal | waiting for someone interested in my patches... | ||
| I guess with heredoc and postcircumfixed pairs, we will be close to compile rakudo in rakudo | 14:50 | ||
| I am pissed off to see people still coding in pir. | 14:51 | ||
|
14:51
davidfetter joined
|
|||
| pmichaud | cognominal: "pissed off"? really? | 14:55 | |
| cognominal | well, it's about time for people to use parrot to code in HLLS | 14:58 | |
| kj | there seems to be something wrong with pbc_to_exe; parrot bails out when I run an application in my language (the tutorial language I wrote) | 14:59 | |
| Coke | kj: works fine for tcl. | ||
| kj | cognominal: as long as there's no complete language, people might still be hesitant | ||
| coke: sure, some apps work fine | |||
| Coke | cognominal: most of the people here are writing compilers, so... | ||
| pmichaud | cognominal: so, how would you write the "substr" function in Perl 6 ? | 15:00 | |
| kj | but this app is rather big | ||
| Coke | when you say *parrot* is bailing out, do you mean the compiled thing that is calling the parrot libraries? | ||
| pmichaud: hey... can I trouble you to look at something in tcl for 5 minutes? | |||
| kj | coke: I create an executable, squaak.exe in my case, and it just stops | ||
| pmichaud | coke: sure | ||
| kj | i just get a new prompt | 15:01 | |
| cognominal | Coke: I want people to start to play with HLLs written with parrot. | 15:03 | |
| in fact, I wanted to use rakudo, not so much modifying it. | 15:04 | ||
| pmichaud | cognominal: we're getting there, albeit slowly | 15:05 | |
| cognominal | btw, I have noted that people can't get used to drop parentheses in conditionals. grammar.pg was full of them. | ||
| not that it hurts | 15:06 | ||
| kj | you mean actions.pm? | ||
| cognominal | oops | ||
| yes | |||
| pmichaud | it doesn't hurt, and in many ways I think the parens are more readable | ||
| kj | well I have no problem with that. but I'm not a Perl programmer, so I Just Don't Know anything else | 15:07 | |
| svnbotl | r26329 | coke++ | trunk: | 15:12 | |
| : [tcl] | |||
| : Add a failing test for {*} that works in tcl 8.5 | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26329 | |||
| particle | kj: you're on windows, right? after your command, try echo %ERRORLEVEL% | 15:18 | |
| see if there's a segfault | |||
| cognominal: i don't see your patches hitting the mailing list | |||
| maybe my mail client dropped them | 15:19 | ||
| cognominal: where are you submitting patches? parrotbug@parrotcode.org? rakudobug@perl.org? | 15:20 | ||
| skids | cognominal: I'm more interested in coding in perl6 than working on parrot, frankly, but neither it nor pugs has async socket IO really working enough to start porting over Net:: stuff which is about the only part I can job-justify :-) | 15:22 | |
| Glad to see Tene tackling it, wish I had more spare attention. | |||
| kj | particle: good idea. it's some non-0 value indeed, so there's someting wrong. | ||
| cognominal | I had submitted a patch to parrotbug@parrotcode.org | 15:24 | |
| svnbotl | r26330 | coke++ | trunk: | ||
| : [tcl] | |||
| : Now that 8.5.0 is released, when running the tcl tests, specifically | |||
| : use the 8.5.0 tests, not HEAD. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26330 | |||
| cognominal | waiting it to get thru before submitting other | ||
| I did not know about rakudobug@perl.org | 15:25 | ||
| particle | rakudobug@ is for rakudo patches. it automatically puts the bug in the rakudo queue | 15:26 | |
| Coke | (otherwise a bugadmin has to move the tickets around, which is doable, but time consuming.) | ||
| s/time/tuit/ | |||
| davidfetter wonders where he can find a gift pack of tuits | 15:28 | ||
| the round ones are best | |||
| Coke | hurm. if all my user callable subs in tcl have a "&" prefix, there's really no reason to keep all my helper methods in another namespace. I could just keep them sans sigil. (or with a different sigil) | ||
|
15:29
Andy joined
|
|||
| svnbotl | r26331 | coke++ | trunk: | 15:29 | |
| : [tcl] | |||
| : When running tcl's test suite, use GC. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26331 | |||
| nopaste | "pmichaud" at 76.183.97.54 pasted "partial trace for tcl" (8 lines) at nopaste.snit.ch/12490 | 15:43 | |
| particle | coke: tcl only fails 5 subtests on win32 now | 15:54 | |
|
15:59
slavorg joined
|
|||
| svnbotl | r26332 | coke++ | trunk: | 16:00 | |
| : [tcl] | |||
| : pmichaud++ # figuring out where this was falling down. | |||
| : Re-implement a workaround for a failing test. (At one point, :slurpy | |||
| : here always provided us with a TclList: when it does again, this hack | |||
| : can be removed.) | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26332 | |||
| pmichaud | need an RT ticket for :slurpy, I think. | 16:05 | |
| particle thinks of things that are slow: glaciers, global warming, tcl's test suite | 16:11 | ||
| avar | Actually some icefalls are a lot faster than | 16:25 | |
| ..tcl;) | 16:26 | ||
| particle | rats. i don't see a way to specify which pages firefox should load from commandline | 16:32 | |
| Coke | tcl is invoking a LOT of opcodes. | 16:45 | |
| seriously, speed updates welcome. =-) | 16:49 | ||
| I would love to have more people hacking on partcl. | 16:50 | ||
| cotto_work | how much of the schedule for YAPC::NA and the subsequent hackathon is known? | 16:51 | |
| davidfetter wonders whether his talk got accepted | 16:52 | ||
| Coke | I would expect: conferences.mongueurs.net/yn2008/talks to show me when the proposals are due. | 16:59 | |
| davidfetter | see, that would make sense and help people. | 17:00 | |
| Coke | seen jmcadams? | 17:01 | |
| purl | jmcadams was last seen on #catalyst 2 days and 14 hours ago, saying: will try to get one together... no promises though... i'm running way behind on everything right now :( [Mar 9 20:01:43 2008] | ||
| Coke | particle: are you sure that's how those tests would output in tclsh8.5 on windows? | 17:05 | |
| particle | no | 17:06 | |
| they're not testing against tclsh8.5 anyway | |||
| Coke | no, but they're supposed to behave *just like* 8.5 | ||
| particle | ok, well then the expected output was wrong anyway | ||
| tcl? | |||
| purl | tcl is www.tcl.tk/ or TCL7::TCL8 as perl4::perl5 or possibly partcl. or rt.perl.org/rt3/NoAuth/parrot/List....;Value=tcl or segfaulting parrot since 2001. or the canary in the mine shaft, as far as parrot is concerned. or www.tcl.fr/ | ||
| svnbotl | r26333 | particle++ | trunk: | 17:07 | |
| : [tcl] fix some test portability problems leading to windows failures | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26333 | |||
| particle downloads activetcl | 17:08 | ||
| Coke muahahahas. | |||
|
17:09
Alias_ joined
17:10
Theory joined
|
|||
| Coke | I think tcl is failing 2 tests on non-windows now. | 17:10 | |
| particle | ok, it's failing two on windows, too | ||
| and one occasionally | 17:11 | ||
| *one more | |||
| Coke | woz the other one? | ||
| lsort is passing everything here; but it's got the continuation issue. | |||
| particle | here too | 17:12 | |
| t/cmd_error.t reports failures occasionally when run in make test, but 'prove t/cmd_error.t' never gets erros | |||
| Coke | huh. | 17:13 | |
| particle | it's from some wonky c code somewhere | ||
| i used to get these problems with imcc tests | 17:14 | ||
| chromatic and andy went over the imcc source, and the problems disappeared | |||
| sic em! | |||
|
17:16
Alias_ joined
|
|||
| particle | c:\\usr\\local\\parrot\\trunk\\languages\\tcl>\\usr\\tcl\\bin\\tclsh85 | 17:18 | |
| % puts [pwd] | |||
| C:/usr/local/parrot/trunk/languages/tcl | |||
| so, i can change t/cmd_pwd.t to use File::Spec::Unix->canonpath( getcwd ); | 17:20 | ||
| then the test will fail, but the expected output is correct | |||
| should i mark the test TODO, or let it fail? | |||
| Coke | If you can conditionally TODO it, that'd be good. | 17:21 | |
| particle | can do | 17:25 | |
| svnbotl | r26334 | particle++ | trunk: | 17:38 | |
| : [tcl] tchsh likes unix slashies, even on windows | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26334 | |||
| r26335 | particle++ | trunk: | 17:51 | ||
| : [rakudo] remove accidentally committed test code by duff | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26335 | |||
|
18:08
pjcj joined
18:09
rdice joined
|
|||
| Andy | ehich tests? | 18:10 | |
| What did we do? Were we good? Hooray for us! | |||
| cognominal | nope, a spare 'say' | 18:12 | |
| particle | andy: there's some funny business with tcl pmcs on win32 | ||
| they could use a good going-over | |||
| Andy | specific file? | 18:13 | |
| particle | when i run make test, i get occasional erros in t/cmd_error.t | 18:14 | |
| Andy | Well, I can't dig right now. | 18:17 | |
| maybe a splint run would do you good. | |||
| lemme at least compile tcl and see if anything leaps out. | |||
| Coke | pmichaud++ | 18:19 | |
| pmichaud | ...what did I do? ;-) | 18:20 | |
| pmichaud thinks that coke is throwing out random karma | 18:21 | ||
| particle | silence is golden | ||
| Coke | ah, that was for your eyes earlier today. | 18:33 | |
| will be happy to karma you again if you can fix the remaining failure in t/tcl_misc.t =-) | 18:34 | ||
| pmichaud | karma pmichaud | 18:36 | |
| purl | pmichaud has karma of 1059 | ||
| pmichaud | I could TODO the test :-) | ||
|
18:36
davidfetter joined
18:37
ambs joined
|
|||
| Coke | tbbthp. | 18:37 | |
| davidfetter | oi, ambs | 18:38 | |
| ambs | Hi, davidfetter | 18:39 | |
| davidfetter recently back from .pt :) | |||
| (fsvo "recently") | |||
| ambs | davidfetter: and you didn't visit me? :-P | 18:40 | |
| :D | |||
| davidfetter | sorry. where are you? | 18:41 | |
| ambs | Braga | ||
| somewhere in the north | |||
| davidfetter | ah. i was in lisbon | ||
| got to talk to lisbon.pm :) | 18:42 | ||
| is there a braga.pm ? | |||
|
18:42
cout joined
|
|||
| ambs | yes, second biggest perl monger group in Portugal, I must say | 18:43 | |
|
18:43
Psyche^ joined
|
|||
| davidfetter | :) | 18:43 | |
| ambs | hmms... my parrot is failing a lot of tests :-/ | ||
| Failed 3/561 test programs. 8/11196 subtests failed. | 18:46 | ||
| davidfetter | that's not too awful | 18:49 | |
| ambs pokes svnbotl | 18:51 | ||
| svnbotl | r26336 | ambs++ | trunk: | ||
| : Copied some code from readline.pm to gmp.pm to detect libgmp with macports. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26336 | |||
|
18:52
gryphon joined,
IllvilJa joined
|
|||
| ambs | how I missed these lines :) | 18:52 | |
| particle | wow! a commit from ambs. | 18:54 | |
| glad to have you back :) | |||
| ambs | thanks :D | ||
| pmichaud | ambs++ # yay! | 18:58 | |
| Coke | ambs? | 19:01 | |
| purl | ambs is, like, Alberto Simoes, one of the organizers of YAPC::EU::2005 and available at mailto:ambs@cpan.org | ||
| ambs | hmms.. these errors are usual? | ||
| # dyld: Symbol not found: _pio_stdio_layer | |||
| # Referenced from: /Users/ambs/Projects/parrot/./t/src/io_19 | |||
| # Expected in: dynamic lookup | |||
| # | |||
| COKE!! | |||
| Coke finally makes the connection between committer ambs and Alberto. | |||
| ~~ | |||
| Ola, ambs. | 19:02 | ||
| ambs | Hello, Coke. | ||
| Trying to get back :) | |||
| particle | coke: tell me the phone call is tied to UTC | 19:03 | |
| Coke | particle: yes. | 19:04 | |
| I think we have one more hour. | |||
| which means my alert messags are finally going to be timely since DST ended last time. | |||
|
19:06
jrt4 joined
|
|||
| pmichaud | phone is in 39mins | 19:21 | |
| I will miss it, as I will be off having wedding photos taken :-) | |||
|
19:23
barney joined
|
|||
| Coke | barney: hio. | 19:23 | |
| ambs | pmichaud: who's wedding? | ||
| barney | hi there | ||
| purl | niihau, barney. | ||
| pmichaud | ambs: mine :-) | 19:24 | |
| ambs | pmichaud: and you are here in your wedding? | ||
| Congratulations, by the way :-D | |||
| pmichaud | no, the wedding itself will be on Friday. We're doing photos today. | ||
| and thanks. | 19:25 | ||
| barney | How about a Parrot release name as a wedding present? | ||
| ambs | hehehe | 19:26 | |
| pmichaud | for those who are wondering, Paula and I have been together for quite a while but never got married for tax/estate reasons. But we've decided to go ahead and bite the bullet on the taxes/estates. | ||
| er, "never got legally married" | |||
| ambs | pmichaud: Paula is (also) a Portuguese name, btw | ||
| Tene | How married did you get, then? | ||
| Any parroters near SF, btw? | 19:27 | ||
| parrot-poke | Im near SF | 19:28 | |
| more of a groupie at this point | 19:29 | ||
| Tene | I'll be in SF in a couple of weeks. Might have time to meet someone for dinner. | 19:31 | |
| svnbotl | r26337 | ambs++ | trunk: | 19:38 | |
| : Not sure of this fix, but one more test passing (test 16 from t/src/io.t) | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26337 | |||
|
19:55
ambs_ joined
19:57
purl joined
|
|||
| Coke | IO PEN ING! | 20:05 | |
| cognominal | Paula is French too, but not too common | 20:09 | |
| barney | Paula is German too | 20:10 | |
| ambs | damn :) | 20:11 | |
| Coke | AIGH. tcl 8.5.1 is out. | 20:14 | |
| particle has tcl 8.5.1.0 installed :) | 20:15 | ||
| ambs | 8.4 here :-P | 20:16 | |
| Coke builds 8.5.1 | 20:18 | ||
| ambs makes perl6 | |||
| svnbotl | r26338 | bernhard++ | trunk: | 20:21 | |
| : #41237: [TODO] PMC Class name IDs will require a dot in front | |||
| : Avoid deprecated PIR syntax | |||
| : Some beautifications | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26338 | |||
| ambs | beautifications++ | 20:22 | |
| dinner & | 20:23 | ||
| Coke | gah. had a tcl8.5 alpha release in /usr/local; built tlch8.5.1 locally; ran ./tclsh8.5 ; guess which tcl library i was using... | 20:29 | |
| Tene | The right one? | 20:30 | |
| purl | the right one is the one where you control the box :) | ||
| Tene | purl: forget the right one | ||
| purl | Tene: I forgot right one | ||
| Coke | anyone want to know how much slower partcl is than tclsh8.5.1 ? | 20:35 | |
| running, say, t/cmd_expr.t | |||
| anyone? =-) | 20:36 | ||
| about 3000 times slower. =-) | |||
| davidfetter | d'oh | 20:38 | |
| Coke | 1m27.493s vs. 0.030s | ||
| (and I don't even *pass* all those tests.) | 20:39 | ||
| svnbotl | r26339 | bernhard++ | trunk: | 20:40 | |
| : #51662: [TODO] Remove 'classname' rule in imcc.y | |||
| : Expect changed error message after 'classname' has been removed. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26339 | |||
| Coke | (even worse on something like examples/bench.tcl ; tclsh does it in half the time of the cmd_expr.t, parrot was up to 4.5 minutes when I killed it. | 20:44 | |
| ambs fg | 20:45 | ||
| Coke: that are bad news, right? | |||
| svnbotl | r26340 | bernhard++ | trunk: | 20:46 | |
| : #51662: [TODO] Remove 'classname' rule in imcc.y | |||
| : Avoid deprecated PIR syntax | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26340 | |||
| Coke | it's SLOOOOW. | ||
| insanely slow. | |||
| perhaps If I blog about it, I can shame mdiep into coming back! | 20:47 | ||
| ambs | :D | ||
|
20:47
arbingersys joined
|
|||
| ambs wonders why same Test::Harness shows a different output (when running prove) | 20:52 | ||
|
20:53
Psyche^ joined
|
|||
| ambs bounces his head on the wall. | 20:54 | ||
| particle | different TAP::Parser? | 20:58 | |
| ambs | no, different architecture, and different messages in the test accordingly to it | 20:59 | |
| Coke | AHAHAHAHAAH | 21:09 | |
| the script examples/bench.tcl runs about 2**16 times slower in parrot than on tclsh8.5 | 21:10 | ||
| davidfetter | ouch | 21:11 | |
| Coke | 64366 times, but damn. | ||
| particle | i bet it'd be easy to get an order of magnitude improvement there somewhere | 21:12 | |
| not that you'd notice. | |||
| try an optimised build, for giggles | 21:13 | ||
| Coke | I can't wait another 23 minutes to run the damn thing at the moment. :| | ||
| if there would be that much of a speedup, why ever NOT build optimised? | 21:14 | ||
| particle | because you need to debug | ||
| Coke | that shouldn't be the default, should it? =-) | ||
| we are gonna have to flip that bit at some point. | |||
| particle | for sure it'll be optimized by default at parrot 0.50.0 | 21:15 | |
| that's our 'major subsystems implementation complete' release | 21:16 | ||
| Coke | ok. the first test, which was 2916 times slower with default build, is only 1752 times slower with optimized build. | 21:23 | |
| particle | there you go. that's an order of magnitude, base 2 | ||
| Coke | if you squint really hard, yes. =-) | 21:24 | |
| so, I should be aiming to get unoptimized partcl to run only single digit times faster than tclsh8.5 | 21:25 | ||
| and then count on parrot for the rest. =-) | |||
| particle | perfect. only 15 oom to go | 21:26 | |
|
21:45
slightlyoff joined
|
|||
| cognominal | I am back to my old question, what happens if your Perl6 class has the same name as a pmc? | 21:57 | |
| I want to extend the Hash class... | |||
| pmichaud | for the moment, it has to have a different name | 22:12 | |
| however, the way that protoobjects are set up, that's not too much of a problem | 22:13 | ||
| i.e., Perl6Hash (in Parrot) can be held as the 'Hash' entry in the root namespace and report itself back as 'Hash' | |||
| (actually, %hash.WHAT gives back the Protoobject, which can report whatever it wants :-) | |||
| cognominal | well, but the method I add to the namespace hash are not visible | 22:14 | |
| rakudo -e 'my %h; for %h.HOW.methods { say $_ } ' # uses the pmc iterator to list me the methods of the protoobject!! | 22:16 | ||
| but no the keys method! | |||
| ... I added | |||
|
22:48
Psyche^ joined
23:11
cotto_work joined,
jjore joined,
davidfetter joined,
amoore joined,
cxreg joined,
zev joined,
teknomunk_ joined,
parrot-poke_ joined,
rhr_ joined,
TimToady_ joined,
particl1 joined,
arbingersys joined,
purl joined,
cout joined,
Alias_ joined,
mdiep joined,
silug joined,
arcady joined,
Khisanth joined,
bphillips joined,
ewilhelm joined,
shamu joined,
pfig joined
23:13
diakopter joined,
Ademan joined,
tewk joined,
Sartak joined,
Crassworm joined,
Tene joined,
allison joined,
slightlyoff joined,
spinclad_ joined,
jdv79_ joined,
jrt4 joined,
IllvilJa joined,
Theory joined,
wknight8111 joined,
Coke joined,
Dave joined,
c9s_ joined,
shorten joined,
buildbot joined,
cotto joined,
Piper joined,
TonyC joined,
workbench joined
23:15
skids joined
|
|||
| wknight8111 | viva la netsplit | 23:24 | |
|
23:28
davidfetter joined
23:35
clunker joined,
dngor joined,
confound joined
23:45
BitPoet joined,
Andy joined,
jrockway joined,
avar joined
23:46
Infinoid joined,
confound joined,
dngor joined,
clunker joined,
davidfetter joined,
skids joined,
diakopter joined,
Ademan joined,
tewk joined,
Sartak joined,
Crassworm joined,
Tene joined,
allison joined,
slightlyoff joined,
spinclad_ joined,
jdv79_ joined,
jrt4 joined,
IllvilJa joined,
Theory joined,
wknight8111 joined,
Coke joined,
Dave joined,
c9s_ joined,
shorten joined,
buildbot joined,
cotto joined,
Piper joined,
TonyC joined,
workbench joined
23:48
cotto_work joined,
jjore joined,
amoore joined,
cxreg joined,
zev joined,
teknomunk_ joined,
rhr_ joined,
TimToady_ joined,
particl1 joined,
arbingersys joined,
purl joined,
cout joined,
Alias_ joined,
mdiep joined,
silug joined,
arcady joined,
Khisanth joined,
bphillips joined,
ewilhelm joined,
shamu joined,
pfig joined
23:49
clunker joined,
dngor joined,
confound joined
23:55
slavorg joined
|
|||