Parrot | source cross referenced
← Previous day | Index | Channel Index | Today | Next day → | Search | Google Search | Plain-Text | plain, newest first
All times shown according to UTC.
| Time | Nick | Message |
|---|---|---|
| 00:02 | Whiteknight | Austin: you going to be upset if I use spaces instead of tabs? |
| 00:02 | Austin | Not at all. |
| 00:03 | I program in a proportional font, so I expect the tabs are all over the place for you. | |
| 00:03 | Whiteknight | w00t, because those are my settings and I'll be damned if I'm changing them :) |
| 00:03 | Austin | So long as you keep the 1 tab = 12 spaces equivalence.... |
| 00:03 | :) | |
| 00:04 | Whiteknight | I was going to use 1 tab = (7.435 * line number) spaces, but an even number is slighly better |
| 00:11 | Austin: how to test it? | |
| 00:11 | parrot-nqp setup.nqp test failed | |
| 00:11 | Austin | What, tab size? |
| 00:11 | Oh. | |
| 00:12 | What fails? | |
| 00:12 | purl | see "doesn't work" |
| 00:12 | Austin | (Because it works for me.) |
| 00:12 | Whiteknight | Cannot find harness-nqp script. Did you set HARNESS_ROOT_DIR? at t/harness line 36. |
| 00:13 | Austin | Hmm... chmod +x t/harness-nqp.sh ? |
| 00:13 | Whiteknight | ah, that did it |
| 00:13 | Austin++ | |
| 00:14 | Austin | Is there a way to set that in git, like svn:executable? |
| 00:14 | Whiteknight | t/bootstrap/UnitTest/Testcase.nqp ..... 1/? Could not find non-existent sub assert_that |
| 00:14 | Austin: I think there is, I feel like I've done it at some point | |
| 00:15 | Austin | Ruh roh. |
| 00:15 | purl | ruh roh is Raggy? |
| 00:15 | Austin | That's a real error. (I remember - I fixed it today or y-day.) |
| 00:15 | Edit that file, remove the test. | |
| 00:16 | Whiteknight | Austin: I changed that file to +x and commited the change |
| 00:16 | I also just commited a test for nested super() | |
| 00:16 | Austin | Woot! |
| 00:16 | Does it pass? | |
| 00:16 | Whiteknight++ | |
| 00:17 | Whiteknight | test does indeed pass |
| 00:17 | I'm sorry I doubted | |
| 00:17 | * Austin | ++ |
| 00:17 | Austin | :) |
| 00:19 | I'm about waist deep in the mocking stuff right now. I think I've got a model that works... | |
| 00:19 | It's just a question of building the horribly tangled thing... | |
| 00:19 | dalek | kakapo: ed480bb | whiteknight++ | : |
| 00:19 | kakapo: make harness-nqp.sh executable | |
| 00:19 | kakapo: review: http://gitorious.org/kakapo/ka[…]f1ac186f35747a596 | |
| 00:20 | kakapo: 31e3b92 | whiteknight++ | t/Syntax.nqp: | |
| 00:20 | kakapo: test that super() nests to multiple levels correctly | |
| 00:20 | kakapo: review: http://gitorious.org/kakapo/ka[…]8da5b588024a55113 | |
| 00:38 | * Austin | sings, "The judge said 'Son, what is your alibi? If you were somewhere else then you won't have to die.'" |
| 00:43 | Whiteknight | You use a proportional font? |
| 00:43 | Austin | Yeah |
| 00:43 | * Whiteknight | cringes |
| 00:43 | Austin | :) |
| 00:44 | Everybody talks about how code is read more than written... | |
| 00:44 | Well, what if there were fonts that were optimized for reading? | |
| 00:44 | Oh,wait! _There already are!_ | |
| 00:44 | Whiteknight | I don't know, but it's definitely not how my mind works |
| 00:45 | Austin | Wait 'til you get older... |
| 00:45 | The eyes start to go... suddenly, it matters. | |
| 00:46 | dukeleto | 'ello |
| 00:47 | Austin | Hey, duke |
| 00:47 | patspam joined #parrot | |
| 00:48 | dukeleto | Austin: how goes it? did you see my msg about the diehard stats tests? |
| 00:49 | Austin | Yeah, I'd seen those when I was googling around before, looking for how to test random. For a guy with a stats background, I'm ashamed to admit that my eyes glazed right over... |
| 00:53 | dukeleto | Austin: i may be interested in implementing some of them. i also said that i would work on fixing the randomness of parrot RNG's and haven't done that yet either... |
| 00:54 | Austin: feel free to bug me about stats stuff. i had to take way too many stats classes for my math degrees | |
| 00:54 | Austin | More power to you, then. I know a lot of people have put a lot of thought into how to do good RNG, so it seems like it ought to be "free" from the system(s). |
| 00:55 | Yeah, me too. | |
| 00:55 | Stats and economics. | |
| 00:55 | Two great tastes that go great together. Like Lutefisk and ... some other horrible thing | |
| 00:56 | dukeleto | Austin: if parrot gets GSL binding (another thing I have promised and not delivered on) then we get like 60 different RNG algorithms |
| 00:56 | Austin: hah! | |
| 00:56 | abqar joined #parrot | |
| 00:56 | Austin | What's a GSL? |
| 00:56 | purl | a GSL is a pure C library. I want to access it's functions from Parrot, perhaps as PMCs, perhaps not. what is the best plan of action to start? |
| 00:56 | dukeleto | Austin: http://search.cpan.org/~leto/M[…]b/Math/GSL/RNG.pm |
| 00:56 | Austin | Apparently not the first time that has been asked. |
| 00:56 | dukeleto | Austin: GNU Scientific Library |
| 00:56 | Austin: i wrote the Perl 5 bindings | |
| 00:57 | Austin | Ahh, okay. |
| 00:57 | purl, forget a GSL | |
| 00:57 | purl | Austin: I forgot gsl |
| 00:58 | Austin | purl, GSL is the GNU Scientific Library. See http://www.gnu.org/software/gsl/ |
| 00:58 | purl | OK, Austin. |
| 01:12 | ascent_ joined #parrot | |
| 01:22 | kid51 joined #parrot | |
| 01:24 | bacek joined #parrot | |
| 02:24 | bacek joined #parrot | |
| 02:25 | Whiteknight | Austin: src/Exceptions.nqp is depressing |
| 02:28 | bacek | hi again. |
| 02:28 | purl | oh, you're back! |
| 02:44 | kid51 | Uh-oh: Am once again getting this smolder submission error: |
| 02:44 | Could not upload report to Smolder at http://smolder.plusthree.com | |
| 02:44 | HTTP CODE: 500 (read timeout) | |
| 03:04 | Austin | Heh. |
| 03:09 | Tene | Where is this depression Exceptions.nqp ? |
| 03:10 | Austin: you parroting tonight? | |
| 03:10 | Austin | Tene: Yeah, I'm up. |
| 03:11 | He's talking about Kakapo's Exceptions.nqp, which defines a bunch of exception classes. | |
| 03:11 | Tene | Ew, yes, Exceptions.nqp is unfortunate. |
| 03:11 | I was thinking of working on type-based EHs now. Lemme throw together an example for you to look at. | |
| 03:22 | Hmm. The resume continuation isn't getting set in subclasses of Exception. That's strange. | |
| 03:26 | nopaste | "tene" at 76.27.121.193 pasted "Austin: similar to the existing types only/except list API" (63 lines) at http://nopaste.snit.ch/19819 |
| 03:29 | Austin | Tene, does that run? |
| 03:29 | Tene | No, it doesn't. |
| 03:29 | Austin | ok |
| 03:29 | Tene | oh, crap, I said "handle_types". |
| 03:30 | Austin | yeah, I wondered at that |
| 03:30 | Tene | That's the method used right now to set filters based on the integer type id. |
| 03:30 | should be handle_classes oslt | |
| 03:30 | I'm wondering if you have comments or strong opinions on the "handle_these" / "handle_except_these" API before I implemented it. | |
| 03:31 | Austin | As I see it, there's a couple of different use cases. |
| 03:32 | First, you can try to catch a particular exception. | |
| 03:32 | That's like catching file-not-found or something. | |
| 03:32 | Next, you can try to catch a whole family of exceptions: any unit test failure, any database error, etc. | |
| 03:33 | Tene | any IO error, which will presumably include file-not-found |
| 03:33 | Austin | The sort-of converse to that would be Java-esque: catch anything except the horribly fatal ones. (Runtime Errors) |
| 03:33 | Tene | Is there ever a use case for "ignore IO errors, but catch anything else"? |
| 03:34 | Austin | They solve that problem by creating two separate class hierarchies implementing a common interface. |
| 03:34 | There's the control-exception scenario: catch any of these. | |
| 03:34 | And the kind of obvious "anything but a control exception" | |
| 03:34 | Which is what nqp currently does. | |
| 03:35 | try { foo() CONTROL { say("control exception"); } CATCH { say("anything else"); } }; | |
| 03:35 | janus joined #parrot | |
| 03:36 | Austin | Most of those scenarios reduce down to any subclass of X, or not-any subclass of X. |
| 03:36 | Tene | Right, that was the original motivation for .handle_types_except |
| 03:36 | Austin | The control-exceptions could be trivially recoded to catch the one type or its children |
| 03:36 | Tene | I guess with a type hierarchy, there's less need for "catch any exception of a type in this list". |
| 03:37 | Austin | The place where I see "any on this list" being used is when the coder rattles off a set of exceptions to catch. It may be harder to see in *perl, since the catch blocks look like if statements. |
| 03:38 | But other languages make you declare your types as part of the catch: catch (FileNotFoundException e) {...} catch (QuotaException q) {...} ... | |
| 03:38 | So I can see them maybe being used, but I don't think it's the end of the world if the performance isn't great. | |
| 03:40 | Anyway, I think that anything-but-these becomes less useful because at this moment we can just set up a class tree the right way. | |
| 03:40 | Tene | well, we definitely do need "anything-but-control", although I guess we could have a "not-control-exception" superclass for everything else. |
| 03:41 | Austin | Right |
| 03:41 | I'd like to know how .net handles this stuff. | |
| 03:44 | okay, they don't distinguish. | |
| 03:44 | (and coders suffer from catching too many things) | |
| 03:45 | Anyway, I guess the upshot of this is that the handle_foo approach is just fine, and will encompass every case I can think of, so long as it honors subclasses. | |
| 03:46 | Tene | Great, okay. I'll start implementing that as soon as I track down this issue with resume continuations in subclasses. :( |
| 03:46 | Austin | (and handle_not_foo) |
| 03:46 | :) | |
| 03:47 | Tene | ex['message'] gets the message just fine. |
| 03:47 | ex['resume'] gives Null PMC | |
| 03:47 | Austin | heh |
| 03:47 | Andy joined #parrot | |
| 03:48 | Austin | One thing that seems important to me is resumable versus not. |
| 03:49 | Tene | Yes, that's definitely important, but I'm not entirely certain how it should be implemented. |
| 03:49 | Something about roles should be considered. | |
| 03:49 | seems like. | |
| 03:49 | Austin | Well, as I understand it, a resumable exception comes with a resume continuation. |
| 03:49 | Tene | Right. |
| 03:50 | Austin | Now, think about "finally" |
| 03:50 | If I write some code like: try { do_something() } ... finally { close( handle ); } | |
| 03:51 | I think I need to catch every exception as it goes by, in order to make sure I send control over to the finally block. | |
| 03:51 | But a resumable exception shouldn't get finalized. | |
| 03:53 | Tene | but if the handler chooses *not* to resume it, it should. |
| 03:53 | Austin | yeah |
| 03:54 | If some "vice president of exceptions" decides to resume it, then you should not have finalized. But otherwise you should have. | |
| 03:54 | :-$ | |
| 03:55 | This is why the handler is supposed to execute in the dynamic context of the thrower. | |
| 03:57 | The part I don't understand is where does the change occur from context-of-the-thrower to back-10-levels-up-the-stack? | |
| 04:01 | Tene | okay, the issue is accessing it through ex['message'] |
| 04:01 | if I getattribute instead of using the keyed interface, resuming works fine with subclasses. | |
| 04:01 | Austin | heh. What's wrong with that picture? |
| 04:02 | Tene | oh, setting through the keyed interface doesn't work either. |
| 04:02 | vtable override stuff? | |
| 04:02 | I don't really understand that bit of parrot. | |
| 04:03 | Austin | Okay. So apparently marking the exception as "handled" is what turns off the resum-ability. |
| 04:03 | Tene | Not right now it doesn't, although I could imagine an interface that does. |
| 04:04 | the default handlers generated by PCT check for the 'handled' attribute to decide whether to rethrow. | |
| 04:06 | If it's handled, wouldn't that mean that you *do* want to resume it? | |
| 04:06 | Austin | Heh. |
| 04:06 | No. | |
| 04:07 | If you want to resume it, you invoke the resume continuation. | |
| 04:08 | Tene | Well what we *want*, then, is that each handler either rethrows, resumes, or marks the exception handled. |
| 04:08 | Austin | Right. |
| 04:08 | Tene | marking it handled would invoke any 'final' blocks. |
| 04:08 | Austin | rethrow is easy. and resume ought to be easy. |
| 04:08 | Tene | Parrot noticing the lack of any additional handlers would invoke any 'final' blocks. |
| 04:08 | Austin | (provided you get that problem sorted out) |
| 04:09 | Tene | The problem is whether we can either: enforce that all handlers do one of these three, or detect when a handler doesn't do one of those. |
| 04:09 | Austin | The p6 approach to finally is for the language to maintain a queue of them in some other data structure, and the handler unspools the queue when it decides to handle. |
| 04:09 | I can live with that, I guess. | |
| 04:10 | Tene | I could just deprecate the keyed interface to resume continuations, and make you getattribute instead, and give it a method that invokes the resume cont. |
| 04:10 | ex.'resume'() | |
| 04:11 | Austin | While I'm sure there's something wrong with deprecating the keyed interface, I'd love a method. |
| 04:11 | But I can write it, so no strain | |
| 04:11 | Detecting the failure-to-act: | |
| 04:12 | that has to be some kind of opcode condition. | |
| 04:13 | Like inserting a dummy stack frame? | |
| 04:13 | If you try to return from the handler without acting, ... | |
| 04:13 | That's a little wiggy. | |
| 04:14 | dalek | parrot: r44552 | bacek++ | branches/ops_pct/ext/nqp-rx (4 files): |
| 04:14 | parrot: Add to-be-nqp-settings | |
| 04:14 | parrot: review: http://trac.parrot.org/parrot/changeset/44552/ | |
| 04:14 | parrot: r44553 | bacek++ | branches/ops_pct/compilers/opsc (5 files): | |
| 04:14 | parrot: Use nqp-settings. Cleanup builtins little bit | |
| 04:14 | parrot: review: http://trac.parrot.org/parrot/changeset/44553/ | |
| 04:14 | parrot: r44554 | bacek++ | branches/ops_pct/src/ops/core.ops: | |
| 04:14 | parrot: Remove redundant 'goto NEXT' | |
| 04:15 | parrot: review: http://trac.parrot.org/parrot/changeset/44554/ | |
| 04:15 | Tene | how much utility would there be in 'finally' blocks that run in *most* leave conditions, except not in those where the handler misbehaves? |
| 04:15 | any? | |
| 04:15 | purl | rumour has it any is being done as a particular language feature |
| 04:15 | Austin | Little. |
| 04:15 | Depends on how you define 'misbehaves'? | |
| 04:16 | But I think finally blocks can be left to the languineers. | |
| 04:16 | Tene | returns or goes elsewhere without doing one of those three. |
| 04:18 | Austin | "goes elsewhere" makes me nervous. Does that mean sub-call, or more than 100 opcodes from the target? |
| 04:18 | Tene | Oh! I know! Just *always* do the finally blocks, and then if the handler resumes, run the 'finally' block backwards. |
| 04:19 | eh, probably just 'returns'. I'll have to think about it more. | |
| 04:20 | Austin | Don't sink a lot of energy - there's a solution already. |
| 04:20 | Tene | Explain? |
| 04:23 | Austin | hll's can keep a finally queue themselves. |
| 04:23 | A handler that wants to not-resume can just suck on the queue until it gets to its own level or higher on the stack. | |
| 04:24 | Tene | Well, yes, if we assume "The HLL doesn't misbehave", that's fine. It would be nice if there was a way that we could offer something on the parrot level that would handle it, but it's outside the scope of what we're working on right now. |
| 04:24 | Austin | while @queue { if @queue.peek.is_below( $current_context ) { @queue.pop.finally(); } } |
| 04:24 | Yeah. | |
| 04:25 | Plus, we gotta trust somebody. | |
| 04:25 | Tene | Right. |
| 04:25 | Austin | Might as well be the hll. |
| 04:25 | Tene | Okay, I'm comfortable with that. |
| 04:25 | I'm *un*comfortable with this keyed interface misbehaving in subclasses, though. | |
| 04:26 | Austin | Can't trust the vm... |
| 04:27 | Tene | I'll try to remember to bring it up during the day when others are around. |
| 04:27 | Austin | What is the problem? |
| 04:27 | purl | the problem is that WikiDoc doesn't use Pod formatting codes, and I don't like to have two sets of formatting codes. |
| 04:27 | Austin | It doesn't get set when throwing a subclass? |
| 04:28 | Tene | It does get set, but fetching it through get_pmc_keyed_str doesn't work, because it doesn't make it to the VTABLE in Exception.pmc |
| 04:28 | fetching it with getattribute works fine. | |
| 04:28 | ex['resume'] # fails on subclasses | |
| 04:28 | getattribute ex, 'resume' # works fine | |
| 04:28 | Austin | Ah. Can I see your code? |
| 04:28 | You might have a C3 problem. | |
| 04:29 | "The first parent is the main parent" | |
| 04:29 | nopaste | "tene" at 76.27.121.193 pasted "Sure, here you go." (47 lines) at http://nopaste.snit.ch/19821 |
| 04:29 | Austin | Or it might be a difference between object.pmc and exception.pmc |
| 04:31 | Tene | if you swap the # from line 29 to 28, it dies with Null PMC access in invoke() |
| 04:32 | Austin | you've modified the get_..._keyed to support resume? |
| 04:33 | get_pmc_keyed, I guess, since resume isn't a string | |
| 04:33 | Tene | get_pmc_keyed just ends up fetching the named attribute. |
| 04:34 | and it works fine on Exceptions. | |
| 04:34 | Nothing in that path has been modified. | |
| 04:34 | Austin | Huh? |
| 04:35 | okay. I got it | |
| 04:36 | Tene | Um, nevermind, I guess. I added a printf to Exception.pmc, and it *does* call get_pmc_keyed in Exception.pmc when fetching from the subclass. |
| 04:37 | Austin | But there's no data? |
| 04:37 | Tene | yeah, it returns a null pmc. tracking it down a bit more... |
| 04:38 | Austin | Heh. Whiteknight's email was talking about overriding the get_pmc_keyed stuff to do method lookup. This stuff proxies through that same code. |
| 04:38 | Tene | it calls GET_ATTR_resume |
| 04:41 | nopaste | "tene" at 76.27.121.193 pasted "GET_ATTR_resume definition" (10 lines) at http://nopaste.snit.ch/19822 |
| 04:45 | Austin | You know the data is in there. |
| 04:45 | Because you can access it with getattribute. | |
| 04:46 | But if get_attr_str is looking in the wrong place... | |
| 04:47 | Tene | op getattribute is just: $1 = VTABLE_get_attr_str(interp, $2, $3) |
| 04:48 | Austin | But which vtable? |
| 04:48 | purl | which vtable are we referring to at the moment? |
| 04:48 | Austin | I'm wondering if there's some shenanigans going on with pmcproxy |
| 04:49 | Tene | my printf shows that it does end up in Exception.pmc's get_attr_str |
| 04:49 | Austin | Right |
| 04:49 | But what set_attr did it go to? | |
| 04:49 | throw calls vtable-set-attr-str directly | |
| 04:49 | And when you call get-attr-str directly, you get the data back | |
| 04:50 | But when you call get-pmc-keyed, which locally-calls get_attr_str, you get bupkis. | |
| 04:50 | Maybe try calling the vtable version of getattr-str from get_pmc_keyed? | |
| 04:52 | Tene | no change. |
| 04:52 | Austin | bummer |
| 04:53 | Is this code on a branch somewhere? | |
| 04:53 | Tene | Yes. |
| 04:53 | exceptions_refactor | |
| 04:56 | oh, if I add a 'resume' method, I'll have to deal with the C/PIR boundary, I think. | |
| 04:57 | So, that's less than ideal. | |
| 04:58 | Well, I'll just stick with using getattribute for now, and try to ignore it. | |
| 05:09 | davidfetter joined #parrot | |
| 05:13 | dukeleto | sweet. parrot compiles with the latest clang |
| 05:19 | the test suite passes too! | |
| 05:19 | * dukeleto | does a little dance |
| 05:20 | dalek | parrot: r44555 | tene++ | branches/exceptions_refactor/src (2 files): |
| 05:20 | parrot: Allow rethrown subclassed exceptions to find the next handler. | |
| 05:20 | parrot: Add infrastructure to filter based on exception types. | |
| 05:20 | parrot: review: http://trac.parrot.org/parrot/changeset/44555/ | |
| 05:25 | Austin | Suppertime! |
| 05:53 | dalek | parrot: r44556 | bacek++ | branches/ops_pct/compilers/opsc (13 files): |
| 05:53 | parrot: Brake everything. Restructure files and directories. Strip out old stuff | |
| 05:53 | parrot: review: http://trac.parrot.org/parrot/changeset/44556/ | |
| 05:53 | parrot: r44557 | bacek++ | branches/ops_pct/compilers/opsc/opsc.pir: | |
| 05:53 | parrot: Fix opsc.pir | |
| 05:53 | parrot: review: http://trac.parrot.org/parrot/changeset/44557/ | |
| 05:53 | parrot: r44558 | bacek++ | branches/ops_pct/compilers/opsc/Rules.mak: | |
| 05:53 | parrot: Remove removed opsc_core from Rules | |
| 05:53 | parrot: review: http://trac.parrot.org/parrot/changeset/44558/ | |
| 06:09 | parrot: r44559 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Op.pm: | |
| 06:09 | parrot: Borrow Ops::Op from ops2c | |
| 06:09 | parrot: review: http://trac.parrot.org/parrot/changeset/44559/ | |
| 06:09 | parrot: r44560 | bacek++ | branches/ops_pct/compilers/opsc (2 files): | |
| 06:09 | parrot: Add build of Ops::Op | |
| 06:09 | parrot: review: http://trac.parrot.org/parrot/changeset/44560/ | |
| 06:09 | parrot: r44561 | bacek++ | branches/ops_pct/compilers/opsc/t/04-op.t: | |
| 06:09 | parrot: Add tests for Ops::Op | |
| 06:09 | parrot: review: http://trac.parrot.org/parrot/changeset/44561/ | |
| 06:33 | eternaleye joined #parrot | |
| 06:52 | uniejo joined #parrot | |
| 07:13 | eternaleye joined #parrot | |
| 07:56 | fperrad joined #parrot | |
| 08:10 | iblechbot joined #parrot | |
| 08:36 | bacek joined #parrot | |
| 08:36 | riffraff joined #parrot | |
| 08:53 | mikehh joined #parrot | |
| 08:57 | payload joined #parrot | |
| 09:02 | slavorg joined #parrot | |
| 09:08 | mikehh joined #parrot | |
| 09:26 | dalek | parrot: r44562 | mikehh++ | trunk/runtime/parrot/library/Test/Builder/Test.pir: |
| 09:26 | parrot: fix codetest failure - trailing spaces | |
| 09:26 | parrot: review: http://trac.parrot.org/parrot/changeset/44562/ | |
| 09:34 | mikehh joined #parrot | |
| 09:36 | AndyA joined #parrot | |
| 09:40 | bacek joined #parrot | |
| 09:42 | dalek | parrot: r44563 | bacek++ | branches/ops_pct/compilers/opsc (3 files): |
| 09:42 | parrot: Made Ops::Op inherited from PAST::Block and construct them during compilation phase | |
| 09:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44563/ | |
| 09:43 | eternaleye joined #parrot | |
| 09:53 | JimmyZ joined #parrot | |
| 09:54 | JimmyZ joined #parrot | |
| 09:55 | mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32446), fulltest) at r44562 - Ubuntu 9.10 i386 (g++ with --optimize) |
| 09:58 | dalek | parrot: r44564 | bacek++ | branches/ops_pct/compilers/opsc (3 files): |
| 09:59 | parrot: Add stub for Ops::File | |
| 09:59 | parrot: review: http://trac.parrot.org/parrot/changeset/44564/ | |
| 09:59 | parrot: r44565 | bacek++ | branches/ops_pct/ext/nqp-rx/src/gen/settings.pm: | |
| 09:59 | parrot: Update nqp settings | |
| 09:59 | parrot: review: http://trac.parrot.org/parrot/changeset/44565/ | |
| 09:59 | parrot: r44566 | bacek++ | branches/ops_pct/compilers/opsc (2 files): | |
| 09:59 | parrot: Fix parsing almost empty ops | |
| 09:59 | parrot: review: http://trac.parrot.org/parrot/changeset/44566/ | |
| 09:59 | parrot: r44567 | bacek++ | branches/ops_pct/compilers/opsc (2 files): | |
| 09:59 | parrot: Implement Ops::File.read_ops | |
| 09:59 | parrot: review: http://trac.parrot.org/parrot/changeset/44567/ | |
| 10:07 | mikehh | heading back to amd64 - bbiab |
| 10:18 | mikehh joined #parrot | |
| 10:33 | gaz joined #parrot | |
| 11:20 | kid51 joined #parrot | |
| 11:23 | smash joined #parrot | |
| 12:05 | bkuhn joined #parrot | |
| 12:12 | jimk joined #parrot | |
| 12:30 | tetragon joined #parrot | |
| 12:37 | plobsing joined #parrot | |
| 12:42 | dalek | parrot: r44568 | bacek++ | branches/ops_pct/compilers/opsc/t/03-past.t: |
| 12:42 | parrot: Rewrite test in NQP | |
| 12:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44568/ | |
| 12:42 | parrot: r44569 | bacek++ | branches/ops_pct/compilers/opsc/t/03-past.t: | |
| 12:42 | parrot: Fix test | |
| 12:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44569/ | |
| 12:42 | parrot: r44570 | bacek++ | branches/ops_pct/compilers/opsc/src/builtins.pir: | |
| 12:42 | parrot: Add lc | |
| 12:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44570/ | |
| 12:42 | parrot: r44571 | bacek++ | branches/ops_pct/compilers/opsc (5 files): | |
| 12:42 | parrot: Add normalization of op args as in ops2c | |
| 12:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44571/ | |
| 12:42 | parrot: r44572 | bacek++ | branches/ops_pct/compilers/opsc (2 files): | |
| 12:42 | parrot: Stole expand_args from ops2c | |
| 12:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44572/ | |
| 12:42 | parrot: r44573 | bacek++ | branches/ops_pct/compilers/opsc (3 files): | |
| 12:42 | parrot: Move expand_args into Actions | |
| 12:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44573/ | |
| 12:42 | parrot: r44574 | bacek++ | branches/ops_pct/compilers/opsc (3 files): | |
| 12:42 | parrot: Create op variants during parsing | |
| 12:42 | parrot: review: http://trac.parrot.org/parrot/changeset/44574/ | |
| 12:45 | ruoso joined #parrot | |
| 12:49 | cognominal joined #parrot | |
| 12:50 | cognominal joined #parrot | |
| 12:57 | whiteknight joined #parrot | |
| 13:01 | payload joined #parrot | |
| 13:01 | whiteknight | good morrow, kind #parrot |
| 13:19 | iblechbot joined #parrot | |
| 13:30 | FullMetalHarlot joined #parrot | |
| 13:49 | whiteknight | ENETSPLIT |
| 13:51 | KatrinaTheLamia joined #parrot | |
| 13:51 | mikehh joined #parrot | |
| 13:51 | bkuhn joined #parrot | |
| 13:51 | riffraff joined #parrot | |
| 13:51 | dalek joined #parrot | |
| 13:51 | NotFound joined #parrot | |
| 13:51 | Austin joined #parrot | |
| 13:51 | PacoLinux joined #parrot | |
| 13:51 | preflex joined #parrot | |
| 13:51 | wagle joined #parrot | |
| 13:51 | TonyC joined #parrot | |
| 13:51 | szabgab joined #parrot | |
| 13:51 | pmichaud joined #parrot | |
| 13:51 | Coke joined #parrot | |
| 13:51 | dngor joined #parrot | |
| 13:51 | eirik joined #parrot | |
| 13:51 | cotto_work joined #parrot | |
| 13:51 | ttbot joined #parrot | |
| 13:51 | confound joined #parrot | |
| 13:51 | sri joined #parrot | |
| 13:51 | bacek_at_work joined #parrot | |
| 13:51 | Tene joined #parrot | |
| 13:51 | ingy joined #parrot | |
| 13:51 | solarion joined #parrot | |
| 13:51 | rhr joined #parrot | |
| 13:51 | workbench joined #parrot | |
| 13:51 | slavorgn joined #parrot | |
| 13:51 | cxreg joined #parrot | |
| 13:51 | Infinoid joined #parrot | |
| 13:51 | jjore joined #parrot | |
| 13:51 | elmex joined #parrot | |
| 13:51 | baest joined #parrot | |
| 13:51 | frodwith joined #parrot | |
| 13:51 | tewk joined #parrot | |
| 13:51 | treed joined #parrot | |
| 13:51 | athomaso1 joined #parrot | |
| 13:51 | eiro joined #parrot | |
| 13:52 | mikehh joined #parrot | |
| 13:58 | Andy joined #parrot | |
| 14:00 | payload1 joined #parrot | |
| 14:01 | mikehh joined #parrot | |
| 14:07 | mikehh joined #parrot | |
| 14:13 | davidfetter joined #parrot | |
| 14:34 | cognominal joined #parrot | |
| 14:36 | JimmyZ joined #parrot | |
| 15:06 | ruoso joined #parrot | |
| 15:07 | mikehh joined #parrot | |
| 15:09 | zostay joined #parrot | |
| 15:12 | bubaflub joined #parrot | |
| 15:14 | slavorgn joined #parrot | |
| 15:33 | Tene | anyone willing to express an opinion on how handle_types, handle_types_except, handle_classes, and handle_classes_except should interact with each other? |
| 15:33 | dalek | rakudo: 9efead6 | (Solomon Foster)++ | src/core/Bool.pm: |
| 15:33 | rakudo: Add Bool.perl. | |
| 15:33 | rakudo: review: http://github.com/rakudo/rakud[…]6cc2ccabf4c73473d | |
| 15:33 | rakudo: bbe9441 | (Solomon Foster)++ | t/spectest.data: | |
| 15:33 | rakudo: Turn on S02-literals/char-by-number.t and S02-names_and_variables/perl.t. | |
| 15:33 | rakudo: review: http://github.com/rakudo/rakud[…]183fe510ea349e365 | |
| 15:33 | rakudo: af0424a | (Solomon Foster)++ | src/core/Signature.pm: | |
| 15:34 | rakudo: "Bool::True" instead of "1", as per jnthn. | |
| 15:34 | rakudo: review: http://github.com/rakudo/rakud[…]49dd06fa34d434366 | |
| 15:34 | Tene | Hey! Those are commit messages, not opinions about exception handlers! |
| 15:34 | Austin | Fail - you can only handle one or the other. |
| 15:35 | Tene | orly? Hmm. That sounds reasonable. |
| 15:36 | Austin | Since classes is new, types vs. classes can be exclusive. |
| 15:36 | lucian joined #parrot | |
| 15:36 | Austin | classes and classes-except is the first time that handle_yes and handle_no might be meaningful in the same scenario. |
| 15:37 | I'd say look-for-no, and if not found, look-for-yes. | |
| 15:37 | That lets you do "handle subclasses of A, except for any subclasses of A::X | |
| 15:38 | Tene | I'm tempted to just have a sense bit for include/exclude, and if you really want anything more-complicated, use a subclass of ExceptionHandler (NYI) |
| 15:38 | Austin | That also works. |
| 15:38 | Tene | or, handle A, and rethrow if A::X |
| 15:38 | So, let's do that. | |
| 15:38 | Austin | I was wondering if typed versus class-ed handlers weren't different pmcs |
| 15:39 | Tene | but your inclincation is that typed filters and classed filters wouldn't make sense on the same handler? |
| 15:39 | right? | |
| 15:39 | purl | ooh, the system. right, right. |
| 15:39 | Austin | No. |
| 15:39 | Tene | purl, forget right. |
| 15:39 | purl | Tene: I forgot right |
| 15:40 | Tene | Is that "No, you're wrong about my inclination." or "No, both on the same handler wouldn't make sense."? |
| 15:40 | * Tene | english fail |
| 15:40 | Austin | I don't see them both on the same handler. |
| 15:40 | Tene | Okay. I should be able to reduce this to a single array and two sense bits, then. |
| 15:41 | Austin | And I kind of see deprecating typed exceptions, too. |
| 15:41 | But that's for tomorrow. | |
| 15:41 | Psyche^ joined #parrot | |
| 15:43 | Austin | Here's a weird thought: does an exception handler have anything in common with a multisub, in this model? |
| 15:44 | We're basically saying "catch these, and send them here, here, or here." | |
| 16:03 | whiteknight joined #parrot | |
| 16:04 | theory joined #parrot | |
| 16:04 | riffraff joined #parrot | |
| 16:04 | Andy joined #parrot | |
| 16:06 | betterworld joined #parrot | |
| 16:10 | lucian joined #parrot | |
| 16:11 | * Austin | sings, "So here we a-are, in the Tijuana jail; ain't got no friends to go our bail!" |
| 16:11 | Tene | Austin: Quite possibly. |
| 16:11 | * Tene | committed, now afk working. |
| 16:16 | dalek | parrot: r44575 | tene++ | branches/exceptions_refactor/src/pmc/exceptionhandler.pmc: |
| 16:16 | parrot: Refactor ExceptionHandler to use one array instead of four. | |
| 16:16 | parrot: review: http://trac.parrot.org/parrot/changeset/44575/ | |
| 16:18 | davidfetter joined #parrot | |
| 16:22 | mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32454), fulltest) at r44574 - Ubuntu 9.10 amd64 (g++ with --optimize) |
| 16:24 | davidfetter | oh hai |
| 16:28 | whiteknight joined #parrot | |
| 16:44 | patspam joined #parrot | |
| 16:53 | payload1 left #parrot | |
| 16:58 | dukeleto | 'ello |
| 17:02 | smash joined #parrot | |
| 17:03 | Tene | Hi! |
| 17:03 | shockwave joined #parrot | |
| 17:04 | shockwave | Hello. |
| 17:04 | To overload the == operator, there is 'is_equal' vtable method. I don't see a vtable method for '!='. Is it not possible to override != ? | |
| 17:09 | Austin | There's the 'ne' opcode. |
| 17:10 | == maps to eq, or iseq. != maps to ne, or isne | |
| 17:10 | (ne returns !vtable_is_equal) | |
| 17:11 | (See $_OPS/cmp.ops) | |
| 17:11 | kurahaupo joined #parrot | |
| 17:14 | shockwave | Austin. They way I find out about vtable methods is by looking at src/vtable.tbl. There is a is_equal method there. |
| 17:14 | Austin | sure |
| 17:14 | :) | |
| 17:14 | But somebody has to call those methods. | |
| 17:14 | shockwave | You mentioned that != maps to ne, or isne. Is there a way to make the connection of != to ne? |
| 17:14 | Austin | Probably no. |
| 17:15 | The 'ne' opcode is a test-and-branch op, while isne returns a result as an int expression. | |
| 17:15 | shockwave | Sorry, that's not what I mean. |
| 17:15 | Austin | ok |
| 17:16 | What *do* you mean? :) | |
| 17:16 | shockwave | What I meant is, if I don't see something in vtable.tbl, for mapping to !=, how can I draw a conclusion as to what it would be based on what's in cmp.ops |
| 17:17 | Austin | Well, cmp.ops contains this: $1 = !VTABLE_is_equal(interp, $2, $3); |
| 17:18 | Tene | if you want to know what an op does, just read src/ops/foo.ops |
| 17:18 | Austin | So I'd recommend you read the pod first (perldoc cmp.ops, or check the docs/ directory), and then follow up by reading the source. |
| 17:19 | Just be warned that the docs frequently lie. | |
| 17:19 | :< | |
| 17:20 | shockwave | I'm about to read the doco you guys mentioned, but it's looking like there is no != vtable override. |
| 17:20 | I base that assumption on the fact that ne is defined as !VTABLE_is_equal. | |
| 17:21 | One could draw the conclusion that vtable method names are the same as the function names, minus the VTABLE_ part | |
| 17:21 | Thus, there is no VTABLE_isnt_equal. | |
| 17:21 | Hopefully I'm wrong. | |
| 17:21 | Thanks, Austin, Tene. | |
| 17:21 | Austin | You're welcome. You're also right. |
| 17:21 | (Why do you want there to be a vtable op for != ? | |
| 17:22 | Tene | shockwave: you're correct. There isn't a separate vtable for != |
| 17:22 | != is *defined* as "the opposite of ==", so that's how it's implemented. | |
| 17:22 | shockwave | Austin, so that I can map both != and == to an override in my language. |
| 17:22 | Austin | Oh. No. |
| 17:23 | shockwave | Operator overload. |
| 17:23 | Tene | >< ew |
| 17:24 | No, that's not supported. | |
| 17:24 | shockwave | Some people like it, some people dont. But, in either case, I need the functionality. |
| 17:24 | It really helps to override operator for things like 3D matrices and vectors. | |
| 17:24 | * Tene | nods |
| 17:25 | shockwave | Otherwise you find yourself doing things like Vector.plus(Vector.times(Vector)) |
| 17:25 | Tene | when dealing with matrices and vectors, etc, is it not just "the opposite of =="? |
| 17:25 | shockwave | Tene, yes. |
| 17:25 | Tene | "Yes, it is just the opposite of ==" or "yes, it is not just the opposite of =="? |
| 17:26 | Apparently I fail at english negation today. | |
| 17:26 | kurahaupo | question would go away if it were VTABLE_equal(pmc1,pmc2,equalresult,neresult) |
| 17:26 | question would go away if it were VTABLE_equal(target,pmc1,pmc2,equalresult,neresult) | |
| 17:26 | shockwave | Tene, somehow, I need to be able to do this in PIR: $P0 != $P1 # Both would be vector objects. |
| 17:27 | and I need to call a custom made function to deal with that. | |
| 17:27 | vtable is_equal maps nicely to ==, but to deal with !=, I'm not sure what kind of mess I'm gonna need to create. | |
| 17:28 | tewk | $P2 = $P0.'custom_made_function'($P1) |
| 17:28 | Tene | shockwave: is the answer returned going to be different from: { $I0 = $P0 == $P1 \n not $I0 } |
| 17:28 | shockwave | Tene. Yes. |
| 17:28 | Tene | shockwave: if you define VTABLE_equal, then both == and != will work |
| 17:28 | Okay, in that case, I wouldn't say that the operation is != | |
| 17:29 | Austin | I think that != does not have the same definition as not( == ) |
| 17:29 | shockwave | BUT, the user is free to overload != however they want. |
| 17:29 | Austin | Okay |
| 17:29 | Tene | at least not as parrot thinks of it. |
| 17:29 | shockwave | Unfortunately. |
| 17:29 | particle | smells like a multimethod to me |
| 17:30 | kurahaupo | User can overload either eq or ne but not both |
| 17:30 | plobsing | shockwave: can't you modify tene's suggestion to use a PMC { $P2 = $P0 == $P1 \n $P3 = not P2 } ? |
| 17:30 | Tene | plobsing: he wants to support == and != not being related at all. |
| 17:30 | Austin | Yeah, that's a multimethod. Tene is right. |
| 17:30 | Tene | that is, it's possible for both == and != to be true, or both to be false. |
| 17:31 | kurahaupo | Yuck. |
| 17:31 | Austin | shockwave: Build a :multi sub. Then when a user overrides !=, extend the multisub by adding another arguments-permutation |
| 17:31 | Tene | shockwave: vtables aren't the place to be doing that. use methods, and have the compiler for your language compile operations to function calls. |
| 17:31 | s/methods/functions/whatever | |
| 17:33 | shockwave | Tene. As Parrot is defined, I must do that. It's just that == mapped very nicely to is_equal, and Parrot took care of the details. |
| 17:33 | I'll do it with subs. | |
| 17:33 | Thanks | |
| 17:33 | kurahaupo | Or silently convert overloading of != into overloading of == with a wrapper that inverts the result. |
| 17:34 | Tene | and one of those details is that the != op is defined as the opposite of the == op. You can still use ==, and just have your default != op use parrot's != |
| 17:34 | kurahaupo: that won't work for defining both == and != independently. | |
| 17:35 | "== op" overloading goes in vtable equals. default != function just calls parrot != on the arguments. | |
| 17:35 | kurahaupo | That's intentional. throw error if they try. |
| 17:35 | Tene | kurahaupo: he *want* to support that. that's a requirement of his language. |
| 17:35 | shockwave | For now, I will restrict != to not be overloadable and do the inversion thing. |
| 17:36 | payload joined #parrot | |
| 17:36 | shockwave | So that if one overloads == in the language, it will behave as Parrot (Automatically supply a !=, which does the inversion). |
| 17:36 | I can live with that. | |
| 17:37 | Thanks for the sudjestion, guys. | |
| 17:37 | Tene | np |
| 17:38 | kurahaupo | IMHO if == & != can have same value the those are the wrong names for whatever is being expressed. |
| 17:39 | shockwave | kurahaupo, I agree. |
| 17:40 | payload joined #parrot | |
| 17:53 | szabgabx joined #parrot | |
| 17:54 | PerlJam joined #parrot | |
| 18:16 | cosimo joined #parrot | |
| 18:23 | kurahaupo1 joined #parrot | |
| 18:33 | dukeleto | if i give --cc=clang to Configure.pl, but don't set --link or --ld, is it using gcc for those? |
| 18:39 | in case anybody is wondering, i found the free non-commercial download page for icc: http://software.intel.com/en-u[…]oftware-download/ | |
| 18:39 | whiteknight++ | |
| 18:42 | ruoso joined #parrot | |
| 18:43 | gaz joined #parrot | |
| 19:02 | cosimo joined #parrot | |
| 19:07 | * Coke | skips review. |
| 19:07 | Coke | dukeleto: if you want to know what it's using, look at config_lib.pasm, or use parrot_config |
| 19:08 | (or the Makefile) | |
| 19:12 | whiteknight | dukeleto: (re: --cc=clang) I think it uses gcc in thosec ases, yes. I always do the complete "--cc=clang --ld=clang --link=clang" incantation |
| 19:13 | Tene | So, there's a problem I ran into last night. Exception.pmc stores stuff in attributes. using getattribute on subclasses of Exception works perfectly. The standard interface, though, is get_pmc_keyed, and Exception.pmc's get_pmc_keyed just calls SELF.get_attr_str, which calls GET_ATTR_foo, and that just returns pmcnull for subclasses. |
| 19:13 | whiteknight | of course, I have a huge obnoxious library of aliases and functions that do i for me |
| 19:13 | Tene: sounds delicious. Why does GET_ATTR_foo return PMCNULL? | |
| 19:14 | Tene | No idea. |
| 19:14 | whiteknight | okay |
| 19:14 | Coke | ISTR there is setup you have to do in the PMC to allow attr's to work in subclasses. |
| 19:14 | ISTR this broke tcl for after the initial switchover. | |
| 19:14 | (but tcl doesn't subclass exception...) | |
| 19:14 | Tene | Coke: getattribute on the subclass instance works fine. |
| 19:16 | Coke | it didn't say getattribute. =-) |
| 19:16 | * Tene | nods. |
| 19:16 | Coke | s/it/I/ |
| 19:16 | I think the ATTR's were special. | |
| 19:16 | I think cotto might have been the guy that worked on that, but I can't recall for sure. | |
| 19:21 | Tene | okay, looks like it depends on how it's set. |
| 19:21 | cotto_work | hi |
| 19:21 | Tene | set with keyed, can only fetch with keyed. set with setattribute, can only fetch with getattribute |
| 19:21 | hercynium joined #parrot | |
| 19:21 | Austin | Heh. |
| 19:21 | nopaste | "tene" at 76.27.121.193 pasted "Example of weirdness with subclasses" (45 lines) at http://nopaste.snit.ch/19829 |
| 19:21 | Austin | Data is fine, just two separate bits of data. |
| 19:21 | Tene | Yeah. |
| 19:23 | if nobody has any ideas, I'll take it to the list. | |
| 19:23 | Austin | Hey, cotto_work. Do you know anything about how to get access to ATTRs in a subclass of a pmc? |
| 19:25 | cotto_work | in pir? |
| 19:25 | in C it's the same as with the parent class | |
| 19:25 | Austin | No, C. This is for Tene. |
| 19:27 | There seems to be different data being accessed by the get/set_attr_str macros and the VTABLE functions when a C Exception.pmc is subclassed in pir. | |
| 19:27 | Tene's recent nopaste highlights the difference using get/set_pmc_keyed, which in Exception just calls SELF.get/set_attr_str | |
| 19:27 | cotto_work | I have to take off for a bit but I can look at it this afternoon. |
| 19:28 | Tene | cotto_work: look for mail on the list. |
| 19:28 | it'll be there shortly. | |
| 19:28 | Austin | What is the "PObj_is_object_TEST" ? |
| 19:32 | So if the subclass is an object, it calls the vtable method. Which looks for the attrib-index in an attributes table? | |
| 19:34 | Tene | #define PObj_is_object_TEST(o) PObj_flag_TEST(is_object, o) |
| 19:34 | sent. | |
| 19:35 | I don't remember if this is the list I have issue posting to or not. | |
| 19:38 | Coke | I see no post nor admin request. |
| 19:52 | dalek | rakudo: 64e4d36 | (Solomon Foster)++ | t/spectest.data: |
| 19:52 | rakudo: Turn on bit.t, equality.t, increment.t, and inplace.t, all in S03-operators. | |
| 19:52 | rakudo: review: http://github.com/rakudo/rakud[…]2bbed6873690c9783 | |
| 19:55 | NotFound | Tene: last time I tried, to access the attributes of the PMC in derived classes you need to add_attribute to the class. That doesn't mean doing that works well, though. |
| 19:56 | And when it works, someone broke it in some PMC by directing accessing the attributes for speed, or something. | |
| 19:57 | In short: the full attributes thing doesn't work well with class derived from PMC | |
| 19:59 | joeri joined #parrot | |
| 20:02 | dalek | parrot: r44576 | coke++ | trunk/DEPRECATED.pod: |
| 20:02 | parrot: The only place a .namespace is declared in the repo with an embedded :: is examples/ | |
| 20:02 | parrot: Rewriting the examples is covered by TT#1486 , but that doesn't need a deprecation notice. | |
| 20:02 | parrot: review: http://trac.parrot.org/parrot/changeset/44576/ | |
| 20:03 | bubaflub left #parrot | |
| 20:07 | riffraff joined #parrot | |
| 20:07 | Tene | Hmm. My mail still hasn't arrived at the list. |
| 20:14 | kjeldahl_ joined #parrot | |
| 20:23 | cotto_work | I see it. |
| 20:30 | Tene | ah, yes, I see it now too. |
| 20:36 | tewk | Tene, I saw a similar problem because of PMCProxy |
| 20:37 | Basically an object had a pointer to a PMCProxy, but the PMCProxy didn't know it was an object so it used PMC_data(pmc) instead of VTABLE_get_attr_str. | |
| 20:38 | I don't remember exactly but check it out. | |
| 20:45 | ash_ joined #parrot | |
| 21:18 | tjc joined #parrot | |
| 21:22 | snarkyboojum joined #parrot | |
| 21:36 | eternaleye joined #parrot | |
| 21:39 | dalek | rakudo: 5e5969d | (Solomon Foster)++ | t/spectest.data: |
| 21:39 | rakudo: Turn on S04-statements/ given.t and if.t. | |
| 21:39 | rakudo: review: http://github.com/rakudo/rakud[…]75aae962ca3a271c3 | |
| 21:41 | tjc left #parrot | |
| 21:42 | NotFound joined #parrot | |
| 21:43 | bacek joined #parrot | |
| 21:44 | cotto_work | hi bacek++ |
| 21:44 | bacek | good morning cotto :) |
| 21:45 | Why ++ today? | |
| 21:45 | cotto_work | opsc work over the weekend |
| 21:45 | Coke | bacek-- # too many questions. |
| 21:45 | bacek | Coke, Yay! :) |
| 21:45 | * Coke | is harsh. |
| 21:45 | Coke | cotto, you boson. |
| 21:46 | anticoke | don't get too close |
| 21:46 | It won't end well. | |
| 21:48 | cotto_work | I should have some tuits this week. I'm looking forward to diving into that code again. |
| 21:48 | What's the current plan? | |
| 21:48 | purl | i guess the current plan is to get schwern and fimmy an SDSL line and put a couple boxen there. They're going to trade me power, space, and hardware needs for bandwidth. |
| 21:48 | Coke | purl, plot? |
| 21:48 | purl | Plot. What a funny word. Plot. Plot plot plot. Plot plot plotplotPLOT. PlotplotplotPLOTPLOT! Plot plot plotplotplotplot. |
| 21:52 | bacek | cotto_work, I'm going to finish end-to-end skeleton for generating .c/.h files. |
| 21:53 | Next big thing - ops bodies parsing. | |
| 21:53 | cotto_work | Are you planning on writing a C parser? |
| 21:55 | tac-tics joined #parrot | |
| 21:55 | bacek | cotto, I'll probably borrow Close :) |
| 21:57 | cotto, and we need pmichaud++ help for speed up parsing. It takes about 35 seconds to parse all ops... | |
| 22:00 | cotto_work | quite likely |
| 22:01 | I'll see if I can find anything with the profiling runcore. | |
| 22:02 | bacek | I suspect a lot of backtracking. But :: isn't implemented in nqp-rx yet. |
| 22:05 | cotto_work | Let me know if there's anything that'd parallelize well or that you don't feel like working on. |
| 22:06 | bacek | cotto, ops bodies parsing I think. |
| 22:07 | cotto_work | via a C parser or via cheating? |
| 22:07 | Coke | for parsing ops bodies, do you need all of C, or just the special bits we've layered on top? |
| 22:07 | cotto_work | (I vote for cheating since the compiler will catch any C errors) |
| 22:07 | Coke | (or, just the bits thatwe're using) |
| 22:08 | bacek | almost all of C... |
| 22:08 | cotto_work | yeah. We'd need to parse anything that can appear in a function. I imagine we use a very significant subset. |
| 22:09 | bacek | LTM doesn't work well, so something like [ goto NEXT () | .*? ] doesn't work as expected. |
| 22:09 | Close? | |
| 22:09 | purl | hmmm... Close is close file (or pipe or socket) handle or bad on sockets, use shutdown() instead or horseshoes or grenades or nuclear weapons or http://code.google.com/p/close/ |
| 22:10 | cotto_work | that presents some difficulties to the "flagrant cheating" approach |
| 22:14 | why not do the bare minimum parsing necessary to capture an op body (matched curly braces, string parsing, etc) and do simple search and replace on the op body? | |
| 22:18 | I'll have to look at that approach when I get home tonight. | |
| 22:18 | It'd be nice to avoid the complexity of a near-complete C parser if possible. | |
| 22:32 | bacek, to clarify, you plan is to generate the different runcore files except without any changes to the op function bodies? | |
| 22:32 | s/you/your/ | |
| 22:32 | bacek | cotto, yes. |
| 22:33 | cotto_work | ok' |
| 22:51 | kthakore joined #parrot | |
| 23:16 | pootek joined #parrot | |
| 23:17 | Whiteknight joined #parrot | |
| 23:21 | snarkyboojum joined #parrot | |
| 23:27 | lucian_ joined #parrot | |
| 23:31 | cotto_work | clock? |
| 23:31 | purl | cotto_work: LAX: Mon 3:31pm PST / CHI: Mon 5:31pm CST / NYC: Mon 6:31pm EST / LON: Mon 11:31pm GMT / BER: Tue 12:31am CET / IND: Tue 5:01am IST / TOK: Tue 8:31am JST / SYD: Tue 10:31am EST / |
| 23:43 | Whiteknight | clock? |
| 23:43 | purl | Whiteknight: LAX: Mon 3:43pm PST / CHI: Mon 5:43pm CST / NYC: Mon 6:43pm EST / LON: Mon 11:43pm GMT / BER: Tue 12:43am CET / IND: Tue 5:13am IST / TOK: Tue 8:43am JST / SYD: Tue 10:43am EST / |
| 23:44 | cotto_work | time marches on |
| 23:45 | Whiteknight | how are you doing tonight, cotto_work? |
| 23:46 | cotto_work | brain tired |
| 23:46 | want to do fun things | |
| 23:46 | Whiteknight | Ah, I know that feeling |
| 23:47 | * Whiteknight | resists the urge to complain about his job or his incompetent manager in a publically-logged forum |
| 23:47 | cotto_work | fortunately my desire to get paid overrules my desire to go home early and hack on Parrot |
| 23:47 | Whiteknight | ditto |
| 23:52 | ash_ | Whiteknight: i don't know if you remember, but i mentioned to you before i am working on a sort of alternative nqp, based on the llvm, i just was going to let you know, i have a bison based parser that can parse most of the test suite for nqp, now i am working on building the AST from the parser |
| 23:52 | Whiteknight | ash_: yeah, I remember. I mentioned your project in my blog a few days back |
| 23:55 | patspam joined #parrot | |
| 23:55 | ash_ | cool, thanks for mentioning it |
| 23:59 | Whiteknight: i am writing about my implementation on my website greaterthaninfinity.com/ if your interested, i am trying to keep that up to date with my work, but i am not much of a blogger, or wordsmith so it might be painful to read at times |
← Previous day | Index | Channel Index | Today | Next day → | Search | Google Search | Plain-Text | plain, newest first