|
parrot.org/ - clean up those smolders for the release! Set by moderator on 20 October 2008. |
|||
| jonathan | (See papers on practical lock freedom...) | 00:00 | |
| chromatic | Or an atomic two pointer swaps, yes. | ||
| allison | At the moment we actually have to register the CallSignature for non-collection, and then explicitly free it for collection, because it isn't attached to any standard GC root-set | 00:01 | |
| chromatic | We don't have a way of allocating a PMC that we know is short-lived, purely internal, and never referred to after the allocating function returns. | ||
| jonathan | www.cl.cam.ac.uk/research/srg/netos/lock-free/ has some great material. | ||
| chromatic | ... although I wonder if... dirty hack... constant_pmc_new() + constant_pmc_free().... | ||
| allison | it may be that part of moving to a generational scheme is adding one small internal-only pool | ||
| chromatic | The problem with adding one small internal-only pool is the same problem with adding a constant pool. | 00:02 | |
|
00:02
ruoso joined
|
|||
| chromatic | Any aggregate PMC allocated from that pool has to contain only GCable elements from the same or similar pools. | 00:02 | |
| Otherwise, we always have to sweep the aggregates in those pools, which is O(n + c) | 00:03 | ||
| allison | chromatic: which isn't the case here, since CallSignature will contain PMC arguments passed into the call | ||
| another possiblility is to have CallSignature stored in the registers | 00:04 | ||
| chromatic | If we had automatic_pmc_new/automatic_pmc_free, that might work too. | ||
| allison | hmmm... that's possible | 00:05 | |
| jonathan | allison: so will set_params build a CallSignature? | ||
| chromatic | Saves the easy-to-get-wrong fun of registering/unregistering in the right place. | ||
| allison | anyway, my basic point is just that if we're pouring effort into optimizing GC-able elements, I'd rather see the effort go into improving the overall GC features, than to add yet-another-way of sneaking around the problems in the existing GC | 00:06 | |
| Croke | NotFound++ patch in my inbox. | ||
| chromatic | Point taken, but if we can get Tcl or Rakudo 20% faster with an hour of work now, we can save lots of people more work later on. | 00:07 | |
| allison | jonathan: in theory, yes, though at the moment it's only being used as a more efficient replacement for the PCCINVOKE code path | ||
| jonathan | Aha, OK. | ||
| chromatic | Part of the PCCINVOKE caching would mean refactoring the Build Me PMCs code into its own function. | ||
| jonathan | allison: Are you working on those changes at the moment? | 00:08 | |
| Or is it already in? | |||
| allison | jonathan: already in | ||
| jonathan | I need to look at all of the MMD stuff too and see how I need to update the Perl6MultiSub PMC. | ||
| allison | jonathan: see inter_call.c Parrot_pcc_invoke_sub_from_sig_object | ||
| jonathan | OK, will do. | 00:09 | |
|
00:09
bacek joined,
AndyA joined
|
|||
| allison | also, calling_conventions branch which is taking it the next step of replacing Parrot_PCCINVOKE | 00:09 | |
| jonathan | OK. | 00:10 | |
|
00:12
notbenh joined,
wayland76 joined
|
|||
| wayland76 | tewk++ | 00:12 | |
|
00:13
wayland76 left
|
|||
| Croke | tcl slowwwwwwww | 00:13 | |
| speaking of gc, is the GSOC work merged in? | |||
| chromatic | No, WK wants to redo it more incrementally. | 00:15 | |
| allison | chromatic: agreed on the desirability of speed up (that and easier code maintenance is the core goal of the CallSignature transition), but if it's an hour spent that'll just be ripped out in a few weeks, it doesn't seem like a worthwhile hour | 00:16 | |
| Croke | I'd feel comfy if there was a plan for speedup, even if we can't speed anything up now. | 00:20 | |
| chromatic: (redo it) Since that's not happening, can he write up a plan so that someone else might tackle it? | |||
| chromatic | Seems reasonable. | 00:21 | |
| Or you can whack him in the head when he returns from his honeymoon. | |||
| Croke | chromatic: did you see my note about -t4? | ||
| chromatic | allison, anything over a 5% speed improvement now for an hour's worth of work seems like an improvement if the branch takes more than four weeks to land. | 00:22 | |
| Croke, I did. Did you find anything further in the infostr() function? | |||
| Croke | have to run now, but have narrowed down the -t4 stuff to Parrot_full_sub_name's invocation of Parrot_ns_get_name | 00:23 | |
| (resend) | |||
| which is probably because it does a PCCINVOKE using the current interpreter. | 00:24 | ||
| chromatic | Ah, I see. | 00:25 | |
| jonathan | That sounds reasonable. | ||
| I had to do some presevation of stuff inside invoke when implementing Perl6MultiSub. | |||
| If Parrot_full_sub_name assumes certain things ain't going to change and they are changed by an intervening call, or more likely the profiling code makes that assumption, there's scope for trouble. | 00:26 | ||
| chromatic | That's probably it. | 00:27 | |
| Croke | jonathan: sounds like you can fix it! | ||
| =-) | |||
| jonathan | :-P | 00:28 | |
| Not familiar with the profiling code, but I expect the fix would look like the same thing I did in Perl6MultiSub. Can take a look at weekend maybe. | 00:29 | ||
| jonathan is a bit tired for debugging at the moment. | |||
| Croke checks out p6ms | |||
| Croke goes blind. | 00:30 | ||
| jonathan | It's not that bad! :-P | 00:32 | |
| See in the invoke vtable method. | |||
| Croke | IANACP. | ||
| jonathan | Ah. | ||
| Croke | ah. I see where you save off and restore. that looks cultable | 00:33 | |
| should I put it in Parrot_ns_get_name? Or around the call in full_sub_name? | |||
| jonathan | I suspect maybe even further out, in the profiling code that calls full_sub_name. | 00:34 | |
| Like, in the profiling code. | |||
| Though I suspect in full_sub_name would work. | |||
| And woudln't do any harm. | |||
| If you put it there, be sure to add a comment about why we're doing it. | 00:35 | ||
| Croke | I put it in full_sub_name for now. | 00:40 | |
| seems to work for the -t4 case; trying a make test. | 00:41 | ||
| jonathan | cool | ||
|
00:42
dolmen joined
|
|||
| Croke | jonathan++ | 00:46 | |
| dalek | r32255 | allison++ | pdd22io: | 00:50 | |
| : [pdd22io] Converted Windows I/O for filehandles to new architecture. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32255 | |||
|
00:50
Ademan joined
|
|||
| jonathan | Croke++ # fixing stuff | 00:51 | |
| dalek | r32256 | allison++ | pdd22io: | 00:52 | |
| : [pdd22io] Cleaning up local C strings in 'open'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32256 | |||
| r32257 | allison++ | pdd22io: | 00:57 | ||
| : [pdd22io] Partial conversion of Windows I/O for sockets. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32257 | |||
| Croke | jonathan: all I did was copy you. | 01:06 | |
| but thanks. =-) | |||
| dalek | r32258 | allison++ | pdd22io: | ||
| : [pdd22io] Keep revision history of old generic, portable I/O file under new name. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32258 | |||
| Croke | now I can use this to figure out what partcl is invoking. | ||
| jonathan | dobre | 01:12 | |
| Croke | ... running with -t4 on even the smallest spect test is still several thousand lines of tcl (in the test library itself). zzzzz. | 01:14 | |
| $ wc -l join.trace 4590548 join.trace | 01:21 | ||
| so, that's a lot of trace. | 01:22 | ||
| but with all that, with my patch, -t4 worked. | |||
| jonathan++ again for doing all the hard work. | |||
|
01:31
bacek joined
|
|||
| Croke | Not surprisingly I spend all my time in PGE, TGE, and code generated by them. | 01:36 | |
| $ wc -l join.trace 4590548 join.trace | 01:38 | ||
| er, 192044 - # Calling sub 'parrot;PGE;Match;new' | |||
| jonathan | wow | ||
| But we know PGE has forthcoming major optimizations. | 01:39 | ||
| Croke | also: | ||
| 192044 - # Calling sub 'parrot;PGE;Match;new' | |||
| damnit. | |||
| 101603 - # Calling sub 'parrot;TGE;Tree;_lookup_id' | |||
| 103794 - # Calling sub 'parrot;PGE;Match;_failcut' | |||
| jonathan | _failcut - this may be one that gets called less after proto-regexes. | ||
| Croke | ... it is very depressing to be told things are -going- to be faster. =-) | 01:40 | |
| jonathan | At least there's a concrete plan for how this is going to be faster. | 01:47 | |
| dalek | r32259 | allison++ | pdd22io: | 01:49 | |
| : [pdd22io] Converted generic, portable I/O for filehandles to new architecture. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32259 | |||
| Croke | now if only I had real profiling information. =-) | ||
|
01:59
Andy joined
|
|||
| nopaste | "Croke" at 72.228.52.192 pasted "last N entries when running join.test" (60 lines) at nopaste.snit.ch/14440 | 02:02 | |
| dalek | r32260 | allison++ | pdd22io: | 02:07 | |
| : [pdd22io] Function name cleanup on flag conversion. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32260 | |||
| jonathan has a ticket to go see Opeth in December. w00t. | 02:08 | ||
|
02:10
Aisling joined
02:11
jq joined
|
|||
| dalek | r32261 | allison++ | pdd22io: | 02:16 | |
| : [pdd22io] Add common I/O functions shared between all I/O function sets. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32261 | |||
|
02:35
Theory joined
|
|||
| bacek | hi there | 03:42 | |
|
03:52
Psyche^ joined
04:39
gmansi joined
|
|||
| dalek | r32262 | allison++ | pdd22io: | 05:10 | |
| : [pdd22io] Add I/O header files for specific platforms. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32262 | |||
| r32263 | allison++ | pdd22io: | 05:14 | ||
| : [pdd22io] Add headerizer block for io/common.c to main I/O header file io.h. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32263 | |||
| r32264 | allison++ | pdd22io: | 05:17 | ||
| : [pdd22io] Move one stray remaining socket function to win32_socket.c, add stubs | |||
| : for 'pipe' and 'peek', and catch a few old-style calls. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32264 | |||
| r32265 | allison++ | pdd22io: | 05:18 | ||
| : [pdd22io] Move a stray socket function over from win32.c. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32265 | |||
| r32266 | allison++ | pdd22io: | 05:20 | ||
| : [pdd22io] Clean up a few old SHIM arguments, change the name of 'pipe' to | |||
| : 'open_pipe', and add a stub function for 'peek'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32266 | |||
| r32267 | allison++ | pdd22io: | 05:21 | ||
| : [pdd22io] Add a stub function for 'pipe'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32267 | |||
|
07:00
Bzek joined
07:33
grim_fandango joined
08:21
iblechbot joined
09:16
bacek joined,
masak joined
|
|||
| masak | pmichaud: In src/classes/Mapping.pir, there's a TODO listing .exists, but in Hash.pir which extends Mapping.pir, .exists is already implemented. Should the method perhaps be moved to Mapping.pir? | 09:48 | |
| ...or have all these been superceded by the latest :exists change? | 09:49 | ||
|
10:28
mj41 joined
|
|||
| masak | would it be unreasonable to make autoincrement work on Complex values? | 10:38 | |
| cognominal | with what semantic? | 10:45 | |
| I can see at least two. | |||
| incrementing the real part. | 10:46 | ||
| masak | aye | ||
| that's what I had in mind. | |||
| cognominal | hum, vocabulary lacks me for the second | ||
| masak | :) | ||
| well, I see `++` as sugar for `+= 1` | |||
| cognominal | if you see the complex like a vector, you may want to increment its length by one | 10:47 | |
| masak | cognominal: I thought you would say that :) | ||
| cognominal | that's the second semantic | ||
| masak | cognominal: don't see how that would be useful | ||
| for one, it can make gaussian integers non-integral | |||
| cognominal | nothing useful, except for the sake of arguing | ||
| masak | I'd say the first semantic won from the outset :) | 10:48 | |
| I was mainly wondering if there'd be a reason not to DWIM in this case. | |||
| I don't think there is, but I wanted to check. | |||
| cognominal | thx for making me discovering gaussian integers | 10:55 | |
| masak | hehe | 10:56 | |
| they are a strange name for an obvious idea | 10:57 | ||
| cognominal | yea, but I did not know of their properties | ||
| that makes me discover that a mathematical field translate to corps (body) in French | 10:59 | ||
| masak | sounds reasonable | 11:07 | |
| it does in Swedish too, IIRC | |||
|
11:51
cognominal joined
12:20
cognominal joined
12:45
jan joined
12:48
kid51 joined
13:43
tetragon joined
|
|||
| dalek | r32268 | kjs++ | trunk: | 14:00 | |
| : [pirc/new] change some data structures, finish linear scan register allocator (needs a lot of testing). | |||
| : + code needs cleanups. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32268 | |||
|
14:13
dmknopp joined
14:15
justin joined
15:13
Lorn joined
|
|||
| dalek | r32269 | kjs++ | trunk: | 15:17 | |
| : [pirc/new] forgot to remove cpp comments. codetest didn't scream... | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32269 | |||
|
15:26
kj joined
15:35
jq joined
16:16
iblechbot joined
|
|||
| dalek | r32270 | julianalbo++ | trunk: | 16:30 | |
| : avoid repeating string comparaisons and creation in Parrot_cx_delete_handler_local | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32270 | |||
| r32271 | julianalbo++ | trunk: | 16:35 | ||
| : fix c++/no c bug in r32270 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32271 | |||
| NotFound | Sorry | ||
| dalek | r32272 | coke++ | trunk: | 16:45 | |
| : RT#60268 : fix -t4; certain debug information changed the state of the interpreter; | |||
| : guard in a similar fashion to jonathan++'s perl6's multisub invoke() method. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32272 | |||
|
17:13
tetragon joined
|
|||
| dalek | r32273 | masak++ | trunk: | 17:22 | |
| : [rakudo] implemented .end in any-list.pir | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32273 | |||
|
17:35
tetragon joined
17:43
allison joined
18:24
jsut joined
18:44
chromatic joined
|
|||
| dalek | r32274 | allison++ | pdd22io: | 18:57 | |
| : [pdd22io] Keeping the revision history of the I/O API functions under the new name. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32274 | |||
| NotFound | Someone has tested the opengl examples recently? | 19:08 | |
| dalek | r32275 | fperrad++ | trunk: | 19:24 | |
| : [Lua] | |||
| : - add a test for RT #60292 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32275 | |||
| jonathan has build failure on Win32 | 19:29 | ||
| src\\sub.c(324) : error C2065: 'returns_signature' : undeclared identifier | |||
| ah, found it | 19:32 | ||
| NotFound | Mmmm... that function is violating C90 | ||
| jonathan: let me fix it | 19:33 | ||
| opengl examples are failing for me since the jitted nci commit | 19:36 | ||
| jonathan | NotFound: already fixed | 19:38 | |
| NotFound | Ok | ||
| dalek | r32276 | jonathan++ | trunk: | 19:39 | |
| : [core] Re-order things to fix compilation errors due to C90 violation. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32276 | |||
| NotFound | Building with --jitcapable= 0 works, that confirms is a jit nci fault | 19:53 | |
|
20:23
mberends joined
|
|||
| tewk | NotFound: what is failing nci jit? | 20:34 | |
| NotFound | tewk: opengl examples | ||
| Not sure, but I think the fail is on passig float args. | 20:36 | ||
| tewk | examples/opengl /? | ||
| NotFound | Yes. | ||
| tewk | I just get blank windows | 20:37 | |
| NotFound | Black for me. | ||
| tewk | right, | ||
| NotFound | It must not be a double to float conversion in 'f' args? Or is done in emit_fstps? | 20:40 | |
| tewk | fstps does the conversion | 20:54 | |
| I'd expect callbacks to be untested | 20:56 | ||
| chromatic | Good opportunity to add some. | 20:57 | |
| NotFound | Callbacks seem to work, I put say instructions instead callback functions of the examples, and they are shown. | ||
| chromatic | The NCI tests could use more work. | 21:01 | |
| tewk | I didn't write them, what would you like to see? | 21:02 | |
| chromatic | Something similar to the OpenGL code that doesn't work, to see where things go wrong. | 21:05 | |
| tewk | I'm adding a ttt test to expose the mysql NCI bug we say | 21:06 | |
| I have no idea why the OpenGL code isn't working. | |||
| I'm going to dump all the NCI signatures used during the opengl example | 21:07 | ||
| then build a test harness for them | |||
| chromatic | Sounds good. | ||
| Checking that the values round-trip sounds sensible. | |||
| tewk | Yeah thats what I'm planning on | 21:08 | |
| dalek | r32277 | tewk++ | trunk: | 21:25 | |
| : [NCI] ttt test for double freeing of char* copies | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32277 | |||
| japhb | My IRC client pinged me for the OpenGL references ... I'll pull and build, and then I can help if needed. | 23:26 | |
| dalek | r32278 | julianalbo++ | trunk: | 23:34 | |
| : add a nci signature for mysql | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32278 | |||
| japhb | OK, I'm getting the same black window problem with the OpenGL examples. | ||
| NotFound | Back in black | ||
| japhb | pulling and building on x86_64 to make sure the problem is the JIT code | 23:35 | |
| NotFound | japhb: you just need to build with --jitcapable=0 | ||
| japhb | OK, will try that on the ia32 | 23:37 | |
| Confirmed on ia32 -- turning off JIT makes it work again. | 23:42 | ||
| x86_64 is still pulling; it's been a while since I synced on that box. :-) | |||
| Reading back, it sounds like tewk's on the trail ... tewk, ping me if you need anything from me. | 23:44 | ||
|
23:50
purl joined
|
|||
| japhb | x86_64 confirmed to work normally -- I assume because it's not NCI JIT capable yet. | 23:59 | |