|
Parrot 1.6.0 "half-pie" released! | Test CallSignature PMC | pcc_reapply branch still needs your love! trac.parrot.org/parrot/wiki/Callin...nsOverview Set by moderator on 12 October 2009. |
|||
| chromatic | Hm, I think we return the wrong values from closures. | 00:04 | |
| I'm certain we do. | 00:05 | ||
| I wonder if that's a tailcall problem again. | |||
| Somehow I doubt it. | 00:07 | ||
| bacek | chromatic: we don't pass params properly in Continutaion.invoke. | 00:09 | |
| chromatic | Is that the source of t/op/lexicals.t #28 failing? | 00:11 | |
| bacek | chromatic: yes. | 00:12 | |
| chromatic | I'll stop debugging then. | ||
| bacek | why? | 00:13 | |
| chromatic | If we already know the source of the error, it's not where I've been looking for it. | 00:15 | |
|
00:17
patspam joined
|
|||
| bacek | ah, ok | 00:20 | |
| actually, looks like Continuation.invoke got wrong call_obj from to_ctx. | 00:27 | ||
| chromatic | Should it be to_ctx or caller_ctx? | 00:29 | |
| bacek | hm... I'm not quite sure. | ||
| May be to_ctx->caller_ctx | 00:30 | ||
| nope, doesn't work | 00:31 | ||
| chromatic: if you uncomment debug prints in lexicals_28.pir; add debug print into new_fail just before calling continuation you will see what happening | 00:33 | ||
| chromatic | I printed the value of y. That showed me enough. | ||
| bacek | "Chosen 1 from arr2"? | 00:34 | |
| but "new_fail" actually choose proper value. | |||
| dalek | rrot: r41914 | chromatic++ | branches/pcc_reapply/src/pmc (2 files): [PMC] Removed current_results attribute from Continuation and RetContinuation, |
||
|
00:41
Whiteknight joined
|
|||
| Whiteknight | hello #parrot | 00:44 | |
| chromatic | bacek, on trunk it shows the correct value of y there. | ||
| bacek | chromatic: indeed. | ||
| chromatic | I wonder about that Parrot_pcc_get_pmc_constant call in Continuation.invoke | 00:47 | |
| bacek | chromatic: it's correct. | 00:49 | |
| it used only when you set_addr for Continuation | |||
| Whiteknight | what did I miss today, anything good? | ||
| chromatic | We're down to 7 failures in the branch. | 00:50 | |
| Whiteknight | awesome | ||
| the only coretest failure I didn't know how to fix was t/op/lexicals.t | 00:51 | ||
| the rest I think I have a handle on (barring tuits) | |||
| bacek | chromatic: looks like I found problem. | 00:53 | |
| Continuation store only Context*, during execution Context.current_signature got overwriten by subsequent calls | 00:54 | ||
| When we call Continuation.invoke it use wrong signature. | |||
| Whiteknight | oh awesome, only one threads.t failure left | 00:55 | |
| bacek | Whiteknight: yeah, I fixed couple of then few hours ago :) | ||
| Whiteknight | awesome. I'm looking through the commit logs now | ||
| r41912 is much simpler than what I was planning! | 00:57 | ||
| bacek | Whiteknight: I'm too lazy to implement complex things | 00:58 | |
| YAY!!!!!!!!!! | 00:59 | ||
| I fixed lexicals 28!!! | |||
| cotto | so basically it's pony time minus a smop | 01:00 | |
| (and hll testing, but we don't really care about those) | 01:01 | ||
| Whiteknight | no way! How did you fix it? | ||
| bacek | r41915 | 01:02 | |
| Store original CallSignature in Continuation. Claim last test in | |||
| lexicals.t | |||
| Whiteknight | fantastic | 01:03 | |
| dalek | rrot: r41915 | bacek++ | branches/pcc_reapply/src/pmc/continuation.pmc: Store original CallSignature in Continuation. Claim last test in |
01:04 | |
| bacek | ho-ho-ho. Only one fail in threads and library/coroutine failing epically. | 01:06 | |
| Whiteknight | the threads test failure is a doozie | ||
| it's got a lot of sub-subtests | 01:07 | ||
| Whiteknight really wishes some of these things could be rewritten in PIR soon | |||
| threads_13.pir is seriously like it's own separate test file | 01:10 | ||
| we should really just separate it | |||
| cotto | threads2.t ? | 01:22 | |
| chromatic | +1 here | 01:28 | |
|
01:29
jsut_ joined
|
|||
| cotto | yuck. It'd be much better to have one pure-pir file. | 01:33 | |
| what about threads_perl.t and threads.t, the latter being pure pir? | 01:35 | ||
| (making migration potentially less painful) | 01:36 | ||
| Whiteknight | the current form of the test just makes debugging a little more difficult. However we go about fixing that is fine | 01:38 | |
| bacek | ok, Whiteknight threads_13 is final bug in branch | 01:42 | |
| dalek | rrot: r41916 | bacek++ | branches/pcc_reapply (2 files): Expose parse_singature_string. It will be required for fixing Continuation.invoke |
01:43 | |
| bacek | I fixed last bit in Continuation.invoke | ||
| rrot: r41917 | bacek++ | branches/pcc_reapply/src/pmc/continuation.pmc: Don't use stored arg_flags in Continuation.invoke. :flat args apparently are flatten, but arg_flags are not updated. |
|||
| bacek | msg allison Please review r41916 & r41917. I would like to store proper arg_flags in CallSignature but not sure that it will not break other stuff. | 01:44 | |
| purl | Message for allison stored. | ||
| bacek | Bah! | 01:45 | |
| I broke something badly. | |||
| Whiteknight | humbug! | ||
|
01:45
TiMBuS|Away joined
|
|||
| Whiteknight | urg, lots of failures now | 01:49 | |
| bacek | fixed, | 01:50 | |
| I rerun make test to ensure that is't really fixed | 01:51 | ||
| ETA: 2 minutes | |||
| Whiteknight | ok | 01:57 | |
| bacek | done | 01:58 | |
| dalek | rrot: r41918 | bacek++ | branches/pcc_reapply/src (2 files): Fix previous commit. There is possible situations when no signature strings created. |
01:59 | |
| bacek | smolder.plusthree.com/app/public_pr...ails/29144 | 02:02 | |
| shorten | bacek's url is at xrl.us/bfsvw6 | ||
| bacek | that's it. One test failure in branch. | ||
| Whiteknight | confirmed. | ||
| and now I'm off to bed | |||
| later | |||
| bacek | Whiteknight: come back! You have to fix last failure in threads!!! | 02:03 | |
| Whiteknight | if it's still here tomorrow morning, I will kill it | ||
| kill it dead | |||
| bacek | It's tomorrow afternoon already! | 02:04 | |
| Whiteknight | then...the morning after tomorrow | 02:05 | |
| Whiteknight is very confused now, but apparently needs to travel time | |||
| cotto | first sleep, then time travel | ||
| Whiteknight | yes, I need my energy | ||
| goodnight | |||
| bacek | goodnight | 02:06 | |
| Time for shopping/rl. | |||
| see you! | |||
|
02:06
TiMBuS|Away joined
02:16
On joined
|
|||
| On | haaaaaaptchi | 02:16 | |
| On has a parrot flu | |||
| On needs help | |||
| cotto | Hmm. Can that be transmitted over irc? | 02:21 | |
| cotto puts on gloves and a mask, just in case. | 02:22 | ||
|
02:39
Austin joined
|
|||
| Austin | Okay, WTF is Piper, and why do I need to get attacked by it when I show up in #parrot? | 02:41 | |
|
02:42
janus joined
|
|||
| cotto | Feel free to ignore it. I'm sure the fact that this channel is logged isn't surprising to you. | 02:44 | |
| Austin | Not surprising at all. The flurry of beeping when I joined was what surprised me. I didn't need any of that. | ||
| cotto: How's your makefile mojo? | 02:46 | ||
| cotto | Austin, moderate | 02:48 | |
| Austin | I need a trick. I have a script (perl) that can update some of my source files. I want to only do the update when there is something worth doing. So I can dump the list of classes (the tool dumps this) into a text file, and diff the "new" and "old" text files, but I need a make structure that won't force a rebuild each time. | 02:50 | |
| Hmm. Let's try to clarify that. | |||
| The tool can dump in --list mode a list of class names. So I can do "class_hierarchy.pl --list > list-file.new" and then do a diff of list-file.new against list-file.old to see if anything has changed. | 02:51 | ||
| I want to make some source files depend on this change, so I can run the tool against the source files. I only want the update to occur if the diff detects any changes. | 02:52 | ||
| So I can't just have source files depending on a file with an empty dependency list - it either always builds or never does. | |||
| Any ideas? | 02:53 | ||
| cotto | I like the efficiency. | ||
| Austin | Sadly, gnu make tries to be smart, so it "knows" that if a rule gets run, the dependent file was updated, and so everything on top of that file has to be rebuilt. | 02:56 | |
| cotto | Do you only want to rebuild some of the classes when the diff changes? | ||
| Austin | I only want to update some of the class files. But then I need to recompile them, of course. | ||
| Two files, in fact. | 02:57 | ||
| cotto | Is your code in svn? | ||
| Austin | Yeah | 02:58 | |
| cotto | I need to go soon, but that's an interesting problem. | 02:59 | |
| Austin | :) | 03:00 | |
| cotto | Make kinda breaks down when you want to do smart stuff with it. | 03:01 | |
| Austin | So my problem is: how to make a file depend on (x), but in such a way that I can run an x-rule and *not* cause the file to rebuild. | ||
| Yeah. | |||
| I'm thinking the answer might be "put the smarts in the perl script" | |||
| Which I don't really want to do. | |||
| cotto | just switch to rake | ||
| Austin | :) | ||
| cotto runs | |||
| Austin | I know. I'll do it all in Ant. | 03:02 | |
| dalek | ose: r182 | Austin++ | trunk/ (13 files): Added makefile changes for class_hierarchy.pl. They don't work quite right, yet. |
||
| Austin | Then I won't feel so bad about having to add smarts to the perl script. | ||
| I think I could do it with a :: rule, but that's not portable. | 03:04 | ||
| cotto | I'll keep thinking, but I'm out. | 03:05 | |
| plobsing | marker file? | ||
| Austin | bye | ||
| plobsing? | |||
| purl | rumour has it plobsing is trying to create a set of classes which have attributes with a 'label' attribute which can be mapped to and from the attribute name | ||
| plobsing | here's my dumb solution | 03:06 | |
| use a marker file with one value in it: 1 for remake, 0 for not | |||
| then use an if in a rule | |||
| crude but effective | |||
| Austin | I don't see it. | ||
| I get the if part, but if I'm in the rule, I'm already hosed, because gnu make now "knows" that I did a rebuild, and so it has to update everything that depends on this, etc. | 03:07 | ||
| plobsing | oh right. nevermind then. I never much liked make. | ||
| Austin | I always like it fine, right up to the point where I start to hate it. | 03:08 | |
| mikehh | pcc_reapply branch - make smoke #29146 at r41918 - 10,764 ok, 1 failed, 262 todo, 560 skipped and 0 unexpectedly succeeded | 03:32 | |
|
03:52
TiMBuS|Away joined
|
|||
| dalek | rrot: r41919 | mikehh++ | branches/pcc_reapply/src/call/args.c: codetest failures - unused assert macro and missing function docs |
04:21 | |
|
04:28
jsut joined
|
|||
| dalek | p-rx: cafd369 | pmichaud++ | src/stage0/P6 (2 files): Update stage-0 compilers. |
04:49 | |
| p-rx: 239e497 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to get better subids. |
|||
| shorten | dalek's url is at xrl.us/bfswcw | ||
| shorten | dalek's url is at xrl.us/bfswcy | ||
| dalek | p-rx: 4dabcc0 | pmichaud++ | build/Makefile.in: Add exe targets to Makefile. |
||
| shorten | dalek's url is at xrl.us/bfswc2 | ||
| dalek | p-rx: 180f18e | pmichaud++ | src/Regex/P6Regex/Grammar.pm: Regexes no longer need explicit action tokens at the end. |
||
| shorten | dalek's url is at xrl.us/bfswc4 | ||
| dalek | p-rx: 73205a0 | pmichaud++ | src/Regex/P6Grammar/Grammar.pm: Regexes no longer need explicit action markers at the end. |
||
| shorten | dalek's url is at xrl.us/bfswc6 | ||
|
05:27
rdice joined
05:30
mberends joined
|
|||
| dalek | p-rx: 5699969 | pmichaud++ | build/Makefile.in: Clean up Makefile a bit. |
05:40 | |
| p-rx: af458ca | pmichaud++ | src/Regex/P6Grammar/ (2 files): Add parsing of proto regex statements to P6Grammar. |
|||
| p-rx: 9b7739d | pmichaud++ | src/Regex/P6Grammar/Actions.pm: Oops, protoregex method should be !protoregex. |
|||
| p-rx: 2408264 | pmichaud++ | src/ (4 files): Eliminate protoregex cheats for P6Regex, place directly in grammar. |
|||
| shorten | dalek's url is at xrl.us/bfswgw | ||
| dalek's url is at xrl.us/bfswgy | |||
| dalek's url is at xrl.us/bfswg2 | 05:41 | ||
| dalek's url is at xrl.us/bfswg4 | |||
| mikehh | ok I give up - still getting a codetest failure (t/codingstd/c_function_docs.t - src/call/args.c - 1 function(s) lacking documentation) it's there but it still fails | 05:45 | |
|
05:45
ZeroForce joined
|
|||
| mikehh | I tried everything I could think of and it still fails - help! | 05:46 | |
| that's in pcc_reapply branch | |||
| Austin | I don't suppose it tells you what function? | 05:48 | |
| mikehh | of course - Parrot_pcc_merge_signature_for_tailcall(PARROT_INTERP, ARGMOD(PMC * parent), ARGMOD(PMC * tailcall)) | 05:49 | |
| Austin | I see no paragraph there, just a signature. | ||
| Put in a "fnord." and see what happens. | 05:50 | ||
| mikehh | # Want: | ||
| # =item C<void Parrot_pcc_merge_signature_for_tailcall(PARROT_INTERP, PMC * | |||
|
05:50
rdice joined
|
|||
| mikehh | # parent, PMC * tailcall)> | 05:50 | |
| and that's there | |||
| I tried deleting and re-entering and many other things and codetest still fails | 05:51 | ||
| including make headerizer | 05:52 | ||
| make realclean etc, etc | 05:54 | ||
| Austin | Can you nopaste the failure? | ||
| mikehh | I am probably missing something straightforward - but I probably need some sleep | 05:55 | |
| Austin | Maybe the space between * and parent? | 05:57 | |
| nopaste | "mikehh" at 81.149.189.7 pasted "codetest failure in pcc_reapply branch" (33 lines) at nopaste.snit.ch/18366 | 05:59 | |
| Austin | Notice the (boilerplate only) gripe - that's from no paragraph | 06:00 | |
| mikehh | I have fixed those before - with no problems | 06:01 | |
| Austin | Well, that's what it thinks, per the perl in c_function_docs.t. It may well be that the space between * and parent is also confusing it (because in the documentation, there's a newline there - I don't remember if p5 matches \\s with newlines in /sm mode.) | 06:03 | |
| mikehh | I tried dropping it to the next line as in: | ||
| =item C<void Parrot_pcc_merge_signature_for_tailcall(PARROT_INTERP, | 06:04 | ||
| PMC * parent, PMC * tailcall)> | 06:05 | ||
| Austin | Okay, so it generates the documentation signature somehow. That's $escaped_decl | ||
| mikehh | still failed | ||
| Austin | And that's the =item C<...> stuff. | ||
| Although that doesn't seem very escaped to me. | 06:06 | ||
| Then it tries to match it from start to end of line? | |||
| On a single line, maybe? | 06:07 | ||
| ^\\Q$escaped_decl\\E$ | |||
| mikehh | anyway better take a break (nap or something) before I do something really stoopid | ||
| Austin | I'm using my (very old) version of the c_function_docs test file, so I might be out of date wrt yours. | 06:08 | |
| mikehh | there is loads of other documentation in src/call/args.c that have essentially similar docs/code that pass the test | 06:09 | |
| I have spent a couple of hours or more on this and have had enough - I willl look at it later after some sleep - bbl | 06:10 | ||
| that's if nobody else fixes it :-} - cheers | 06:12 | ||
| Austin | okay. I'm co'ing the branch now. I'll message you if I find anything. | ||
| mikehh | thanks | ||
| Austin | mikehh: I added "fnord." as the paragraph body and the test passed. | 06:18 | |
| purl, msg mikehh I added some text as the paragraph body, and the test passed. I found some other places, like Parrot_setenv in config/gen/platform/generic/env.c, where the same =item/=cut with no paragraph fails the c_func_docs test, so this seems a likely candidate. | 06:27 | ||
| purl | Message for mikehh stored. | ||
| Austin | Thanks, purl | 06:29 | |
| karma purl | |||
| purl | purl has karma of 8748 | ||
| Austin | botsnack | ||
| purl | thanks Austin :) | ||
| Austin | karma purl | ||
| purl | purl has karma of 8748 | ||
| Austin | hmm. | 06:30 | |
| cotto | karma botsnack | 06:40 | |
| purl | botsnack has neutral karma | ||
|
07:02
Smushers- joined
07:21
fperrad joined
|
|||
| allison | msg bacek Did you add r41916 & r41917 to resolve a problem with continuation calls from C args? Agreed that storing arg_flags from C calls is a better way to handle that. | 07:40 | |
| purl | Message for bacek stored. | ||
| chromatic | Hm, the thread isn't getting the slurpy PMC to flatten in threads #13. | 07:42 | |
| The FPA is empty. | |||
| allison | msg bacek: ah, I see, it's about the arg_flags not being updated when flattening is done. | ||
| purl | Message for bacek stored. | ||
| chromatic | I think there's an off-by-one bug in dissect_aggregate_arg as well. | 07:43 | |
| allison | chromatic: would it make more sense to do the flattening on the param side, instead of while building the call signature? | 07:44 | |
| chromatic | I don't know enough to offer a good opinion there. | ||
| The more I think about it, the more I like that idea though. | 07:45 | ||
| It does seem like a call-side operation. | |||
| caller, I mean | |||
| not callee | |||
| allison | yes, and it's a lazy optimization | 07:47 | |
| the args passed in the flatted array/hash may never actually be used | |||
| chromatic | Okay, here's another problem. | 07:48 | |
| In thread_func(), the RPA containing slurpy args to the thread sub is empty. | |||
| I'm looking at t/pmc/threads_13.pir | |||
| Specifically line 133. | 07:49 | ||
| allison looking | |||
| chromatic: that file is only 128 lines long for me | 07:50 | ||
| chromatic | I had debug code. Line 126. | ||
| allison | chromatic: curious, it doesn't look like there should be a slurpy involved in that call | 07:51 | |
| chromatic | Look at the run_clone method. | 07:52 | |
| allison | chromatic: it's taking a constant sub argument and returning no result | ||
| chromatic | ParrotInterpreter PMC. | ||
| run_clone's NCI signature has a slurpy to box-and-capture all of the arguments passed to the function. | 07:53 | ||
| Hm, wait... let me read that again. | |||
| allison | chromatic: it's compiling its own NCI method and inserting it directly | 07:54 | |
| chromatic: It's possible that the NCI wrapper generator isn't handling slurpys properly | 07:55 | ||
| chromatic | Return INTVAL, take interpreter, use object, take PMC (sub), then accept slurpy arguments to the sub. | ||
| Okay, so _check in that case is the Sub PMC and there are no slurpy arguments. | |||
| That part's right then. | |||
| allison | signature IJOP@ | 07:56 | |
| chromatic | Next crazy thought: do we need to clone CallSignatures? | ||
| allison | chromatic: they aren't modified after creation | ||
| chromatic | Threads. | ||
| purl | threads is ithreads, Thread is 5.005 threads (older) | ||
| allison | but should probably be marked read-only | ||
| is that the only failing test left? | 07:57 | ||
| I'm impressed | 07:58 | ||
| chromatic | That's it. | ||
| allison | I like this dogpile development technique :) | ||
|
07:59
jsut_ joined,
einstein joined
|
|||
| allison | chromatic: okay, so the calling code looks correct... is it possible that the argument handling code isn't creating an empty RPA when there are no more arguments to fill it? | 08:01 | |
| chromatic | I think the argument handling is a red herring. | ||
| allison | distracting from what other problem? | 08:02 | |
| chromatic | If I knew that, I could fix it. | ||
| allison | okay, how small can we make a test case and duplicate the problem? | 08:03 | |
| chromatic: I get the failure on line 98, if I comment out all the other calls in full_check | 08:09 | ||
| chromatic | Which test number? | 08:13 | |
| 49? | |||
| purl | 49 is nice | ||
| allison | chromatic: yes 49 is the first failure, I'm trying to track down which call in the test file is test # 49 | 08:14 | |
| chromatic | The first test called from the thread's call to full_check. | 08:15 | |
| The first test run in the thread. | |||
| The check_sanity call from line 93. | |||
| allison | aye, and if I comment out everything from line 97 onward, in 'full_check' I get no failures | 08:17 | |
| chromatic | That's because the parent interpreter hasn't changed any global values. | ||
| allison | chromatic: does that mean it hasn't been cloned yet? | 08:20 | |
| chromatic | No, it means those calls you commented out modify the global values. | ||
| If you skip those modifications, the values will all be '1' and everything matches. | |||
| allison | chromatic: well, I commented out all the rest of the tests | 08:21 | |
| chromatic | Sure. | 08:22 | |
| I'm saying those tests test to see if the values of variables stored in various places all match. | |||
| You commented out the code that modifies the values, thus they always match. | |||
| dalek | rrot: r41920 | chromatic++ | branches/pcc_reapply/t/pmc/threads.t: [t] Fixed numbering in the problematic threads test. This doesn't fix the |
08:24 | |
| allison | chromatic: yes, but there's some element of asynchronicity here, because when I uncomment line 97, *earlier* tests fail | 08:26 | |
| comment out line 97-112, and I get all (24) tests pass | 08:27 | ||
| chromatic | Which earlier tests fail? | 08:28 | |
| allison | uncomment line 97 and the first test failure is 13 | ||
| also 14, 18, and 19 | |||
| 20-24 don't even run | |||
| maybe we do need to be cloning CallSignature | 08:29 | ||
| or, at least copying it into the context of the called sub | 08:30 | ||
| right now, the call signature that's accessed to fill params or pass returns is pulled from an element of the caller's Context | |||
| but, that call signature changes as soon as the next call is made | 08:31 | ||
| chromatic | Instead of the values 1 and 2, how about we pick something weird? | ||
| 99 and 444 | |||
| purl | 543 | ||
| allison | sounds like a good debugging strategy | ||
| (make sure we're not getting something strange like a count of the number of arguments) | 08:32 | ||
| chromatic | No change. | ||
| I used 111 and 222, and it's trying to match 111 and 222. | |||
| Here's a funny one. | 08:34 | ||
| Move the _check() call in main until after 'join'. | |||
| On trunk, it runs ok 1 .. 48 twice. | |||
| On the branch, it runs ok 1 .. 48 once. | 08:35 | ||
| allison | chromatic: blork, definitely asynchronicity | ||
| chromatic | There's the spot to start debugging, I think. | 08:36 | |
| allison | the question is, is it running the thread _check or the local _check? | 08:38 | |
| chromatic | Let's print the TID and see. | 08:39 | |
| allison | commenting out either the thread or local _check gives 48 passing tests | 08:40 | |
|
08:40
JimmyZ joined
|
|||
| allison | Could it be a fragile test? | 08:41 | |
| chromatic | I doubt it. | ||
| allison | That is, is it depending on certain operations taking a certain amount of time? | ||
| chromatic | No, there's nothing time-based here. | ||
| allison | I wonder, because which tests fail keeps changing | ||
| chromatic | If I move the _check call from the parent thread until after joining the child thread.... | 08:42 | |
| The child thread starts, but never runs any subs. | |||
| The parent thread runs all of its subs. | |||
| allison | when the local _check is after the thread _check? | ||
| chromatic | And after the join. | ||
| allison | how about in the original order? | 08:43 | |
|
08:43
joeri joined
|
|||
| chromatic | The parent runs and finishes and then the child runs and finishes. | 08:43 | |
| There's no synchronous execution here. | |||
| allison | and, that's the only case where we get the test errors | 08:44 | |
| yes, agreed, it's not two threads modifying the same values at the same time | |||
| okay, so in the original order, are the failures only in the child, and all 48 pass in the parent? | 08:45 | ||
| yes, 48 tests pass | 08:46 | ||
| and the first test failure is 49, which is the first test run from the thread | |||
| chromatic | Yes. | 08:47 | |
| allison | (which explains why the test numbers kept changing as I commented out tests) | ||
| (it was passing the first 5 or 10 or whatever, then failing on the first test run from the thread) | |||
| chromatic | If you update to r41920 they won't. | ||
| allison | chromatic: won't what? | 08:49 | |
| (after updating) | |||
| chromatic | The test numbers should be saner. | 08:50 | |
| allison | I'm still getting 1-48 pass, first failure is #49 | 08:52 | |
| or, you mean if I comment out some tests? | |||
| chromatic | If you comment out tests, the numbers will be different. The numbers will all be 1 - 96 regardless of any passes or fails though. | 08:53 | |
| mikehh | messages | 08:55 | |
| allison | chromatic: gotcha | 08:57 | |
| chromatic | I have no other brilliant ideas. | 09:04 | |
| allison | chromatic: [mental review] so, the local _check passes all tests. The threaded _check fails the first test that it runs | ||
| chromatic: but, if I only run the first 12 tests, then both local and threaded pass all 12 tests | |||
| chromatic | Right, because the variable we're checking for modification never gets modified in the first 12 tests. | 09:05 | |
| allison | chromatic: the 13th test is the first one with a modified value | ||
| right | |||
| chromatic | I have a lot of confidence that the problem is that the thread expects the HLL global 'foo' to contain the value 1, when it contains the value 2. | ||
| allison | what is the value of 'foo' between the local and threaded calls to _check? | 09:06 | |
| it's 2 | 09:07 | ||
| how about before the call to local _check? | |||
| chromatic | Undef. | ||
| It gets created in setup(). | 09:08 | ||
| allison | aye | ||
| somehow, that setup isn't happening on the threaded version | 09:09 | ||
| setup only modifies get_global 'foo', not get_hll_global ['Foo'], 'foo' | 09:12 | ||
| in theory they're the same | |||
| chromatic | In trunk they're the same. | ||
| I wonder if the clone separates them. | 09:14 | ||
| The clone for the thread. | |||
| allison | setting set_hll_global [ 'Foo' ], 'foo', $P0 in setup gets me passing through test #63 | ||
| doing the same in 'mutate' gets me passing through #73 | 09:15 | ||
| chromatic | Right, but they should both refer to the *same* PMC. | 09:16 | |
| allison | they should, yes | 09:18 | |
| by calling set_hll_global after set_global, I'm making sure they are the same PMC | 09:19 | ||
| (which means they weren't before) | |||
| chromatic | Are they the same PMC on trunk by accident? | ||
| allison | well, the setup sub is declared in the Foo namespace | 09:21 | |
| that is, under .namespace [ 'Foo' ] | |||
| so, when the PIR code is parsed, the "current namespace" is Foo | 09:22 | ||
| that's why they're the same in the local _check | |||
|
09:23
iblechbot joined
|
|||
| allison | it's possible that thread cloning is breaking the association between the "current namespace" for get_global | 09:24 | |
| or, at least between the sub object and the namespace that it was declared in | |||
| it would be nice to know if it was the c_* versions or the g_* versions that were failing... | 09:26 | ||
| chromatic | Looks like both. | 09:27 | |
| allison | yeah | 09:29 | |
| I haven't found a third place where the two variables could be getting out of sync | 09:31 | ||
| chromatic | I'll add some diagnostics to help you trace this, and then I will sleep. | ||
| allison | (to explain the final test failures even when I force them to be the same PMC) | ||
| okay | |||
| dalek | rrot: r41921 | chromatic++ | trunk/t/pmc/threads.t: [t] Reclaimed TODOed threads test #14. See RT #41373, which may be closeable |
09:45 | |
| rrot: r41922 | chromatic++ | branches/pcc_reapply/t/pmc/threads.t: [t] Added more diagnostic info to failing test #13 for t/pmc/threads.t. |
|||
|
09:46
ptc joined
|
|||
| allison | chromatic: helpful, thanks! | 09:51 | |
|
10:39
edgar joined
10:45
mokurai left
10:56
bacek joined
|
|||
| mikehh | pcc_reapply branch - make smoke#29155 at r41922 - 10,764 ok, 1 failed, 262 todo, 560 skipped and 0 unexpectedly succeeded | 10:59 | |
| bacek | o hai | 11:07 | |
| allison: ping | |||
|
11:13
masak joined
11:25
namsa_ joined
11:37
Whiteknight joined
|
|||
| Whiteknight | good morning #parrot | 11:42 | |
| bacek checking time | 11:44 | ||
| Good evening, Whiteknight | |||
| Whiteknight | which evening is it there, Saturday? | 11:47 | |
| bacek | Sunday | 11:51 | |
| Future is somewhere already | |||
| Whiteknight | urg, apparently I didn't travel enough time while I was sleepting | ||
| bacek | On positive note: you are in the past and can prevent your future mistakes :) | 11:53 | |
| Whiteknight | more likely, I have the chance to make new mistakes | 11:56 | |
| bacek | Just make them good, shiny and unexpected. | 11:58 | |
| dalek | rrot: r41923 | mikehh++ | branches/pcc_reapply/t/codingstd/c_function_docs.t: attempt to make failure messages a little clearer |
12:00 | |
| mikehh | oops messed that up a bit | 12:01 | |
| dalek | rrot: r41924 | mikehh++ | branches/pcc_reapply/t/codingstd/c_function_docs.t: fix the last commit making failure messages a little clearer |
12:07 | |
| Whiteknight | this last threads failure is so weird | 12:20 | |
| bacek | especially because it's marked with "todo" on 3 running cores in trunk... | 12:22 | |
| Whiteknight | the test file runs two sequences: First it runs a bunch of subtests in the main thread, then it creates a child thread to run all the tests again | ||
| dalek | rrot: r41925 | mikehh++ | branches/pcc_reapply/src/call/args.c: fix codetest failure - (boilerplate only) in missing function docs |
12:23 | |
| Whiteknight | but if I comment out the first call to _check(), the thread throws an exception and terminates | ||
| mikehh | I've fixed a lot of codetest failures in the documentation of src/call/args.c but I think the documentation needs a serious review before the merge | 12:26 | |
|
12:27
rdice joined
|
|||
| bacek | We've got more serious failures than threads... make benchmark_test failing in oo\\d.pir | 12:28 | |
| Whiteknight | urg | 12:50 | |
|
12:59
desertm4x joined
13:00
payload joined
|
|||
| nopaste | "mikehh" at 81.149.189.7 pasted "pcc_reapply branch - summary of results of make fulltest at r41925" (29 lines) at nopaste.snit.ch/18367 | 13:13 | |
|
13:14
kid51 joined
|
|||
| mikehh | got to go out for a bit - bbl | 13:17 | |
| dalek | TT #1115 created by riffraff++: show results of expressions in HLLCompiler based repls (again) | 13:21 | |
| masak | ok, just got src/gc/api.c:248: failed assertion 'PObj_is_PMC_TEST(obj)' | 13:29 | |
| Whiteknight | masak: reproducible? | 13:30 | |
| masak | as usual, this happens in Parrot_gc_mark_PMC_alive_fun | ||
| Whiteknight: hm, possibly. but there's a lot of Perl 6 code involved. | |||
| Whiteknight | the only thing I am interested in is the backtrace | ||
| masak | I can give you that. | ||
| Whiteknight | awesome | ||
| masak | gist.github.com/212684 | 13:31 | |
| as to the 'reproducible' part, I've now run it twice and it blows up at exactly the same point. | 13:32 | ||
| jonathan is curious about all the "Parrot_is_blocked_GC_sweep" in there | 13:33 | ||
| masak | three times. fairly reproducible, in other words. | ||
| jonathan | Anyway, it's quite different from a backtrace I was seeing that led to the same assertion fail and patched. So I think this is a different bug altogether. | 13:35 | |
| masak | I've had some like this during the week. | ||
| Whiteknight | some parts of this backtrace are completely nonsensical | 13:36 | |
| jonathan | Whiteknight: Heh, it's not just me thinking "wtf" then... | ||
| masak | I'm not creative enough to have made it up, I assure you. :P | 13:37 | |
| Whiteknight | I don't think there is a function Parrot_Capture_get_isa | ||
| jonathan | .oO( April fools stacktrace ) |
||
| Whiteknight | i've never even heard of that | ||
| or Parrot_CodeString_get_isa | |||
| masak | Rakudo-specific? | ||
| jonathan | No, it's in libparrot | 13:38 | |
| masak | adding a meaningless print statement helped, it seems. | ||
| Whiteknight | actually, i did find it. Weird | ||
| But Parrot_CodeString_get_isa definitely doesn't call any of the marking functions | 13:39 | ||
| jonathan | Whiteknight: Well, we only end up in them through pmc_new | ||
|
13:39
namsa_ joined
|
|||
| jonathan | Why does Parrot_is_blocked_GC_sweep appear to have called itself recursively? Is that strange, or normal? | 13:40 | |
| Whiteknight | this is impossible. Half of these functions in this "backtrace" don't call the next function in the list | 13:41 | |
| so I don't know where the hell this is coming from, but it's not accurate | |||
| jonathan | It looks very, very odd. | 13:42 | |
| Whiteknight | Parrot_is_blocked_GC_sweep definitely doesn't call itself | 13:43 | |
| much less call itself repeatedly | |||
| masak | so, basically, you're saying I'm doing things to Rakudo so weird that they're causing Parrot to go insane? | ||
| for some reason, I like the thought of that. :) | 13:44 | ||
| Whiteknight | something is definitely getting wildly corrupted | 13:46 | |
| masak adds 'wild corruptor' to his job description | 13:47 | ||
| Whiteknight | nice | ||
| Whiteknight has to leave for a bit. Later | |||
| dalek | TT #1116 created by jkeenan++: documentation patches for ch04 and ch05 of PIR book | 14:04 | |
|
14:06
Psyche^ joined
|
|||
| dalek | rrot: r41926 | jkeenan++ | trunk/t/steps/auto/frames-01.t: Add tests for previously untested branch. |
14:23 | |
| TT #1117 created by rblasch++: PIR Book Typos | 14:26 | ||
| rrot: r41927 | jkeenan++ | branches/auto_libjit/t/steps/auto/frames-01.t: Add tests for previously untested branch. |
14:27 | ||
| rrot: r41928 | jkeenan++ | trunk/docs/book/pir/ch06_subroutines.pod: Correcting spelling errors as suggested by rblasch++ in trac.parrot.org/parrot/ticket/1117. |
14:43 | ||
| rrot: r41929 | jkeenan++ | trunk/docs/book/pir/ch05_control_structures.pod: Correcting Pod formatting error as suggested by rblasch++ in trac.parrot.org/parrot/ticket/1117. |
14:46 | ||
|
14:53
payload joined
|
|||
| dalek | rrot: r41930 | jkeenan++ | branches/auto_libjit/config/auto/libjit.pm: We're not doing anything with inside _evaluate_cc_run(), so we don't need to pass it as an argument. |
14:59 | |
|
15:14
desertm4x joined
15:33
s1n left
15:34
jan joined
|
|||
| dalek | rrot: r41931 | jkeenan++ | branches/auto_libjit (4 files): Have SVN ignore src/frame_builder_libjit.c and src/frame_builder_libjit.h. |
15:38 | |
| kid51 | Linux/i386: make fulltest passes all tests at r 41925 ... but I think we've been papering over some failures with TODOs | 15:39 | |
| mikehh | kid51: even more so with skips | 15:42 | |
| but yes - see my comment in TT #1102 | 15:44 | ||
|
15:52
jan joined
|
|||
| Whiteknight | threads_13.t is horrible and evil | 16:00 | |
| this test seems like it's supposed to fail | 16:10 | ||
| it's known to be broken with several cores | 16:11 | ||
| it looks like namespace "Foo" is not being shared between the two threads, and attempts to modify things in the namespace from the thread aren't working | 16:13 | ||
| mikehh | I think all cores - it's TODOed in the cgoto and switch cores (and still failes - not ok) | 16:14 | |
| allison and chromatic were looking at it earlier | 16:16 | ||
| Whiteknight | yeah, I've been staring at it for a while too | 16:17 | |
| mikehh | me too | ||
| Whiteknight | it really just seems that the namespace PMC was copied, not shared, and values are't matching up | ||
| the test runs the same sequence, first in the main thread and then in a child thread. If you comment out the first call to _check(), the thread throws an unhandled exception and terminates early | |||
| mikehh | the shared space is remaining at 1 when it should be 2 | 16:18 | |
| Whiteknight | exactly | ||
| and that all says to me that there is some kind of lazy initialization that happens when we execute the code in the main thread that is not being copied over when we create the child thread | |||
| mikehh | last I looked the other failing tests (benchmakk_tests) all fail with set_attr_str() not implemented in class 'NameSpace' | 16:20 | |
|
16:20
rdice joined
|
|||
| mikehh | benchmark | 16:21 | |
| purl | It seems faster | ||
| Whiteknight | hmm... that's weird | 16:22 | |
| I didn't think any changes were made to NameSpace in the branch | |||
| or, none that would be so substantial | |||
| yeah, no changes to it in branch | 16:24 | ||
| and no changes to Hash PMC, which NameSpace inherits from | 16:25 | ||
| dukeleto | 'ello | 16:28 | |
| i can verify that threads.t test #13 is the last failing test on pcc_reapply on darwin/x86 (OS X 10.5) | 16:29 | ||
| Whiteknight | awesome | ||
| dukeleto | lucky 13 | ||
| Whiteknight | tell me about it | 16:32 | |
| purl | i guess it is _impossible_ to remove the host: header in LWP. It's fucking hard coded. or worth noting that CPANPLUS will ask after failed tests if you want to just ignore the failure | ||
| Whiteknight | ad this test is shittastic too | ||
|
16:40
AndyA joined
|
|||
| nopaste | "mikehh" at 81.149.189.7 pasted "pcc_reapply branch - benchmark_tests failure(s)" (21 lines) at nopaste.snit.ch/18368 | 16:44 | |
| dalek | rrot: r41932 | jkeenan++ | branches/auto_libjit/config/auto/libjit.pm: Add a cc_clean to cleanup files created during probe. |
16:53 | |
| mikehh | got to close down for the moment - bbiab | ||
|
16:55
mberends joined
17:01
mikehh joined
17:02
chromatic joined
17:09
ash_ joined
|
|||
| Whiteknight | chromatic: any ideas on threads_13.pir? | 17:20 | |
| dalek | rrot: r41933 | jkeenan++ | branches/auto_libjit (2 files): Refactor some code into _handle_has_libjit() and write tests for it. Reduce the number of points at which runstep() returns to facilitate good test coverage. |
17:31 | |
| chromatic | No good ideas. | 17:34 | |
| All I can see is that cloning somehow breaks the association of the current namespace and the HLL namespace. | 17:36 | ||
|
17:37
Psyche^ joined
|
|||
| chromatic | I'm sure the appropriate check within the get_global and get_hll_global namespaces (or their backing functions) would confirm that. | 17:37 | |
| allison | chromatic: I'm working through debug prints in namespace and sub | 17:38 | |
| bacek: you were looking for me? | 17:39 | ||
| chromatic | If that's the case, than any changes in cloning (Sub?) will reveal something. | ||
| But I need to make a phone call. | |||
| allison | I can verify that the sub stored in the thread is a different (cloned) object from the one stored in the parent | ||
| for some strange reason, the "foo" variable is set one additional time beyond what's in the tests | 17:40 | ||
| so, it's set 4 times (to a new PMC object with a different pointer address) in each test run, so 8 times overall | 17:41 | ||
| but then it's set one additional time after the second test run | |||
| working on peeking into the attributes of the sub now | |||
|
17:52
payload joined
|
|||
| kid51 | allison / whiteknight: Can you take a glance at TT 1116 and 1117, both of which propose patches to docs/book/pir? Thanks. | 17:59 | |
|
18:20
desertm4x_ joined
18:22
ash_ joined
18:25
davidfetter joined
18:29
allison joined
|
|||
| allison | kid51: your fixes look good | 18:32 | |
| kid51: (whiteknighte may have already answered for TT 1116 and 1117, my client dropped off for a bit) | 18:33 | ||
| kid51: the "support logical" should be deleted, rather than a comma added (it was a stray leftover from editing) | |||
|
18:34
Psyche^ joined
|
|||
| allison | kid51: I'll leave notes in the relevant tickets | 18:34 | |
| kid51 | PIR book page 15 (docs/book/pir/ch04_variables.pod): discusses pow gcd and lcm opcodes -- but provides no examples of any of them | 18:41 | |
| From poking around in tests, I have example of 'lcm'. By analogy, I can write 'gcd'. | 18:42 | ||
| But I find no examples of 'pow' involving integers. | |||
| What is the syntax for 'pow' opcode. | |||
| ? | |||
| allison | kid51: $N0 = $N1, $N2 is a = b^c | 18:50 | |
| ($N1 is raised to the power of $N2 and the result stored in $N0) | |||
| kid51: but oddly, there is no I = pow I, I version of the op | 18:51 | ||
| (sorry, should have typed $N0 = pow $N1, $N2 above) | |||
| kid51 | Then the book/docs is misleading here. | ||
| allison | there should be an integer version, but there isn't | 18:52 | |
| there is a PMC version | |||
| kid51 | Should we add an integer version of 'pow'? For consistency? | ||
| allison | kid51: yes, but check if 'pow' is one of the ones being moved to a dynoplib | 18:54 | |
| kid51: (if so, we can go ahead and add the new one as a dynop) | |||
| msg chromatic okay, the extra set op for 'foo' in the thread is before the tests, presumably it's the clone operation | 18:55 | ||
| purl | Message for chromatic stored. | ||
|
18:56
payload joined
19:06
szabgab joined
|
|||
| dukeleto | msg kid51 i can help in adding dynops if you need | 19:08 | |
| purl | Message for kid51 stored. | ||
| kid51 | dukeleto: That would be helpful. I don' know nuttin' about dynops. | 19:09 | |
| dalek | rrot: r41934 | jkeenan++ | trunk/t/op/arithmetics.t: Add 4 tests for 'gcd' for integers. But how should we handle case where one argument is 0? |
||
| kid51 | I'm working my way through the PIR book and trying to learn PIR that way. | ||
| So anything I can't understand means noobs can't understand either. | 19:10 | ||
| allison | msg chromatic the freaky thing is, printing out the pointers for accesses to the value of 'foo' through the 'get_global' op. Parent and thread each fetch 'foo' 12 times after each set. In parent, they're the same each time, but in thread fetches 1,2, 4, 7, 8, and 10 fetch one PMC from one namespace while fetches 3, 5, 6, 9, 11, and 12 fetch a different PMC from a different namespace. | 19:11 | |
| purl | Message for chromatic stored. | ||
| allison | msg chromatic ooh, in the parent the namespace where 'foo' is looked up is always the same as the namespace associated with the sub. In the thread, it's the thread-copy namespace associated with the thread-copy sub half the time, and the other times it's the same as the *parent* namespace associated with the original sub in the parent | 19:23 | |
| purl | Message for chromatic stored. | ||
| dukeleto | kid51: if the new dynops live in the same file as the others, it is pretty darn simple to add. if they are in a new file, there are some hidden levers to pull and a secret underground fortress | ||
| kid51 | dukeleto: My actual focus is a bit narrower. I want the text in the book to be followed by working examples of what the text discusses. | 19:25 | |
| allison | kid51: in this case, could you use PMC examples? | ||
| kid51 | Page 15 of book gives examples of '/' and '%' for Integers. | 19:26 | |
| From that, I drew implication that gcd, lcm and pow would work the same way with integers -- but they don't. | |||
| From poking in tests, I now know how gcd and lcm work -- but pow apparently does not (with Integers). | 19:27 | ||
| pmichaud | sorry to interupt: allison, I need an opinion on a change I'd like to make | 19:28 | |
| allison | pmichaud: yes? | ||
| pmichaud | currently if I stringify a Sub PMC, it gives me back its name (good) | ||
| if I stringify a MultiSub PMC, it gives me back the stringification of the number of candidates in the MultiSub (bad) | 19:29 | ||
| this is because MultiSub isa ResizablePMCArray, and stringifying a ResizablePMCArray returns the number of elements in the array (also bad) | |||
| allison | pmichaud: I imagine that it's just inheriting that behavior from the array | ||
| pmichaud | I'd like to change MultiSub to stringify to its name | ||
| allison | agreed on changing stringification on MultiSub | 19:30 | |
| (call it a bug) | |||
| pmichaud | okay, thanks. | ||
| allison | there really isn't anything sensible for RPA to stringify to, so I'd leave it | ||
| pmichaud | I don't have a good answer about what to do with stringifying RPA, but that's not an immediate goal... right, exactly | ||
| okay, thanks. | |||
| dalek | kudo: 827734a | pmichaud++ | src/ (3 files): Fix bug with .push not creating copies of pushed values. Fixes RT #69548. |
19:41 | |
| rrot: r41935 | jkeenan++ | trunk/docs/book/pir (2 files): Applying patches to ch04 and ch05 submitted in trac.parrot.org/parrot/ticket/1116. |
|||
| shorten | dalek's url is at xrl.us/bfsxu4 | ||
| TT #1116 closed by jkeenan++: documentation patches for ch04 and ch05 of PIR book | 19:43 | ||
| TT #1117 closed by jkeenan++: PIR Book Typos | 19:46 | ||
|
20:02
mokurai joined,
mokurai left
20:05
szabgab joined
20:15
mokurai1 joined
20:16
bacek joined
20:19
chromatic joined
|
|||
| chromatic | Sounds like the clone *does* separate the namespaces. | 20:25 | |
| pmichaud | I don't know that it's related, but something that has bugged me for a long time is that Hash.clone is a deep clone | 20:26 | |
| unlike RPA clone, which is a shallow clone | |||
| chromatic | That gives me a crazy idea. | ||
| pmichaud | so if you cloned a namespace, you end up cloning everything in it. | 20:27 | |
| I'd prefer that Hash.clone be shallow | |||
| jonathan | Me too. | 20:28 | |
| I keep forgetting that and then Weird Things Happen. | 20:29 | ||
| chromatic | If we need a Deep Clone, we have freeze/thaw. | ||
| Provided that they work. | |||
| jonathan | The upshot of which is that I've written multiple times things to do shallow clones of hashes. | ||
| pmichaud | same here | 20:30 | |
| and about to do it again, several times. | |||
|
20:36
szabgab joined
|
|||
| bacek | Good morning | 20:48 | |
| japhb | o/ | 20:52 | |
| dukeleto, Where you the one working on the Plumage metadata for Matrixy, or was that darbelo? | 20:57 | ||
|
20:58
cconstantine joined
20:59
AndyA joined
|
|||
| dalek | rrot-plumage: c8ddb09 | japhb++ | : [BUILD] Makefile.in: Dependency and clean fixes |
20:59 | |
| shorten | dalek's url is at xrl.us/bfsx5e | ||
|
21:32
AndyA joined
21:34
AndyA_ joined
21:55
cconstantine joined
|
|||
| cotto | msg whiteknight From your blog: "This makes the code prettier, along with more maintainable and much prettier.". | 22:01 | |
| purl | Message for whiteknight stored. | ||
| jonathan | but it's SO prettier! | 22:02 | |
| dukeleto | japhb: i think darbelo | 22:15 | |
|
22:17
theory joined
22:18
Austin joined
|
|||
| japhb | dukeleto, thx | 22:19 | |
| dalek | rrot-plumage: b67465a | japhb++ | : [CORE] Util.nqp: Add POD docs |
22:21 | |
| shorten | dalek's url is at xrl.us/bfsyej | ||
| dalek | rrot-plumage: 183e393 | japhb++ | : [CORE] Glue.pir POD: Add SYNOPSIS; add head1 DESCRIPTION, demoting other... |
||
| shorten | dalek's url is at xrl.us/bfsyeo | ||
| dukeleto | japhb: should we see if svn/git is installed at Configure-time or test-time ? | 22:22 | |
| japhb | dukeleto, we look for them when we need them (late binding, I guess). We need to do that anyway, because we can't assume that Plumage is going to be reconfigured every time the user changes their system. | 22:25 | |
| dalek | rrot-plumage: d057e97 | japhb++ | : [CORE] Glue.pir: Add library load to SYNOPSIS |
22:26 | |
| shorten | dalek's url is at xrl.us/bfsye6 | ||
|
22:35
jsut joined
|
|||
| dukeleto | japhb: touche | 22:35 | |
|
22:52
Zak joined
22:53
KatrinaTheLamia joined
|
|||
| allison | chromatic: ping | 22:55 | |
|
23:05
xenoterracide joined
23:15
mgrimes joined
|
|||
| mgrimes | hi all | 23:15 | |
| is there an equiv of __END__ in pir? | |||
| Austin | mgrimes: no | 23:16 | |
| Each sub has .end, but that's equivalent to '}'. | |||
| mgrimes | darn. I'm working on converting some tests in perl to pir. __END__ would save a lot of commenting and uncommenting. | 23:17 | |
| thanks for the quick reply. | |||
| Austin | What would it do? | ||
| mgrimes | just stop parsing the file at __END__. same as in p5. | 23:18 | |
| Austin | So nothing with data afterwards, or any of that? | ||
| mgrimes | nope. | 23:19 | |
| NotFound | hi | ||
| chromatic | pong | 23:20 | |
| Austin | Yeah, there's no mention of it in imcc.l, which is where I assume it would be placed. | 23:21 | |
| It should be easy to add, if you'd like? :) | |||
| mgrimes | it would be very convinient for my purposes | 23:23 | |
| I'd be happy to try to implement it, but I really wouldn't know where to start. | 23:24 | ||
| chromatic | allison, pong. | ||
| Austin | imcc.l is the file. I think the "easy" approach would be to lie, and tell the rest of the system you just saw EOF. Since there's already some EOF handling in imcc.l, I'm guessing it would be a copy/paste job. | 23:25 | |
| mgrimes | Ok. I'll take a look at it. | 23:26 | |
| Austin | mgrimes++ | ||
| allison | chromatic; do you want the diff of my internal debug prints before I take off to sleep for 8 hours? | 23:29 | |
| jonathan | mgrimes, Austin: Also I think remember to configure with iirc --maintainer otherwise the makefile won't have the lines to compile imcc.l in it. | 23:30 | |
| Disclaimer: it probably is literally years since I changed that file. | |||
| Austin | :) | ||
| jonathan | oh, no...maybe last year... | ||
| chromatic | allison, I'm unlikely to fix it tonight. I figured out how to import LaTeX into LyX, so I'm working on that. | 23:31 | |
| allison | ah, excellent | ||
| chromatic: I'm very close to fixing it | |||
| chromatic | Unless we can figure out exactly what semantics this test is supposed to test and if we want to support them, the fact that it behaves differently in trunk with different runcores makes me want to smack it. | ||
|
23:31
hachi joined,
patspam joined
|
|||
| allison | chromatic: I can at least say what the problem is | 23:32 | |
| chromatic | Oh? | ||
| allison | chromatic: some code paths on the thread are still pointing to namespace objects from the parent | 23:33 | |
| chromatic: so, when it gets the wrong value, it's pulling it from the *parent's* namespace | |||
| chromatic | Insufficient cloning? | ||
| jonathan | allison: In the case where it was specified that they should have the namespaces cloned? | ||
| allison | chromatic: (verified with pointer numbers) | ||
| jonathan/chromatic: the namespace is cloned | 23:34 | ||
| jonathan | (I'm presuming it's an option...) | ||
| allison | that's what's so weird | ||
| there's a clone of the namespace and a clone of the sub and a clone of the variable | |||
| jonathan | allison: OK, but how was the namespace reached? I mean, if a sub's namespace pointer is looked at, and the sub wasn't cloned, for example... | ||
| allison: Yes, but was the sub's ns pointer updated? | |||
| allison | yes, even that | 23:35 | |
| purl | hmmm... even that is goofy, nevermind | ||
| jonathan | Hmm. Oddness. | ||
|
23:35
patspam joined
|
|||
| jonathan tries to think what else holds pointers to the NS | 23:35 | ||
| allison | the fetches that are getting the right value are looking up in the cloned namespace (the same as the sub) | ||
| chromatic | The subs don't get cloned. | ||
| allison | chromatic: nope, they do | ||
| chromatic | They shouldn't. | ||
| allison | parent says: | 23:36 | |
| The _check_sanity global sub is being set to 0x1011ac958,in namespace 0x1011c90b0 | |||
| namespace_stash is 0x1011c90b0, with name parrot||Foo | |||
| The _check_value global sub is being set to 0x1011aca48,in namespace 0x1011c90b0 | |||
| namespace_stash is 0x1011c90b0, with name parrot||Foo | |||
| purl | i already had it that way, allison. | ||
| allison | thread says: | ||
| The _check_sanity global sub is being set to 0x1011ac958,in namespace 0x1011c90b0 | |||
| purl | i already had it that way, allison. | ||
| allison | namespace_stash is 0x1011c90b0, with name parrot||Foo | ||
| purl | i already had it that way, allison. | 23:37 | |
| allison | The _check_value global sub is being set to 0x1011aca48,in namespace 0x1011c90b0 | ||
| purl | i already had it that way, allison. | ||
| allison | namespace_stash is 0x1011c90b0, with name parrot||Foo | ||
| purl | i already had it that way, allison. | ||
| allison | nah, I just pasted the same one twice | 23:38 | |
| jonathan | worst spot the difference game ever! | 23:39 | |
| allison | parent is: | ||
| jonathan was staring at that for a minute or two :-) | |||
| allison | The _check_sanity global sub is being set to 0x1010aa8f0,in namespace 0x1010aa8a0 | ||
| namespace_stash is 0x1010aa8a0, with name parrot||Foo | |||
| The _check_value global sub is being set to 0x1010aaaf8,in namespace 0x1010aa8a0 | |||
| namespace_stash is 0x1010aa8a0, with name parrot||Foo | |||
| thread is as I posted before | 23:40 | ||
| (I was using screen scroll instead of less scroll) | |||
|
23:40
jrtayloriv joined
|
|||
| allison | so, the sub objects and namespace objects are different, but the sub name and namespace name are the same | 23:41 | |
| mgrimes | jonathan, thanks for the pointer... could have taken me a while to figure that one out | ||
| a really, really long while :) | |||
| jonathan | allison: It's not by any chance that the bytecode contains references into the constants table to sub PMC constants? | 23:43 | |
| So ends up finding the subs that way, not via the namespace? | 23:44 | ||
| Or some other similar issue. | |||
| mgrimes: Heh, I hacked the makefile by hand the first time I changed the lexer/parser because I didn't know about that either. ;-) | 23:45 | ||
| dalek | p-rx: 6d0e83e | pmichaud++ | src/Regex/P6Regex/Actions.pm: Combined negated charclass should be zero-width. |
23:51 | |
| p-rx: 7b40261 | pmichaud++ | (4 files): Add initial version of NQP grammar and actions. |
|||
| shorten | dalek's url is at xrl.us/bfsyon | ||
| dalek | p-rx: ca59b99 | pmichaud++ | build/Makefile.in: Add nqp and nqp.pbc to "make clean". |
||
| shorten | dalek's url is at xrl.us/bfsyop | ||
| dalek | p-rx: 348a761 | pmichaud++ | src/NQP/ (2 files): Add \\x[...] and \\o[...] quoted forms. |
||
| shorten | dalek's url is at xrl.us/bfsyor | ||
| dalek's url is at xrl.us/bfsyot | |||