Camelia, the Perl 6 bug

IRC log for #parrot, 2009-08-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:10 Khisanth joined #parrot
00:11 Khisanth joined #parrot
00:21 dalek decnum-dynpmcs: r146 | darbelo++ | /:
00:21 dalek decnum-dynpmcs: Replace����/trunk/t/subtract.t
00:21 dalek decnum-dynpmcs:
00:21 dalek decnum-dynpmcs:
00:21 dalek decnum-dynpmcs:  More test file cleanup, t/subtract.t this time. Same as before, mostly:
00:21 dalek decnum-dynpmcs: - Removed all add.t test failures caused by library bugs
00:21 dalek decnum-dynpmcs: - Removed tests that depended on not rounding at assignment time.
00:21 dalek decnum-dynpmcs: - Removed tests involving invalid input.
00:21 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=146
00:25 cotto I'm disappointed in decNumber.  I'd really expect the library to pass all its own tests.
00:25 cotto (no reflection on darbelo, of course)
00:33 darbelo cotto: Well, if you have the patience to read, say 2716 lines of tests you can spot in the comments that a few of them are to be skipped.
00:33 darbelo It's not like they didn't warn us :)
00:35 darbelo Also, the decTest suite assumes that whatever values it puts before the "->" remain untouched, while our conversion process rounds them during the assignment.
00:36 darbelo Most of the add/subtract failures happened for that reason. I would expect them to pass if we didn't force our input to match our operating context.
00:39 cotto ok.  I still wonder how a reference implementation would do, but that gives me a little more confidence.
00:39 cotto reference implementation of the test suite, that is
00:44 darbelo Having spent most of the day looking at the test suite, I can pretty much gurantee that you wouldn't be able to get 100% success without skipping over some tests.
00:49 darbelo Here's one example line 1450 of power.decTest : "-- Invalid operations due to restrictions"
00:52 cotto Is there any indication in the docs (i.e. not in comments in the tests themselves) that some tests are expected to fail?
00:53 darbelo cotto: I can't recall the docs mentioning the test suite at all.
00:55 darbelo Even better, if you go to the 'decNumber homepage' (http://speleotrove.com/decimal/decnumber.html) you don't have any links to the test suite either.
00:55 cotto There's a moderate amount of documentation on the test cases, but it doesn't mention either coverage or expected % pass.
00:55 kid51 joined #parrot
00:57 darbelo The actual test suite is offered by the "General Decimal Arithmetic" page (http://speleotrove.com/decimal/) not decNumber.
00:58 patspam joined #parrot
01:00 darbelo I suspect that it's meant as a spec-test for whoever decides to implement a decimal arithmetic package.
01:02 darbelo But if I'm disappointed with decNumber, it's for different reasons. It puts waaaaay too much effort into trying to be a 'decimal FPU'.
01:03 Eevee joined #parrot
01:04 darbelo There are a few moments where I though I was working with a *hardware* implementation. It's handling of zeros, for example, is completely baffling if you look at it from a software standpoint.
01:18 darbelo But enough ranting from me. Let's commit some stuff
01:19 Whiteknight darbelo++
01:19 Whiteknight purl seen Austin?
01:19 purl Austin was last seen on #parrot 2 days, 8 hours, 48 minutes and 21 seconds ago, saying: Try "find_charset" instead of "find_encoding" maybe?  [Aug  6 16:25:02 2009]
01:21 darbelo (Shut up and hack!)++
01:21 dalek decnum-dynpmcs: r147 | darbelo++ | /:
01:21 dalek decnum-dynpmcs: Replace����/trunk/t/divide.t
01:21 dalek decnum-dynpmcs:
01:21 dalek decnum-dynpmcs:
01:21 dalek decnum-dynpmcs:  Cleanup time for t/divide.t. Pretty much the same as the others.
01:21 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=147
01:22 braceta joined #parrot
01:43 darbelo All tests successful.
01:43 purl ship that sucker
01:43 darbelo Files=7, Tests=4763, 59 wallclock secs (51.70 cusr +  0.59 csys = 52.29 CPU)
01:46 dalek decnum-dynpmcs: r148 | darbelo++ | /:
01:46 dalek decnum-dynpmcs: Replace����/trunk/t/multiply.t
01:46 dalek decnum-dynpmcs:
01:46 dalek decnum-dynpmcs:
01:46 dalek decnum-dynpmcs:  Test file cleanup, this time for t/multiply.t, you know how it goes. Same as
01:46 dalek decnum-dynpmcs: before except now all test PASS.
01:46 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=148
01:47 darbelo As of r148, all DecNum test PASS. That puts testing DecInt, writing DecRat and testing DecRat as the only outstatnding schedule items.
01:47 dalek close: r91 | Austin++ | trunk/library/close/Compiler/Dumper.pir:
01:47 dalek close: Removed accidental .pir file
01:47 dalek close: review: http://code.google.com/p/close/source/detail?r=91
01:52 dalek parrot: r40458 | allison++ | branches/pcc_arg_unify/tools/build/nativecall.pl:
01:52 dalek parrot: [pcc] Rework NCI function generator to use new argument passing style.
01:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40458/
01:55 cotto darbelo, nice.  That's especially good since the last two are stretch goals iirc.
01:56 cotto allison++
01:58 Whiteknight allison++ indeed. I am so anxious for this pcc work to land
01:58 dalek parrot: r40459 | allison++ | branches/pcc_arg_unify/lib/​Parrot/Pmc2c/PCCMETHOD.pm:
01:58 dalek parrot: [pcc] Updating PCCMETHOD generation to reduce unnecessary fiddling with contexts.
01:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40459/
02:08 dalek parrot: r40460 | allison++ | branches/pcc_arg_unify/src/pmc (2 files):
02:08 dalek parrot: [pcc] Update method calls in Class and Object PMCs to use new C call
02:08 dalek parrot: interface.
02:08 purl i heard interface was more or less well defined for robots - but other agents could refer to the resource with different keys.
02:08 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40460/
02:09 cotto < purl-- >
02:19 darbelo cotto: Sort of, they were part of the "What I want to get done" list. I made a best-guess hope-everything-works-out schedule and never revised it when stuff started not-entirely-working-out.
02:22 dalek parrot: r40461 | allison++ | branches/pcc_arg_unify/src (7 files):
02:22 dalek parrot: [pcc] Updates for new C sub and method calling interface in core subsystems.
02:22 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40461/
02:28 darbelo Say, is pcc_arg_unify the new pcc_rewiring?
02:28 Whiteknight yeah, I think so
02:28 Whiteknight or, it's a more modest first step
02:29 Whiteknight goodnight
02:30 darbelo goodnight
02:35 janus joined #parrot
02:37 braceta left #parrot
02:41 dalek parrot: r40462 | dukeleto++ | trunk/t/tools/parrot_debugger.t:
02:41 dalek parrot: [debugger] Add tests for the run command
02:41 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40462/
02:43 dukeleto joined #parrot
02:43 dukeleto hola
02:43 purl bonjour, dukeleto.
02:45 darbelo dukeleto++ # Good work on the debugger.
02:45 dukeleto darbelo: danke
02:45 dalek decnum-dynpmcs: r149 | darbelo++ | trunk/t/data/ (16 files):
02:45 dalek decnum-dynpmcs: Remove decTest files for library functionality we don't expose or use.
02:45 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=149
02:46 dukeleto darbelo: now you can assign to most registers, which should be helpful with debugging
02:46 darbelo If you keep improving it like that people might even start debugging stuff with it!
02:57 MinorToken joined #parrot
03:01 dukeleto darbelo: that is the plan
03:03 darbelo But... If they do that... They'll find bugs! And fix them!
03:03 cotto oh noes!
03:03 dukeleto i have found lots of bugs that I can't even properly test yet, but it is fun
03:04 mokurai joined #parrot
03:08 dalek parrot: r40463 | allison++ | branches/pcc_arg_unify/src/library.c:
03:09 dalek parrot: [pcc] Only include the build directory in the search path conditionally.
03:09 dalek parrot: When it is used, search by full path rather than relative path.
03:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40463/
03:11 bacek joined #parrot
03:16 dalek decnum-dynpmcs: r150 | darbelo++ | trunk/t/data/ (4 files):
03:16 dalek decnum-dynpmcs: Delete some more files we don't need.
03:16 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=150
03:20 donaldh joined #parrot
03:20 eternaleye joined #parrot
03:25 cotto joined #parrot
03:25 dalek decnum-dynpmcs: r151 | darbelo++ | trunk/t/divideint.t:
03:25 dalek decnum-dynpmcs: New test file for integer division, it adds no new failures.
03:25 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=151
03:40 dalek decnum-dynpmcs: r152 | darbelo++ | trunk/src/pmc/decnum.pmc:
03:40 dalek decnum-dynpmcs: Taking a closer look at how parrot handles % on floats, it looks like
03:40 dalek decnum-dynpmcs: decNumberRemainder was the right choice after all.
03:40 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=152
03:45 dalek decnum-dynpmcs: r153 | darbelo++ | trunk/src/pmc/decnum.pmc:
03:45 dalek decnum-dynpmcs: Opps, missed a VTABLE on the last commit.
03:46 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=153
03:52 TiMBuS joined #parrot
03:55 dalek decnum-dynpmcs: r154 | darbelo++ | trunk/src/pmc/decint.pmc:
03:55 dalek decnum-dynpmcs: Replace all uses of PARROT_DECNUM() with PARROT_DECINT() for the DecInt PMC.
03:55 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=154
04:00 dalek decnum-dynpmcs: r155 | darbelo++ | trunk/src/pmc/decint.pmc:
04:00 dalek decnum-dynpmcs: Adjust DecInt's modulus* VTABLEs to mimic the behavior of % on integers.
04:00 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=155
04:20 dalek decnum-dynpmcs: r156 | darbelo++ | trunk/t/data/ (21 files):
04:20 dalek decnum-dynpmcs: Remove another batch of unused decTest files.
04:20 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=156
04:40 dalek decnum-dynpmcs: r157 | darbelo++ | trunk/ (3 files):
04:40 dalek decnum-dynpmcs: Add a new test file for the the modulus vtable. This gets us 422 more tests with
04:40 dalek decnum-dynpmcs: no new failures.
04:40 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=157
05:00 dalek decnum-dynpmcs: r158 | darbelo++ | trunk/t/remaindernear.t:
05:00 dalek decnum-dynpmcs: Add our first DecInt test file. 121 tests (0 failures) for the DecInt modulus
05:00 dalek decnum-dynpmcs: VTABLE.
05:00 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=158
05:00 darbelo And now that's done I'm going to sleep. I don't trust myself to keep commiting changes after 2 am.
05:03 HG` joined #parrot
05:12 cotto good idea there
05:23 Andy joined #parrot
05:25 bacek joined #parrot
05:37 mokurai joined #parrot
07:20 donaldh joined #parrot
07:52 cotto If anyone knows Smalltalk, now's your time to shine.
07:53 dalek tracwiki: v1 | cotto++ | LoritoPrimitives
07:53 dalek tracwiki: initial version; needs help from someone who knows Smalltalk
07:53 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Lor​itoPrimitives?version=1&amp;action=diff
07:53 cotto Not coincidentally, it's my time to sleep.
08:01 mikehh_ joined #parrot
08:40 mokurai left #parrot
08:45 payload is their a known way to print the line number of the hll in a Parrot_ex_throw_from_c_args ?
08:47 payload or make Parrot_ex_thow_from_c_args allways print the/a line number
09:22 masak joined #parrot
09:27 payload :-/ https://trac.parrot.org/parrot/changeset/38073
09:36 bacek joined #parrot
09:44 dalek tracwiki: v22 | kjs++ | PIRCDevelopment
09:44 dalek tracwiki: more heredoc explanation
09:44 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=22&amp;action=diff
09:54 dalek tracwiki: v23 | kjs++ | PIRCDevelopment
09:54 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=23&amp;action=diff
10:14 dalek tracwiki: v24 | kjs++ | PIRCDevelopment
10:14 dalek tracwiki: include and pod parsing
10:14 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=24&amp;action=diff
10:16 kj joined #parrot
10:24 dalek tracwiki: v25 | kjs++ | PIRCDevelopment
10:24 dalek tracwiki: multi heredoc
10:24 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=25&amp;action=diff
10:34 dalek tracwiki: v26 | kjs++ | PIRCDevelopment
10:34 dalek tracwiki: finish discussion heredoc parser.
10:34 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=26&amp;action=diff
10:47 dalek tracwiki: v27 | kjs++ | PIRCDevelopment
10:47 dalek tracwiki: add AST node types
10:47 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=27&amp;action=diff
10:56 MoC joined #parrot
11:10 bacek joined #parrot
11:17 kid51 joined #parrot
11:20 donaldh joined #parrot
11:29 kj joined #parrot
11:31 Hunger joined #parrot
12:02 bacek joined #parrot
12:14 dalek tracwiki: v28 | kjs++ | PIRCDevelopment
12:14 dalek tracwiki: more on reg allc
12:15 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=28&amp;action=diff
12:18 Whiteknight joined #parrot
12:21 Whiteknight good morning #parrot
12:25 kj morning Whiteknight
12:26 Whiteknight hello kj
12:26 kj Whiteknight: the big PIRC documentation project has started :-)
12:26 Whiteknight I saw that. Very nice!
12:27 kj thanks :-)
12:28 dalek tracwiki: v29 | kjs++ | PIRCDevelopment
12:28 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=29&amp;action=diff
12:37 Whiteknight joined #parrot
12:38 dalek tracwiki: v30 | kjs++ | PIRCDevelopment
12:38 dalek tracwiki: https://trac.parrot.org/parrot/wiki/PIR​CDevelopment?version=30&amp;action=diff
12:54 einstein joined #parrot
12:56 dalek matrixy: r195 | wknight8111++ | trunk/src/builtins/loadlibrary.pir:
12:56 dalek matrixy: Remove a reference to dumper, since something has changed in parrot about the
12:56 dalek matrixy: library-loading logic and I don't know how to find it again.
12:56 dalek matrixy: review: http://code.google.com/p/m​atrixy/source/detail?r=195
13:08 mikehh I meant to post this a couple of hours ago All tests PASS (pre/post-config, smolder, nqp_test, fulltest) at r40463 - Ubuntu 9.04 amd64
13:10 dalek matrixy: r196 | wknight8111++ | trunk/t/008-path.t:
13:10 dalek matrixy: Fix a test involving paths that's failing because our string literal path is
13:10 dalek matrixy: coming out in the wrong order now. Probably related the the hash keys refactor
13:11 dalek matrixy: in parrot. Will dig into this later
13:11 dalek matrixy: review: http://code.google.com/p/m​atrixy/source/detail?r=196
13:19 kj joined #parrot
13:20 dalek matrixy: r197 | wknight8111++ | trunk/src/parser/grammar.pg:
13:20 dalek matrixy: quick hack to get files working if they start with whitespace. Whitespace
13:20 dalek matrixy: throughout the rest of the file is handled by other rules. Should resolve
13:20 dalek matrixy: ticket#20
13:20 dalek matrixy: review: http://code.google.com/p/m​atrixy/source/detail?r=197
13:29 Whiteknight feels good to work on matrixy, development on that has been stagnant for a few months now
13:30 dalek matrixy: r198 | wknight8111++ | trunk/t/ (5 files):
13:30 dalek matrixy: add a test to the dispatch tests to catch regressions on r197
13:30 dalek matrixy: review: http://code.google.com/p/m​atrixy/source/detail?r=198
13:31 Whiteknight Infinoid: ping
13:31 Whiteknight kjs: ping
13:32 kj hi Whiteknight
13:33 Whiteknight hello kj
13:33 kj you lookin for me?
13:36 Whiteknight no, kjs
13:36 kj kj=kjs
13:36 Whiteknight oh shit, I'm getting names mixed up in my head
13:37 Whiteknight sorry
13:37 kj np
13:53 Whiteknight Austin?
13:53 purl i heard Austin was nice. or a city in Texas.
13:53 Whiteknight Austin_Hastings?
13:53 purl i guess Austin_Hastings is asking for method.
13:53 Whiteknight that's not helpful
14:00 dalek rakudo: 5c4b1b8 | dakkar++ |  (2 files):
14:00 dalek rakudo: Fix splice
14:00 dalek rakudo: (With a small fix by Moritz: avoid a warning)
14:00 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
14:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​c4b1b8ae4e9d7824a26fb7edba43bfb4b91111a
14:20 Austin joined #parrot
14:20 mikehh rakudo (5c4b1b8) builds on parrot r40463 make test/make spectest (up to 27922) PASS - Ubuntu 9.04 amd64
14:21 Austin WhiteKnight: hi
14:21 purl hola, Austin.
14:24 Whiteknight hello Austin
14:25 Austin If the wife is away, shouldn't you be headed for a strip club, or sports bar, or something?
14:25 Austin "Delilah's! Now with free wi-fi!"
14:27 Whiteknight if said gentleman's club had free wi-fi, no cover charge, no drink minimum, and offered no distractions to my coding, I would go
14:27 Austin Sure. But *that* kind of gentlemen's club died out in the 19th century.
14:27 Whiteknight yeah and back then the wi-fi wasn't even worth the trip
14:28 Austin "There's old Whitworth. He's a bit of a strange chappy. Sits by himself smoking stogies and hacking parrot all day. Never says a word to anyone."
14:28 Whiteknight well, that is what they say
14:28 Austin :(
14:29 Austin No wi-fi, just pay a kid to run a message for you.
14:29 Austin Write your code in long hand, with a pen. The way God intended.
14:31 Whiteknight yeah, those were the days
14:32 Austin So what are you working on today?
14:35 jan joined #parrot
14:37 Whiteknight I dont know. Nothing right now
14:37 Whiteknight I was doing some Matrixy hacking earlier, and I have some GC stuff still up in the air that I could tackle
14:38 Whiteknight Tene wants to work on a select()/poll() interface too, and I really want to finish up the pipe stuff with Infinoid
14:38 Austin What's new in GC-ville?
14:44 Austin Woo. I love it when I get a whole bunch of code in a row to start working.
14:45 Whiteknight chromatic had an idea for a lazy allocator that might be able to shave a few percent off startup time
14:45 Psyche^ joined #parrot
14:46 Whiteknight and NotFound has been doing some stuff with PMC allocation that should give us some good improvements, at least in terms of decreased code complexity
14:46 Whiteknight actually, NotFound: ping
14:48 Austin What is the current state of the "GC problem"? Is it too slow, or just too much of an interruption?
14:49 Whiteknight too slow, we're basically just using a simplistic algorithm
14:50 Austin Okay.
14:50 Whiteknight although we do have more people looking at it now, so that's a big plus
14:50 tetragon joined #parrot
14:51 Austin Okay.
14:52 Austin Why is the simplistic algorithm a problem?
14:53 * Coke skips review.
14:53 Coke simplistic could cause slow collections, or insufficient collections...
14:53 Whiteknight the simplistic algorithm (mark&sweep) is just algorithmically inefficient
14:53 Austin Hmm. I don't get that.
14:54 Coke you don't experience it or you don't understand?
14:54 Whiteknight it's like the difference between a bubble sort and a quick sort. Both sort an array, but one is faster then the other
14:54 Austin I don't understand it.
14:55 Austin I certainly don't understand the sort analogy.
14:55 dalek tracwiki: v2 | cotto++ | LoritoPrimitives
14:55 dalek tracwiki: add a field for an example Smalltalk snippet
14:55 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Lor​itoPrimitives?version=2&amp;action=diff
14:55 Austin Maybe it's the edge cases.
14:56 Coke Are you basing this on looking at the existing code?
14:56 Coke (austin)
14:56 Austin Nope.
14:56 Coke ok.
14:56 Austin Just thinking about GC in an environment where we know what all the objects are.
14:56 Coke but we don't, necessarily. there's discovery.
14:56 Austin Why is there discovery?
14:57 Coke because there's objects on the c stack?
14:57 Austin Didn't you write them down when you allocated them?
14:57 Austin And how do you discover objects on the C stack?
14:58 Coke <shrug> I'm not your GC guy. but the fact that you don't get that there can be a bad algorithm for a given problem seems to be a blocker.
14:58 Austin I get that there can be a bad algorithm. But Andrew, and a whole bunch of other smart people, have spent a bunch of time on this.
14:58 Coke HA.
14:58 Coke ahem.
14:58 Austin So I don't get that we could still be *using* a bad algorithm.
14:59 Coke Austin: that's pretty much how parrot has been developed.
14:59 Austin How's that?
14:59 Coke ;"here's a placeholder that will barely get the job done." "ok, onto the next thing."
14:59 Austin Hmm.
14:59 Coke We have been going back and fixing a lot of the placeholders.
15:00 Austin Okay.
15:00 Whiteknight Austin: the biggest problem is that for a long time Parrot was very dependent on the bad algorithm because there wasn't any encapsulation
15:01 Austin (On a side note, I've made a vow *not* to look at the internals. That way lies non-productivity.)
15:01 Whiteknight we have better encapsulation now, but we're still finding problems where the old bad design hasn't been completely contained and organizd
15:01 Austin Whiteknight: Okay.
15:01 Austin Coke: How does a parrot object get put on the C stack?
15:01 Austin Is there a "parrot-handle", or just a pointer to the object?
15:01 Coke Austin: I have no idea.
15:01 Austin Ah.
15:02 Austin Whiteknight: do you know?
15:03 Whiteknight PMC * p = pmc_new(...)
15:04 Whiteknight It's not where the PMC is stored, those are always in the pools. It's where the PMC reference is stored
15:04 Whiteknight the GC follows references
15:04 Austin Right.
15:04 Whiteknight So there are two options: either the PMC is referenced from another PMC, or it's referenced from a C variable on the C stack
15:04 Austin Hmm.
15:05 Austin Do we care about that?
15:05 Whiteknight Yes, because we need to find all references to avoid prematurely collecting PMCs
15:05 Austin How does GC get triggered?
15:06 Whiteknight usually it gets triggered internally to pmc_new, when it attempts to allocate but has no free buffers available
15:06 Austin Okay.
15:07 Whiteknight so if I do "PMC * a = pmc_new(...); PMC * b = pmc_new(...);" There is a chance that a won't be "anchored", and can be lost if the second call to pmc_new triggers a GC run
15:07 Austin I'm wondering just how many PMCs can be on the stack, since the stack should be (some constant stuff, which we can write down), plus whatever is needed to execute one opcode.
15:07 Whiteknight ...unless we sweep the C stack and find it
15:07 Whiteknight Right, it's never much stuff, but it's also not zero stuff
15:08 Whiteknight luckily because of the way that Parrot dispatches opcodes, the stack is rarely very deep, so sweeping it is quick
15:08 Austin So that's a fairly low-cost operation, then?
15:08 Whiteknight yes
15:08 Austin Okay. Then the list of every allocated object is really-cheap-but-not-quite-free.
15:09 Whiteknight depends what you mean by that
15:09 Austin Does the mark process tell pmcs to recursively mark, or just one level?
15:10 Whiteknight it's a recursive mark
15:11 Austin I mean if pmc_new is the allocator for all pmcs, then all the pmc references are known (cause you allocated them) except the ones on teh c stack, which are cheap to get.
15:11 Whiteknight yes
15:11 Whiteknight but in reality, we don't need that list
15:12 Austin So where do the all the mips go during gc?
15:12 Whiteknight GC is two stages: Mark, then sweep.
15:12 Austin Sure.
15:12 Whiteknight For sweep, GC starts at the root set (interpreter, registers, C stack) and follows references, marking objects alive.
15:12 Whiteknight er, mark
15:13 Austin You mean "For mark" right?
15:13 Whiteknight yes
15:13 Whiteknight for sweep, GC traverses the pools finding all items that aren't marked and freeing them
15:13 Whiteknight The inefficiencies come from the huge numbers of PMCs
15:14 Austin Which one takes longer?
15:14 Whiteknight for both stages we end up moving huge amounts of memory into the CPU cache, and marking/sweeping objects that are never going to die
15:14 Whiteknight I don't know, but I assume mark takes longer
15:14 Whiteknight never benchmarked it
15:14 Austin Do you know which objects will never die?
15:15 Whiteknight some, like constant objects don't die. But there are others that almost never die, and we don't detect those
15:16 Whiteknight so things that live for a long time are still marked every single time the GC runs, when heuristically we can say that they don't need to be marked as often
15:16 JimmyZ joined #parrot
15:17 Austin Detecting != knowing.
15:17 Austin It sounds to me like you need a benchmark program.
15:17 Austin How many pmc's are there, really?
15:17 Austin I've heard someone, maybe you, talking about the large numbers of pmcs created at startup. Is that still true?
15:20 donaldh joined #parrot
15:21 tetragon_ joined #parrot
15:22 kid51 joined #parrot
15:23 moritz that sounds like something chromatic would say ;-)
15:24 Whiteknight chromatic probably knows that information, I don't
15:24 dalek joined #parrot
15:27 Austin Is there a cheap way to find out if a pmc 'can' do a certain vtable op?
15:29 Whiteknight what do you mean?
15:29 Whiteknight technically, pmcs "can" do all VTABLEs, but many of them just fall back to Default
15:29 Austin Right.
15:30 Austin I was thinking about how to experiment with different GCs. And it seems like you'd want to be able to add a new vtable method, "experimental_GC_some-function". But then you'd need to know which Pmc's didn't implement it.
15:31 Whiteknight yeah, I don't know
15:31 Austin I guess it would be vtable[index] != default.vtable[index]. Still pretty good.
15:32 Whiteknight in C, yes. But I don't know how you would do that in PIR
15:32 Austin I was planning on doing it in C.
15:32 Austin :)
15:32 Austin A PIR garbage collector seems to be inviting trouble..
15:33 moritz because it has to collect itself? ;-)
15:33 Austin That wouldn't be a problem if we had semaphores.
15:34 * moritz doesn't have metaphores either
16:09 mberends joined #parrot
16:39 dalek rakudo: 212b145 | masak++ | src/setting/Temporal.pm:
16:39 dalek rakudo: [Temporal.pm] fixed formula in epoch
16:39 dalek rakudo: Also, made a few whitespace changes (to align operators, mostly), and
16:39 dalek rakudo: changed the names of a few local variables to make parameter passing
16:39 dalek rakudo: prettier.
16:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​12b145577735b133a43b34fff706faa27435c5b
16:44 dalek rakudo: 5517d80 | moritz++ | src/ (2 files):
16:44 dalek rakudo: implement infix:<!%>
16:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​517d80af7f4b5eabae9cbcd90615f68cd2da09e
16:44 dalek rakudo: 75d2b7d | moritz++ | src/setting/Any-list.pm:
16:44 dalek rakudo: simplify List.kv
16:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​5d2b7d2d6e4208bd652d047c23ff826e8bc51b4
16:44 dalek rakudo: 7d06fad | dakkar++ | src/ (2 files):
16:44 dalek rakudo: moved kv to setting
16:45 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
16:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​d06fad1bb6ed24f3f6cb4ed459daacddd6cfb61
16:56 NotFound Whiteknight: pong
16:56 Whiteknight NotFound: you doing any work on the auto_attrs branch todaY?
16:57 NotFound Whiteknight: nothing after r40449
16:58 Whiteknight Okay, I'm building it now to test it out
16:58 NotFound Whiteknight: ok
16:58 Whiteknight anything you're blocking on, or just need to convert all PMCs over to use the new stuff?
17:08 NotFound Whiteknight: not all, but there are some problems with non auto inheriting from auto. I plan to add a report to the ticket tomorrow.
17:08 Whiteknight ok
17:13 Khisanth joined #parrot
17:14 chromatic joined #parrot
17:24 mikehh_ joined #parrot
17:40 mokurai joined #parrot
18:01 mberends joined #parrot
18:17 dalek parrot: r40464 | allison++ | trunk/docs/book/pir (2 files):
18:17 dalek parrot: [pirbook] Typo fixes from Nuno Carvalho.
18:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40464/
18:50 dalek parrot: r40465 | allison++ | branches/pcc_arg_unify/config/ge​n/config_pm/config_lib_pasm.in:
18:50 dalek parrot: [pcc] Use idiomatic Parrot, PMCNULL instead of 'Undef'.
18:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40465/
18:59 einstein joined #parrot
19:00 payload joined #parrot
19:04 dukeleto joined #parrot
19:11 MikHel joined #parrot
19:18 Whiteknight joined #parrot
19:20 donaldh joined #parrot
19:23 rdice joined #parrot
19:23 rdice joined #parrot
19:51 moritz pmichaud: PGE's STATUS document seems outdate, it mentions \c and \C as TODO
19:52 moritz pmichaud: same with composed char classes
19:53 iblechbot joined #parrot
19:55 pmichaud moritz: very likely, yes.
19:55 pmichaud feel free to submit patch or update it :)
19:55 moritz ok
19:55 moritz I know, nobody reads docs anyway...
20:00 dalek parrot: r40466 | moritz++ | trunk/compilers/pge/STATUS:
20:00 dalek parrot: [PGE] update STATUS
20:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40466/
20:11 whoppix joined #parrot
20:14 dalek parrot: r40467 | moritz++ | trunk/compilers/pge/PGE/OPTable.pir:
20:14 dalek parrot: [PGE] fix outdated sub name in POD
20:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40467/
20:23 chromatic joined #parrot
20:34 dalek rakudo: 61f269d | pmichaud++ | docs/ROADMAP:
20:34 dalek rakudo: First ROADMAP update for Rakudo Star.
20:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​1f269d93bf8f3f7c65954c9fc1c6caf15905f19
20:34 joeri joined #parrot
20:43 smash joined #parrot
20:43 smash hello everyone
20:45 joeri left #parrot
20:46 Tene joined #parrot
21:00 GeJ Good morning everyone
21:00 japhb OK, big parrot module ecosystem proposal draft outline sent to parrot-dev.
21:00 japhb *phew*
21:01 japhb that ... took a while
21:06 bacek joined #parrot
21:32 darbelo joined #parrot
21:34 mberends joined #parrot
21:35 dukeleto joined #parrot
22:12 dalek rakudo: 7dd4463 | pmichaud++ | src/parser/ (2 files):
22:12 dalek rakudo: (STD tracking) <...>  and <<...>> are now circumfix: instead of quote:
22:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​dd4463f4c48da9befe3d5ddc2c8e9c5e1a6ba71
22:23 tetragon joined #parrot
22:35 dalek parrot: r40468 | jkeenan++ | trunk/examples/config (2 files):
22:35 dalek parrot: Add directories to hold examples of file-based configuration.
22:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40468/
22:36 dalek rakudo: f489207 | pmichaud++ | build/gen_whatever_pir.pl:
22:36 dalek rakudo: Add Whatever forms of some prefix operators.
22:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​489207e820302a7125667c59f77805a2d957f60
22:36 kid51 joined #parrot
22:38 dalek parrot: r40469 | jkeenan++ | trunk (1 files):
22:38 dalek parrot: Move files as per https://trac.parrot.org/parrot/ticket/908.
22:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40469/
22:39 rg joined #parrot
22:41 dalek rakudo: bf5ed94 | (Martin Berends)++ | src/builtins/eval.pir:
22:41 dalek rakudo: Also pass the 'ver' pmc as a named parameter to sub 'require', for
22:41 dalek rakudo: future implementation of S11 Versioning. When this patch was applied
22:41 dalek rakudo: on Rakudo builds prior to the Lisbon Walkathon, it triggered a GC
22:41 dalek rakudo: bug during t/01-sanity/07-isa.t but it does not do that now.
22:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​f5ed94e0027ab8f766899307fa4d95807da770e
22:42 dalek rakudo: e690c9f | (Martin Berends)++ | :
22:42 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
22:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​690c9f06b4f75c1557146ea01fabc47e512df98
22:42 payload joined #parrot
23:20 donaldh joined #parrot
23:25 dalek parrot: r40470 | jkeenan++ | trunk (3 files):
23:25 dalek parrot: Revise Configure.pl POD and other docs to reflect file movement.
23:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40470/
23:28 dalek rakudo: 4786eb8 | pmichaud++ | src/ (2 files):
23:28 dalek rakudo: Move .end() from builtins (PIR) into setting (P6).
23:28 dalek rakudo: Demonstrated at YAPC::EU 2009 presentation.
23:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​786eb8a48d17e670db6969f090bee0d1649bb3a
23:28 dalek rakudo: 39cc848 | pmichaud++ | :
23:28 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
23:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​9cc848007fbec97d264f17a8e0eafd3d317bbf6
23:31 dalek parrot: r40471 | jkeenan++ | trunk/xconf/samples:
23:32 dalek parrot: Remove directory no longer needed.
23:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40471/
23:32 dalek parrot: r40472 | jkeenan++ | trunk/xconf:
23:32 dalek parrot: Remove directory no longer needed.
23:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40472/
23:34 dalek TT #908 closed by jkeenan++: [CAGE] Relocate xconf/ examples to examples/ directory
23:40 Psyche^ joined #parrot
23:47 tetragon_ joined #parrot
23:48 patspam joined #parrot
23:59 treed Is there a good primer on AST/PAST besides the Parrot docs?

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

Parrot | source cross referenced