Camelia, the Perl 6 bug

IRC log for #parrot, 2009-04-09

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 * Infinoid uses a separate parrot tree so he can use the normal source control tools
00:00 LylePerl I offered Jarkko to fix the lists.cpan.org site which hasn't worked for ages. But he declined which was a bit upsetting :(
00:01 bacek_ good morning
00:01 LylePerl If it was part of TPF you could get a grant to do that kind of thing
00:01 Infinoid hmm, true
00:01 bacek_ Infinoid: it's easy to reproduce via pir.
00:01 jonathan LylePerl: We have a file build/PARROT_REVISION which tells the current version of Parrot we know that we can work with.
00:02 jonathan LylePerl: It's rare but has happened that later caused issues.
00:02 bacek_ $P0 = new 'Packfile'; $P0 = content; $S0 = $P0;
00:02 Infinoid At the same time, you guys are constantly pushing new features and bugs into parrot, so I doubt rakudo will be very far off of parrot HEAD for the next few months
00:02 bacek_ "content" is PBC from different architecture
00:02 Infinoid uh, bug *fixes*, I meant to say :)
00:02 LylePerl jonathan: when do you think Rakudo will default to the parrot that works for iis?
00:02 bacek_ then $S0 will contains wrong header.
00:03 Infinoid jonathan: that would be r37990 (hopefully)
00:03 Infinoid oh, I see, so it just doesn't regenerate it
00:03 Infinoid Does it cache the old binary string?  Hmm.
00:04 LylePerl jonathan: Just wondering for these guides I'm writing... Whether I'll need to explain the IIS thing, or just leave it as it'll be updated in a few days anyway...
00:04 Infinoid Is it just the header, or all the segments as well?
00:06 jonathan LylePerl: We can up the rev number for that I think.
00:07 dmknopp joined #parrot
00:08 LylePerl jonathan: Excellent! Looking forward to (hopefully) stirring up some more Perl 6 CGI interest :)
00:09 AndyA joined #parrot
00:09 TiMBuS joined #parrot
00:10 jonathan OK, sleep time for me...night
00:10 Infinoid thanks, jonathan
00:10 Infinoid Whiteknight: Any additional thoughts on the jit buffer stuff?  I'd like a solid design spec before I move forward any more on the implementation... Santtu and I have (between us) written 3 patches with different strategies so far :)
00:13 Infinoid It's proving difficult to avoid overengineering this to infinity.
00:14 Whiteknight Infinoid: Whatever you do will be fine, all the patches I've seen are sane
00:14 gryphon joined #parrot
00:14 Infinoid Ok, great, thanks
00:14 Whiteknight My personal preference would be to not tack on unrelated functionality to ManagedStruct, but that's just a preference
00:14 Whiteknight plus, I do understand the desire to reuse existing functionality where possible
00:15 Infinoid I think it's a little overboard, to be honest.  It seems like I need to toss a couple new features onto the ever-hungry accretion disc of ManagedStruct just to track a simple pointer. :)
00:15 Infinoid But hey, whatever works
00:15 purl "whatever works" is not always the best solution. or - but it's good enough
00:17 Infinoid Thanks, I'll rework a few minor things and check in the whole stack
00:21 LylePerl sleep for me too. night
00:21 Infinoid Thanks again, LylePerl
00:21 LylePerl No thank you!
00:21 LylePerl (missing comma after no)
00:21 Infinoid :)
00:21 Infinoid Testing oddball combinations we've never tried before is always appreciated.
00:38 dmknopp joined #parrot
00:39 dmknopp left #parrot
00:55 acajou left #parrot
01:14 Infinoid allison++ # book
01:19 Theory joined #parrot
01:39 GeJ allison++ # seconded
01:43 cotto allison++ #what they said
01:45 Theory joined #parrot
02:03 Infinoid Well, let's see how badly this breaks things.
02:05 dalek parrot: r37991 | Infinoid++ | trunk (5 files):
02:05 dalek parrot: [core] Extend the mem_free_executable() API to always take a "size" argument. (needed for munmap)
02:05 dalek parrot: Extend mem_realloc_executable() to add an "oldsize" argument. (needed for mremap)
02:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37991/
02:05 dalek parrot: r37992 | Infinoid++ | trunk/src/pmc/managedstruct.pmc:
02:05 dalek parrot: [core] ManagedStruct needs ATTRs for free() and clone() function pointers.
02:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37992/
02:05 dalek parrot: r37993 | Infinoid++ | trunk (7 files):
02:05 dalek parrot: [jit] Allocate JIT buffers with mmap on linux.  Set things up so they're freed properly using munmap().
02:05 dalek parrot: Note that this currently only has an effect when PARROT_HAS_EXEC_PROTECT is defined.
02:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37993/
02:06 Infinoid (although things would probably work just fine if the PARROT_HAS_EXEC_PROTECT check was disabled, and that feature was always on.)
02:07 davidfetter joined #parrot
02:10 rg are there any drawbacks to having it always on?
02:11 dukeleto joined #parrot
02:12 * Infinoid waves his hands at rg and makes vague claims of some as-yet-undiscovered machine out there which it might break on
02:13 Infinoid It makes things slightly more complicated, I guess.  *shrug*
02:14 rg my guess would be if it should always work and not have major drawbacks (like slower code), why maintain two codepaths?
02:14 Infinoid It was a 'minimal impact' sort of thing.
02:14 Infinoid Are there any unix-like machines out there which don't have mmap?
02:15 rg i'd say not anymore
02:15 Infinoid Great.  As long as mmap/munmap/mremap and the various constant defines I've used are always there, I suppose it should work everywhere
02:15 * Infinoid doesn't have a lot of non-linux unix experience.
02:16 * Infinoid waits for the 100% FAIL smolder reports to roll in
02:16 rg :)
02:19 rg hmm well since you still need the other codepath for windows, all you'd gain was extra testing on unix machines
02:20 rg or do you?
02:20 purl it has been said that do you is it compulsory? ;)
02:21 * rg can't really tell from the diff
02:22 Infinoid the fix *should* only affect x86 processors with the NX bit, everyone else keeps using the heap as usual
02:23 Infinoid Although the "clone" codepath would probably benefit everyone else, too.  If we ever cloned JIT buffers.  Which is crazy.
02:24 Infinoid Sadly, I don't even have such a processor available here for testing.
02:25 rg hmm my parrot machine seems to have the NX feature, but i'm running it with 64bits, so no jit
02:25 Infinoid Yeah, same here.
02:25 Infinoid Sad that the nx and lm bits seem to go hand in hand, huh? :)
02:26 Infinoid Well, ok.  Not that sad.
02:29 rg ok, it's getting late. time for bed.
02:30 Infinoid sleep well
02:36 janus joined #parrot
02:44 dalek parrot: r37994 | Infinoid++ | trunk/config/gen/platform/generic/memexec.c:
02:44 dalek parrot: [core] Various improvements to generic/memexec.c.
02:44 dalek parrot: * Consistently round up the size arguments for free and realloc functions, too.
02:44 dalek parrot: * Fix the return value for non-win32 realloc.
02:44 dalek parrot: * Improve the documentation slightly.
02:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37994/
02:58 dalek rakudo: 85ab143 | pmichaud++ | src/ops/perl6.ops:
02:58 dalek rakudo: Refactor is_uprop opcode a bit.
02:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​5ab143d56697a03e65b19b17c03b9c792391d85
02:58 shorten dalek's url is at http://xrl.us/beocy2
02:58 dalek rakudo: a2bb078 | pmichaud++ | :
02:58 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
02:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​2bb078c088190f1bec84d34cc9f072e18b61ce0
02:58 shorten dalek's url is at http://xrl.us/beocy4
02:58 dalek rakudo: f545fee | pmichaud++ | src/ops/perl6.ops:
02:58 dalek rakudo: Add "Bidi" and "In" support to unicode character properties.
02:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​545feea2941a9fd106e5900679407aa5a7da2c6
02:58 shorten dalek's url is at http://xrl.us/beocy6
03:13 tetragon joined #parrot
03:38 dukeleto joined #parrot
03:40 dalek rakudo: 4ae560c | pmichaud++ | t/spectest.data:
03:40 dalek rakudo: Update spectest.data with properties.t tests.
03:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​ae560c5634444a4956d9c8a09c99614c5fb3d98
03:40 shorten dalek's url is at http://xrl.us/beoc4q
03:53 particle joined #parrot
04:20 jdv79 joined #parrot
04:20 jdv79 just skimmed the parrodev book.  what i noticed was that there are 1200 ops?!  and no mention of GC.
04:29 dukeleto joined #parrot
04:31 Tene_ joined #parrot
04:35 dukeleto joined #parrot
05:09 cotto jdv79, there are currently 1249 ops, although a large number of them are variations based on argument types.
05:23 Infinoid cotto: Is there a ticket open for these nci-without-jit failures?  I've got some free time to look at it now, but I don't know if any work's already been done on it yet
05:26 pmichaud I'm working on travel arrangements for YAPC::NA ... I know there's a Parrot workshop the days before YAPC::NA ... is there a planned hackathon session after YAPC::NA ?
05:26 pmichaud (specifically for parrot)
05:26 pmichaud (or rakudo)
05:27 spofd joined #parrot
05:28 cotto Infinoid, I actually just fixed it and am making sure nothing new breaks.
05:29 cotto It's a very simple fix.
05:30 Infinoid Awesome.  Staring at nci.c was bending my brain in scary ways.
05:30 cotto Urg.  Me too.
05:31 pmichaud allison: ping
05:32 allison pmichaud: pong
05:32 pmichaud scheduling questions, if you have a moment.  (more)
05:32 allison sure
05:33 pmichaud (1) do you know anything about hacking activities or meetings post YAPC::NA ?
05:33 pmichaud (I know we have the workshop before YAPC... wondering when to book my return flight.)
05:33 allison I know that we usually have them, and I know that I plan to stay an extra few days after YAPC
05:33 pmichaud okay.
05:33 pmichaud I will plan to stay at least one day after YAPC
05:33 allison I don't know details of where we'll be hosted yet
05:34 pmichaud (I can get phenominal airfares if I book now.  $200 round trip)
05:34 pmichaud question #2 (last one)
05:34 pmichaud the oscon schedule shows that the last event is at 11:45 on Friday... is that really the last event, or are there likely to be keynotes friday afternoon (as there have been in years' past?)
05:35 pmichaud (it affects my return flight.)
05:35 allison there are keynotes after 11:45am
05:35 allison we'll be all wrapped up with everything by 2pm
05:36 particle joined #parrot
05:36 pmichaud well, with southwest I can get really low fares but last flight from SJC is 2:45p, so that might be cutting it close.
05:36 allison you'd likely be fine leaving at 1:30
05:36 allison (there's food in there after the final keynote)
05:37 pmichaud and keynotes would likely be done around 1:30ish?
05:37 pmichaud I've always found the friday keynotes to be particularly good.  :-)
05:38 allison aye, they're planned for 12:30 to 1:30
05:38 pmichaud okay, that tells me pretty much what i need to know.  Many many thanks.
05:38 dalek parrot: r37995 | cotto++ | trunk/tools/build/nativecall.pl:
05:38 dalek parrot: [NCI] fix NCI sub generation on non-jitcapable Parrots
05:38 dalek parrot: Infinoid++ for noticing the breakage
05:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37995/
05:39 Infinoid ooh, SJC is within driving distance for me.  Maybe I should actually go to one of those
05:40 pmichaud Infinoid: if you haven't been to oscon before, it's generally quite awesome.
05:40 dukeleto joined #parrot
05:41 pmichaud It's one of those conferences that is frustrating because there are so many good sessions that you have to pick-and-choose (and inevitably miss some you'd really like to see).
05:42 Infinoid Sounds great, I'll see about getting myself there
05:52 Infinoid wow, conferences are pricey.
05:53 pmichaud oscon is, yes.
05:53 pmichaud yapc's are not nearly as pricey.
06:02 Infinoid cotto++, thanks!  that fixed 3 test files here
06:03 Infinoid Now my only remaining failure is somehow related to my version of libicu... hope to fix that tomorrow.
06:15 spofd left #parrot
06:18 dalek rakudo: e05aff7 | pmichaud++ | docs/spectest-progress.csv:
06:18 dalek rakudo: spectest-progress.csv update: 354 files, 10224 passing, 0 failing
06:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​05aff7d21562af848a55c50f3fae87ee0f298e6
06:18 shorten dalek's url is at http://xrl.us/beoddn
06:21 Theory joined #parrot
06:26 cotto Infinoid, great!  It's always nice when someone else fixes something you thought you'd have to.
06:26 GeJ pmichaud: the ~2K bump in the passing tests number is from the unicode properties only?
06:29 moritz GeJ: not only; jonathan also implemented typed arrays and hashes
06:30 moritz though the properties account for a much larger number of tests
06:31 pmichaud yes -- while reviewing spectests last week I noticed a test file with ~1800 tests that were waiting on unicode support.  So I added it.
06:32 GeJ nice additions. :)
06:33 pmichaud time for sleep here -- back in a few hrs
06:33 GeJ good night
06:46 moritz I just skimmed over the parrot_dev_guide.pdf that allison++ linked to on parrot-dev...
06:47 moritz I particuarly like how it assumes that every linux has apt-get available ;-)
06:56 allison joined #parrot
06:58 allison moritz: aye, it's entirely unedited at this point, just a formatted dump of the text from the repository, some parts are quite rough
07:00 moritz but it looks so much more professional in book form ;-)
07:04 GeJ allison: if it's not too much to ask, would it be possible for the next 'preview' to have larger fonts and smaller margins ?
07:05 GeJ Other than that, terrific job. Thanks.
07:06 allison GeJ: it's set up for print format, so no, but we can eventually produce a different PDF for online use.
07:07 allison GeJ: (those oddly large margins make the printed space fit exactly within a 6x9 book page)
07:08 allison moritz: yeah, isn't it odd what a little formatting does psychologically?
07:12 moritz allison: that's why I write nearly everything in TeX - it does the formatting better than I could ;-)
07:14 allison Pod-to-TeX also works nicely (that's what this is)
07:17 cotto allison, could I get your input on https://trac.parrot.org/parrot/ticket/452 (avoiding unnecessary MULTIs)?
07:17 cotto The patch is simple enough, but I'd like to make sure it's correct before I write a bunch more like it.
07:17 allison moritz: though I spent a huge amount of time getting the .sty files just right (but that was for the mod_perl2 book, so can just reuse them)
07:18 masak joined #parrot
07:19 allison cotto: looking now...
07:23 allison cotto: answer added to ticket
07:24 cotto Thanks.
07:25 iblechbot joined #parrot
08:06 szabgab joined #parrot
09:05 szabgab joined #parrot
09:36 riffraff joined #parrot
10:05 bacek joined #parrot
10:25 bacek joined #parrot
10:30 schinkelm joined #parrot
10:44 ara joined #parrot
11:32 joubert joined #parrot
12:20 dalek rakudo: 43b9e57 | jnthn++ | src/classes/Routine.pir:
12:20 dalek rakudo: First cut of wrap and unwrap.
12:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​3b9e579520092c5661ff6866cf492bafbff2e55
12:20 shorten dalek's url is at http://xrl.us/beodvq
12:37 rg1 joined #parrot
13:02 bacek joined #parrot
13:06 dalek rakudo: 508a18c | (Moritz Lenz)++ | t/spectest.data:
13:06 dalek rakudo: fix typo in t/spectest.data, moritz--
13:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​08a18c5f211d20afb0fedcecd6cdaa995c78b94
13:06 shorten dalek's url is at http://xrl.us/beodyn
13:33 cognominal joined #parrot
13:34 gryphon joined #parrot
13:38 dalek rakudo: a36c3b2 | jnthn++ | src/classes/Routine.pir:
13:38 dalek rakudo: Some tweaks to the first cut of wrap; assign could get things confused, plus also need to track relations of Parrot and Rakudo level subs.
13:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​36c3b2eebc9418c9574ed6c83d2b1766f639b59
13:38 dalek rakudo: 6bcccd6 | jnthn++ | src/builtins/control.pir:
13:38 dalek rakudo: Implement callwith for the wrapped sub case.
13:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​bcccd60eb53636e068a766c70fdddbc971677b2
13:38 dalek rakudo: 8abc537 | jnthn++ | t/spectest.data:
13:38 dalek rakudo: Add wrap.t to spectest.data.
13:38 shorten dalek's url is at http://xrl.us/beod27
13:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​abc5379a6cbd396680cea4b445eed1a79a01b79
13:38 dalek rakudo: 4561d2f | jnthn++ | :
13:38 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
13:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​561d2f2d0c8295ae92b481bb093bbaddc4ecd69
13:38 shorten dalek's url is at http://xrl.us/beod29
13:38 shorten dalek's url is at http://xrl.us/beod3b
13:38 shorten dalek's url is at http://xrl.us/beod3d
13:41 jimmy joined #parrot
13:51 Tene joined #parrot
13:54 Andy joined #parrot
14:07 cognominal joined #parrot
14:10 DietCoke joined #parrot
14:16 davidfetter joined #parrot
14:47 TimToady joined #parrot
14:47 diakopter joined #parrot
15:03 Tene joined #parrot
15:08 rdice joined #parrot
15:15 iblechbot joined #parrot
15:28 dalek rakudo: 531fe43 | jnthn++ | src/builtins/control.pir:
15:28 dalek rakudo: Add a stubby callsame that works for argumnetless case. Not figured out how to handle getting the arguments so well just yet, but this is probably enough to pass some of wrapping.t which only needs that.
15:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​31fe43370c4131104815d4783326feca8061932
15:28 shorten dalek's url is at http://xrl.us/beoefj
15:28 dalek rakudo: 04f63fc | jnthn++ | src/classes/Routine.pir:
15:28 dalek rakudo: Make sure accessing the non-existent return value of unwrap doesn't cause Null PMC Access by handing back Nil.
15:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​4f63fcd03ee79114787244d3057b189b93b6eb9
15:28 shorten dalek's url is at http://xrl.us/beoefm
15:28 dalek rakudo: 4866942 | jnthn++ | src/classes/Code.pir:
15:28 dalek rakudo: Implement .callwith method for Code objects.
15:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​8669427e7af1ef21c2122c8b827208f75c009f9
15:28 shorten dalek's url is at http://xrl.us/beoefq
15:31 nopaste joined #parrot
15:40 darbelo joined #parrot
15:54 Psyche^ joined #parrot
15:58 amoc joined #parrot
16:09 Theory joined #parrot
16:21 nopaste joined #parrot
16:35 DietCoke (quiet today)
16:38 particle- now that dietcoke is gone, we can start chatting again.
16:38 Coke jonathan: ping.
16:39 Coke jonathan: { if (foo) foo=NULL } is better written as "foo=NULL", innit?
16:39 Coke (r37980)
16:40 particle- otherwise you end up with null or zero
16:42 Tene_ joined #parrot
16:44 jonathan Coke: Heh. Rather pointless chekc, yes.
16:44 jonathan Coke: I was originally going to copy to a new struct then decided against...
16:44 particle- (code reviews)++
16:45 jonathan Indeed
16:45 Coke meh. just a mindless check. I seem to spend half my day looking at commits.
16:45 Coke (for $work too)
16:48 particle- that's a nice gig
16:49 particle- i'm writing php and c
16:49 particle- and nobody looks at my code.
16:49 * jonathan spent some time recetnly doing VBScript, and nobody looked at his code either
16:49 particle- ho, and sieve scripts.
16:49 dalek parrot: r37996 | jonathan++ | trunk/src/pmc/sub.pmc:
16:49 dalek parrot: [core] Remove pointless condition spotted by Coke++.
16:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37996/
16:49 * Coke works in cfmx, so looking at C is actually refreshing. =-)
16:49 jonathan Me looking at the previous developer's code on the other hand, now that was depressing.
16:50 Coke I always find cfmx code I take over to be particuarly heinous.
16:50 Coke I wonder occasionally if php maintenance devs have the same issue.
16:50 jonathan Well, depends who wrote the code I guess.
16:51 jonathan On one codebase I've worked on recently, some of it wasn't so bad, some of it was pretty awful.
16:51 particle- i'm just glad that php has eval
16:51 particle- it's made writing code so much easier, because i can generate the boilerplate and eval it
16:51 nopaste joined #parrot
16:52 Coke Ugh. I try to rip out eval wherever possible. =-)
16:52 Coke I find that it's most commonly used in CFMX  by people who don't get hash syntax. =-)
16:53 Coke instead of struct[key] you get something like (perl syntax) eval "struct.$key"
16:54 jonathan .oO( I hope they validated $key! )
16:56 confound jonathan: valiwhat?
16:57 Coke jonathan: no.
16:57 Coke I found that pretty universally in javascript/cfmx here.
16:57 pmichaud $key validation:      if $key != $key { die "$key is invalid." }
16:59 pmichaud lunch, $otherjob, then blogging and hackathon writing
16:59 pmichaud bbl
17:00 jonathan Coke: I can haz arbitary code execution? ;-)
17:03 Coke the code base here is an amazing example of doing things wrong. =-)
17:06 altious joined #parrot
17:08 dalek lua: 4b2e14e | (Francois Perrad)++ | src/ (2 files):
17:08 dalek lua: Now, works with Parrot r37968 (PCT/POST refactor)
17:08 dalek lua:     COMPATIBILITY BREAK
17:08 dalek lua: review: http://github.com/fperrad/lua/commit/4b​2e14e6cfd5be8ab16cc52508073c451e154906
17:08 shorten dalek's url is at http://xrl.us/beoeq4
17:10 dalek rakudo: 4cc08e8 | jnthn++ | src/parser/actions.pm:
17:10 dalek rakudo: Add multiple prefix constraint check, as done by STD.pm.
17:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​cc08e81ec2c0c6e04bad073a4c14535dbad0857
17:10 shorten dalek's url is at http://xrl.us/beoeq6
17:11 davidfetter joined #parrot
17:21 Infinoid joined #parrot
17:31 nopaste joined #parrot
17:38 altious joined #parrot
17:39 japhb joined #parrot
17:43 particle joined #parrot
17:50 Khisanth joined #parrot
17:56 rdice joined #parrot
17:56 nopaste joined #parrot
17:59 dalek parrot: r37997 | cotto++ | trunk/src (2 files):
17:59 dalek parrot: [JIT] remove undocumented dependency of jit code on PMC internals, fixing TT #365
17:59 dalek parrot: Infinoid++ for the original patch
17:59 dalek parrot: Whiteknight++ for the review
17:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37997/
18:02 rdice joined #parrot
18:07 barney joined #parrot
18:12 dalek rakudo: b512bdc | jnthn++ | src/classes/Associative.pir:
18:12 dalek rakudo: %h<> should return everything in the hash, like @a[] returns everything in the array.
18:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​512bdca731d06c1488e4b302351e6c0f8f2fb3d
18:12 dalek rakudo: 9854f25 | jnthn++ | src/parser/actions.pm:
18:12 shorten dalek's url is at http://xrl.us/beoezk
18:12 dalek rakudo: Enforce a single prefix type constraint on parameters.
18:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​854f25c842fff91e79c33ec9507cb9ad36dcd4b
18:12 shorten dalek's url is at http://xrl.us/beoezn
18:12 dalek rakudo: 07ed756 | jnthn++ | src/classes/Range.pir:
18:12 dalek rakudo: Implement postcircumfix:[ ] in Range. It doesn't know about infinite ranges, but not much else does yet either.
18:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​7ed7564110d0f3e48beec46af5cc2a171fd2dfb
18:12 shorten dalek's url is at http://xrl.us/beoezp
18:12 flh joined #parrot
18:38 particle joined #parrot
19:21 dalek parrot: r37998 | cotto++ | trunk/src/pmc (2 files):
19:21 dalek parrot: [PMC] use VTABLE w/switch instead of MULTI for Integer's is_equal
19:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37998/
19:22 Coke is that a behavior switch that we need a dep notice for (does one already exist/)
19:23 Coke there it is. n'mind.
19:28 Coke msg chromatic (modern perl, last post s/precide/precise/)
19:28 purl Message for chromatic stored.
20:00 rdice_ joined #parrot
20:04 iblechbot joined #parrot
20:14 clunker9 joined #parrot
20:26 uniejo joined #parrot
20:35 contingencyplan joined #parrot
21:11 bacek joined #parrot
21:19 bacek good morning
21:22 bacek Infinoid: around?
21:23 Infinoid hi bacek
21:23 Infinoid happy ... *thinks about it* ... Friday?
21:23 bacek Infinoid: hi. Yeah, Good Friday :)
21:25 bacek I've got question about PackFiles. Currently PackFile works as factory for Segments. And it's very hard to represent in PMCs because of memory management.
21:25 bacek Any ideas/suggestions?
21:25 joubert joined #parrot
21:25 * bacek need more coffee
21:26 Infinoid well, eventually it would be nice to move all of packfile.c into the pmcs and use pmc attrs instead of just wrapping the packfile structs
21:26 Infinoid the wrapping stuff is just stage 1.  and the readonly stuff I've written is stage 1 of stage 1 :)
21:27 Infinoid where are you having difficulty representing them in pmcs, though?  there's still a 1:1 mapping between c structs and pmc objects
21:27 Infinoid I suppose the initialization part is a bit weird.
21:28 bacek For example PackFile_Segment_new followed by PackFile_Segment_destroy will just crash.
21:28 bacek Because _destroy uses "virtual functions" from PackFile
21:29 Infinoid ah, so the underlying packfile api itself is brittle?
21:30 bacek Infinoid: it's good for "pure C" :)
21:30 Infinoid right, but it makes it difficult to make the pmcs bulletproof
21:30 bacek indeed.
21:31 bacek All possible "bad things" can happen.
21:31 bacek Like adding segment to directory twice will lead to segfault.
21:32 bacek Replacing segment in directory can lead to segfault or leak.
21:32 bacek etc, etc, etc...
21:32 Infinoid hmm.  do you think it'd be easier to put a bunch of management code in the pmc frontend, or to just hold off on creating the underlying structures until the last possible moment?
21:33 bacek Infinoid: my thought that creating underlying PackFile just on "Packfile.pack" is best option.
21:33 bacek And create PMCs on "unpack"
21:34 Infinoid Can we do that without having PackfilePacked vs PackfileUnpacked objects to keep everything separate?
21:34 bacek Only one disadvantage - we can't create-and-execute on fly.
21:35 bacek Yes, we can.
21:35 bacek Packfile.pack will create "C" objects, serialize and destroy them in single call.
21:35 Infinoid ok
21:36 Infinoid hah, so you just won't keep them around, ok
21:36 bacek "PackfileUnpacked" is what current PMCs became.
21:36 bacek E.g. "PackfileDirectory" is just Hash.
21:37 bacek We can even remove it totally.
21:37 Infinoid as I understood it from jonathan, the implementation path was to wrap the packfile stuff, migrate all the callers onto the pmc-based api, and then start moving the underlying logic into the pmcs directly
21:37 Infinoid if you want to do things in a different order, that's ok.  but be careful, there's a *lot* of work involved in this stuff
21:37 bacek It's hard to wrap in bullet-proof manner.
21:38 * bacek summon jonathan
21:38 Infinoid the issue you're raising is that there are too many corner cases that can crash and no way we'll ever catch them all, right?
21:39 bacek Who currently creates packfiles? IMCC and PIRC?
21:39 bacek Infinoid: yes.
21:39 Infinoid the files, or the objects?
21:39 bacek both
21:40 Infinoid so far, the only thing I know of creating pmc objects are the tests
21:40 bacek :)
21:41 particle- the calling conventions create more pmcs than the tests :)
21:41 Infinoid Packfile PMCs?
21:41 particle- er, i hope not.
21:41 particle- guess i picked the wrong day to stop sniffing glue.
21:42 Infinoid never stop, that's my motto
21:45 Infinoid weird.  When I did an "ack PackFile_new", I got a hit from tools/dev/pbc_to_exe.pir, but that's really C packfiles, not PIR ones
21:45 bacek So, if I'll implement PMCs which can create but not hold underlying "C" objects will solve almost all corner cases.
21:45 Andy such is the limittion of going off file extensions.
21:46 Infinoid I wasn't blaming ack.  It's just kinda confusing to me to see pir generating c
21:47 particle- welcome to the future. your new id is on the dresser floating in your bedroom.
21:47 bacek And will reduce size of code (just because we can reuse other PMCs). E.g. PackfileSegment is just ResizeableIntegerArray. Directory and ConstTable are Hashes.
21:48 Infinoid if you can do that, it will then be a short step to getting rid of the underlying c stuff altogether
21:49 bacek Infinoid: I can do it. It's actually much easy than properly wrap all stuff :)
21:49 quassel251 joined #parrot
21:50 dalek rakudo: 5658a57 | jnthn++ | build/ (2 files):
21:50 dalek rakudo: Implement * mathop val and val mathop * generating blocks. Left out infix:<-> for now.
21:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​658a570660e385cc6cd2bb609a2918544bffb7e
21:50 shorten dalek's url is at http://xrl.us/beofro
21:50 dalek rakudo: 4a95115 | jnthn++ | perl6.pir:
21:50 dalek rakudo: Oops, forgot this file too. Epic git usage fail...
21:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​a9511518f3911f9fd2b021d681594c4b46e6df8
21:50 shorten dalek's url is at http://xrl.us/beofrq
21:51 bobke joined #parrot
22:07 bobke joined #parrot
22:17 bacek Infinoid: still around?
22:18 bacek "Packfile is Hash" or "Packfile has Hash"? (In terms of Directory handling)
22:19 Infinoid I kinda figured Packfile itself would just have some ATTRs for the directory and version and uuid and all of that stuff
22:20 Infinoid PackfileDirectory, on the other hand, should probably be "extends Hash"
22:20 bacek We probably can get rid of Directory.
22:20 Infinoid ok, ok
22:20 Infinoid interesting idea.
22:20 bacek Because Directory is just storage representation.
22:20 Infinoid yeah, there's no real point in separating those objects
22:21 bacek I'll implement Packfile as "has Hash". We can change it in future.
22:22 Infinoid ok.  Note that that change of object layout will require an update to the API described in pdd13 (and probably be a good idea to get jonathan to sign off on it)
22:24 bacek Infinoid: I'm not going to change layout :)
22:24 bacek And will create exactly same PBC as described in pdd13.
22:24 Infinoid and think about getting rid of Directory later? :)
22:24 Infinoid cool.
22:24 bacek But PMCs API will be slightly different
22:25 Casan joined #parrot
22:25 Infinoid yes, pdd13 specifies the PMC API as well
22:26 Infinoid one problem you'll run into: the Packfile PMC uses the hash API to allow access to the header fields... the exact same vtable functions as Directory uses to allow access to the segments
22:26 Infinoid so if you merge them, you'll have to special-case certain key names for the header fields
22:26 bacek pdd13 describes read-only access to binary PBC...
22:27 Infinoid pdd13 also specifies the PMC API, under the heading "Packfile PMCs
22:27 Infinoid "
22:27 bacek (I was wrong)
22:28 Infinoid So yeah, if you want to change the PMC API, you'll have to update the pdd too.
22:28 Infinoid This is probably a good time for that, as the pdd already needs updating for some annotations stuff (which is on jonathan++'s list)
22:32 * jonathan notices the list has started to emerge from the pile of stuff under his bed and quickly stuffs it back under
22:33 TimToady joined #parrot
22:33 * bacek looking under jonathan's bed - IT'S A LOT OF TREASURES HERE!!!
22:36 bacek ok, there is 4 days long weekend. I'll try to finish packfile pmcs implementation over it.
22:36 bacek afk # family stuff
23:02 Whiteknight joined #parrot
23:13 tetragon joined #parrot
23:29 dalek rakudo: f9a2236 | jnthn++ | src/parser/ (2 files):
23:29 dalek rakudo: Fix parsing of whatever.
23:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​9a2236d7f1d3e9190ce9917edfb233459034a45
23:30 shorten dalek's url is at http://xrl.us/beof4k
23:30 dalek rakudo: 70fc009 | jnthn++ | src/classes/ClassHOW.pir:
23:30 dalek rakudo: Implement *.foo generating the closure { $^wob.foo }.
23:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​0fc00959385ab9e435c6ec30c8f57f4e48149ab
23:30 shorten dalek's url is at http://xrl.us/beof4n
23:38 bacek joined #parrot
23:54 bacek jonathan: ping
23:54 jonathan bacek: no route to host
23:54 jonathan ;-)
23:54 TiMBuS joined #parrot
23:54 bacek :)
23:55 jonathan bacek: What're you wanting? :-)
23:55 bacek I'm going to rename Packfile PMC attributes to be in sync with physical packfile header
23:55 bacek any objections?
23:56 bacek e.g. version_major -> major, etc
23:56 jonathan OK, two things
23:56 purl two things are giving you a "before" keyword
23:56 jonathan consistency for the win
23:57 jonathan However, I suspect I might have thought about the external names more than the ones in the code. ;-)
23:57 jonathan That is, maybe renaming the struct describing the header to match the external interface would be saner.
23:58 bacek ok. Let's rename header fields :)
23:58 bacek next question: we have Packfile.uuid_length attribute. Do we really need it?
23:59 jonathan in the header? Or externally visible?
23:59 bacek in PMC.
23:59 bacek And in header of cause.
23:59 bacek (We need it in header :)
23:59 jonathan I think that one does not need to be externally exposed.
23:59 jonathan Yeah, in the header I think we gotta have that.
23:59 * bacek strikes another line in pdd13

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

Parrot | source cross referenced