Camelia, the Perl 6 bug

IRC log for #parrot, 2012-06-13

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:26 whiteknight blah, this IO code is so fragile
00:26 whiteknight every single egregious typo I make breaks it
00:40 dalek parrot/whiteknight/io_cleanup1: 03ff546 | Whiteknight++ | src/io/ (2 files):
00:40 dalek parrot/whiteknight/io_cleanup1: Fix several of the asserts I added last time
00:40 dalek parrot/whiteknight/io_cleanup1: review: https://github.com/parrot/parrot/commit/03ff546a3f
00:40 dalek parrot/whiteknight/io_cleanup1: aea16cf | Whiteknight++ | src/io/ (4 files):
00:40 dalek parrot/whiteknight/io_cleanup1: 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:40 dalek parrot/whiteknight/io_cleanup1: review: https://github.com/parrot/parrot/commit/aea16cf24a
00:41 schmooster joined #parrot
00:42 whiteknight blah
00:42 whiteknight why can't C be just a little bit more forgiving about pointer errors
00:42 whiteknight like a segfault or two ever hurt anything
00:42 whiteknight I figure they build character
00:42 whiteknight and in my branch, Parrot has A LOT of character
00:44 whiteknight and on that not, WHITEKNIGHT AWAY!
01:25 Khisanth joined #parrot
01:54 travis-ci joined #parrot
01:54 travis-ci [travis-ci] parrot/parrot#424 (io_cleanup1 - aea16cf : Whiteknight): The build failed.
01:54 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/c71ec0c57c73...aea16cf24aa2
01:54 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/1606422
01:54 travis-ci left #parrot
02:15 wagle joined #parrot
02:28 wagle joined #parrot
02:37 wagle joined #parrot
02:38 wagle joined #parrot
02:44 dalek m1: f840736 | jimmy++ | .gitignore:
02:44 dalek m1: update .gitignore
02:44 dalek m1: review: https://github.com/parrot/m1/commit/f840736169
03:32 dalek parrot/vtable_various: 114e8c6 | jkeenan++ | lib/Parrot/Vtable.pm:
03:32 dalek parrot/vtable_various: Add more function-level documentation in POD format.  Reposition some existing POD.
03:32 dalek parrot/vtable_various: review: https://github.com/parrot/parrot/commit/114e8c674a
03:32 dalek parrot/vtable_various: 6577d02 | jkeenan++ | lib/Parrot/Vtable.pm:
03:32 dalek parrot/vtable_various: Add examples of output from three methods.
03:32 dalek parrot/vtable_various: review: https://github.com/parrot/parrot/commit/6577d022b4
03:48 dduncan joined #parrot
03:49 dduncan left #parrot
06:00 Khisanth joined #parrot
07:04 brrt joined #parrot
07:21 rich joined #parrot
07:30 dalek m1: 3697cd9 | jimmy++ | src/gencode.c:
07:30 dalek m1: add more unuse_reg
07:30 dalek m1: review: https://github.com/parrot/m1/commit/3697cd9c51
08:17 lucian joined #parrot
08:18 wagle joined #parrot
08:56 kjs joined #parrot
09:46 travis-ci joined #parrot
09:46 travis-ci [travis-ci] parrot/parrot#425 (vtable_various - 6577d02 : jkeenan): The build passed.
09:46 travis-ci [travis-ci] Change view : https://github.com/parrot/p​arrot/compare/114e8c674a4c^...6577d022b4b5
09:46 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/1607035
09:46 travis-ci left #parrot
09:47 alvis_ joined #parrot
10:01 PacoAir joined #parrot
10:17 kjs joined #parrot
10:31 NotFound_b joined #parrot
10:35 lucian joined #parrot
10:48 JimmyZ joined #parrot
10:50 JimmyZ good evening, #parrot
11:14 kjs hi JimmyZ
11:14 JimmyZ hello jks
11:14 JimmyZ error, kjjs
11:14 JimmyZ kjs
11:14 JimmyZ :)
11:14 kjs :-)
11:15 kjs JimmyZ: I found one case where unuse_reg shouldn't be called
11:15 kjs that's in the parameter passing code
11:15 kjs i added a comment there.
11:15 kjs I dont understand why, though
11:16 JimmyZ kjs: I saw it
11:16 kjs I suppose we can leave it for now, it's not that important
11:19 JimmyZ I know why it shoud not be called :)
11:19 dalek m1: be0a7b1 | kjs++ | src/gencode.c:
11:19 dalek m1: trying to return values. doesn't work yet.
11:19 dalek m1: review: https://github.com/parrot/m1/commit/be0a7b17f2
11:20 kjs JimmyZ: cool. please share :-)
11:21 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
11:21 kjs thing is, when passing 3 args, i can get 2 args through with the unuse_reg
11:21 kjs but the 3rd is always 0
11:31 JimmyZ kjs: Let me take a look
11:33 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:34 kjs 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:37 JimmyZ kjs: +1
11:37 kjs if you feel like checking that out... :-)
11:40 schmooster joined #parrot
11:52 crab2313 joined #parrot
12:03 whiteknight joined #parrot
12:04 whiteknight joined #parrot
12:05 whiteknight good morning, #parrot
12:06 JimmyZ kjs: I know why know
12:06 JimmyZ kjs: you're useing set_imm I0, 0, 0 before goto_chunk
12:07 kjs which line?
12:09 kjs JimmyZ: in gencode.c? which line would that be
12:09 JimmyZ kjs: I think it's c-m0 problem
12:10 kjs JimmyZ: I think the latest check in stores the return value in I60
12:11 mtk joined #parrot
12:11 JimmyZ joined #parrot
12:11 JimmyZ kjs: I don't know how to fix it yet
12:11 kjs there's something wonky going anyway
12:12 brrt good afternoon, whiteknight
12:12 kjs the return value is stored in I60
12:12 whiteknight hello brrt, how are you doing today?
12:12 kjs it's then copied into some register, in my test file that's I3
12:12 kjs and then later I2 is printed.
12:12 kjs so the wrongn register is popped from the regstack
12:12 kjs 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.
12:13 JimmyZ kjs: I wil try to fix the unuse_reg problem after dinner
12:13 kjs Not now though. #work
12:13 brrt very well, actually
12:13 brrt i was planning on making that fix we were talking about yesterday, but I had to get two new roommates instead
12:13 kjs aloha, nopaste?
12:13 aloha kjs: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
12:13 brrt so i'm doing it now instead
12:13 whiteknight brrt: life happens. No worries
12:14 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 http://nopaste.snit.ch/143983
12:14 brrt worst case scenario, i don't make the deadline, i fix it some other time
12:14 kjs JimmyZ: I've pasted a test script for returning values, ifyou have time
12:14 whiteknight brrt: There's only one deadline to worry about, and it's weeks away
12:14 moritz gsoc isn't about meeting deadlines
12:15 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.
12:16 moritz (yes, you should strive to meet the deadlines anyway, but it's not the no. 1 criterion)
12:16 brrt my point exactly
12:17 brrt anyway, i'm hacking on it as we speak, so I'm hoping to push something today
12:19 brrt my makefile is being weird, by the way
12:19 brrt what happens is: i have a dependency on the header file, with nothing to do (obviously)
12:19 brrt but it doesn't seem to count this, which annoys me
12:19 moritz it should
12:20 brrt right? so, I add a statement to this the dependency, a silented echo
12:20 brrt in which case my include statement is a C file all of the sudden?
12:20 moritz erm, wait
12:21 moritz you declare the dependency
12:21 moritz and 'make' takes that as a file name
12:21 brrt pastebin?
12:21 moritz and if it exists, and the time stamp is old enough, make is happy
12:22 moritz if it doesn't exist, make searches for a rule to build it
12:22 brrt http://pastebin.com/FPPiAwAD
12:22 moritz erm, that looks weird
12:22 moritz mod_parrot.so:  $(MODULE) $(LIBTOOL) --mode=install cp mod_parrot.la $(BUILDDIR)/build
12:23 brrt oh, that is weird
12:23 moritz does that rule create a mod_parrot.so?
12:23 brrt $(LIBTOOL) should be on another line
12:23 moritz yes, my fault
12:23 moritz but it looks like it puts something in $(BUILDDIR)
12:23 brrt it does
12:23 moritz not in .
12:23 brrt true
12:23 brrt (actually, in $(BUILDDIR)/build)
12:24 brrt oh, good point
12:24 brrt i'll change it
12:24 moritz but 'mod_parrot.so: $(MODULE)' is a rule for building ./mod_parrot.so
12:24 brrt yes
12:24 moritz and I've never been a friend of wildcard rules
12:24 moritz I don't really understand them in detail :/
12:25 brrt neither do i
12:25 brrt but they 'usually' work
12:27 brrt anyway, touching my mod_parrot.h file does nothing
12:27 brrt changing the %.c: to $(SOURCE) does nothing, either
12:28 moritz I think I remember something odd about dependencies in implicit rules not working the way you'd expect to
12:28 moritz which is exactly what you're observing
12:28 brrt ....
12:29 brrt it is of no great import
12:30 dalek parrot: 57e18ad | Whiteknight++ | / (3 files):
12:30 dalek parrot: 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 dalek parrot: review: https://github.com/parrot/parrot/commit/57e18ad991
12:35 brrt brb
12:35 brrt left #parrot
12:55 brambles joined #parrot
13:07 travis-ci joined #parrot
13:07 travis-ci [travis-ci] parrot/parrot#426 (master - 57e18ad : Whiteknight): The build was fixed.
13:07 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/82dcd8dd1d81...57e18ad9919a
13:07 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/1610227
13:07 travis-ci left #parrot
13:09 Psyche^ joined #parrot
13:20 whiteknight Imma lean, mean, build-fixin machine
13:32 JimmyZ kjs: sigh, I don't know how fix m0 ( or m1 ) :(
13:32 kjs JimmyZ: bummer.
13:32 kjs which problem did you look into?
13:33 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 ;-)
13:34 kjs Also, We could replace the register usage optimization with someething else at some point.
13:34 kjs JimmyZ: I've spent some time yesterday figurugin out why it didnt work but i didnt find anything either.
13:35 JimmyZ kjs: I know where is the problem, but don't know how to fix it, it's very tricky
13:36 kjs JimmyZ: but just commenting out that unuse_reg works right?
13:36 JimmyZ kjs: yep
13:36 kjs so that will do for now I suppose. perhaps we can unuse that reg at the very end of the function call code
13:36 kjs so that there is some "correctness" in the unuse_reg logic.
13:37 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
13:37 kjs so at least it's consistent ;-)
13:37 kjs we'll know once gerdr's m0 implementation is done.
13:38 JimmyZ kjs: aye, that' why I said "I don't know how fix m0 ( or m1 )"
13:39 kjs what's more annoying is that I couldnt get the return values back
13:39 kjs mm. perhaps that's a use-reg issue as well.
14:02 dduncan joined #parrot
14:11 brrt joined #parrot
14:27 dalek m1: 1fdc321 | kjs++ | src/a (3 files):
14:27 dalek m1: add a few splint annotations. Need to find other annotations that are applicable and annotate rest of source.
14:27 dalek m1: review: https://github.com/parrot/m1/commit/1fdc321219
14:27 crab2313 joined #parrot
14:27 crab2313 left #parrot
14:28 crab2313 joined #parrot
14:28 crab2313 left #parrot
14:29 crab2313_ joined #parrot
14:30 crab2313 joined #parrot
14:30 crab2313 left #parrot
14:32 NotFound ~~
14:35 crab2313 joined #parrot
14:35 crab2313 left #parrot
14:39 dalek rakudo/nom: 70fd758 | moritz++ | docs/announce/2012.06:
14:39 dalek rakudo/nom: [release] rename 2012.06 to Strasbourg
14:39 dalek rakudo/nom:
14:39 dalek rakudo/nom: in accord with PerlJam++, our release manager.
14:39 dalek rakudo/nom: We will use Frankfurt as a release name closer to YAPC::EU 2012 (August 2012)
14:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/70fd75874a
14:39 dalek rakudo/nom: 1e47735 | moritz++ | docs/announce/2012.06:
14:39 dalek rakudo/nom: [announce] start to collect features for the release announcement
14:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e47735e52
14:41 dmalcolm joined #parrot
14:46 JimmyZ kjs: re splint annotations, I think we could just copy the parrot one from include/parrot/compiler.h ;)
14:47 kjs we can borrow heavily anyway. Not sure about the PARROT_ prefix , it makes it awfully long
14:49 bluescreen joined #parrot
14:53 crab2313 joined #parrot
14:55 JimmyZ crab2313: 晚上好 :)
14:55 crab2313 JimmyZ: 晚上好
14:56 JimmyZ crab2313: 在北京?
14:56 crab2313 JimmyZ: 我在西安
14:56 JimmyZ crab2313: 嗯
15:14 brrt segfaults are back at me!
15:16 brrt ....
15:16 brrt what is happening to me now
15:16 crab2313 joined #parrot
15:19 brrt my segfault is gone
15:20 whiteknight pretend I fixed it
15:21 moritz :-)
15:36 NotFound joined #parrot
15:36 NotFound ~~
15:38 brrt :-) will do
15:38 brrt no, my segfault is gone because i stopped doing something stupid
15:39 brrt (of which the stupidity was not documented, but anyway)
15:44 whiteknight If I stopped to document every stupid piece of code, I'd never have time to write code
15:46 brrt true enough
15:47 brrt but on the other hand the api has been arround for a long time
15:47 brrt i kind of see the rite of passage thing where you have to look at the source code to see what you should do
15:47 brrt but its not making things easier
15:47 brrt (this is commenting on the apache api, btw)
15:53 brrt oh, i could use some C advise
15:53 brrt i need to refer to a post-declared struct
15:53 brrt but its declared in the same file
15:53 whiteknight okay
15:53 brrt and it is static
15:54 whiteknight a struct definition or a struct instance?
15:54 whiteknight and what do you mean "post-declared"?
15:54 brrt ehm, both
15:54 brrt later in the file
15:54 brrt I have this structure called module
15:55 whiteknight You can pre-declare a struct definition
15:55 whiteknight struct foo;
15:55 whiteknight and then later give it guts: struct foo { ... }
15:55 brrt yes, but thats not what i mean
15:55 whiteknight so pre-declare it, then declare the static instance, and use it
15:55 brrt i have an actual file-local static variable called mod_parrot
15:55 brrt and I need to refer to it
15:55 brrt within my functions
15:55 whiteknight paste the code so I can see it?
15:55 brrt will do
15:57 brrt http://pastebin.com/2v2p6Ja2
15:57 brrt mod_parrot_set_loader_path refers to the location of &mod_parrot
15:57 brrt so mod_parrot needs to be declared before that
15:58 brrt but, mod_parrot refers to every other thing
15:58 brrt including (eventually) via mod_parrot_set_loader_path
15:59 dduncan joined #parrot
16:00 dalek m1: a7e7d51 | kjs++ | / (5 files):
16:00 dalek m1: 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 dalek m1: review: https://github.com/parrot/m1/commit/a7e7d51b50
16:00 brrt ... I have to run now :-)
16:01 dalek m1: ea61e3d | kjs++ | t/stringparam.m1:
16:01 dalek m1: minor addition to test another case in stringparam.m1
16:01 dalek m1: review: https://github.com/parrot/m1/commit/ea61e3d924
16:05 dalek m1: 63f996d | kjs++ | t/numparam.m1:
16:05 dalek m1: add a test for passing num args.
16:05 dalek m1: review: https://github.com/parrot/m1/commit/63f996d836
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.
16:05 aloha OK. I'll deliver the message.
16:13 NotFound static and extern ?
16:15 NotFound left #parrot
16:15 NotFound joined #parrot
16:15 NotFound Ooops
16:27 dduncan joined #parrot
16:48 zby_home joined #parrot
17:22 dalek m1: 50bb40d | kjs++ | / (3 files):
17:22 dalek m1: basic return values works! still buggy I think.
17:22 dalek m1: review: https://github.com/parrot/m1/commit/50bb40d5a8
17:23 dalek m1: 1cd8119 | kjs++ | t/return.m1:
17:23 dalek m1: make return test slightly more interesting.
17:23 dalek m1: review: https://github.com/parrot/m1/commit/1cd8119844
17:30 crab2313 joined #parrot
17:30 Coke are the M0 calling conventions documented?
17:31 Coke or did kjs++ just make something up?
17:37 not_gerd joined #parrot
17:37 not_gerd hello, #parrot
17:38 contingencyplan joined #parrot
17:39 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 brrt joined #parrot
17:39 aloha OK. I'll deliver the message.
17:39 not_gerd Coke: https://github.com/parrot/parrot/blob/m0/docs/pdd​s/draft/pdd32_m0.pod#m0-chunk-calling-conventions and https://github.com/parrot/parrot/blob/​m0/t/m0/integration/m0_poke_caller.m0
17:43 brrt hey
17:43 Coke not_gerd: danke
17:43 brrt not_gerd, whiteknight: thanks
17:44 brrt it works
17:44 brrt .. it almost works :-)
17:45 Coke whoops: This section will specify the following:  ... this isn't rendered as a list. bad pod or bad github?
17:50 brrt no, it really just works :-)
17:50 lucian joined #parrot
18:05 kjs joined #parrot
18:05 dalek mod_parrot/cleanup: 48490cb | (Bart Wiegmans)++ | / (11 files):
18:05 dalek mod_parrot/cleanup: Add ParrotLoaderPath configuration option, and debug for pudding
18:05 dalek mod_parrot/cleanup: review: https://github.com/bdw/mod​_parrot/commit/48490cb9e6
18:06 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
18:07 cotto d'oh
18:07 cotto just my stub spec
18:07 not_gerd ;)
18:07 cotto brrt++
18:07 kjs cotto: I got return values working, mostly
18:07 dalek m1: 6cf90c6 | kjs++ | t/fact.m1:
18:07 dalek m1: add the compulsory factorial test.
18:07 dalek m1: review: https://github.com/parrot/m1/commit/6cf90c6915
18:08 brrt as well as gdb auto attaching by perl script
18:08 * brrt is a great fan of exec() and fork() and the like
18:08 not_gerd I didn't have much time ti work on my m0 implementation, so I keep picking on minor details...
18:08 cotto kjs, awesome!  time for a karma party
18:08 not_gerd ^to work
18:09 cotto kjs++ brrt++ not_gerd++ coke++
18:09 kjs cotto: it is awesome! though it's a bit buggy I suspect.
18:12 brrt karma party indeed
18:12 aloha party indeed has karma of 0.
18:12 Coke brrt++
18:13 Coke chameleon++
18:17 brrt1 joined #parrot
18:19 dalek m1: 4cc3ea0 | kjs++ | t/return.m1:
18:19 dalek m1: only return ints at moment. restore return example.
18:20 dalek m1: review: https://github.com/parrot/m1/commit/4cc3ea07e4
18:30 kjs Coke: I made something up for the M0 calling conventions
18:36 cotto kjs, cool.  did you document it?
18:36 kjs I will once I've tested it thoroughly
18:36 kjs and also fixed it :-)
18:36 kjs prob this weekend
18:37 cotto wfm
18:50 brrt so, euro2012 now
18:50 brrt bye!
18:50 brrt left #parrot
18:52 kjs_ joined #parrot
18:53 dalek website: brrt++ | Update on infrastructure
18:53 dalek website: http://www.parrot.org/cont​ent/update-infrastructure
19:26 not_gerd bye, #parrot
19:26 not_gerd left #parrot
19:37 whiteknight brrt++ # blog post
19:44 dukeleto joined #parrot
19:58 szbalint_ joined #parrot
20:02 mj41_ joined #parrot
20:04 d4l3k_ joined #parrot
20:04 NotFound_b joined #parrot
20:05 plobsing_ joined #parrot
20:05 brambles_ joined #parrot
20:12 p6eval joined #parrot
20:16 dngor joined #parrot
20:18 GeJ_ joined #parrot
20:30 dduncan joined #parrot
20:43 dalek rakudo/nom: 90333b3 | moritz++ | src/core/Enum.pm:
20:43 dalek rakudo/nom: Enum.invert now returns an Enum, not a Pair
20:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90333b3761
20:53 tuxit joined #parrot
21:05 autark joined #parrot
21:21 perlite_ joined #parrot
22:48 whiteknight joined #parrot
22:48 whiteknight good evening, #parrot
22:49 cotto hio whiteknight
22:50 whiteknight hello cotto
22:57 whiteknight my computer is working wonderfully, in a very consistently wonderful way, and I'm very happy about it
22:57 whiteknight Extremely happy and calm and relaxed and happy
22:57 whiteknight I LOVE MY COMPUTER SO MUCH I COULD SQUEEZE IT UNTIL BLOOD CAME OUT MY KNUCKLES
22:58 whiteknight also, my sarcasm gland is starting to glow red hot
23:22 dalek parrot: fa62e0f | jkeenan++ | src/platform/win32/misc.c:
23:22 dalek parrot: [codingstd] Provide correct format for C function documentation.
23:22 dalek parrot: review: https://github.com/parrot/parrot/commit/fa62e0f5b7
23:23 kid51 joined #parrot
23:26 dalek parrot: dbe352e | jkeenan++ | / (2 files):
23:26 dalek parrot: Parrot::Pmc2c::Object not used in any other source code.  Delete it.
23:26 dalek parrot: review: https://github.com/parrot/parrot/commit/dbe352e132
23:26 dalek parrot: 328cbaf | jkeenan++ | / (2 files):
23:26 dalek parrot: Merge branch 'no_pmc_object_pm'
23:26 dalek parrot: review: https://github.com/parrot/parrot/commit/328cbafb88
23:34 dalek parrot: 487e9d0 | jkeenan++ | / (3 files):
23:34 dalek parrot: Eliminate Parrot::Pmc2c::Attribute.
23:34 dalek parrot:
23:34 dalek parrot: ack-ing showed that none of this method's packages was invoked more than once.
23:34 dalek parrot: Hence, we can either move them to the package in which they are invoked or
23:34 dalek parrot: eliminate them entirely in favor of simply passing their arguments to callers
23:34 dalek parrot: as needed.
23:34 dalek parrot:
23:34 dalek parrot: Invocation of name() in Parrot::Pmc2c::PMC re-coded to be a hash dereference
23:34 dalek parrot: rather than a method call.
23:34 dalek parrot:
23:34 dalek parrot: generate_start(), generate_declaration(), generate_end() and
23:34 dalek parrot: generate_accessor() become Parrot::Pmc2c::PMC internal methods.
23:34 dalek parrot:
23:34 dalek parrot: new() was called only once, within Parrot/Pmc2c/Parser.pm.  It never did
23:34 dalek parrot: anything other than guarantee that all four of its key-value pairs had defined
23:34 dalek parrot: values.  Rework its invocation.
23:34 dalek parrot: review: https://github.com/parrot/parrot/commit/487e9d02e5
23:34 dalek parrot: e6e2d76 | jkeenan++ | / (3 files):
23:34 dalek parrot: Merge branch 'attribute_generate'
23:34 dalek parrot: review: https://github.com/parrot/parrot/commit/e6e2d763c6
23:50 dalek parrot: f4a2ff1 | jkeenan++ | lib/Parrot/Pmc2c/ (2 files):
23:50 dalek parrot: Parrot::Pmc2c::MULTI::rewrite_multi_sub() is invoked only once, in
23:50 dalek parrot: Parrot::Pmc2c::Parser::find_methods().  The way it is written would lead one
23:50 dalek parrot: to believe that its first argument was an object of its own class, which it is
23:50 dalek parrot: not. The first argument is a Parrot::Pmc2c::Method object.  So inside
23:50 dalek parrot: rewrite_multi_sub(), rename $self -> $method to be more self-documenting.
23:50 dalek parrot: review: https://github.com/parrot/parrot/commit/f4a2ff1c36
23:50 dalek parrot: 2ad68dd | jkeenan++ | lib/Parrot/Pmc2c/P (2 files):
23:50 dalek parrot: Parrot::Pmc2c::MULTI::rewrite_pccmethod() and mangle_name() are invoked only
23:50 dalek parrot: once each, in Parrot::Pmc2c::Parser::find_methods().  The way they are written
23:50 dalek parrot: would lead one to believe that their first arguments were objects of the
23:50 dalek parrot: Parrot::Pmc2c::MULTI class, which they are not. In each case, the first
23:50 dalek parrot: argument is a Parrot::Pmc2c::Method object.  So inside rewrite_multi_sub(),
23:50 dalek parrot: rename $self -> $method to be more self-documenting.
23:50 dalek parrot:
23:50 dalek parrot: In addition, mangle_name() makes no use of its second argument, $pmc.  So
23:50 dalek parrot: eliminate it.
23:50 dalek parrot: review: https://github.com/parrot/parrot/commit/2ad68dd6d4
23:50 dalek parrot: a4ffcce | jkeenan++ | / (4 files):
23:50 dalek parrot: Parrot::Pmc2c::MULTI::rewrite_multi_sub() is invoked only once, inside
23:50 dalek parrot: Parrot::Pmc2c::Parser::find_methods.  Let's move it to Parrot::Pmc2c::PCCMETHOD
23:50 dalek parrot: where it can reside along two other subroutines invoked within find_methods.
23:50 dalek parrot: This enables us to eliminate lib/Parrot/Pmc2c/MULTI.pm entirely.
23:50 dalek parrot: review: https://github.com/parrot/parrot/commit/a4ffcce828
23:50 cotto someone's been busy
23:50 dalek parrot: e2bd11a | jkeenan++ | / (2 files):
23:50 dalek parrot: Eliminate remaining references to Parrot::Pmc2c::MULTI.
23:50 dalek parrot: review: https://github.com/parrot/parrot/commit/e2bd11aab4
23:50 dalek parrot: 144115e | jkeenan++ | / (5 files):
23:50 dalek parrot: Merge branch 'eliminate_multi'
23:50 dalek parrot: review: https://github.com/parrot/parrot/commit/144115ee9c

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

Parrot | source cross referenced