|
Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, finish exceptions_refactor branch | GSoC students, please read trac.parrot.org/parrot/wiki/GSoCersStartHere Set by moderator on 12 May 2010. |
|||
| darbelo | I'm a fan of U+2022 myself. | 00:01 | |
| dalek | rrot: r46551 | darbelo++ | branches/ops_pct/compilers/opsc/Defines.mak: [Makefile] Cleanup leftover pbc file. |
00:02 | |
| rrot: r46552 | darbelo++ | branches/ops_pct/compilers/opsc/Rules.mak: [Makefile] Replace long paths with shorter variable names. |
|||
| rrot: r46553 | darbelo++ | branches/ops_pct (3 files): [opsc] Move opsc tests into the regular test harness. |
|||
| nopaste | "pmichaud" at 192.168.1.3 pasted "...known change between Parrot 1.4.0 and Parrot 2.0.0 ?" (39 lines) at nopaste.snit.ch/20540 | ||
| pmichaud | anyone aware of the change illustrated by nopaste #20540? was it intentional? | 00:03 | |
| (I just got bitten by it when working on PCT/POST) | |||
| bacek_at_work | looks like a bug introduced in pcc_refactor | ||
| pmichaud | it might need a deprecation cycle to fix. | 00:04 | |
| cotto | darbelo++ for the opsc cleanup | ||
| pmichaud files a TT | 00:05 | ||
| darbelo | cotto: And there's more! | 00:10 | |
|
00:10
joeri joined
|
|||
| cotto | I happy and a little bit embarrassed. | 00:11 | |
| bacek_at_work | interesting... trunk is still slower than codestring branch... | 00:16 | |
| pmichaud | some slowness may be due to some items being moved from C to PIR | ||
| we'd need to bench mark that a bit | 00:17 | ||
| bacek_at_work | Do we need to update nqp-rx to use StringBuilder? | 00:18 | |
| looks like no. Only one line - "%r = new ['CodeString'] }.charname_to_ord( ~$/ )" which can be moved to use find_codepoint op | |||
|
00:20
Andy joined
|
|||
| darbelo | I'd totally hate git-svn if it weren't for the blatant history rewriting it allows me to do ;) | 00:23 | |
| sorear | bacek_at_work: is there any reason to suppose that CodeString.get_string might be slower than String.get_string at this point? | 00:24 | |
| bacek_at_work | sorear, unlikely. CodeString is-a String and inherit it. | 00:26 | |
| pmichaud | CodeString.get_string was significantly slower in the codestring branch for a while | ||
| but in trunk, it shouldn't be slower | |||
| cotto | Coke, ping | 00:27 | |
| dalek | TT #1630 created by pmichaud++: null arguments automatically coerce to empty strings | ||
| TT #1630: trac.parrot.org/parrot/ticket/1630 | |||
| sorear wanders off to hack on NQP-based REPL | |||
| pmichaud | looks like a s/CodeString/StringBuilder/ was missed in POST::Compiler | 00:32 | |
| 00:11 <cotto> I happy and a little bit embarrassed. | 00:33 | ||
| oops | |||
| wrong paste | |||
| .local pmc innerpir, line | |||
| innerpir = new 'CodeString' | |||
| .lex '$CODE', innerpir | |||
| that's probably why trunk+stringbuffer is still slower than codestring branch | |||
| er, trunk+stringbuilder | 00:34 | ||
| bacek_at_work | pmichaud, another one on line 237. | 00:36 | |
| pmichaud | ah yes, that one also. (I wasn't fixing those yet) | 00:38 | |
| weird though that they never get used with .emit | |||
| they might be concatenated a lot, though | 00:39 | ||
| wouldn't surprise me if we end up concatenating a bunch of StringBuilder objects into CodeStrings | |||
| bacek_at_work | Yes. | ||
| Much better now. | |||
| committing | 00:40 | ||
| pmichaud | I've locally eliminated the last CodeString in POST::Node | 00:42 | |
| bacek_at_work | ship it! :) | 00:43 | |
| pmichaud | testing now | ||
|
00:47
abqar joined
|
|||
| bacek_at_work | pmichaud, can we merge subpir/innerpir in POST::Compiler? | 00:49 | |
| pmichaud | not easily | ||
| sorear | I like how short NQP's pir output is. | 00:50 | |
| pmichaud | they're kept separate because it's extremely important to preserve the ordering of subs | ||
| sorear | Quite nice after trying to debug Rakudo ;) | ||
| darbelo | cotto: Okay, r46555 is the last of it. The ops_pct branch is now certified dumb-make ready and the makefiles are about as clean as they can get. | ||
| Also, I reorganized the tree a bit to make it more similar to the other compilers. | 00:51 | ||
| dalek | rrot: r46554 | pmichaud++ | trunk/compilers/pct/src/POST/Compiler.pir: [pct]: Switch POST::Compiler to have its own key_pir instead of CodeString.key |
||
| rrot: r46555 | darbelo++ | branches/ops_pct (2 files): Move compilers/opsc/t to t/compilers/opsc for consistency with other compilers. |
|||
| rrot: r46556 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir: [pct]: Switch PAST::Compiler to use POST::Compiler.key_pir instead of CodeString.key. |
|||
| rrot: r46557 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir: [pct]: Remove obsolete %!codestring global. |
|||
| rrot: r46558 | darbelo++ | branches/ops_pct/compilers/opsc/Rules.mak: [Makefile] Remove help for nonexistant opsc-specific targets. |
|||
| rrot: r46559 | bacek++ | trunk/compilers/pct/src/POST/Compiler.pir: Replace two more usage of CodeString with StringBuilder in POST::Compiler. pmichaud++ |
|||
| darbelo | Oh, my bad. r46558 is the last of it. | ||
| cotto | nice | 00:53 | |
| darbelo++ | |||
| bacek_at_work | nice, darbelo++ | ||
| darbelo | And now (for something completely different) I'm going to get some food and then sleep. | 00:54 | |
| cotto | now to make ops2c.nqp less ugly and hackish (or more, then less) | ||
| sorear | hey | 00:55 | |
| NQP is smart enough to not make a block for if $y { $x.y($y) } | |||
| who did that? | |||
| pmichaud | I think r46561 is the last of my codestring-related changes to PCT for a bit | ||
| me, I think. :) | |||
| sorear | pmichaud++ | 01:07 | |
| cotto | Hmmmm. Not reading ops.num and ops.skip speeds up dynop generation significantly. | 01:08 | |
| dalek | rrot: r46560 | pmichaud++ | trunk/compilers/pct/src/POST/Node.pir: [pct]: Remove CodeString from POST::Node. |
01:09 | |
| rrot: r46561 | pmichaud++ | trunk/compilers/pct/src/POST/Compiler.pir: [pct]: Put newlines directly into the fmt strings of POST::Compiler, instead of always appending newline. |
|||
|
01:14
theory joined
|
|||
| tcurtis | bacek_at_work, I noticed a number of explicit return statements in Functional.pm, Hash.pm, etc. Is "return $foo" not implemented with exceptions any longer? | 01:16 | |
|
01:20
ewilhelm joined,
ewilhelm left
|
|||
| dalek | rrot: r46562 | cotto++ | branches/ops_pct/MANIFEST: manifest update |
01:25 | |
| cotto finds Getopb::Obj and is happy | 01:29 | ||
|
01:32
seatek joined
|
|||
| bacek_at_work | tcurtis, hmm. I dunno. | 01:39 | |
| tcurtis | It still is in the version that's included in parrot trunk. I'm about to check with your repo. | 01:41 | |
| dalek | rrot: r46563 | cotto++ | branches/ops_pct/compilers/opsc (3 files): [opsc] only read ops.num and ops.skip for core ops |
01:42 | |
| rrot: r46564 | NotFound++ | trunk/src/string/charset/ascii.c: simplify mixed_cs_index |
|||
|
01:43
rurban_ joined
|
|||
| tcurtis | Very unscientific benchmarks suggest that "1;" at the end of a sub is approximately 50% less slow than "return 1;" | 01:43 | |
|
01:44
snarkyboojum joined
|
|||
| sorear | How do you spell an exit-in-the-middle loop in NQP? | 01:45 | |
| tcurtis | bacek_at_work, the result is: "new $P16, "Exception" | 01:48 | |
| set $P16['type'], 57 | |||
| new $P17, "Integer" | |||
| assign $P17, 1 | |||
| setattribute $P16, 'payload', $P17 | |||
| throw $P16" | 01:50 | ||
| sorear feels like a decompiler | 01:56 | ||
| cotto | What's $P0 = new ['Foo';'buz'] in nqp? | 01:57 | |
| sorear | pir::new__PP(<Foo buz>) | 01:58 | |
| cotto | Thanks⣠| 01:59 | |
| nmā | 02:01 | ||
| doesn't work | |||
| purl | Look buddy, doesn't work is a strong statement. Does it sit on the couch all day? Is it making faces at you? Does it want more money? Is it sleeping with your girlfriend? Please be specific! | ||
| cotto | It's sitting across from me, just staring vacantly into space. | 02:02 | |
| sorear | Q:PIR { new ['Foo';'buz'] } then :/ | ||
| cotto | when in doubt, drop to pir | ||
| sorear | Foo::buz.new will also work if it's a NQP class | 02:03 | |
| pmichaud | NQP doesn't have 'last' yet, iirc | 02:05 | |
| tcurtis: you're correct, it's better to not use explicit return | 02:06 | ||
| fall-off-the-end semantics are much more efficient (at the moment?) | |||
| cotto: see my earlier comment about the difficulty of generating keys in PIR :-| | |||
| I've been thinking that the pir:: syntax might need a __K component for keys, though. | 02:08 | ||
| but it's icky to handle. | 02:09 | ||
| pmichaud tests latest parrot trunk with nqp-rx | |||
| sorear | pmichaud: How do I write :flat :named in NQP-rx? | 02:12 | |
| pmichaud | I don't think there's a way to do it yet. Eventually it'd be the same as the p6 syntax -- |%hash or something like that | 02:13 | |
| although it's possible that |%hash works arleady | |||
| try looking at the tests in t/nqp and see if there's an example | 02:14 | ||
| looks like |@a works | |||
| don't see a |%h version yet, though :-| | |||
| nqp tends to want to wait until it's needed before implementing a feature | 02:15 | ||
| sorear is still hung up trying to decompile 'interactive' | |||
| maybe I should add |%h? | |||
| pmichaud | sure, that could work. See if you can find how |@a is done and go with it | ||
| dalek | rrot: r46565 | mikehh++ | trunk/t/codingstd/pod_todo.t: remove TODO from passing test - no more 'todo', 'fixme' or 'XXX' items |
||
| pmichaud | I see in src/NQP/Grammar.pm: token prefix:sym<|> { <sym> <O('%symbolic_unary')> } | 02:16 | |
| so the parsing it there -- it's just getting the action correct | |||
| hmm, I don't like how that's done. | 02:17 | ||
| pmichaud checks 'blame' to see who did it | |||
| looks like it was some noobie named 'pmichaud' | 02:19 | ||
| mikehh | pmichaud: :-} | ||
| pmichaud | I think I'd prefer to see a method prefix:<|>() action that handles flattening instead of having it done inside of method arglist() | 02:20 | |
| that method could then check its argument to see if it's a hash variable | |||
| and add the :named flag to the node as well as the :flat | 02:21 | ||
| sorear | I don't have enough PAST::Fu to implement that. | ||
| pmichaud | the other way to do it is after the line that says | 02:22 | |
| + $past[$i].flat(1); | |||
| sorear | (Maybe I do? But only at the cost of being able to make invalid PAST.) | ||
| pmichaud | check to see if $past[$i] is in fact a PAST::Var node and that its name starts with '%' | ||
| something like... | |||
| purl | something like what, pmichaud? | ||
| sorear | How do I spell 'isa'? | 02:23 | |
|
02:24
eternaleye joined
|
|||
| pmichaud | if $past[$i].isa(PAST::Val) | 02:25 | |
| && pir::substr($past[$i].name, 0, 1) eq '%' { | |||
| $past[$i].named(1); | |||
| } | |||
| might work. | |||
| sorear | Val? | 02:26 | |
| Really? | |||
| pmichaud | might be more efficient to bind $past[$i] somewhere to avoid repeating the subscript at each operation, too. :-) | 02:27 | |
| purl | Val is, like, updated in accordance with the sign of val | ||
| pmichaud | sorry, Var | ||
| typo here (busy trying to book a bunch of airline tickets in another window ) | |||
| and... afk for a bit again | |||
|
02:28
JimmyZ joined
02:35
tetragon joined
|
|||
| dalek | p-rx: 458dbfe | sorear++ | (2 files): Implement :flat :named (|%hash) |
02:39 | |
| sorear | tcurtis: Is "Exception thrown and caught in the same function" on the list? It probably should be | 02:43 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33808), fulltest) at r46566 - Ubuntu 10.04 amd64 (g++) | 02:47 | |
| dalek | rrot: r46566 | mikehh++ | trunk/t/codingstd/pod_todo.t: well that did not work - can't see how I got it to pass |
02:48 | |
| sorear | pmichaud: for implementing loop control ops, should I generate primitive PAST for them, or would you rather see me add new pasttypes? | 02:51 | |
| tcurtis | sorear, are you referring to NQP-like build exception, throw, catch, immediately return? Or more general throwing and catching in the same function? Also, I'm assuming "the list" is the list of things that I should write optimizations for during GSoC? | 02:52 | |
| sorear | tcurtis: The list of things that you should consider for optimizability - whether you get to all of them is not certain | 02:53 | |
|
02:53
eternaleye joined
|
|||
| sorear | and yes; control exceptions are the main use case | 02:53 | |
| PerlJam | sorear: how do your loop control ops differ from exceptions? | 02:56 | |
| sorear | PerlJam: the loop control ops would work by throwing exceptions, just as the return op does now | 02:57 | |
| PerlJam | so, why the abstraction? | ||
| sorear | paranoia | 02:58 | |
| purl | Just because the worst scenario isn't the most likely doesn't mean you have to ignore it. | ||
| PerlJam | I don't understand the paranoia | ||
|
03:00
janus joined
|
|||
| pmichaud | I'd prefer to keep the PAST node types smallish. | 03:01 | |
|
03:01
plobsing joined
|
|||
| pmichaud | so I'd say that we generate primitive past for them. | 03:01 | |
| sorear | What's the best phrasing of PAST for throwing a control exception? | 03:02 | |
| inline? | |||
| purl | Inline melted Schuyler_'s braaaaane! or the Dog's Banana | ||
| pmichaud | PAST::Op, likely | ||
| :pirop<throw> | |||
| sorear | PerlJam: Me not being able to second-guess pmichaud, mostly | ||
| pmichaud | looking | ||
| PAST and NQP tend to want to remain small and simple | 03:03 | ||
| sorear | ok | ||
| how do I write control exception numbers? | |||
| Q:PIR{.include "except_types.pasm"} ? | 03:04 | ||
| pmichaud | there's not a good symbolic way to do that yet | ||
| lookin. | |||
| looking | |||
| sorear | the PIR for this is | ||
| $Punique = new "Exception" | |||
| $Punique['type'] = 56 | 03:05 | ||
| throw $Punique | |||
| what does that look like in PAST? | |||
| I suppose I'll need to introduce a variable | |||
| pmichaud | no | ||
| not at all | |||
| writing | |||
| oh, wait, might need one, yes. | 03:06 | ||
| eh, feel free to just use :inline for now :) | 03:07 | ||
| sorear | How do I get $Punique and 56 in :inline? | ||
| Oh wait | |||
| pmichaud | %r gives you a unique register | ||
| sorear | this is ... AN EXPRESSION | 03:08 | |
| pmichaud | but you can also use $P0...$P9 with impunity | ||
| in NQP it'll have to be a statement, just like 'return' is a statement. | |||
| we can't implement 'next' and 'last' as functions | |||
| sorear | text here ' ~ Q:PIR{ %r = .CONTROL_NEXT } ~ ' go on | ||
| that's what I meant by expression | |||
| half of my brain was thinking in terms of Q:PIR{}, which you obviously can't build at run time | 03:09 | ||
| pmichaud | no | ||
| you can do .include and .CONTROL_NEXT directly in the :inline | |||
| (not necessarily pretty, but it can work, and it's more robust as well) | 03:10 | ||
| sorear | wouldn't that be ridiculously slow? | ||
| Coke | darbelo: I think the branch has a few tests that trunk doesn't have at this point, that's it. | 03:11 | |
| pmichaud | in what way? | ||
| (I don't disagree, I just want to know which 'slow' part you're referring to :) | |||
| sorear | pmichaud: opening except_types.pasm each time a loop control directive appears in the input | 03:12 | |
| pmichaud | it's a compile-time thing, probably isn't that slow. | ||
| I've been thinking of ways to get PIR directives into PAST/POST, though. | 03:13 | ||
| i.e., so that we could easily add them once at the beginning of the unit | |||
| sorear thinks about testing | 03:14 | ||
| pmichaud | haven't come up with much that I like yet (but also got sidetracked quickly wheN I worked on it last) | ||
| Coke | cotto: yes? | ||
| pmichaud | I've thought a little bit about adding a few runtime functions into PCT or HLL::Compiler, though. | 03:16 | |
| then it could be made to act like a function -- i.e. HLL::Compiler::next() | |||
| cotto | Coke, how involved is adminning parrot.org? | ||
| pmichaud | or even just into the HLL namespace. | 03:17 | |
| HLL::next() | |||
| HLL::last() | |||
| etc. | |||
| Coke | cotto: ETOOVAGUE | ||
| most of my day to day pain is discard mail spam | |||
| pmichaud | the downside of that approach is that it requires loading a compiler object which some libraries (that want to use 'last') might not need loaded otherwise | ||
| so, I think perhaps not. | 03:18 | ||
| Coke | next on the list? opening tickets for OSUOSL. | ||
| cotto | sounds fairly light | ||
| sorear isn't going to test all combinations of loop control / loop "that's PCT's job" | |||
| hmm | 03:19 | ||
| pmichaud | maybe a pasm:: namespace that makes it easy to get at the standard pasm constants. | ||
| e.g. pasm::CONTROL_BREAK | 03:20 | ||
| sorear | why must next/last/redo be statements? | ||
| bacek_at_work | .oO( There is control exceptions in kakapo already, afaik ) |
||
| pmichaud | sorear: well, you could try to specifically test for them as individual function names, I suppose. | ||
| but currently functions require parens | |||
| so someone who writes for ... { last; } is going to be a bit disappointed | 03:21 | ||
| it would need to be last() intead. | |||
| *instead | |||
| Coke | cotto: Why do you ask? | ||
| sorear | pmichaud: I have them in the prefix:<> category because I decided to use 'return' as my prototype | ||
| er wait | |||
| pmichaud | oh, yes, they can be prefix operators | ||
| sorear | THEY DON'T TAKE ARGUMENTS | ||
| pmichaud | whatever 'return' and 'make' use is probably good enough. | 03:22 | |
| term:sym<last> then. | |||
| (in Perl 6, they take arguments :-) | |||
| (in Perl 6, they _can_ take arguments :-) | 03:23 | ||
| sorear | perl 6 has a much more ... interesting ... grammar | ||
| pmichaud | yes... nqp strives for a bit of simplicity, but gives up some expressiveness in the process | 03:24 | |
| sorear | Confused at line 12, near "ok($runs =" | 03:25 | |
| pmichaud | hmmm. | ||
| sorear | I think it would be very awesome if this error message could be improved somehow. | ||
| sorear fires up the --parsetrace | |||
| pmichaud | I might be willing to let :pasttype<return> accept other exception types | 03:26 | |
| sorear | actually, it's time travel | ||
| the error occurred at the END of line 12 | |||
| normally, leaving off semicolons makes future statements not parse | 03:27 | ||
| in NQP? Previous ones! | |||
| pmichaud | then the exception throw would simply be PAST::Op.new( :pasttype<return>, :extype(52) ) or something like that | 03:28 | |
| would like a better name than :extype, and a better way to specify the exception numbers. | |||
| the last/next/redo exceptions could then even provide a payload of some sort | 03:29 | ||
| sorear: what was the original statement that gave the error? | |||
| dalek | p-rx: f5f582d | sorear++ | (3 files): Basic loop control (next/last/redo terms) |
||
| sorear | pmichaud: ok($runs == 3, "break works in while") | 03:30 | |
| $S1 = substr $S0, -1, 1 | |||
| $I0 = is_cclass .CCLASS_NEWLINE, $S1, 0 | |||
| hmm. | |||
| how to decompile this. | |||
| pmichaud | terms definitely do not belong at %list_prefix precedence, though. | 03:31 | |
| sorear | er | 03:32 | |
| Oops. | |||
| Change-my-mind-o | |||
| what's \\s ? | 03:33 | ||
| purl | \\ is probably one byte. you need \\ or \\ or something. | ||
| pmichaud | .CCLASS_WHITESPACE, iirc | ||
|
03:33
LoganLK joined
|
|||
| pmichaud | sorear++ # |%hash in NQP | 03:34 | |
| pmichaud updates wiki.github.com/perl6/nqp-rx/requests | 03:38 | ||
| sorear | Hey, I should add my TODO list to that. | 03:39 | |
| ...although, to be honest, I just knocked down about half of it. | 03:40 | ||
| dalek | p-rx: 379f1b2 | sorear++ | src/NQP/Grammar.pm: Fix a typo (pmichaud++) |
03:41 | |
| sorear | or I'll bounce them here first | ||
| - @*ARGS | 03:42 | ||
| - {$foo} in Q:PIR interpolates as the register number - no more find_lex | 03:43 | ||
| - hash literals | |||
| - pirflags on subs with traity syntax (method foo() is vtable("bar") { ... }) | 03:44 | ||
| pmichaud | for {$foo}, there'd still have to be a find_lex somewhere. | ||
| maybe not in the Q:PIR source itself, but in whatever Q:PIR causes to be generated | |||
| sorear | - signature-ish binding, so I can do the equivalent of foo :named :flat = "some_function"() | 03:45 | |
| pmichaud | yes, I've been wanting to add "is vtable('bar')" for a while also | ||
| sorear | pmichaud: not after tcurtis is done | ||
| pmichaud | oh? how would that work? | 03:46 | |
| do a find_lex at the beginning of a sub and use the register number? | |||
| that will fail if the lexical gets rebound somewhere with a store_lex | |||
| sorear | I don't know all the details, but it's the #1 thing I'm hoping to see from the local optimization work | ||
| Oh? | |||
| pmichaud | yes. | 03:47 | |
| sorear | .lex $P17, "$foo" | ||
| store_lex "$foo", $P23 | |||
| pmichaud | that works only in the block that declares the lexical. | ||
| sorear | are you saying that's not equivalent to $P17 = $P23 ? | ||
| pmichaud | it doesn't work in any nested scopes. | ||
| sorear | ah | ||
| pmichaud | in a nested block, there's no $P17 | ||
| sorear | well, still, same-block optimization would be a huge win | ||
| pmichaud | I don't know about 'huge', but it could be a bit of a win. | ||
| sorear | especially if we can also elide immediate blocks in if et al | 03:48 | |
| pmichaud | that helps a bit, yes. | ||
| sorear | current instr.: 'parrot;HLL;Compiler;_block311' pc 21362 (gen/hllcompiler.pir:135273808) | 03:53 | |
| really? | |||
|
03:53
brooksbp joined
|
|||
| sorear | oh, that's why last isn't working in HLL/Compiler.pm | 03:53 | |
| I need to bootstrap | 03:54 | ||
| pmichaud | no, it should bootstrap okay already | ||
| oh wait, you're right. | |||
| you'll need to bootstrap 'last' into nqp before HLL/Compiler.pm can use it. | |||
| sorear | no, the actual problem was that I forgot to git merge master | 03:57 | |
| the nqp tree I was building didn't even HAVE last | 03:58 | ||
| cotto | Getopt::Obj makes me feel like Italian food | ||
| pmichaud | only one CodeString left in nqp-rx :-) | 04:00 | |
| time to move .lineof around a bit | |||
| cotto points darbelo at runtime/parrot/library/Getopt/Obj.pir and hopes for the best | 04:01 | ||
| ;) | |||
| sorear | ok. I have 'interactive' decompiled. | ||
| dalek | p-rx: c5482a9 | pmichaud++ | (2 files): Switch HLL::Actions to use find_codepoint opcode, bump PARROT_REVISION. |
04:03 | |
| rrot: r46567 | cotto++ | branches/ops_pct (2 files): [getopt] add support for '--foo buz' args |
04:27 | ||
| rrot: r46568 | cotto++ | branches/ops_pct/compilers/opsc/ops2c.nqp: [opsc] update ops2c.nqp to use Getopt::Obj for args processing |
|||
| sorear | interesting, interactive is only 30% shorter in PIR | 04:38 | |
| *NQP | |||
| I was expecting more like 80% | |||
|
04:41
snarkyboojum joined
|
|||
| sorear | pmichaud: Under what circumstances can a slurpy arg be null? | 04:44 | |
| pmichaud | sorear: I don't think it can any more. | ||
| in earlier versions of parrot, a slurpy arg could be null if no arguments were passed to fill it | |||
| sorear | I would love nqp:: stuff if it meant that I could stop remembering pir::isa__IPS | 04:45 | |
| signatures should be in a symbol table, not my mind | |||
| pmichaud | the pir:: opcodes don't generally require the signature | ||
| I don't know why people keep insisting on always adding them | 04:46 | ||
| pir::isa(...) works just fine | |||
| sorear | because it feels like 50% of the time the op I want doesn't have a filed signature | ||
| pmichaud | then we should add them to PAST if we can | ||
| sorear | and PAST is beyond the reach of trivial fixability | ||
| pmichaud | not for that :-) | 04:47 | |
| it's a simple table | |||
| at the beginning of PAST/Compiler.pir | |||
| every so often I do a grep for 'pir::' to see what people ahve been putting signatures on | |||
| sorear | how about generating a warning if you apply a signature to a known opcode? | 04:48 | |
| also, there could be nicer errors if your passed arguments don't match up with the signature | |||
| pmichaud | it would only be a warning if the signature matched the one on record | ||
| oh, if your passed arguments don't match, it coerces | |||
| the signature is coercions, not type checks | 04:49 | ||
| sorear | I'm talking about stuff like pir::isa($x, $y, $z) | ||
| silently generates invalid PIR | |||
| we don't have a singature for pir::null | |||
| pmichaud | I'm looking at the nqp sources now, I only see three case of pir:: that have signatures | 04:50 | |
| sorry, five | 04:51 | ||
| pir::defined and pir::clone definitely don't need the sigs | |||
| sorear | we don't have a signature for printerr | ||
| we don't have a signature for getstdin | 04:52 | ||
| sorear removes all but the two needed signatures from HLL::Compiler.interactive | |||
| pmichaud | but yes, the use of nqp:: would preclude specifying a signature. | 05:00 | |
| i.e., nqp:: would have pseudo-opcodes that map to primitive ops on the underlying vm | 05:01 | ||
|
05:03
kurahaupo joined
|
|||
| sorear | Is Eval the runtime presentation of a loaded .pbc? | 05:03 | |
| What's the idiomatic way to declare a bunch of variables in NQP? | 05:04 | ||
| pmichaud | my $var1; my $var2; my $var3; | ||
| falling asleep here -- will work more tomorrow. | 05:05 | ||
| sorear | ok. | 05:06 | |
| 'night | 05:07 | ||
| cotto | night | ||
| dalek | rrot: r46569 | cotto++ | trunk (13 files): [cage] fix most (all?) misuses of "it's" |
05:16 | |
| rrot: r46570 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir: [pct]: Add a few more pirop signatures to PAST::Compiler. |
|||
| p-rx: c3b0e83 | sorear++ | src/stage0/ (3 files): Rebootstrap so REPL stuff can use |% and last |
05:28 | ||
| rrot: r46571 | cotto++ | trunk (2 files): [getopt] apply getopt fix from branch to trunk |
05:32 | ||
| plobsing | sorear: Eval should be the runtime presentation of a loaded PBC. Currently they're not quite the same. | ||
| cotto | Interesting. Syncing ops_pct with trunk causes a segfault while building nqp-rx. | 05:46 | |
| specifically the settings | |||
| dalek | rrot: r46572 | cotto++ | branches/ops_pct/compilers/opsc/ops2c.nqp: [opsc] remove an unused sub |
05:48 | |
| sorear | Should I regard ops_pct as the shape of things to come re. our build system? | 06:03 | |
| More NQP, less P5? | |||
| cotto | svn-bisect++ | ||
| plobsing | my understanding is that there is a desire to move away from P5 and become more bootstrapped, but it's not a terribly high priority | 06:05 | |
|
06:06
dngor joined
|
|||
| sorear | How many damage will I do if I break outer_ctx? | 06:06 | |
| It's an undocumented argument to PCT::HLLCompiler.eval | |||
| cotto | plobsing, that's correct afaiu | 06:07 | |
| sorear wants to implement a different and better version and move Rakudo to it | |||
| kea and partcl-nqp, the only NQP users listed on [Languages], don't use it | 06:11 | ||
| Nevermind, it's specced in a PDD | 06:12 | ||
| plobsing | cotto: from your work on opsc, how hard would it be to make a preprocessor that replaced {{{ PIR snippet }}} with the equivalent ops C code strung together? | 06:13 | |
| plobsing wants to rip out IMCC's optimizer and reimpliment using something-not-C | 06:14 | ||
|
06:15
snarkyboojum joined
|
|||
| sorear | plobsing: How about you rip it out and not replace it? | 06:16 | |
| It's not like it works, and anything it does, tcurtis' POST optimizer can do better | |||
| plobsing | sorear: POST != Parrot | 06:17 | |
| plobsing likes winxed for example | 06:18 | ||
| also, the .lex optimization you mentioned earlier seems well suited to a PIR optimizer | |||
| another thing - the level 1 optimizations mostly work. I implemented a test target that ran -O1 and it only fails 2 tests. | 06:19 | ||
| bacek_at_work | plobsing, next step after merge opsc will be create more robust grammar for ops. | ||
|
06:20
hercynium joined
|
|||
| bacek_at_work | plobsing, ideally (from my pov) - extend NQP to support typed vars. | 06:20 | |
| cotto | 46564 is the culprit | ||
| plobsing | I want to be able to naively substitute strung-together ops into arbitrary C | ||
| sorear | bacek_at_work: you want typed vars in NQP? | ||
| my int $foo? | |||
| bacek_at_work | sorear, yes | ||
| sorear | what are you going to do with them? | ||
| plobsing | changing the ops grammar will not help me with that | ||
| IMCC is one place where I'd love to do some of the datastructures in a more parrot-y language. Another is most PMC functions which really don't need to be in C (but other parts of the PMC might) | 06:22 | ||
| bacek_at_work | sorear, emit C code :) | 06:25 | |
|
06:25
aukjan joined
|
|||
| bacek_at_work | plobsing, I'm going to develop pir_pct (in near future, possibly in this century :) | 06:26 | |
| sorear | typed vars in NQP is on my TODO list | ||
| I have no idea if I'll be able to implement them without completely rebuilding PAST | |||
| but I'll try! | |||
| bacek_at_work | If you can just stash type into PAST::Var node I can use it for generating C. | 06:27 | |
| sorear | You. Want to. WHAT. | ||
| bacek_at_work | generate C | ||
| for ops | |||
| from nqp-like language | 06:28 | ||
| instead of | |||
| current | |||
| bloody-macro-substituted-perverted-C | |||
| check src/ops/*.ops file | |||
| I want to get rig of this "language" and use more sane one. And nqp looks like good candidate for it. | 06:29 | ||
| sorear | Then we'll be able to define grammars in ops. | ||
| bacek_at_work | Or I can develop full grammar for this C-like crap. | ||
| sorear, exactly. | 06:30 | ||
| Top-level skeleton already done in ops_pct branch. | |||
| Next step - ops guts. | |||
| sorear | Do you realize what "rewrite ops in NQP" is the first step of | 06:31 | |
| plobsing | bacek_at_work: I'm sure pir_pct will be great when finished, but I like the immediate benefits I'd see with gradual changes to IMCC. | ||
| also the parts I want to fix (mostly optimizer), you could re-use | |||
| actually, I'd like to try to decouple the optimizer from IMCC if that's at all possible | 06:32 | ||
| sorear | as long as POST::Compiler uses pir, imcc ought to be in C | 06:34 | |
| plobsing | sorear: when working in some parts of Parrot I find the C required is basically verbose, strung-together ops. | 06:36 | |
| bacek_at_work | sorear, not really. | ||
| sorear | I hope you two realize that you're following the LoritoRoadmap to the letter | 06:37 | |
| bacek_at_work | sorear, I know :) ops_pct was first step for Lorito. | ||
| plobsing | Actually, I don't necessarily want a full lorito for this. Just something good enough. | ||
| Let's call it Lorito-Bar to indicate it isn't a full lorito ;-) | 06:38 | ||
| bacek_at_work | "Lorito *" is current naming conventions :) | 06:41 | |
| plobsing | but the x-bar means not x, which is what I'm trying to communicate | 06:42 | |
| anyways, I'd like to be able to let more people at the optimizer (cause it is a cool thing), and I see the best way to do that is by divorcing it from IMCC and putting it into a parrot language | 06:44 | ||
| also maybe I'd have a fighting chance of understanding it then | 06:45 | ||
| sorear | Make it understand POST::Op, so that we can reuse it from PCT | ||
| Without having to use the PIR parser | |||
| plobsing | my vision is for it to understand ops, so PIR|PASM|PBC. POST/PCT level optimizations occur at a different level and you can do different things with them. | 06:47 | |
| I'd also like to be able to take a sub from a running parrot and run an optimization pass on it and replace it. | 06:51 | ||
| cotto | That's pretty important for a nice hotspot-like jit. | ||
| plobsing | yes, but at a parrot bytecode level. | 06:53 | |
| dalek | rrot: r46573 | cotto++ | trunk/src/string/charset/ascii.c: revert r46564, which caused some issues for ops_pct |
06:54 | |
| cotto | Nice. ops2c time is down from ~90s to ~60 after syncing. Now all I have to do is make it not be extravagantly broken. | ||
|
06:59
Essobi joined
|
|||
| cotto | nm. opsc is extravagantly broken in without the merge | 07:02 | |
| me-- | |||
|
07:04
clinton joined
07:06
snarkyboojum_ joined
07:14
LoganLK joined
07:21
iblechbot joined
|
|||
| bacek | cotto, how broken is it? | 07:23 | |
| o hai, btw | 07:25 | ||
|
07:30
snarkyboojum left
|
|||
| cotto | not too badly. I've a subset of it. | 07:30 | |
| Happily the failures indicated legitimate brokenness. | 07:31 | ||
| sorear has an epiphany | |||
| cotto has a galeon | 07:32 | ||
| plobsing has a lynx | 07:36 | ||
| JimmyZ has a ff | 07:37 | ||
| bacek wanna cookie | |||
| cotto | flash or normal? | 07:38 | |
| bacek | flash | 07:41 | |
| fire | |||
| KILL ALL HUMANS | |||
| purl | Don't START me. or www.killallhumans.org | ||
| bacek | oops, ww | ||
| cotto | That's a disappointing site. | 07:42 | |
| I didn't feel threatened at all. | 07:43 | ||
| bacek | cotto, there is some brokeness in Makefile in ops_pct | ||
|
07:44
dngor joined
|
|||
| cotto | where? | 07:44 | |
| bacek | make bootstrap-ops will invoke "make -C" at the end. | ||
| gnu make | |||
| purl | hmmm... gnu make is too cool. or at www.gnu.org/software/make/make.html | ||
| cotto | Is that what's causing the dynops to be rebuild? | 07:46 | |
| bacek | I think it's related | ||
| And on my box dynops aren't built properly.... | |||
| But self-hosted ops are still good (fsvo) | 07:47 | ||
| cotto, found problem with dynops | 08:02 | ||
| cotto | ship it! | 08:03 | |
| bacek | r46574 | 08:05 | |
| So, Makefiles are clean from blame | 08:07 | ||
| hmm. Not really. Some dependencies are broken... | 08:08 | ||
| And fixed | 08:12 | ||
| cotto, your turn to write mail to parrot-dev@ with warning about merging it back to trunk :) | 08:13 | ||
| sorear | #142917 0x08048bd1 in main () | 08:16 | |
| stack overflow! segv | |||
| in the GC, even | |||
| cotto | kaboom | ||
| dalek | rrot: r46574 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm: Always add parsed op into $past<ops>. Fix for building dynops. |
08:17 | |
| rrot: r46575 | bacek++ | branches/ops_pct/t/compilers/opsc/06-opsfile.t: Update test to be little bit more flexible in terms of number of parsed ops. |
|||
| rrot: r46576 | bacek++ | branches/ops_pct/compilers/opsc/Rules.mak: Fix dependencies for ops2c to avoid rebuild it constantly. |
|||
| bacek | sorear, where did you get it??? | ||
| sorear | bacek: marking an exception | ||
| bacek | sorear, sigh... | 08:18 | |
| cotto | bacek, opsfile was legitimately failing | ||
| bacek | cotto, why??? | ||
| cotto | I fixed it. | ||
| sorear | I'm hacking lexical persistence. This is very much circularity saw territory; I'm not going to file a bug until I know I didn't break it | ||
| cotto | we weren't careful enough about honoring the optable and skiptable | 08:19 | |
| bacek | cotto, ah.. Then revert my commit. | ||
| sorear | actually... it's marking a LOT of exceptions | ||
| all with the same message though | 08:20 | ||
| exception -> callcontext -> positionals -> cell -> another exception | |||
| now... why would an exception have an exception in its callcontext | 08:21 | ||
| cotto | bacek, shouldn't the nqp settings branch be merged back upstream before ops_pct gets merged into trunk? | 08:24 | |
| bacek | not mandatory. But, afaiu, pmichaud doesn't dislike my setting library. | 08:25 | |
| May be we should rename into nqp-library though. | 08:26 | ||
| To reduce confusion and lower expectations :) | |||
| sorear | Is trace output buffered? | 08:27 | |
| If Parrot segfaults while traces are on, will I see all the traces? | |||
| cotto | is the other option to include your forked version in trunk? | ||
| bacek | cotto, yes. | ||
| cotto | all committed | 08:29 | |
| moritz | good morning | ||
| t/library/pg.t fails test 13 | |||
| bacek | moritz, o/ | ||
| moritz, TT#1611 | 08:30 | ||
| ? | |||
| purl | For you maybe. | ||
| cotto | more like good night | ||
| ;) | |||
|
08:30
fperrad joined
|
|||
| moritz | yep | 08:31 | |
| dalek | rrot: r46577 | cotto++ | branches/ops_pct/t/compilers/opsc (7 files): [opsc] check exact number of ops parsed, use installed opsc.pbc, be explicit about testing core ops |
08:33 | |
| rrot: r46578 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm: [opsc] be more careful about honoring the skiptable (aka ops.skip) |
|||
| rrot: r46579 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/File.pm: [opsc] make :$core required, minor cleanup |
|||
| bacek | cotto, I personally dislike 3 $past<ops>push($op)... | ||
| but we can refactor it later :) | 08:34 | ||
|
08:35
fperrad_ joined
|
|||
| cotto | make it work, make it work well | 08:35 | |
| also, it still needs a backwards-compatibility wrapper script to avoid the deprecation penalty | 08:37 | ||
| Heh. I was just about to make that same commit. | 08:38 | ||
| bacek | You can't beat speed of light! | 08:39 | |
| cotto | apparently not | 08:41 | |
| bacek hijacking ops2c.pl | |||
| cotto | hijack it with FIER | 08:42 | |
| I'm excited to rip all that old perl code out. | 08:43 | ||
| bacek | r46581 :) | 08:44 | |
| cotto | ops2c.pl gets called with an extra "C" in front as a holdover from when we had several runcores. | 08:46 | |
| the hijacked version should take car eof that | |||
| bacek | ops2c ignores it :) | ||
| cotto | that's true | 08:47 | |
| bacek | But fixed anyway | 08:48 | |
| purl | rumour has it fixed is handy | ||
| sorear | Are you supposed to call pop_eh in exception handlers? | 08:49 | |
| bacek | sorear, yes | ||
| dalek | rrot: r46580 | bacek++ | branches/ops_pct/MANIFEST.generated: Install nqp-settings.pbc |
08:50 | |
| rrot: r46581 | bacek++ | branches/ops_pct/tools/build/ops2c.pl: Hi-jack ops2c.pl to invoke ops2c$(EXE) |
|||
| rrot: r46582 | bacek++ | branches/ops_pct/tools/build/ops2c.pl: Improve hijacking slightly. |
|||
| sorear | bacek: NQP-rx doesn't. | ||
| in { 1/0; CATCH {} } no pop_eh is called | |||
| bacek | sorear, it's bad... | ||
| moritz | sorear: 1/0 in Perl 6 constructs a Rat | 08:51 | |
| it doesn't throw an exception | |||
| sorear | moritz: besides the point; I am talking about NQP-rx | ||
| moritz | ok | ||
| :-) | 08:52 | ||
| sorear | which most definitely *does* die | ||
| cotto | bacek, r46583 | ||
| sorear | bacek: I've golfed my NQP-rx REPL segfault down to 6 lines of pir with mismatched push_eh | ||
| bacek: alternatively, 1 line of NQP | |||
| bacek | cotto, write your mail to parrot-dev@ :) I'll rename "nqp-settings" into "nqp-library" | 08:53 | |
| dalek | website: khairul++ | Instrumenting Parrot | ||
| website: www.parrot.org/content/instrumenting-parrot | |||
| bacek | sorear, than it's bug in nqp... | ||
| sorear | > { 1/0; CATCH { 1/0 } } | ||
| Segmentation fault (core dumped) | |||
| Is this a "don't do that - ajh | |||
| ah | |||
| cotto | I'll have to do that tomorrow. I need to sleep and I want to be able to say that I've tested Rakudo. | ||
| bacek | cotto, I'm testing rakudo right now. | ||
| cotto | bacek++ | 08:54 | |
| sorear | bacek: odd that it works fine except when the exception handler throws an exception. | ||
| cotto | post here when it works ;) and I'll try to send something off tomorrow morning | ||
| Last time I sent off a message without enough sleep I accidentally announced the 2.0 release. | 08:55 | ||
| cotto tries not to read khairul++'s post | |||
| bacek | cotto, make test passed :) | ||
| cotto | w00t | ||
| bacek | And go to bed now :) | 08:56 | |
| cotto | good idea | ||
| night | |||
| bacek | night | ||
| cotto | can you test partcl too? | 08:57 | |
| bacek | cotto, which one? | ||
| I've got -nqp version | 08:58 | ||
| cotto | old 'n' busted | ||
| the one with dynops | |||
| it's the only other hll with them | |||
| (that I know of) | |||
|
08:58
snarkyboojum joined
|
|||
| dalek | TT #1631 created by sorear++: Exception handler throwing exception in NQP-rx causes segfault | 09:01 | |
| TT #1631: trac.parrot.org/parrot/ticket/1631 | |||
| bacek | cotto, partcl builds | 09:02 | |
| flawless victory | |||
| purl | FINISH HIM | ||
| bacek | purl, good girl! | 09:03 | |
| purl | :) | ||
| cotto | that's all that can be expected | ||
| nopaste? | 09:05 | ||
| purl | i think nopaste is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or paste.scsys.co.uk or www.extpaste.com or gist.github.com or App::Nopaste or codepeek.com/paste/ or (: pastebot) | ||
| nopaste | "cotto" at 192.168.1.3 pasted "points to cover in ops_pct post to parrot-dev" (16 lines) at nopaste.snit.ch/20541 | ||
| cotto | bacek, I'm off to bed. lmk if I need to cover anything that's not in that outline. | 09:06 | |
| good night | |||
| bacek | cotto, looks good. Sleep well | ||
| dalek | rrot: r46583 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm: [opsc] tighten up skiptable/optable logic a bit |
||
|
09:15
iblechbot joined
|
|||
| sorear | sadly, pmichaud is wrong | 09:24 | |
| Parrot does not keep callcontexts around after a sub returns | |||
| somebody must have fixed that memory leak | |||
| I can think of a sneaky way to get at the callcontext (it involves tailcalls and getinterp) | 09:27 | ||
| but there's no Sub.set_outer_ctx | |||
| anyways, it is not currently possible to implement lexical chaining without causing the PIR to be different | 09:28 | ||
| so I can't make pmichaud happy | |||
| hopefully, he'll redefine happy tomorrow | |||
| sorear out | |||
|
09:43
rurban_ joined
09:45
TiMBuS joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33811), fulltest) at r46583 - Ubuntu 10.04 amd64 (gcc with --optimize) | 10:07 | |
|
10:10
snarkyboojum joined
10:18
preflex joined
10:47
skv joined
11:19
aukjan joined
11:20
snarkyboojum_ joined
|
|||
| dalek | rrot: r46584 | rblasch++ | trunk/config/auto/va_ptr/test_c.in: [config] Make va_ptr probe work with MSVC and -O2. |
11:34 | |
| rrot: r46585 | NotFound++ | trunk/src/string/api.c: nano-optimization in Parrot_str_find_index |
11:50 | ||
| kudo: 70795ca | (Martin Berends)++ | tools/test_summary.pl: add a second report example to tools/test_summary.pl |
11:55 | ||
|
12:06
mariano__ joined
|
|||
| Coke suggests "Dorito" instead of "Lorito *". mmmm, dorito. | 12:14 | ||
|
12:19
JimmyZ joined
12:27
whiteknight joined
12:28
ruoso joined
|
|||
| whiteknight | good morning, #parrot | 12:33 | |
|
12:37
whiteknight_ joined
|
|||
| whiteknight | purl msg JimmyZ sorry about the typo in the blog. Fixed this morning. | 12:37 | |
| purl | Message for jimmyz stored. | ||
| JimmyZ | good localtime, whiteknight | 12:38 | |
| dalek | rrot: r46586 | NotFound++ | trunk/t/op/string.t: test a index usage that triggers a bug in r46564, cotto++ |
12:39 | |
| rrot: r46587 | NotFound++ | trunk/src/string/charset/ascii.c: fixed version of r46564, simplify mixed_cs_index, cotto++ |
|||
| Coke | another svn-- # (non svn-aware diff shows all $Id lines as different) | 12:41 | |
|
12:43
whiteknight_ joined
|
|||
| Coke | I am getting a failure building git-latest rakudo with parrot-latest trunk. | 13:04 | |
| nopaste | "coke" at 192.168.1.3 pasted "rakudo failure." (25 lines) at nopaste.snit.ch/20543 | 13:11 | |
|
13:15
GodFather joined
|
|||
| dalek | kudo: 7e0aa33 | moritz++ | build/Makefile.in: [build] missing pod2man should not be fatal |
13:16 | |
|
13:22
parthm joined
|
|||
| moritz | FYI, I see the same build problems as Coke | 13:26 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33814), fulltest) at r46587- Ubuntu 10.04 amd64 (g++) | 13:29 | |
|
13:29
atrodo joined
|
|||
| NotFound | I think I made a mistake in r46587. One minute.... | 13:30 | |
| Try r46588 | 13:38 | ||
|
13:45
plobsing joined
|
|||
| dalek | rrot: r46588 | NotFound++ | trunk (2 files): fix for bug introduced in r46587 and tests for its failure conditions |
13:46 | |
| PerlJam | NotFound: obiwan error, eh? | 13:50 | |
| NotFound | Interesting spelling | 13:52 | |
| Coke | NotFound: ayup, fixed. Danke. | 14:06 | |
| (esp. for adding the tests!) NotFound++ | |||
| ok. trunk is now building rakudo for me in 3m13s. | 14:09 | ||
| I think that's up there with the best from codestring. | |||
| NotFound | Coke: Have you measured memory usage? | 14:11 | |
| mikehh got to reboot - bbiab | |||
| Coke | NotFound: is there an easy way to do that other than watching top? | 14:13 | |
| ulimit doesn't seem to work on OSX 10.6.3, so I can't use that... | |||
| hey, feather's back. | |||
| NotFound | I think there is some tool, but just does the equivalent of using top and record max values. | 14:15 | |
| PerlJam | Coke: my build took ~9.5 minutes (I guess it's an improvement, but since it takes so long, I've never really paid attention to the exact timing) | 14:21 | |
| Coke | NotFound: on feather, with 0.35G /virtual/ limit (boom if you go over), built fine. | 14:28 | |
| trying lower. | |||
| NotFound | Not so bad. | ||
|
14:31
bubaflub joined
|
|||
| Coke | 1/4G is not enough. | 14:32 | |
| (core.pm is a pig.) | |||
|
14:37
joeri joined
14:41
mikehh joined
|
|||
| Coke | partcl's segfault - if I swap out load_bytecode "runtime/tcllib.pbc" with s/pbc/pir/, it actually runs my :anon :load sub from the .pir file, while the .pbc just segfaults. | 14:51 | |
| NotFound | Coke: partcl.googlecode.com/svn/trunk ? | 14:56 | |
| Coke | partcl? | 14:59 | |
| purl | partcl is tcl on parrot or code.google.com/p/partcl | ||
| Coke | partcl is also git://github.com/partcl/partcl.git | ||
| purl | okay, Coke. | ||
| Coke | (the home page is there. the code is no longer.) | ||
| NotFound | pbc_dump runtime/tcllib.pbc - Segmentation fault (core dumped) | 15:04 | |
| dalek | TT #1632 created by coke++: segfault in Parrot_ImageIO_shift_string | 15:07 | |
| TT #1632: trac.parrot.org/parrot/ticket/1632 | |||
| NotFound | pbc_checker says a fixup is invalid. | 15:08 | |
|
15:10
Andy joined
|
|||
| Coke | ... we have a pbc_checker!? =-) | 15:13 | |
| NotFound | examples/tools | 15:14 | |
| Coke | ah, not installed? | ||
| NotFound | Coke: is just an experiment that I update sometimes. | ||
| Coke | ah. | 15:15 | |
| ah, .cpp. ah well. =-) | |||
| NotFound | It's written in C++, which doesn't help get more people interested. | ||
| Coke | fwiw, I just compiled it, ran it, and saw the FAILED error. | 15:24 | |
| cotto | notfound++ | 15:28 | |
|
15:37
davidfetter joined
15:53
gpw joined
|
|||
| cotto | lorito? | 15:56 | |
| purl | lorito is "little parrot" in spanish or examples/embed/lorito.c or xkcd.org/707/ | ||
| cotto | L1? | ||
| purl | i guess L1 is a hypothetical language that would be used to implement PMCs and PIR-visible ops so that they could all be easily jitted. or irclog.perlgeek.de/parrot/2009-04-21#i_1083550 or rt.perl.org/rt3/Ticket/Display.html...txn-471982 or magical unicorns and flying puppies. | ||
| cotto | That definitely needs to be in a better place. | 15:57 | |
| and I don't mean dead | |||
| nm. It's just at L1Recap | 15:59 | ||
| pmichaud, ping | 16:12 | ||
| pmichaud | cotto: pong | ||
| cotto | pmichaud, what do you think is an eta for adding a setting to nqp? | 16:13 | |
| and how similar will it be to bacek's? | |||
| pmichaud | likely to be very similar to bacek's | 16:14 | |
| I'm not entirely sure it belongs with nqp itself, though. I suppose we could start it in the nqp repo as a short-term measure | |||
| cotto | ok. I'm most concerned that it'll be somewhere. I'm not invested in it being any place in particular. | 16:15 | |
| thanks | |||
| would it live as a separate project or in Parrot if it's not in nqp? | 16:17 | ||
| pmichaud | I could see it living in any of those three places (nqp, separate project, or in Parrot) | 16:19 | |
| there's not a clear "obvious" answer. | |||
| if putting it into nqp would make it easier to have it included in parrot, then that probably makes sense. :) | 16:20 | ||
| (and that probably does make sense) | |||
| let's go ahead and plan that it'll go into nqp. I'll start cherry picking things into the nqp-rx master repo later today | |||
| (my schedule for today has dramatically cleared in the last 90 minutes) | |||
| cotto | great! | 16:21 | |
| Coke | pmichaud: added a deprecation notice for CodeString. | 16:27 | |
| (pushing people towards the opcode, PCT, and StringBuilder) | |||
| dalek | TT #1633 created by coke++: CodeString PMC deprecated | 16:29 | |
| TT #1633: trac.parrot.org/parrot/ticket/1633 | |||
| pmichaud | Coke++ | ||
| dalek | rrot: r46589 | coke++ | trunk/DEPRECATED.pod: Add note for CodeString PMC. |
16:32 | |
| sorear | pmichaud: Could you take a look at backlog from 7 hours ago? I've run into a bit of a snag | 16:35 | |
| nopaste? | |||
| purl | nopaste is, like, nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or paste.scsys.co.uk or www.extpaste.com or gist.github.com or App::Nopaste or codepeek.com/paste/ or (: pastebot) | ||
| sorear | what's this channel's paste-service? | 16:36 | |
|
16:36
theory joined
|
|||
| darbelo | tools/dev/nopaste.pl | 16:36 | |
| pmichaud | sorear: yes, I saw a bit of the backlog. There's a small change that needs to be made to the Sub PMC. | ||
| Coke | nopaste.snit.ch is fine | 16:37 | |
| (the nopaste script uses that.) | |||
| pmichaud: suggested replacement for unique() ? | 16:38 | ||
| pmichaud | PAST::Compiler already has a 'unique', so I just used that one. | ||
| Coke | ok. I'm looking at updating, e.g. compilers/data_json, which is using TGE/PGE. | 16:39 | |
| pmichaud | PCT::Node has one also. | ||
| Coke | guess I can call out to PAST::Compiler ... or convince someone to update it to PCT. | ||
| NotFound | I've tested now on i386 (previously was on x64). Fails the same way, and pbc_checker also shows the same problem. | 16:40 | |
| pmichaud | not sure why I have two of them (plus we had a third in CodeString) | ||
| sorear | pmichaud: excellent | ||
| nopaste | "sorear" at 192.168.1.3 pasted "golfed test, should it help" (19 lines) at nopaste.snit.ch/20546 | 16:41 | |
|
16:42
brooksbp_ joined
|
|||
| pmichaud | sorear: it'll be another hour or so before I can get back to looking at the subroutine stuff | 16:43 | |
| sorear | I'm in no hurry. | 16:46 | |
|
16:47
rurban_ joined
|
|||
| cotto | bacek, message about ops_pct sent to parrot-dev | 16:48 | |
| Coke | ... cotto ... you wound me. =-) | 16:49 | |
| cotto: the old nqp is gone. | 16:51 | ||
| cotto | It's well on its way out then. ;) | 16:52 | |
| time for work | |||
| darbelo | Hmm. I think I know what is causing JimmyZ's build problems... | 16:55 | |
| pmichaud | break time here... bbiaw | ||
| NotFound | Uhhhh... What is supposed to be a "enum_fixup_none" ? | 17:10 | |
| cotto_work | looks like t/compilers/opsc/common.pir gets nuked in ops_pct by test-clean. | 17:11 | |
| dukeleto | win 4 | 17:14 | |
| dukeleto slaps forehead | |||
| cotto_work | win7 is way better | ||
| davidfetter | i hear it's gotten up to "tolerable for an hour" | 17:27 | |
| cotto_work | I can totally tolerate it. | 17:29 | |
| darbelo | Perhaps off topic, but Rakudo builds on amd64 with less than .5G RAM | 17:30 | |
| cotto_work | Rakudo building with <.5G ram is never off topic. | ||
| moritz | rakudo building at all is never off topic :-) | 17:31 | |
| darbelo | Well, on i386 it's commonplace. It's allways been amd64 that has trouble. | ||
| Mind you, core.pm is still a pig but at least now it's a pig that fits through the door ;) | 17:34 | ||
| NotFound | Coke: sorry, but the problems shown by pbc_checker where pbc_checker bugs X-) | 17:37 | |
| Coke | NotFound: ha! | 17:38 | |
| cotto_work | test that sucker | ||
| Coke | dukeleto: someone on #perl6 mentioned ESC-4 instead. whee. | ||
| NotFound | The pbc looks correct but pbc_dump segfaults. The problem seems to be in the unpacking. | 17:40 | |
|
17:43
gaz joined
|
|||
| Coke | I wonder if I'm still using pbc_merge | 17:45 | |
| (nope) | |||
| japhb | Am I correct that most of trac.parrot.org/parrot/browser/bran...ettings.pm is from Plumage? | 17:47 | |
| cotto_work | japhb, bacek would know that | 17:48 | |
| dukeleto | japhb: sure does look like it | ||
| japhb | I don't mind in the slightest, but if it was a manual copy-and-paste, that loses the VCS history that would show a copyright path. Anyone object to putting a comment or something in there indicating where it came from? | 17:50 | |
| Coke | cotto: build in branch warns: | ||
| # ... in 0.456355810165405 seconds | |||
| # Ops parsed 0.457345962524414 | |||
| NotFound | Not sure, but looks like while unpacking a pmc it contains a constant string that isn't unpacked yet. | ||
| japhb | pmichaud, ping | 17:53 | |
| cotto_work | Coke: that's just informative | ||
| Coke | cotto_work: that is not the word I would use. =-) | 17:54 | |
| dalek | rrot: r46590 | NotFound++ | trunk/examples/tools/pbc_checker.cpp: minor fixes and clean hard tabs in example pbc_checker |
||
| dukeleto | japhb: also, that code has tests (that I wrote ;) ) in the plumage repo | 17:56 | |
| japhb: i wonder if they have any tests in the parrot core repo? | |||
| japhb | dukeleto, nodnod | ||
| dukeleto | japhb: the same issue came up with Tapir recently. fperrad seemingly copy+tweaked Tapir and added it to Parrot core, but I don't know the status of anything now | ||
| japhb | Was Tapir copyright-assigned to PaFo? | 17:57 | |
| dukeleto | japhb: he seems to have added features, but I am unsure what to do with the Tapir github repo, which has essentially been forked into the Parrot core repo | ||
| japhb: no, it was similar to the setup of Rakudo | |||
| japhb: i had copyright with Artistic 2.0 | 17:58 | ||
| moritz | copyright != license | ||
| japhb | It should not have been copied in sans copyright statement, at the very least. | ||
| And good manners dictates talking to you first, I would think. | 17:59 | ||
| Because even though the license may allow it, no reason to be ... well, I can't think of a better word than perhaps "rude". | |||
| dukeleto | japhb: yes, i agree | 18:00 | |
| moritz: yes, you are right | |||
| japhb | (At the very least, because you own one project and commit in the other.) | ||
|
18:00
iblechbot joined
|
|||
| dukeleto | i was thinking that Tapir would live in ext/ similar to rakudo | 18:01 | |
| nqp, i mean | |||
| japhb | That makes total sense to me. That was the long-term plan for Plumage as well. | ||
| I knew what you meant. :-) | |||
| NotFound | Coke: with r46591 tclsh dies gratefully instead of segfaulting. Do you feel better now? ;-) | 18:05 | |
| Coke | I would raise this issue on the parrot-dev list. We cannot just copy code we don't own into the repo and claim it. | ||
| NotFound: probably not. =-) | |||
| japhb | Coke, good thinking. | ||
| Coke | (The whole point of the Foundation is to shepherd this sorts of things.) | 18:06 | |
| well, a major one, anyway. | |||
| NotFound | $ ./tclsh | 18:07 | |
| Reference to constant not yet unpacked 581 | |||
| Coke | I suspect bacek's string mucking. | 18:09 | |
| NotFound | Looks like a imageio problem. | 18:10 | |
| dalek | rrot: r46591 | NotFound++ | trunk/src/pmc/imageio.pmc: add a sanity check in imageio shift_string |
18:11 | |
| rrot: r46592 | gerd++ | trunk/lib/Parrot/Docs/Section (2 files): Add the PCT-tutorial to the HTML-documentation |
|||
| cotto_work | Do I gather correctly that nqp-settings in bacek's branch may have been improperly taken from plumage? | 18:15 | |
| japhb | cotto_work, I didn't know about it until I saw an email referring to a new NQP setting a little while ago. As this is something I'm definitely interested in, I clicked through, and went, "Um ... didn't I write this?" | 18:18 | |
| dalek | a: 0d616ca | fperrad++ | lua/lua51.pir: s/emit/append_format/ |
18:19 | |
| japhb | parrot-dev email sent | 18:26 | |
| dalek | rrot: r46593 | gerd++ | trunk/MANIFEST: Add the file lib/Parrot/Docs/Section/PCT_Tutorial.pm to MANIFEST |
18:27 | |
|
18:37
Essobi left
|
|||
| cotto_work | It sounds like it's an issue that needs to be resolved but not necessarily a blocker to the ops_pct merge. | 18:54 | |
|
19:03
davidfetter joined
19:13
eternaleye joined
|
|||
| pmichaud | 17:53 <japhb> pmichaud, ping | 19:26 | |
| japhb: pong | |||
| japhb | pmichaud, I was wanting to find out what the deal was with the "NQP setting", from your perspective. | 19:29 | |
| pmichaud | I was planning to look at it in detail this afternoon/evening | ||
| my intent at this point is to create an NQP setting of some sort that can be distributed with NQP | 19:30 | ||
| japhb | Clearly, bacek would like to use Plumage's NQP utilities, which is where I come in. :-) | ||
| pmichaud | cotto_work: ping | ||
| cotto_work | pong | ||
| pmichaud | cotto_work: would it be easy to determine which of the setting features you're wanting/relying on? | ||
| cotto_work | It wouldn't take long | ||
| dukeleto | japhb++ # recent parrot-dev email | 19:31 | |
| pmichaud | I might want to start with a "minimal setting" in nqp (sufficient to support ops2c) and then let people expand it from there | ||
| japhb: it's not at all my intent to take code without credit. | 19:32 | ||
| japhb | dukeleto, thanks | ||
| pmichaud, oh, I definitely didn't think so. | |||
| pmichaud | japhb: my best guess at this point is that there will be a setting library directory in the nqp-rx repo where people can contribute setting library methods and/or functions | ||
| japhb | My parrot-dev email was about correcting the process in general, not because I object to the code reuse. | ||
| Fair enough. | 19:33 | ||
| pmichaud | this would then appear in the stage0 directory, which is how it would ultimately appear in parrot | ||
| japhb | And feel free to copy as desired from Plumage. I just wanted a heads-up, and an "upstream" link in a comment somewhere. | ||
| pmichaud | I'm also wondering if it would be better done as multiple setting files so that a person could obtain, say, *just* the IO enhancements without also pulling in all of the others. | 19:34 | |
| Coke | I think the ext/ dir is a fine place to put such things. (and we can clearly say that anything in there is taken from their respective upstream location and is under their license, etc.) | ||
| pmichaud | and we could have a master "give me everything" module that pulls in everything :-) | ||
| Coke | pmichaud: nice to have, but lumping in together is fine for now, IMO. | ||
| pmichaud | Coke: okay, good to know | 19:35 | |
| Coke | if it's easy, sure. if it's more work, meh. | ||
| pmichaud | it's more on the easy side | ||
| cotto_work: where's the best place for me to look for ops2c sources to figure out what's needed and what isn't? | 19:36 | ||
| cotto_work | compilers/opsc | ||
| pmichaud | perfect | ||
| in trunk, or a branch? | |||
| cotto_work | branch | ||
| ops_pct | 19:37 | ||
| pmichaud | okay | ||
| this will be my task for the evening, then. | |||
| cotto_work | thanks | ||
| pmichaud | so that by tomorrow there's an nqp settings library in parrot. | ||
| cotto_work | wheeee! | ||
| pmichaud | japhb: I'm going to pull in (and modify) code I think appropriate for the setting into the nqp-rx repository. Feel free to later augment it with whatever copyright or authorship credits you feel appropriate | 19:38 | |
| commit bits will be liberally given :) | 19:39 | ||
| japhb | OK then. :-) | ||
| pmichaud | if someone wants to post this plan as an update to parrot-dev, that would be welcome. (I have to leave to pick up kids from school right now.) | 19:40 | |
| japhb | Writing one | 19:44 | |
| purl | Writing one is trivial | ||
| japhb | sent | 19:50 | |
|
19:51
eternaleye joined
|
|||
| darbelo | japhb: ping | 19:55 | |
| japhb | pong | 19:56 | |
| or more precisely: | 19:57 | ||
| darbelo, pong | |||
| darbelo | Plumage development seems to have stalled bit without you. Do you have any big plans on that are we could help you with? | 19:58 | |
| japhb | darbelo, there are two sides to that: | ||
| 1. I have the first (of hopefully several) grant proposals in with PaFo to work on heavy parts of Plumage. It has apparently passed inspection by the board, and is now off to be shopped to potential donor companies. | 19:59 | ||
| darbelo | Nice. | ||
| japhb | 2. There are some things that can be done by others with only guidance by me. | 20:00 | |
| cotto_work | very nice | ||
| japhb | 2a. The test suite needs to be expanded. Considerably. Work is ALWAYS welcome there. | ||
| cotto_work | It'll be sweet to have someone paid to work on Parrot stuff. | ||
| japhb | 2b. There are only a few remaining bits necessary to make Plumage *itself* installable. These last bits just need to be done. | 20:01 | |
| Hmmm, I can't remember 2c at the moment, but if need be, I'll search my notes. | 20:02 | ||
| cotto_work, It will be sweet to be able to call Parrot my job. :-) | |||
| darbelo | How up to date is TASKS ? That used to be the place to look for LHF. | ||
| japhb | Dunno, let me look | ||
|
20:03
ash_ joined
|
|||
| bacek | Good morning, #parrot. | 20:03 | |
| cotto_work | good morning bacek | 20:04 | |
| darbelo | clock? | ||
| purl | darbelo: LAX: Thu 1:04pm PDT / CHI: Thu 3:04pm CDT / NYC: Thu 4:04pm EDT / LON: Thu 9:04pm BST / BER: Thu 10:04pm CEST / IND: Fri 1:34am IST / TOK: Fri 5:04am JST / SYD: Fri 6:04am EST / | ||
| bacek | yes, yes. 6AM. | 20:05 | |
| darbelo | 6AM and on IRC. | ||
| Robots this days... | |||
| cotto_work | I was awake at 6:0x this morning. I don't know why. | ||
| ash_ | bacek: are you in Australia? or that time zone? | 20:08 | |
| bacek | ash_, Sydney | ||
| ash_ | cool, so is it friday there? | ||
| darbelo | Australias is in the future. | 20:09 | |
| ash_ | I graduate tomorrow, well, i walk tomorrow, i guess I have graduated since i am done with my finals now... | 20:10 | |
| japhb | darbelo, of the items listed in TASKS, most are still valid. The dependency stuff I'll be handling in the first grant work, and the NQPUtil.nqp stuff will probably be radically altered by pmichaud tonight. | ||
| darbelo, Other than that, I'd say have at it. | 20:11 | ||
| Hmmm. I should probably add my 2a and 2b above into TASKS. | |||
|
20:12
iblechbot joined
|
|||
| pmichaud | btw, nqp folks might want to note that we now have flattening hashes |%hash and last/next thanks to sorear++ | 20:15 | |
| I'll be working on closures tonight as well. | 20:16 | ||
| japhb | w00t! | 20:17 | |
| I've been out of the game way too long, clearly. | |||
| pmichaud, is there a dev list for nqp-rx, so that we can get updates like this in email, rather than having to backlog the channel? | 20:18 | ||
| ash_ | neat, pmichaud++ sorear++ | ||
| Coke | japhb: github rss feed. | ||
| github.com/perl6/nqp-rx/commits/master.atom | 20:19 | ||
| japhb | *sigh* Guess I finally have to bite the bullet and start using a real RSS feed reader .... | 20:22 | |
| darbelo | Hmm. Am I the only one getting substr_s_i_i_s failures in plumage? | 20:23 | |
| Coke | darbelo: you mean replace_s_s_i_i_s ? ;) | ||
| darbelo | I mean "compiler returned NULL ByteCode './src/lib/Plumage/NQPUtil.pir' - The opcode 'substr_s_i_i_s' (substr<4>) was not found. Check the type and number of the arguments" | ||
| pmichaud | japhb: I could also post updates to my twitter account, or we could use a 'nqprx' twitter account | ||
| Coke | darbelo: yes. that opcode was removed; you need to change it to foo = replace foo, a, b, 'c' | 20:24 | |
|
20:24
LoganLK joined
|
|||
| pmichaud | japhb: fwiw, I really like Google's reader | 20:25 | |
| darbelo | Coke: Not as simple as that. It's generated code ;) | 20:26 | |
| Coke | (I like google reader because I can use the same reader everywhere, even on my phone.) | ||
| pmichaud | Coke: yes, same here as well | ||
| and I can use it from internet kiosks and th elike | |||
| although I haven't tried Google Reader from my (Google) phone yet | 20:27 | ||
| hmmmm | |||
| pmichaud grabs his phone | |||
| japhb | darbelo, That file needs to be regenerated from the NQP and re-checked in. It's a dependency-loop breaker so that configuration can succeed. | ||
| pmichaud, twitter updates++ | |||
| I've so far been not a huge fan of using google's applications. I like to control my toolset. | 20:28 | ||
| May have to eventually start using the web apps though, if I can't find a good solution for keeping state across my devices. | 20:29 | ||
| pmichaud | japhb: yeah, that's one of the things I like about the google apps (more) | 20:30 | |
| japhb: once I was able to convince my wife that any documents (itineraries, to-do lists, etc.) she wanted me to look at and update would be best done in Google Apps.... our life got a lot easier. | |||
| before that it was always "which computer has the latest copy of that file?" "What was it called again?" "Are you sure this is the latest up-to-date version?" | 20:31 | ||
| japhb | I've often thought a perfect solution (for me) would be to be able to host my own locked-down colo box somewhere that had *private* servers for various syncing engines (Weave, etc.). But a lot of tools that I want to use don't have/support private servers yet. | ||
| For a while, just having my life in a git repo on my home server worked fine. But as I go mobile (and don't allow incoming connections to me home net), that starts to fray at the edges. | 20:32 | ||
| GeJ | Good morning everyone. | ||
| japhb | o/ | ||
| Coke | ~~ | ||
| japhb | darbello: Did regenerating fix your problem? | 20:33 | |
| darbelo | japhb: I know a guy who does that (keep everything in a remote box). He carries an underpowered netbook and a 3g modem. | ||
| japhb: Apparently not. I'm looking at the nqp source now. | 20:34 | ||
| japhb | I just grew up in an era (and with friends) that make me really not like having my personal data on a high-profile public system. | 20:35 | |
| Gives me the heebie-jeebies just thinking about it. | |||
| darbelo | Hah! Q:PIR{}s. | ||
| japhb | And yet, can't get away from it and still get job done, sometimes. :-( | ||
| Ah, sorry. | 20:36 | ||
| darbelo | japhb: I got that one, but got bit by "OS is a dynpmc now" :) | 20:38 | |
| japhb | BAH | ||
| darbelo | Yeah, we've been slacking. | ||
| japhb | :-) | 20:39 | |
| pmichaud | hmmm, reader on the nexus works pretty well :-) | ||
| japhb | In one of the planned grant applications is something about a 'smoke-world' tool (or command) that basically tries to build and smoke every package it can find. Something to run overnight before Parrot releases and branch merges. :-) | 20:40 | |
| darbelo | japhb++ | 20:45 | |
| dukeleto | japhb++ | 20:50 | |
| bubaflub | dukeleto: i noticed you've got a PL/Parrot macports issue, may i also recommend getting PL/Parrot into Homebrew? | ||
| dukeleto | bubaflub: please do, can you add that as an issue? | 20:53 | |
| bubaflub | dukeleto: sure thing | ||
| dalek | TT #1634 created by coke++: segfault in Parrot_Class_init_pmc | 20:54 | |
| TT #1634: trac.parrot.org/parrot/ticket/1634 | |||
| bubaflub | dukeleto: done | 20:56 | |
| dukeleto | bubaflub++ | 21:01 | |
| bubaflub | one of these days i'm going to remove mac ports and go completely to home brew; but my work laptop requires a lot of stuff and i don't want to bork it just yet | 21:02 | |
|
21:12
kurahaupo joined
|
|||
| bacek | japhb, (for the record) irclog.perlgeek.de/parrot/2010-02-27#i_2044517 | 21:21 | |
| japhb, also, history was lost by accident. You can check original commits on 1st and 2nd of March. | 21:24 | ||
| japhb, but yes, I didn't update CREDITS file (as I should) | |||
| japhb | bacek, Thank you for pointing that out. I was (and still am) quite interested in bringing stuff from Plumage into Parrot, so that in itself was never the problem. I was asking for 1) Notice when it was about to happen (That was many weeks ago. :-), and 2) A note/comment in the copied code of where it was copied from. That's all. I hope I didn't give the impression that I was mad at you. I was more concerned that we get this right in | ||
| the long term than any issues with this particular case. | |||
| Ah, accidental loss of history is understandable. Thank you for trying to get it right in the first place. :-) | 21:25 | ||
| bacek | japhb, it was something like this github.com/bacek/nqp-rx/commit/ce2a...50667d10cc | 21:27 | |
|
21:27
Whiteknight joined
|
|||
| bacek | I just have to revert revert merge commit... | 21:27 | |
| japhb | Ah, I see, the plumage reference was in the commit message. | ||
| Whiteknight | you better revert the revert correctly, or I'll have to revert you | ||
| bacek | japhb, yes. | 21:28 | |
| japhb | Hmmm. We should probably make it a policy to include such in the actual file itself (like I said, in a comment or doc section). People rarely pay attention to commit messages after they slip into the past, and certainly a tarball snapshot (like with a release) would not contain that information. | 21:30 | |
| bacek | "japhb, but yes, I didn't update CREDITS file (as I should)" | 21:31 | |
| pmichaud | bacek: did you see my plan for nqp setting earlier in the backlog? | 21:32 | |
| bacek | pmichaud, nope. | ||
| Is it about using git submodules? | |||
| pmichaud | irclog.perlgeek.de/parrot/2010-05-13#i_2327289 | 21:33 | |
| no, I'm not planning git submodules at the moment | |||
| basically, I'll start cherry-picking stuff from your setting into the master branch later tonight, and set up the scripts so they're correctly copied into parrot ext/nqp-rx | |||
| bacek | pmichaud, sounds good. | 21:34 | |
| pmichaud | people can then make updates to the master branch | ||
| and we'll also start a test suite | |||
| bacek | t/settings/ | ||
| I started it already | |||
| :) | |||
| pmichaud | yes, I see that as well. | ||
| I'll take from there. | |||
| cotto_work | It's a great day. | 21:35 | |
| pmichaud | as far as credits go, I'm going to worry mainly about code and hope that you/japhb/others will fix up credits as you deem appropriate | ||
| bacek | I can create clean branch with cherry-picked commits for settings if it will help | ||
| pmichaud | bacek: no, I plan to make some code modifications along the way anyway | ||
| it's easy enough for me to grab stuff out of your repo | |||
| as it is now :-) | 21:36 | ||
| bacek | pmichaud, ok. Almost interesting commits were on 01/03/2010-02/03/2010 | ||
| pmichaud | good deal. | ||
| I'm also not too concerned about maintaining the commit history on these files... should I be? | |||
| japhb | *Some* of the utilities from Plumage have tests already that you can take. | ||
| pmichaud | I was just going to grab pieces of the file as I did the review | ||
| so, here's an important question... | 21:37 | ||
|
21:37
kurahaupo joined
|
|||
| bacek | pmichaud, (commit history) Not really. Just recommit it. | 21:37 | |
| pmichaud | should we develop a test harness in nqp, or just use the one that is in parrot? ;-) | ||
| japhb | Well, the one in Parrot was taken from Tapir, right? | ||
| pmichaud | e.g., something along the lines of Test::More | 21:38 | |
| japhb | Ah, that part. | ||
| purl | ah, that part is store dependent | ||
| pmichaud | or rakudo's Test.pm | ||
| I'm inclined to make one for nqp. | |||
| (based on Rakudo's to some extent) | |||
| anyway, feel free to add comments. I have to shuttle kids from activity to activity for a short while. | 21:39 | ||
| japhb | Sounds good to me. Plumage just use's Parrot's Test::More because it's guaranteed to be there. | ||
| (And it sanity tests Test::More, so clearly at some point I thought about the possibility of switching test modules) | 21:40 | ||
| pmichaud | okay, wfm | ||
| afk for a while | |||
| Whiteknight | wfm = write the f*ing manual? | 21:43 | |
| bacek | japhb, gist.github.com/400498 - any comments/objections? | 21:44 | |
| wfm is works for me | |||
| Whiteknight | ah | ||
| bacek | purl, wfm? | ||
| purl | wfm is, like, works for me (for lazy folks) | ||
|
21:45
rbuels left
|
|||
| japhb | bacek: Aside from your email being incorrect and a tiny grammar nit ("on Plumage" should be "for Plumage" or "in Plumage"), looks fine by me. Didn't dukeleto have his hand in that code as well? | 21:48 | |
| bacek | He already in nqp CREDITS. | ||
| cotto_work | purl, bacek? | 21:49 | |
| purl | bacek is THE MANIAC or some sort of magical coding robot | 21:50 | |
| cotto_work | bacek is also probably not pmichaud@pobox.com | ||
| purl | okay, cotto_work. | ||
| bacek | japhb, I've updated gist. Looks better? | 21:51 | |
| cotto_work, bah! :) | |||
| cotto_work | it's true | ||
| japhb | Yes, thank you bacek. | 21:52 | |
| Too bad we don't have a hugbot in here | |||
| cotto_work | I'm really happy to see this getting straightened out so quickly. | ||
| bacek | cotto_work, it was my fault. | 21:55 | |
| And it's fixed now - github.com/bacek/nqp-rx/commit/9253...c43d0d90da | |||
| cotto_work | It would have some up one way or another. | ||
| btw, why's tapir in parrot? | 21:56 | ||
| bacek | Anyway, looks like we can merge ops_pct really soon. | ||
| japhb | bacek++ | ||
| cotto_work, that's the other item to be resolved. | |||
| cotto_work | very yes | ||
| bacek | msg pmichaud CAN I HAZ NQP COMMIT BIT? | 21:59 | |
| purl | Message for pmichaud stored. | ||
| bacek did update lolcode to nqp-rx :) | |||
| cotto, btw, we should start thinking about nominating "ops" language. | 22:00 | ||
| cotto_work | What do you mean by "nominating"? | ||
|
22:00
dukeleto joined
|
|||
| cotto_work | like for an award? ;) | 22:00 | |
|
22:00
PerlPilot joined
|
|||
| bacek | My current preferences - slightly patched nqp to support typed variables. | 22:01 | |
| cotto_work | oic | ||
| for implementing ops | |||
|
22:01
Util joined
|
|||
| bacek | I just don't want to implement C parser. | 22:01 | |
| cotto_work | That's because you're sane. | ||
| It's possible but it'd be a huge time sink. | |||
| japhb | Clearly a personality flaw. | ||
| If you're sane after staring into the heart of the beast, something is wrong. :-) | 22:02 | ||
| Tene | bacek: is there a PEG of C? Allison has been working on a PEG parser. | ||
|
22:02
dalek joined
|
|||
| cotto_work | ohai dalek | 22:02 | |
| bacek | Tene, "PEG"? | 22:03 | |
| Tene | en.wikipedia.org/wiki/Parsing_expression_grammar | ||
| more generally, it might be useful to find a grammar for C in some other grammar language, and then translate that. | 22:04 | ||
| bacek | Tene, it's not so easy to translate it. And I don't see any advantages of writing ops in "C". | 22:05 | |
|
22:05
pmichaud joined
|
|||
| Tene | Ah. I should have read more scrollback. | 22:05 | |
| bacek | And they are currently requires not only parsing but at least working macro-substitution. | 22:06 | |
| Tene | I was just glancing here while waiting for something to run at work, and just saw "C grammar" without looking at the context. :) | ||
| darbelo | Ops in "C" can't really reuse other ops easily. That shoud be addressed in whatever language we end up using. | ||
| cotto_work | My inclination would be to define Lorito and demonstrate that it's usable to implement a few key ops by implementing them directly in it, then building the ops hll on top of that. | 22:07 | |
| bacek | we still need "C emitter" for boostraping. | 22:09 | |
| cotto_work | yes | ||
| darbelo | Sure, but PCT can support 'pluggable' emiters by stage swapping. | 22:10 | |
| cotto_work | It'll be easiest to define Lorito and build the Lorito to C translator and get it tested, then build HLL stuff on top of that. | 22:11 | |
| imo | |||
| my picture of how it all fits together is admittedly fuzzy | 22:12 | ||
| seen chromatic | |||
| purl | chromatic was last seen on #parrot 1 days, 17 hours, 21 minutes and 58 seconds ago, saying: The only interesting part of the merge is a series of conflicts on NQP-rx. [May 12 04:50:38 2010] | ||
| darbelo | OTOH, a big part of our ops will just be a NCI call to libparrot in the start... | ||
| bacek: Have you given any thiught to calling C from 'Augmented NQP'? | 22:15 | ||
| bacek | darbelo, I'm not going to. | ||
| irclog.perlgeek.de/parrot/2010-05-13#i_2325357 | |||
| darbelo, I just want to generate C from it | 22:16 | ||
| (as first step) | |||
| darbelo | bacek: Yes, but a lot of out ops are just calls to supporting functions in libparrot. | 22:17 | |
| inline op chopn(out STR, in STR, in INT) :base_core { $1 = Parrot_str_chopn(interp, $2, $3); | |||
| } | |||
| cotto_work | Is it possible to subclass nqp in such a way? | ||
| a la Perl 6 | |||
| bacek | cotto_work, we don't need to subclass nqp (assuming it has typed variables). We need new stage in PCT::Compiler | 22:18 | |
| darbelo, it's "lorito ops side of story" | |||
| cotto, PAST::Compiler.to_c | 22:19 | ||
| msg sorear Can you put youself into nqp CREDITS? | 22:20 | ||
| purl | Message for sorear stored. | ||
| cotto_work | turn a past into C? Sounds interesting. | ||
| bacek | cotto_work, yes. It was original plan. | ||
|
22:20
davidfetter joined
|
|||
| darbelo | Okay, I'm missing a step here. | 22:20 | |
| bacek thinking about putting "ops syntax" into DEPRECATED.pod | 22:23 | ||
| cotto_work | btw, t/compilers/opsc/common.pir is getting clobbered in ops_pct by test-clean where it nukes t/compilers/*/*.pir. What's the best fix for that? | ||
| darbelo | replace the first '*' with the right expansion | 22:24 | |
| Most likely several t/compilers/<compilernamehere>/*.pir lines | 22:25 | ||
| pmichaud | nqp eventually hopes to be able to provide int/num/str to provide access to I, N, and S registers directly | ||
| cotto_work | {data_json|imcc|...} seems to work | 22:26 | |
| pmichaud | i.e., my int $x := 3; means that $x corresponds to a Parrot $In register | ||
| major blocker/difficulty there is that parrot lexicals can only be PMCs at the moment. | |||
| cotto_work | darbelo, can you fix that? | 22:27 | |
| bacek | pmichaud, can we at least support types in grammar? | ||
| pmichaud | depends on what you mean by 'types' | 22:28 | |
| there's a bit of a challenge here in that perl 6's type specifiers are constraints, not coercions | |||
| so, technically, my int $x := 2.0; ought to throw an exception, not silently convert the 2.0 into an integer 2 | 22:29 | ||
| darbelo | cotto_work: I'm on it. | ||
| pmichaud | but if we just wanted to parse (and otherwise ignore) typenames for now, we could potentially do that. | ||
| bacek | pmichaud, I'm going to use nqp for parsing purpose only (atm) | ||
| pmichaud, yes. This is exactly what I want :) | 22:30 | ||
| and Parrot's only multi-dispatch | |||
| pmichaud | bacek: I'll look into it. :) | ||
| bacek | and pony | ||
| cotto_work | bacek: you want it in the PAST too, don't you? | ||
| bacek | cotto_work, PAST is part of parsing from my point of view :) | 22:31 | |
| pmichaud | well, PAST allows any sort of arbitrary flags to be hooked onto the nodes | ||
| (not highly recommended, but it's there if needed) | |||
| to me, PAST is part of semantic analysis, not parsing. | |||
| parsing produces a parse (match) tree. semantic analysis/actions then produce the ast. | 22:32 | ||
| bacek | How hard/reasonable is to implement multi-dispatch in nqp? E.g. class Foo { multi method bar( <type> $arg ) }. | ||
| pmichaud | I've been wanting to look into that, yes. | 22:33 | |
| bacek | (With direct mapping to parrot) | ||
| pmichaud | part of the challenge is being able to recognize types. | ||
| bacek | <ident> ** '::'? | ||
| pmichaud | well, subnames are also idents | 22:34 | |
| at the moment nqp does tend to treat any bareword as a type, yes. | |||
| (which is why we don't have listop parsing) | 22:35 | ||
|
22:39
Limbic_Region joined
|
|||
| bacek | afk # shoppi^W $dayjob | 22:42 | |
| cotto_work | I need to write up a full Lorito plan so we can point at it and say that it's wrong instead of pointing at ideas in our heads and saying that they're wrong. | 22:45 | |
| darbelo points at the ideas in cotto's head. | 22:49 | ||
|
22:50
eternaleye joined
|
|||
| darbelo | There is some serious overdeletion going on in test-clean... | 22:55 | |
| cotto_work | yarly | 22:57 | |
| darbelo | Seriously, *stabs* files? | ||
|
22:58
Psyche^ joined
|
|||
| cotto_work | What are those? That sounds familiar. | 22:58 | |
| darbelo | Excecutable debug format. | ||
| What gcc used before DWARF2. | 22:59 | ||
| From the 3.X.X days. | |||
.oO( That's "today" on my platform ) |
23:00 | ||
| Maybe it's a leftover from the ehn the exec runcore was alive ? | 23:01 | ||
| cotto_work | likely enough | 23:02 | |
|
23:07
joeri joined
23:11
snarkyboojum joined
23:12
eternaleye joined
|
|||
| cotto_work | Isn't OpenBSD moving to LLVM? | 23:20 | |
| darbelo | Not until it supports VAX ;) | ||
| GeJ | aren't they moving toward PCC? | 23:27 | |
| darbelo | GeJ: Technically, yeah. But pcc is still not there yet, even on i386 it still has some codegen issues. (Or had, last I checked.) | 23:29 | |
| cotto_work | The PCC wiki, while functional, has all the design prowess I'd expect from a highly technical bunch of OpenBSD hackers. | 23:33 | |
| darbelo | It renders fine on lynx ;) | 23:35 | |
| cotto_work | I'm sure that's important. | ||
| darbelo | And I think the main guy behind pcc is a NetBSD hacker :) | 23:37 | |
| dalek | tracwiki: v5 | actown++ | TreeUnit | 23:42 | |
| tracwiki: Fixed mscgen example. You might want to remove it. | |||
| tracwiki: trac.parrot.org/parrot/wiki/TreeUni...ction=diff | |||
| tracwiki: v6 | actown++ | TreeUnit | |||
| tracwiki: Removed mscgen example. Moving to its own page. | |||
| tracwiki: trac.parrot.org/parrot/wiki/TreeUni...ction=diff | |||
| tracwiki: v1 | actown++ | Mscgen | |||
| tracwiki: Working example of mscgenplugin. | |||
| tracwiki: trac.parrot.org/parrot/wiki/Mscgen?...ction=diff | |||
| cotto_work | actown? | 23:43 | |
| sorear | pmichaud: I'm back | 23:48 | |
| pmichaud: Did you get to look at anything re. lexical persistence in subs? | 23:49 | ||
| pmichaud: I don't really have a problem with coercions in NQP. NQP can't be a subset of Perl6 forever (and it isn't, anyway - pir::) | 23:50 | ||
| darbelo | Crap. Forgot to dcommit. Again. | 23:51 | |
| cotto_work: How does r46594 look? | 23:52 | ||
| cotto_work | checked-in files don't get nuked so I'm happy | 23:53 | |
| dalek | rrot: r46594 | darbelo++ | branches/ops_pct/config/gen/makefiles/root.in: Make the cleanup rules for t/compilers* a bit more specific to avoid deleting we don't want deleted. |
23:57 | |
|
23:58
LoganLK joined
|
|||