Camelia, the Perl 6 bug

IRC log for #parrot, 2011-10-28

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:21 dalek parrot/kid51/testsets2: 9f9c6af | jkeenan++ | / (4 files):
00:21 dalek parrot/kid51/testsets2: Instead of introducing two more Perl modules to the Parrot distribution, have user of 'make fulltest' install them from CPAN.
00:21 dalek parrot/kid51/testsets2: review: https://github.com/parrot/parrot/commit/9f9c6af14a
00:22 * Coke should update Task::Parrot at some point.
00:22 Coke feel free to ping me with stuff to put in it.
00:25 dalek parrot/kid51/testsets2: b249d79 | jkeenan++ | lib/Parrot/Distribution.pm:
00:25 dalek parrot/kid51/testsets2: lib/TAP/ has been removed from distro; remove it from Parrot::Distribution as well.
00:25 dalek parrot/kid51/testsets2: review: https://github.com/parrot/parrot/commit/b249d79d35
00:29 plobsing msg benabik Ωη;)XD supports pattern-matching in parrot. OMeta augments PEGs (parsing expression grammars, not your PEGs) with destructuring bind and a unique calling convention to enable what the docs refer to as "ML-like syntax". See https://github.com/plobsing/ohm-eta-wink-​kzd/blob/5a8a4ac00f86cb2726b61b78929be03c​4b9dbf16/t/tutorial.%E2%84%A6%CE%B7#L111 for a simple example.
00:29 aloha OK. I'll deliver the message.
00:37 NotFound joined #parrot
00:46 kid51 joined #parrot
00:51 benabik joined #parrot
01:06 whiteknight I still haven't used ohm-eta for anything. I have been meaning to take it for a spin
01:07 whiteknight ah damnit, my optimization earlier today to Task PMC on green_threads broke some stuff
01:15 plobsing whiteknight: same here. I haven't had many parsing tasks after finishing it. If you do get around to it, let me know about any issues. I may not have a lot of tuits, but I'll try to support my 1-man projects.
01:20 whiteknight yeah, it really does look like a fun tool that's in desperate need of testing
01:25 benabik I tend to find aloha messages to me in the logs before aloha actually sends it to me.
01:29 dalek parrot/green_threads: 944fa0e | Whiteknight++ | src/ops/ (2 files):
01:29 dalek parrot/green_threads: fix a bug I introduced earlier today. kid51++ for finding it
01:29 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/944fa0efaf
01:30 benabik I'm not quite sure what that "ML-like" syntax is supposed to be.
01:31 benabik Oh!  It's doing pattern matching in the compilation rules.  Very excellent.
01:31 benabik plobsing++
01:32 plobsing I'm sure it isn't as rich as SML pattern matching, but it is quite usable. The ohm-eta compiler uses it to implement it's "optimization" and emission passes.
01:33 benabik I was expecting it to parse an ML-esque syntax.
01:34 perlite joined #parrot
01:47 dalek parrot/green_threads: 51684dc | jkeenan++ | src/ops/experimental.ops:
01:47 dalek parrot/green_threads: [codingstd] No trailing whitespace.
01:47 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/51684dcd52
01:54 wagle joined #parrot
02:14 kid51 paste?
02:14 kid51 nopaste?
02:14 kid51 Do we have a working pastebot? nopaste.ch is out of commission?
02:18 kid51 http://pastebin.com/9xiqtwiC
02:18 kid51 build failure in green_threads branch with all g++ build
02:29 cotto 'evening
02:43 jsut joined #parrot
04:35 dalek rakudo/nom: d264275 | (Geoffrey Broadwell)++ | src/core/Main.pm:
04:35 dalek rakudo/nom: Don't treat an option prefix followed immediately by a digit or period as an option (it's probably a negative or radix-notation number)
04:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d26427560f
05:00 pmichaud joined #parrot
05:02 SHODAN joined #parrot
05:47 contingencyplan joined #parrot
05:53 dalek parrot/green_threads: 4e347b1 | bacek++ | / (5 files):
05:53 dalek parrot/green_threads: Fix c++ build
05:53 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/4e347b1e95
05:53 dukeleto bacek++ the magic coding robot is back!
05:56 TiMBuS joined #parrot
05:58 moritz \o/
05:58 * dukeleto fractured his foot :(
05:59 moritz dukeleto: oh noez, how did you manage that?
05:59 * moritz wishes a swift recovery/healing
05:59 dalek rakudo/nom: 642e789 | (Geoffrey Broadwell)++ | src/core/Str.pm:
05:59 dalek rakudo/nom: Delete trailing whitespace
05:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/642e789833
06:00 dukeleto moritz: fell off an Old Man Of The Desert. Didn't have my hooks in deep enough...
06:02 sorear dukeleto: how is "leto" pronounced?  (curiousity)
06:03 * cotto says leet-o
06:08 cotto dukeleto, did you get a cast out of the deal?
06:12 contingencyplan joined #parrot
06:15 dukeleto sorear: lee-toe
06:15 dukeleto cotto: got a temporary boot thing. need to get an xray tomorrow
06:28 dukeleto http://www.slideshare.net/​BrendanEich/splash-9915475#
06:28 dukeleto very interesting, some slides about multi-language vm's that are just strawmen
06:28 * dukeleto must sleep
07:59 jsut_ joined #parrot
08:07 lucian joined #parrot
08:16 lucian joined #parrot
09:08 mj41 joined #parrot
09:27 nine Good morning, #parrot
09:27 moritz good am, 9
11:24 dukeleto ~~
11:39 Psyche^ joined #parrot
12:17 whiteknight joined #parrot
12:18 whiteknight good morning, #parrot
12:18 whiteknight Interesting article about GC in .NET: http://samsaffron.com/archive/2011/10/2​8/in-managed-code-we-trust-our-recent-b​attles-with-the-net-garbage-collector
12:29 moritz whiteknight: interesting thing is, if you have such GC pauses, it will show if measure both the average and the standard deviation of the page load time
12:29 moritz but if you just measure the average, and it doesn't happen very often, it will drown in the noise
12:29 whiteknight yes, assuming your profiler is including the GC pauses
12:29 whiteknight if they happen after the request, like the article suggests, you wouldn't even see them in a naive measurement
12:30 moritz well, they wrote they noticed slow page loads
12:30 moritz so it's the page load time you have to measure
12:31 whiteknight it's interesting to me that the .NET GC has only three generations
12:32 whiteknight it's also interesting to me that they have an eventing mechanism to warn the program when a full GC run is about to start
12:34 whiteknight that's something that we could definitely have (after the green_threads merge) but that I would have never thought about
12:43 bluescreen joined #parrot
12:56 nbrown joined #parrot
13:00 bluescreen joined #parrot
13:06 pbaker joined #parrot
13:24 lucian whiteknight: it's not that useful, generally
13:24 lucian java also has one, and it's rarely used
13:24 whiteknight I didn't suspect it would be very useful. But I didn't think about it before and it will be possible soon
13:25 lucian sure
13:26 dalek parrot/green_threads: 713dd02 | Whiteknight++ | config/gen/makefiles/root.in:
13:26 dalek parrot/green_threads: my old nemesis, checkdepend.t.
13:26 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/713dd02690
13:26 lucian it's useful as a stopgap if the gc has ridiculous pauses
13:26 whiteknight usable eventing opens up a lot of doors for us in the future
13:26 whiteknight even if not all the doors are worth opening
14:16 SHODAN joined #parrot
14:46 nine whiteknight: fixed that dependency already :)
14:56 whiteknight what dependency?
14:57 nine the missing events.h in green_threads
14:57 nine fixed it in my repo this morning
15:02 dalek parrot/green_threads: db1e323 | Whiteknight++ | / (2 files):
15:02 dalek parrot/green_threads: code cleanup in scheduler.c. Add const to give the optimizer a fighting chance. Remove some dead code
15:02 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/db1e32392f
15:02 dalek parrot/green_threads: 78459c0 | Whiteknight++ | src/scheduler.c:
15:02 dalek parrot/green_threads: remove CX_DEBUG flag and all related debugging messages. Most of these are old and not in places that make sense for the current system. We can re-add in debugging/dumping functionality later as needed
15:02 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/78459c02c3
15:02 RobertLJ joined #parrot
15:08 whiteknight hmmm... I found some bugs in scheduler.pmc that are worrisome
15:08 whiteknight it is clearly not being well tested
15:09 nine something I could have a look at?
15:13 whiteknight yeah, I'm going to commit a fix here in a minute
15:14 whiteknight in the active_tasks method, the call to Parrot_pcc_invoke_method_from_c_args is all wrong
15:14 whiteknight and wrong in a dangerous way
15:14 whiteknight since we're returning a PMC from the method call, it needs to be &task, not task
15:15 whiteknight and we need to initialize it to PMCNULL first, in case the GC tries to mark the pointer before it has been properly initialized
15:15 whiteknight (these are the kinds of things you learn after having spent a lot of time refactoring PCC and GC, not things that are obvious)
15:20 whiteknight it *really* bugs me that the scheduler is using string messages to coordinate GC pauses between threads
15:20 whiteknight That part of it is going to change, if nothing else does
15:21 whiteknight actually, those things are dead code
15:22 nine Have not even looked yet at the messaging stuff
15:22 whiteknight some of it is dead, I'm removing the crap now
15:24 whiteknight well, some of the crap
15:24 whiteknight there is lots of crap
15:25 mls hi parrot
15:25 mls I've got an imcc question
15:25 whiteknight hi mls. We've got IMCC answers
15:26 mls great!
15:26 whiteknight and most of them are "because it sucks"
15:26 mls awww
15:26 whiteknight :)
15:26 whiteknight what's the question
15:26 nine scheduler.pmc: "Implements the core concurrency scheduler". Not true at all...the pmc is mostly used as data store for the scheduler implemented in src/scheduler.c
15:26 mls in pbc.c: build_key there's a "if key is a register, the original sym is in r->reg" comment
15:26 whiteknight nine: eventually, we should refactor it so that the two are closer
15:27 mls and a "if (r->reg) r = r->reg" afterwards
15:27 whiteknight mls: yeah, that seems very poorly worded
15:27 mls that leads to a miscompilation if the register is used in a .lex
15:27 nine whiteknight: if we want the HLL to be able to influence the scheduler, we should probably move the implementation into the pmc
15:28 mls cause in that case ->reg points to the lex symreg and reg->color is the string entry of the lex name
15:28 whiteknight nine: We need a richer and faster API than either vtables or methods can provide. What we do need to do is expose more of the CX API through the scheduler PMC
15:29 whiteknight mls: do you have a code example where this pops up?
15:29 mls sure... pasteing...
15:29 whiteknight nine: look at the PackfileView PMC sometime as an example. It's basically a thin wrapper around the packfile API
15:30 mls https://gist.github.com/1322542
15:30 nine whiteknight: will do
15:31 mls whiteknight: the lines are needed for something, deleting them makes hash.t fail
15:32 whiteknight mls: ugly. I can see how that would be a problem
15:32 whiteknight mls: Can you do something like $S2 = $S0, set $P0[$S2], "TEST"
15:33 mls yes, that'll work, but I ran into it in generated code (rakudo to be specific ;) )
15:33 mls So I prefer to fix it in imcc ;)
15:33 whiteknight yeah, I just wanted to see what was causing it. So it seems like it's an issue with symreg refcounts or something?
15:33 mls no
15:34 whiteknight no, so we're actually losing the original symreg reference?
15:34 mls no, we're not losing anything
15:34 pbaker joined #parrot
15:34 mls .lex entries are chained via ->reg
15:35 pbaker joined #parrot
15:35 mls but we mustn't use the lex symreg in this case
15:35 whiteknight mls: oh, I didn't know that about .lex
15:35 mls I'll debug why we need that code at all
15:35 whiteknight mls: It seems like ->reg is being overloaded too much.
15:36 whiteknight maybe we add a new field to SymReg and use that for .lex instead?
15:38 mls there is probably some whay to identify that the symreg is a .lex entry
15:39 whiteknight yeah, we can add a flag if we need
15:39 whiteknight I do wonder what that code is for, and how it affects hash.t
15:39 whiteknight somewhere, it seems like we're relying on something we shouldn't be
15:40 dalek parrot/green_threads: 9ddac31 | Whiteknight++ | src/pmc/ (2 files):
15:40 dalek parrot/green_threads: cleanup Scheduler.pmc and Task.pmc. Add const for the optimizer. Fix a bug in Scheduler.active_tasks() involving a bad PCC call.
15:40 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/9ddac318b2
15:40 dalek parrot/green_threads: 524fd09 | Whiteknight++ | / (5 files):
15:40 dalek parrot/green_threads: rename Parrot_task_current to Parrot_cx_current_task for pleasantness. Remove some old, dead, message-related code.
15:40 dalek parrot/green_threads: review: https://github.com/parrot/parrot/commit/524fd09ebf
15:43 mls seems to work if I change the if statement to: r->reg && (r->reg->type & VTCONST) == 0
15:45 nine whiteknight: why did you comment out the code in thawfinish instead of removing it?
15:46 whiteknight nine: because I wasn't sure if we needed it for something. I didn't want to delete the vtable outright without checking first
15:46 whiteknight mls: that seems a little closer to correct
15:46 GodFather joined #parrot
15:46 whiteknight mls: if that fixes your code and doesn't break any tests, ship it. We can figure it out later
15:56 nine hmm..... the terminate_requested seems not to be used anywhere, so Parrot_cx_runloop_end is basically a no-op
15:59 whiteknight nice
15:59 whiteknight the more cruft code we can remove, the cleaner things will be when we need to rebuild all this
15:59 whiteknight or, when we try to refactor thigns
16:03 nine There's only one caller of this function. Removed it and running tests right now
16:05 mls whiteknight: got it: link_keys creates copies if the symregs if nkeys > 1. The copy's ->reg entry points to the real register. That's what the r = r->reg is for
16:05 mls if nkeys == 1, no copy gets created and ->reg may point to the .lex
16:06 tadzik dukeleto: ping
16:09 * nine loves parrot's test suite
16:20 fperrad joined #parrot
16:27 dalek parrot: dc64ce8 | mls++ | compilers/imcc/pbc.c:
16:27 dalek parrot: fix miscompilation if a register is used in a .lex and also used as a key
16:27 dalek parrot: review: https://github.com/parrot/parrot/commit/dc64ce84d0
16:27 dalek parrot: 09210aa | mls++ | frontend/pbc_dump/packdump.c:
16:27 dalek parrot: fix pbc_dump's key display, VTABLE_get_integer() seems to get the register from the current context
16:27 dalek parrot: review: https://github.com/parrot/parrot/commit/09210aa994
16:38 cotto ~~
16:39 dukeleto tadzik: pong
16:39 dukeleto nine: what do you love about the test suite?
16:41 tadzik dukeleto: what's todo re tasks now?
16:42 nine dukeleto: that it catches pretty much all of my mistakes. Forgot make headerizer? Test catches it
16:42 dukeleto nine: indeed, we have a thorough test suite :)
16:43 dukeleto tadzik: we need to make sure we have at least 5 tasks in each category
16:43 whiteknight many brave men and women gave their lives so we might have this valuable tool
16:43 dukeleto tadzik: training and translation need some task ideas
16:44 nine I feel confident enough to clean up code relying on the test suite to show me if I am correct
16:45 dukeleto nine: great to hear. thanks so much for all your work!
16:46 nine :) my pleasure
16:48 dukeleto tadzik: and we need to expand the tasks to use the task template. GCI students need a lot of direction
16:50 dukeleto tadzik: i am working on expanding a task as an exampel
16:50 dukeleto example, even
16:50 jsut joined #parrot
16:56 dukeleto tadzik: i just expanded one of the UI tasks
16:59 tadzik ok
17:09 pbaker joined #parrot
17:17 SHODAN joined #parrot
17:27 zby_home joined #parrot
17:58 whiteknight if we get accepted, the tasks are all going to have to be moved into melange, and we can expand them there
17:58 whiteknight or, do most of the expansion there. Right now I think it's good enough to just have ideas
18:06 dalek rakudo: b2cd763 | coke++ | t/spectest.data:
18:06 dalek rakudo: track failures, run (fudged) tests
18:06 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/b2cd763206
18:19 contingencyplan joined #parrot
18:37 dalek rakudo/nom: 087a68e | moritz++ | tools/build/Makefile.in:
18:37 dalek rakudo/nom: [build] when cloning roast, set it up for committing too
18:37 dalek rakudo/nom:
18:37 dalek rakudo/nom: [Coke]++ for complaining; I too found the old
18:37 dalek rakudo/nom: behavior inconvenient, but never enough to take action.
18:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/087a68e257
18:51 jsut_ joined #parrot
19:05 dalek rakudo/nom: 1be6534 | moritz++ | src/core/Str.pm:
19:05 dalek rakudo/nom: Speed up Str.succ and .pred
19:05 dalek rakudo/nom:
19:05 dalek rakudo/nom: ... by using natively typed variables, and avoiding calls
19:05 dalek rakudo/nom: in favor of nqp:: opcodes
19:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1be65342e6
19:22 dukeleto ~~
19:27 soh_cah_toa joined #parrot
19:37 zby_home_ joined #parrot
20:31 bluescreen joined #parrot
21:01 benabik joined #parrot
21:04 benabik So I leave my laptop overnight and I come back to a message that OS X has run out of room for application memory…  My IRC client was up to 50 GB!  What were you all doing?
21:20 rfw joined #parrot
21:53 dukeleto ~~
21:59 bluescreen_ joined #parrot
22:03 dalek nqp/bigint: d548c21 | jnthn++ | / (126 files):
22:03 dalek nqp/bigint: Bring in libtommath bigint library. Build it and link it all into an nqp_bigint.ops file (which is just a stub at the moment).
22:03 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/d548c21f93
22:03 dalek nqp/bigint: bcf7a04 | jnthn++ | src/6model/sixmodelobject.h:
22:03 dalek nqp/bigint: Extend the REPR API a little in preparation for supporting inlining of more complex types in objects. Most immediately this is for bigint support, but it's also the basis for compact structs, and later compact arrays and nested structs in NCI.
22:03 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/bcf7a04680
22:03 dalek nqp/bigint: 65f926d | jnthn++ | src/6model/reprs/P6int.c:
22:03 dalek nqp/bigint: Fix copy-pasto in an error.
22:03 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/65f926d40d
22:03 dalek nqp/bigint: 22f49c1 | jnthn++ | src/6model/ (2 files):
22:03 dalek nqp/bigint: A little infrastructure for dynamically registering 6model representations outside of the 6model core.
22:03 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/22f49c187f
22:03 dalek nqp/bigint: fcd90db | jnthn++ | / (4 files):
22:03 dalek nqp/bigint: First cut of a P6bigint REPR, plus bigint library initialization code. With this, we can declare a type with repr('bigint') and have it box/unbox native ints; it's allocating the libtommath big integer under the hood.
22:03 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/fcd90db99c
22:03 dalek nqp/bigint: 9491f38 | jnthn++ | tools/build/Makefile.in:
22:03 dalek nqp/bigint: Make sure bigint ops file is copied to dynext dir.
22:03 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/9491f38b8e
22:03 dalek nqp/bigint: 2dcba38 | jnthn++ | src/ops/nqp_bigint.ops:
22:03 dalek nqp/bigint: Add a few ops to check out some basic arithmetic functions; seems to work.
22:03 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/2dcba38df3
22:22 SHODAN joined #parrot
22:35 bluescreen joined #parrot
22:36 bluescreen_ joined #parrot
22:37 dalek rakudo/nom: 9c6aedb | jnthn++ | src/Perl6/Actions.pm:
22:37 dalek rakudo/nom: Fix double-evaluation bug in | found by japhb++.
22:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c6aedbd9e
22:56 nbrown joined #parrot
22:58 dalek nqp/bigint: f75ce8f | jnthn++ | src/ops/nqp_bigint.ops:
22:58 dalek nqp/bigint: String to bigint, bigint to string.
22:58 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/f75ce8f317
23:39 whiteknight joined #parrot
23:45 whiteknight good evening, #parrot
23:45 dukeleto whiteknight: howdy
23:46 whiteknight hello dukeleto. how are you doing tonight?
23:47 dukeleto whiteknight: meh-tastic, but trying to be productive

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

Parrot | source cross referenced