|
Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 12 June 2012. |
|||
| whiteknight | blah, this IO code is so fragile | 00:26 | |
| every single egregious typo I make breaks it | |||
| dalek | rrot/whiteknight/io_cleanup1: 03ff546 | Whiteknight++ | src/io/ (2 files): Fix several of the asserts I added last time |
00:40 | |
| rrot/whiteknight/io_cleanup1: aea16cf | Whiteknight++ | src/io/ (4 files): Various cleanups. Add TODO notes. Codestd fixes. Add several assertions. These assertions have found at least one problemwith buffer writes, which I haven't fixed. |
|||
|
00:41
schmooster joined
|
|||
| whiteknight | blah | 00:42 | |
| why can't C be just a little bit more forgiving about pointer errors | |||
| like a segfault or two ever hurt anything | |||
| I figure they build character | |||
| and in my branch, Parrot has A LOT of character | |||
| and on that not, WHITEKNIGHT AWAY! | 00:44 | ||
|
01:25
Khisanth joined
01:54
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#424 (io_cleanup1 - aea16cf : Whiteknight): The build failed. | 01:54 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/c...a16cf24aa2 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1606422 | |||
|
01:54
travis-ci left
02:15
wagle joined
02:28
wagle joined
02:37
wagle joined
02:38
wagle joined
|
|||
| dalek | : f840736 | jimmy++ | .gitignore: update .gitignore |
02:44 | |
| rrot/vtable_various: 114e8c6 | jkeenan++ | lib/Parrot/Vtable.pm: Add more function-level documentation in POD format. Reposition some existing POD. |
03:32 | ||
| rrot/vtable_various: 6577d02 | jkeenan++ | lib/Parrot/Vtable.pm: Add examples of output from three methods. |
|||
|
03:48
dduncan joined
03:49
dduncan left
06:00
Khisanth joined
07:04
brrt joined
07:21
rich joined
|
|||
| dalek | : 3697cd9 | jimmy++ | src/gencode.c: add more unuse_reg |
07:30 | |
|
08:17
lucian joined
08:18
wagle joined
08:56
kjs joined
09:46
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#425 (vtable_various - 6577d02 : jkeenan): The build passed. | 09:46 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/1...77d022b4b5 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1607035 | |||
|
09:46
travis-ci left
09:47
alvis_ joined
10:01
PacoAir joined
10:17
kjs joined
10:31
NotFound_b joined
10:35
lucian joined
10:48
JimmyZ joined
|
|||
| JimmyZ | good evening, #parrot | 10:50 | |
| kjs | hi JimmyZ | 11:14 | |
| JimmyZ | hello jks | ||
| error, kjjs | |||
| kjs | |||
| :) | |||
| kjs | :-) | ||
| JimmyZ: I found one case where unuse_reg shouldn't be called | 11:15 | ||
| that's in the parameter passing code | |||
| i added a comment there. | |||
| I dont understand why, though | |||
| JimmyZ | kjs: I saw it | 11:16 | |
| kjs | I suppose we can leave it for now, it's not that important | ||
| JimmyZ | I know why it shoud not be called :) | 11:19 | |
| dalek | : be0a7b1 | kjs++ | src/gencode.c: trying to return values. doesn't work yet. |
||
| kjs | JimmyZ: cool. please share :-) | 11:20 | |
| JimmyZ | kjs: because you're passing arg1 to I0, arg2 to I1, arg3 to I2, arg4 to I3 with a iter | 11:21 | |
| kjs | yes | ||
| thing is, when passing 3 args, i can get 2 args through with the unuse_reg | |||
| but the 3rd is always 0 | |||
| JimmyZ | kjs: Let me take a look | 11:31 | |
| kjs | JimmyZ: note that parameter list is stored in reverse order (in the parser), but so are the arguments. As a result, they line up nicely. | 11:33 | |
| JimmyZ: I think returning values should be done in a similar way to passing parameters. However, I haven't been able to get that working yet. I was thinking 1 return value for now (C-like), so that can just be stored in a fixed register number in the callee's frame; the caller can then just pull it out. | 11:34 | ||
| JimmyZ | kjs: +1 | 11:37 | |
| kjs | if you feel like checking that out... :-) | ||
|
11:40
schmooster joined
11:52
crab2313 joined
12:03
whiteknight joined
12:04
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:05 | |
| JimmyZ | kjs: I know why know | 12:06 | |
| kjs: you're useing set_imm I0, 0, 0 before goto_chunk | |||
| kjs | which line? | 12:07 | |
| JimmyZ: in gencode.c? which line would that be | 12:09 | ||
| JimmyZ | kjs: I think it's c-m0 problem | ||
| kjs | JimmyZ: I think the latest check in stores the return value in I60 | 12:10 | |
|
12:11
mtk joined,
JimmyZ joined
|
|||
| JimmyZ | kjs: I don't know how to fix it yet | 12:11 | |
| kjs | there's something wonky going anyway | ||
| brrt | good afternoon, whiteknight | 12:12 | |
| kjs | the return value is stored in I60 | ||
| whiteknight | hello brrt, how are you doing today? | ||
| kjs | it's then copied into some register, in my test file that's I3 | ||
| and then later I2 is printed. | |||
| so the wrongn register is popped from the regstack | |||
| probably some other register is also pushed onto the regstack; I need to debug that with pritning the stack, so we can see what's going on. | |||
| JimmyZ | kjs: I wil try to fix the unuse_reg problem after dinner | 12:13 | |
| kjs | Not now though. #work | ||
| brrt | very well, actually | ||
| i was planning on making that fix we were talking about yesterday, but I had to get two new roommates instead | |||
| kjs | aloha, nopaste? | ||
| aloha | kjs: nopaste is is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) | ||
| brrt | so i'm doing it now instead | ||
| whiteknight | brrt: life happens. No worries | ||
| brrt | yeah, sure :-) i'm not worrying much | 12:14 | |
| nopaste | "kjs" at 193.1.104.2 pasted "test input for returning values in M1" (11 lines) at nopaste.snit.ch/143983 | ||
| brrt | worst case scenario, i don't make the deadline, i fix it some other time | ||
| kjs | JimmyZ: I've pasted a test script for returning values, ifyou have time | ||
| whiteknight | brrt: There's only one deadline to worry about, and it's weeks away | ||
| moritz | gsoc isn't about meeting deadlines | ||
| whiteknight | and even then, it's not a hard deadline | 12:15 | |
| moritz | it's about hacking in a structured way, contributing to the community etc. | ||
| (yes, you should strive to meet the deadlines anyway, but it's not the no. 1 criterion) | 12:16 | ||
| brrt | my point exactly | ||
| anyway, i'm hacking on it as we speak, so I'm hoping to push something today | 12:17 | ||
| my makefile is being weird, by the way | 12:19 | ||
| what happens is: i have a dependency on the header file, with nothing to do (obviously) | |||
| but it doesn't seem to count this, which annoys me | |||
| moritz | it should | ||
| brrt | right? so, I add a statement to this the dependency, a silented echo | 12:20 | |
| in which case my include statement is a C file all of the sudden? | |||
| moritz | erm, wait | ||
| you declare the dependency | 12:21 | ||
| and 'make' takes that as a file name | |||
| brrt | pastebin? | ||
| moritz | and if it exists, and the time stamp is old enough, make is happy | ||
| if it doesn't exist, make searches for a rule to build it | 12:22 | ||
| brrt | pastebin.com/FPPiAwAD | ||
| moritz | erm, that looks weird | ||
| mod_parrot.so: $(MODULE) $(LIBTOOL) --mode=install cp mod_parrot.la $(BUILDDIR)/build | |||
| brrt | oh, that is weird | 12:23 | |
| moritz | does that rule create a mod_parrot.so? | ||
| brrt | $(LIBTOOL) should be on another line | ||
| moritz | yes, my fault | ||
| but it looks like it puts something in $(BUILDDIR) | |||
| brrt | it does | ||
| moritz | not in . | ||
| brrt | true | ||
| (actually, in $(BUILDDIR)/build) | |||
| oh, good point | 12:24 | ||
| i'll change it | |||
| moritz | but 'mod_parrot.so: $(MODULE)' is a rule for building ./mod_parrot.so | ||
| brrt | yes | ||
| moritz | and I've never been a friend of wildcard rules | ||
| I don't really understand them in detail :/ | |||
| brrt | neither do i | 12:25 | |
| but they 'usually' work | |||
| anyway, touching my mod_parrot.h file does nothing | 12:27 | ||
| changing the %.c: to $(SOURCE) does nothing, either | |||
| moritz | I think I remember something odd about dependencies in implicit rules not working the way you'd expect to | 12:28 | |
| which is exactly what you're observing | |||
| brrt | .... | ||
| it is of no great import | 12:29 | ||
| dalek | rrot: 57e18ad | Whiteknight++ | / (3 files): Fix some exception messages to help track down failures more easily. re-bootstrap prt0.pir to account for the change in Interpinfo_enum numbering following recent changes. Update prt0.winxed to include the new copyright date (should be dynamic?) so re-bootstrapping does not alter the copyright message. kid51++ for pointing out the test failure. |
12:30 | |
| brrt | brb | 12:35 | |
|
12:35
brrt left
12:55
brambles joined
13:07
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#426 (master - 57e18ad : Whiteknight): The build was fixed. | 13:07 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/8...e18ad9919a | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1610227 | |||
|
13:07
travis-ci left
13:09
Psyche^ joined
|
|||
| whiteknight | Imma lean, mean, build-fixin machine | 13:20 | |
| JimmyZ | kjs: sigh, I don't know how fix m0 ( or m1 ) :( | 13:32 | |
| kjs | JimmyZ: bummer. | ||
| which problem did you look into? | |||
| JimmyZ | kjs: unuse_reg in parameters | 13:33 | |
| kjs | JimmyZ: ok, well that one is not sooo important i guess. We know how to fix the problem, just not why it works ;-) | ||
| Also, We could replace the register usage optimization with someething else at some point. | 13:34 | ||
| JimmyZ: I've spent some time yesterday figurugin out why it didnt work but i didnt find anything either. | |||
| JimmyZ | kjs: I know where is the problem, but don't know how to fix it, it's very tricky | 13:35 | |
| kjs | JimmyZ: but just commenting out that unuse_reg works right? | 13:36 | |
| JimmyZ | kjs: yep | ||
| kjs | so that will do for now I suppose. perhaps we can unuse that reg at the very end of the function call code | ||
| so that there is some "correctness" in the unuse_reg logic. | |||
| JimmyZ | kjs: I think the real problem is in M0 | 13:37 | |
| kjs | maybe. hard to say. but m0_interp.pl has the same problem as C-M0 | ||
| so at least it's consistent ;-) | |||
| we'll know once gerdr's m0 implementation is done. | |||
| JimmyZ | kjs: aye, that' why I said "I don't know how fix m0 ( or m1 )" | 13:38 | |
| kjs | what's more annoying is that I couldnt get the return values back | 13:39 | |
| mm. perhaps that's a use-reg issue as well. | |||
|
14:02
dduncan joined
14:11
brrt joined
|
|||
| dalek | : 1fdc321 | kjs++ | src/a (3 files): add a few splint annotations. Need to find other annotations that are applicable and annotate rest of source. |
14:27 | |
|
14:27
crab2313 joined,
crab2313 left
14:28
crab2313 joined,
crab2313 left
14:29
crab2313_ joined
14:30
crab2313 joined,
crab2313 left
|
|||
| NotFound | ~~ | 14:32 | |
|
14:35
crab2313 joined,
crab2313 left
|
|||
| dalek | kudo/nom: 70fd758 | moritz++ | docs/announce/2012.06: [release] rename 2012.06 to Strasbourg in accord with PerlJam++, our release manager. We will use Frankfurt as a release name closer to YAPC::EU 2012 (August 2012) |
14:39 | |
| kudo/nom: 1e47735 | moritz++ | docs/announce/2012.06: [announce] start to collect features for the release announcement |
|||
|
14:41
dmalcolm joined
|
|||
| JimmyZ | kjs: re splint annotations, I think we could just copy the parrot one from include/parrot/compiler.h ;) | 14:46 | |
| kjs | we can borrow heavily anyway. Not sure about the PARROT_ prefix , it makes it awfully long | 14:47 | |
|
14:49
bluescreen joined
14:53
crab2313 joined
|
|||
| JimmyZ | crab2313: ęäøå„½ :) | 14:55 | |
| crab2313 | JimmyZ: ęäøå„½ | ||
| JimmyZ | crab2313: åØåäŗ¬ļ¼ | 14:56 | |
| crab2313 | JimmyZ: ęåØč„æå® | ||
| JimmyZ | crab2313: åÆ | ||
| brrt | segfaults are back at me! | 15:14 | |
| .... | 15:16 | ||
| what is happening to me now | |||
|
15:16
crab2313 joined
|
|||
| brrt | my segfault is gone | 15:19 | |
| whiteknight | pretend I fixed it | 15:20 | |
| moritz | :-) | 15:21 | |
|
15:36
NotFound joined
|
|||
| NotFound | ~~ | 15:36 | |
| brrt | :-) will do | 15:38 | |
| no, my segfault is gone because i stopped doing something stupid | |||
| (of which the stupidity was not documented, but anyway) | 15:39 | ||
| whiteknight | If I stopped to document every stupid piece of code, I'd never have time to write code | 15:44 | |
| brrt | true enough | 15:46 | |
| but on the other hand the api has been arround for a long time | 15:47 | ||
| i kind of see the rite of passage thing where you have to look at the source code to see what you should do | |||
| but its not making things easier | |||
| (this is commenting on the apache api, btw) | |||
| oh, i could use some C advise | 15:53 | ||
| i need to refer to a post-declared struct | |||
| but its declared in the same file | |||
| whiteknight | okay | ||
| brrt | and it is static | ||
| whiteknight | a struct definition or a struct instance? | 15:54 | |
| and what do you mean "post-declared"? | |||
| brrt | ehm, both | ||
| later in the file | |||
| I have this structure called module | |||
| whiteknight | You can pre-declare a struct definition | 15:55 | |
| struct foo; | |||
| and then later give it guts: struct foo { ... } | |||
| brrt | yes, but thats not what i mean | ||
| whiteknight | so pre-declare it, then declare the static instance, and use it | ||
| brrt | i have an actual file-local static variable called mod_parrot | ||
| and I need to refer to it | |||
| within my functions | |||
| whiteknight | paste the code so I can see it? | ||
| brrt | will do | ||
| pastebin.com/2v2p6Ja2 | 15:57 | ||
| mod_parrot_set_loader_path refers to the location of &mod_parrot | |||
| so mod_parrot needs to be declared before that | |||
| but, mod_parrot refers to every other thing | 15:58 | ||
| including (eventually) via mod_parrot_set_loader_path | |||
|
15:59
dduncan joined
|
|||
| dalek | : a7e7d51 | kjs++ | / (5 files): add a bit more space to annotations. Still experimenting with this. Also, fix a bug: don't forget to typecheck arguments to a funcall, as this sets pointers to the symbols in the symtab, which is essential. Add a test for this. |
16:00 | |
| brrt | ... I have to run now :-) | ||
| dalek | : ea61e3d | kjs++ | t/stringparam.m1: minor addition to test another case in stringparam.m1 |
16:01 | |
| : 63f996d | kjs++ | t/numparam.m1: add a test for passing num args. |
16:05 | ||
| whiteknight | msg brrt: Solution is simple: forward-declare all your functions with prototypes, then declare and instantiate mod_parrot at the top of the file. You can use a header file too, to keep the code cleaner. | ||
| aloha | OK. I'll deliver the message. | ||
| NotFound | static and extern ? | 16:13 | |
|
16:15
NotFound left,
NotFound joined
|
|||
| NotFound | Ooops | 16:15 | |
|
16:27
dduncan joined
16:48
zby_home joined
|
|||
| dalek | : 50bb40d | kjs++ | / (3 files): basic return values works! still buggy I think. |
17:22 | |
| : 1cd8119 | kjs++ | t/return.m1: make return test slightly more interesting. |
17:23 | ||
|
17:30
crab2313 joined
|
|||
| Coke | are the M0 calling conventions documented? | 17:30 | |
| or did kjs++ just make something up? | 17:31 | ||
|
17:37
not_gerd joined
|
|||
| not_gerd | hello, #parrot | 17:37 | |
|
17:38
contingencyplan joined
|
|||
| not_gerd | msg brrt or you could just replace the extern in the 'forward declaration' of the variable with static to make it a tentative definition | 17:39 | |
|
17:39
brrt joined
|
|||
| aloha | OK. I'll deliver the message. | 17:39 | |
| not_gerd | Coke: github.com/parrot/parrot/blob/m0/d...onventions and github.com/parrot/parrot/blob/m0/t..._caller.m0 | ||
| brrt | hey | 17:43 | |
| Coke | not_gerd: danke | ||
| brrt | not_gerd, whiteknight: thanks | ||
| it works | 17:44 | ||
| .. it almost works :-) | |||
| Coke | whoops: This section will specify the following: ... this isn't rendered as a list. bad pod or bad github? | 17:45 | |
| brrt | no, it really just works :-) | 17:50 | |
|
17:50
lucian joined
18:05
kjs joined
|
|||
| dalek | d_parrot/cleanup: 48490cb | (Bart Wiegmans)++ | / (11 files): Add ParrotLoaderPath configuration option, and debug for pudding |
18:05 | |
| cotto | not_gerd, I don't know what's in that link, but I like the link itself. | 18:06 | |
| brrt | this commit is really special and awesome by the way, because testing mod_parrot now works again | ||
| cotto | d'oh | 18:07 | |
| just my stub spec | |||
| not_gerd | ;) | ||
| cotto | brrt++ | ||
| kjs | cotto: I got return values working, mostly | ||
| dalek | : 6cf90c6 | kjs++ | t/fact.m1: add the compulsory factorial test. |
||
| brrt | as well as gdb auto attaching by perl script | 18:08 | |
| brrt is a great fan of exec() and fork() and the like | |||
| not_gerd | I didn't have much time ti work on my m0 implementation, so I keep picking on minor details... | ||
| cotto | kjs, awesome! time for a karma party | ||
| not_gerd | ^to work | ||
| cotto | kjs++ brrt++ not_gerd++ coke++ | 18:09 | |
| kjs | cotto: it is awesome! though it's a bit buggy I suspect. | ||
| brrt | karma party indeed | 18:12 | |
| aloha | party indeed has karma of 0. | ||
| Coke | brrt++ | ||
| chameleon++ | 18:13 | ||
|
18:17
brrt1 joined
|
|||
| dalek | : 4cc3ea0 | kjs++ | t/return.m1: only return ints at moment. restore return example. |
18:19 | |
| kjs | Coke: I made something up for the M0 calling conventions | 18:30 | |
| cotto | kjs, cool. did you document it? | 18:36 | |
| kjs | I will once I've tested it thoroughly | ||
| and also fixed it :-) | |||
| prob this weekend | |||
| cotto | wfm | 18:37 | |
| brrt | so, euro2012 now | 18:50 | |
| bye! | |||
|
18:50
brrt left
18:52
kjs_ joined
|
|||
| dalek | website: brrt++ | Update on infrastructure | 18:53 | |
| website: www.parrot.org/content/update-infrastructure | |||
| not_gerd | bye, #parrot | 19:26 | |
|
19:26
not_gerd left
|
|||
| whiteknight | brrt++ # blog post | 19:37 | |
|
19:44
dukeleto joined
19:58
szbalint_ joined
20:02
mj41_ joined
20:04
d4l3k_ joined,
NotFound_b joined
20:05
plobsing_ joined,
brambles_ joined
20:12
p6eval joined
20:16
dngor joined
20:18
GeJ_ joined
20:30
dduncan joined
|
|||
| dalek | kudo/nom: 90333b3 | moritz++ | src/core/Enum.pm: Enum.invert now returns an Enum, not a Pair |
20:43 | |
|
20:53
tuxit joined
21:05
autark joined
21:21
perlite_ joined
22:48
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 22:48 | |
| cotto | hio whiteknight | 22:49 | |
| whiteknight | hello cotto | 22:50 | |
| my computer is working wonderfully, in a very consistently wonderful way, and I'm very happy about it | 22:57 | ||
| Extremely happy and calm and relaxed and happy | |||
| I LOVE MY COMPUTER SO MUCH I COULD SQUEEZE IT UNTIL BLOOD CAME OUT MY KNUCKLES | |||
| also, my sarcasm gland is starting to glow red hot | 22:58 | ||
| dalek | rrot: fa62e0f | jkeenan++ | src/platform/win32/misc.c: [codingstd] Provide correct format for C function documentation. |
23:22 | |
|
23:23
kid51 joined
|
|||
| dalek | rrot: dbe352e | jkeenan++ | / (2 files): Parrot::Pmc2c::Object not used in any other source code. Delete it. |
23:26 | |
| rrot: 328cbaf | jkeenan++ | / (2 files): Merge branch 'no_pmc_object_pm' |
|||
| rrot: 487e9d0 | jkeenan++ | / (3 files): Eliminate Parrot::Pmc2c::Attribute. ack-ing showed that none of this method's packages was invoked more than once. Hence, we can either move them to the package in which they are invoked or eliminate them entirely in favor of simply passing their arguments to callers as needed. Invocation of name() in Parrot::Pmc2c::PMC re-coded to be a hash dereference rather than a method call. generate_start(), generate_declaration(), generate_end() and generate_accessor() become Parrot::Pmc2c::PMC internal methods. new() was called only once, within Parrot/Pmc2c/Parser.pm. It never did anything other than guarantee that all four of its key-value pairs had defined values. Rework its invocation. |
23:34 | ||
| rrot: e6e2d76 | jkeenan++ | / (3 files): Merge branch 'attribute_generate' |
|||
| rrot: f4a2ff1 | jkeenan++ | lib/Parrot/Pmc2c/ (2 files): Parrot::Pmc2c::MULTI::rewrite_multi_sub() is invoked only once, in to believe that its first argument was an object of its own class, which it is not. The first argument is a Parrot::Pmc2c::Method object. So inside rewrite_multi_sub(), rename $self -> $method to be more self-documenting. |
23:50 | ||
| rrot: 2ad68dd | jkeenan++ | lib/Parrot/Pmc2c/P (2 files): Parrot::Pmc2c::MULTI::rewrite_pccmethod() and mangle_name() are invoked only would lead one to believe that their first arguments were objects of the Parrot::Pmc2c::MULTI class, which they are not. In each case, the first argument is a Parrot::Pmc2c::Method object. So inside rewrite_multi_sub(), rename $self -> $method to be more self-documenting. In addition, mangle_name() makes no use of its second argument, $pmc. So eliminate it. |
|||
| rrot: a4ffcce | jkeenan++ | / (4 files): Parrot::Pmc2c::MULTI::rewrite_multi_sub() is invoked only once, inside where it can reside along two other subroutines invoked within find_methods. This enables us to eliminate lib/Parrot/Pmc2c/MULTI.pm entirely. |
|||
| cotto | someone's been busy | ||
| dalek | rrot: e2bd11a | jkeenan++ | / (2 files): Eliminate remaining references to Parrot::Pmc2c::MULTI. |
||
| rrot: 144115e | jkeenan++ | / (5 files): Merge branch 'eliminate_multi' |
|||