|
Parrot 3.9.0 "Archaeopteryx" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 19 October 2011. |
|||
| dalek | rrot/kid51/testsets2: 9f9c6af | jkeenan++ | / (4 files): Instead of introducing two more Perl modules to the Parrot distribution, have user of 'make fulltest' install them from CPAN. |
00:21 | |
| Coke should update Task::Parrot at some point. | 00:22 | ||
| feel free to ping me with stuff to put in it. | |||
| dalek | rrot/kid51/testsets2: b249d79 | jkeenan++ | lib/Parrot/Distribution.pm: lib/TAP/ has been removed from distro; remove it from Parrot::Distribution as well. |
00:25 | |
| 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 github.com/plobsing/ohm-eta-wink-k...CE%B7#L111 for a simple example. | 00:29 | |
| aloha | OK. I'll deliver the message. | ||
|
00:37
NotFound joined
00:46
kid51 joined
00:51
benabik joined
|
|||
| whiteknight | I still haven't used ohm-eta for anything. I have been meaning to take it for a spin | 01:06 | |
| ah damnit, my optimization earlier today to Task PMC on green_threads broke some stuff | 01:07 | ||
| 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:15 | |
| whiteknight | yeah, it really does look like a fun tool that's in desperate need of testing | 01:20 | |
| benabik | I tend to find aloha messages to me in the logs before aloha actually sends it to me. | 01:25 | |
| dalek | rrot/green_threads: 944fa0e | Whiteknight++ | src/ops/ (2 files): fix a bug I introduced earlier today. kid51++ for finding it |
01:29 | |
| benabik | I'm not quite sure what that "ML-like" syntax is supposed to be. | 01:30 | |
| Oh! It's doing pattern matching in the compilation rules. Very excellent. | 01:31 | ||
| plobsing++ | |||
| 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:32 | |
| benabik | I was expecting it to parse an ML-esque syntax. | 01:33 | |
|
01:34
perlite joined
|
|||
| dalek | rrot/green_threads: 51684dc | jkeenan++ | src/ops/experimental.ops: [codingstd] No trailing whitespace. |
01:47 | |
|
01:54
wagle joined
|
|||
| kid51 | paste? | 02:14 | |
| nopaste? | |||
| Do we have a working pastebot? nopaste.ch is out of commission? | |||
| pastebin.com/9xiqtwiC | 02:18 | ||
| build failure in green_threads branch with all g++ build | |||
| cotto | 'evening | 02:29 | |
|
02:43
jsut joined
|
|||
| dalek | kudo/nom: d264275 | (Geoffrey Broadwell)++ | src/core/Main.pm: 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 | |
|
05:00
pmichaud joined
05:02
SHODAN joined
05:47
contingencyplan joined
|
|||
| dalek | rrot/green_threads: 4e347b1 | bacek++ | / (5 files): Fix c++ build |
05:53 | |
| dukeleto | bacek++ the magic coding robot is back! | ||
|
05:56
TiMBuS joined
|
|||
| moritz | \\o/ | 05:58 | |
| dukeleto fractured his foot :( | |||
| moritz | dukeleto: oh noez, how did you manage that? | 05:59 | |
| moritz wishes a swift recovery/healing | |||
| dalek | kudo/nom: 642e789 | (Geoffrey Broadwell)++ | src/core/Str.pm: Delete trailing whitespace |
||
| dukeleto | moritz: fell off an Old Man Of The Desert. Didn't have my hooks in deep enough... | 06:00 | |
| sorear | dukeleto: how is "leto" pronounced? (curiousity) | 06:02 | |
| cotto says leet-o | 06:03 | ||
| dukeleto, did you get a cast out of the deal? | 06:08 | ||
|
06:12
contingencyplan joined
|
|||
| dukeleto | sorear: lee-toe | 06:15 | |
| cotto: got a temporary boot thing. need to get an xray tomorrow | |||
| www.slideshare.net/BrendanEich/splash-9915475# | 06:28 | ||
| very interesting, some slides about multi-language vm's that are just strawmen | |||
| dukeleto must sleep | |||
|
07:59
jsut_ joined
08:07
lucian joined
08:16
lucian joined
09:08
mj41 joined
|
|||
| nine | Good morning, #parrot | 09:27 | |
| moritz | good am, 9 | ||
| dukeleto | ~~ | 11:24 | |
|
11:39
Psyche^ joined
12:17
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:18 | |
| Interesting article about GC in .NET: samsaffron.com/archive/2011/10/28/i...-collector | |||
| 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 | |
| but if you just measure the average, and it doesn't happen very often, it will drown in the noise | |||
| whiteknight | yes, assuming your profiler is including the GC pauses | ||
| if they happen after the request, like the article suggests, you wouldn't even see them in a naive measurement | |||
| moritz | well, they wrote they noticed slow page loads | 12:30 | |
| so it's the page load time you have to measure | |||
| whiteknight | it's interesting to me that the .NET GC has only three generations | 12:31 | |
| 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:32 | ||
| that's something that we could definitely have (after the green_threads merge) but that I would have never thought about | 12:34 | ||
|
12:43
bluescreen joined
12:56
nbrown joined
13:00
bluescreen joined
13:06
pbaker joined
|
|||
| lucian | whiteknight: it's not that useful, generally | 13:24 | |
| java also has one, and it's rarely used | |||
| whiteknight | I didn't suspect it would be very useful. But I didn't think about it before and it will be possible soon | ||
| lucian | sure | 13:25 | |
| dalek | rrot/green_threads: 713dd02 | Whiteknight++ | config/gen/makefiles/root.in: my old nemesis, checkdepend.t. |
13:26 | |
| lucian | it's useful as a stopgap if the gc has ridiculous pauses | ||
| whiteknight | usable eventing opens up a lot of doors for us in the future | ||
| even if not all the doors are worth opening | |||
|
14:16
SHODAN joined
|
|||
| nine | whiteknight: fixed that dependency already :) | 14:46 | |
| whiteknight | what dependency? | 14:56 | |
| nine | the missing events.h in green_threads | 14:57 | |
| fixed it in my repo this morning | |||
| dalek | rrot/green_threads: db1e323 | Whiteknight++ | / (2 files): code cleanup in scheduler.c. Add const to give the optimizer a fighting chance. Remove some dead code |
15:02 | |
| rrot/green_threads: 78459c0 | Whiteknight++ | src/scheduler.c: 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
RobertLJ joined
|
|||
| whiteknight | hmmm... I found some bugs in scheduler.pmc that are worrisome | 15:08 | |
| it is clearly not being well tested | |||
| nine | something I could have a look at? | 15:09 | |
| whiteknight | yeah, I'm going to commit a fix here in a minute | 15:13 | |
| in the active_tasks method, the call to Parrot_pcc_invoke_method_from_c_args is all wrong | 15:14 | ||
| and wrong in a dangerous way | |||
| since we're returning a PMC from the method call, it needs to be &task, not task | |||
| 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 | ||
| (these are the kinds of things you learn after having spent a lot of time refactoring PCC and GC, not things that are obvious) | |||
| it *really* bugs me that the scheduler is using string messages to coordinate GC pauses between threads | 15:20 | ||
| That part of it is going to change, if nothing else does | |||
| actually, those things are dead code | 15:21 | ||
| nine | Have not even looked yet at the messaging stuff | 15:22 | |
| whiteknight | some of it is dead, I'm removing the crap now | ||
| well, some of the crap | 15:24 | ||
| there is lots of crap | |||
| mls | hi parrot | 15:25 | |
| I've got an imcc question | |||
| whiteknight | hi mls. We've got IMCC answers | ||
| mls | great! | 15:26 | |
| whiteknight | and most of them are "because it sucks" | ||
| mls | awww | ||
| whiteknight | :) | ||
| what's the question | |||
| 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 | ||
| mls | in pbc.c: build_key there's a "if key is a register, the original sym is in r->reg" comment | ||
| whiteknight | nine: eventually, we should refactor it so that the two are closer | ||
| mls | and a "if (r->reg) r = r->reg" afterwards | 15:27 | |
| whiteknight | mls: yeah, that seems very poorly worded | ||
| mls | that leads to a miscompilation if the register is used in a .lex | ||
| nine | whiteknight: if we want the HLL to be able to influence the scheduler, we should probably move the implementation into the pmc | ||
| 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 | ||
| mls: do you have a code example where this pops up? | 15:29 | ||
| mls | sure... pasteing... | ||
| whiteknight | nine: look at the PackfileView PMC sometime as an example. It's basically a thin wrapper around the packfile API | ||
| mls | gist.github.com/1322542 | 15:30 | |
| nine | whiteknight: will do | ||
| mls | whiteknight: the lines are needed for something, deleting them makes hash.t fail | 15:31 | |
| whiteknight | mls: ugly. I can see how that would be a problem | 15:32 | |
| mls: Can you do something like $S2 = $S0, set $P0[$S2], "TEST" | |||
| mls | yes, that'll work, but I ran into it in generated code (rakudo to be specific ;) ) | 15:33 | |
| So I prefer to fix it in imcc ;) | |||
| whiteknight | yeah, I just wanted to see what was causing it. So it seems like it's an issue with symreg refcounts or something? | ||
| mls | no | ||
| whiteknight | no, so we're actually losing the original symreg reference? | 15:34 | |
| mls | no, we're not losing anything | ||
|
15:34
pbaker joined
|
|||
| mls | .lex entries are chained via ->reg | 15:34 | |
|
15:35
pbaker joined
|
|||
| mls | but we mustn't use the lex symreg in this case | 15:35 | |
| whiteknight | mls: oh, I didn't know that about .lex | ||
| mls | I'll debug why we need that code at all | ||
| whiteknight | mls: It seems like ->reg is being overloaded too much. | ||
| maybe we add a new field to SymReg and use that for .lex instead? | 15:36 | ||
| mls | there is probably some whay to identify that the symreg is a .lex entry | 15:38 | |
| whiteknight | yeah, we can add a flag if we need | 15:39 | |
| I do wonder what that code is for, and how it affects hash.t | |||
| somewhere, it seems like we're relying on something we shouldn't be | |||
| dalek | rrot/green_threads: 9ddac31 | Whiteknight++ | src/pmc/ (2 files): 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 | |
| rrot/green_threads: 524fd09 | Whiteknight++ | / (5 files): rename Parrot_task_current to Parrot_cx_current_task for pleasantness. Remove some old, dead, message-related code. |
|||
| mls | seems to work if I change the if statement to: r->reg && (r->reg->type & VTCONST) == 0 | 15:43 | |
| nine | whiteknight: why did you comment out the code in thawfinish instead of removing it? | 15:45 | |
| 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 | |
| mls: that seems a little closer to correct | |||
|
15:46
GodFather joined
|
|||
| whiteknight | mls: if that fixes your code and doesn't break any tests, ship it. We can figure it out later | 15:46 | |
| nine | hmm..... the terminate_requested seems not to be used anywhere, so Parrot_cx_runloop_end is basically a no-op | 15:56 | |
| whiteknight | nice | 15:59 | |
| the more cruft code we can remove, the cleaner things will be when we need to rebuild all this | |||
| or, when we try to refactor thigns | |||
| nine | There's only one caller of this function. Removed it and running tests right now | 16:03 | |
| 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 | |
| if nkeys == 1, no copy gets created and ->reg may point to the .lex | |||
| tadzik | dukeleto: ping | 16:06 | |
| nine loves parrot's test suite | 16:09 | ||
|
16:20
fperrad joined
|
|||
| dalek | rrot: dc64ce8 | mls++ | compilers/imcc/pbc.c: fix miscompilation if a register is used in a .lex and also used as a key |
16:27 | |
| rrot: 09210aa | mls++ | frontend/pbc_dump/packdump.c: fix pbc_dump's key display, VTABLE_get_integer() seems to get the register from the current context |
|||
| cotto | ~~ | 16:38 | |
| dukeleto | tadzik: pong | 16:39 | |
| nine: what do you love about the test suite? | |||
| tadzik | dukeleto: what's todo re tasks now? | 16:41 | |
| 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 :) | ||
| 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 | ||
| dukeleto | tadzik: training and translation need some task ideas | ||
| nine | I feel confident enough to clean up code relying on the test suite to show me if I am correct | 16:44 | |
| dukeleto | nine: great to hear. thanks so much for all your work! | 16:45 | |
| nine | :) my pleasure | 16:46 | |
| dukeleto | tadzik: and we need to expand the tasks to use the task template. GCI students need a lot of direction | 16:48 | |
| tadzik: i am working on expanding a task as an exampel | 16:50 | ||
| example, even | |||
|
16:50
jsut joined
|
|||
| dukeleto | tadzik: i just expanded one of the UI tasks | 16:56 | |
| tadzik | ok | 16:59 | |
|
17:09
pbaker joined
17:17
SHODAN joined
17:27
zby_home joined
|
|||
| 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 | |
| or, do most of the expansion there. Right now I think it's good enough to just have ideas | |||
| dalek | kudo: b2cd763 | coke++ | t/spectest.data: track failures, run (fudged) tests |
18:06 | |
|
18:19
contingencyplan joined
|
|||
| dalek | kudo/nom: 087a68e | moritz++ | tools/build/Makefile.in: [build] when cloning roast, set it up for committing too [Coke]++ for complaining; I too found the old behavior inconvenient, but never enough to take action. |
18:37 | |
|
18:51
jsut_ joined
|
|||
| dalek | kudo/nom: 1be6534 | moritz++ | src/core/Str.pm: Speed up Str.succ and .pred ... by using natively typed variables, and avoiding calls in favor of nqp:: opcodes |
19:05 | |
| dukeleto | ~~ | 19:22 | |
|
19:27
soh_cah_toa joined
19:37
zby_home_ joined
20:31
bluescreen joined
21:01
benabik joined
|
|||
| 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:04 | |
|
21:20
rfw joined
|
|||
| dukeleto | ~~ | 21:53 | |
|
21:59
bluescreen_ joined
|
|||
| dalek | p/bigint: d548c21 | jnthn++ | / (126 files): 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 | |
| p/bigint: bcf7a04 | jnthn++ | src/6model/sixmodelobject.h: 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. |
|||
| p/bigint: 65f926d | jnthn++ | src/6model/reprs/P6int.c: Fix copy-pasto in an error. |
|||
| p/bigint: 22f49c1 | jnthn++ | src/6model/ (2 files): A little infrastructure for dynamically registering 6model representations outside of the 6model core. |
|||
| p/bigint: fcd90db | jnthn++ | / (4 files): 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. |
|||
| p/bigint: 9491f38 | jnthn++ | tools/build/Makefile.in: Make sure bigint ops file is copied to dynext dir. |
|||
| p/bigint: 2dcba38 | jnthn++ | src/ops/nqp_bigint.ops: Add a few ops to check out some basic arithmetic functions; seems to work. |
|||
|
22:22
SHODAN joined
22:35
bluescreen joined
22:36
bluescreen_ joined
|
|||
| dalek | kudo/nom: 9c6aedb | jnthn++ | src/Perl6/Actions.pm: Fix double-evaluation bug in | found by japhb++. |
22:37 | |
|
22:56
nbrown joined
|
|||
| dalek | p/bigint: f75ce8f | jnthn++ | src/ops/nqp_bigint.ops: String to bigint, bigint to string. |
22:58 | |
|
23:39
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 23:45 | |
| dukeleto | whiteknight: howdy | ||
| whiteknight | hello dukeleto. how are you doing tonight? | 23:46 | |
| dukeleto | whiteknight: meh-tastic, but trying to be productive | 23:47 | |