|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets. Set by moderator on 22 June 2010. |
|||
| dalek | rrot-linear-algebra: 1f0d9f8 | darbelo++ | setup.pir: Fix for PLA setup.pir by NotFound++ |
00:00 | |
| darbelo | Oh, crap. Did I just commit to the wrong branch? | 00:02 | |
| cotto_work | If you did, we'll have to point and laugh at you. | 00:03 | |
| tcurtis | mikehh: thanks. By the way, do you know how to fix nopaste.snit.ch/21525 ? | 00:06 | |
| mikehh: It's from trunk. | |||
| mikehh | tcurtis: looking at it | 00:08 | |
| purl | i guess looking at it is not reading it | ||
| darbelo | Amusingly, the change works with both a recent and an old parrot. So the commit is techincally correct :) | 00:12 | |
| NotFound++ | |||
| whiteknight | darbelo: don't worry about branches. Trying to target 2.3.0 with PLA is a losing proposition | 00:13 | |
| nobody else does it | |||
| darbelo | I do however need to start paying more attention to what branch I'm working on. | ||
| whiteknight: Well, the fix is now in teh parrot-head branch as well. | 00:14 | ||
|
00:14
Coke joined
00:15
rtward joined
|
|||
| whiteknight | darbelo++ | 00:16 | |
| I will probably just delete tha branch | |||
| darbelo | It's NotFound's work. I just committed blindly :) | ||
| mikehh | tcurtis: it did not fail the test for me | 00:21 | |
| darbelo | whiteknight: Thinking about that a little. Shouldn't we have 'master' be the branch that tracks the parrot HEAD? And keep secondary 'mainteinance' branches for parrot releases? | 00:26 | |
| Or maybe tags... | |||
| whiteknight | darbelo: probably. I'm giving up tracking any particular release for now since it is too much of a hassle | ||
| darbelo | If we track HEAD the we'll run on 2.6 when it's released. We branch on the release day and do whatever 'release engineering' we need to do on the branch and tag a release when we're done. | 00:28 | |
| tcurtis | mikehh: neither am I now. Odd. | ||
| darbelo | Meanwhile we can keep master working after all of the world-shaking deprecations hit trunk. | ||
|
00:29
Hunger joined
|
|||
| darbelo | But I'm not sure we need to go through all that effor for the sake of our few (none?) users yet. | 00:29 | |
| mikehh | tcurtis: had it before to me - usually because I failed to do a make realclean properly, but not always | 00:39 | |
| tcurtis | mikehh: I think that's it. It disappeared when I did a realclean. | 00:40 | |
| whiteknight | darbelo: yeah, that's as good a plan as any. | 00:44 | |
| Ideally I do want to be targetting specific stable releases, because it gives us a stable and reliable platform to develop for | 00:45 | ||
| having to track trunk AND add new features is a pain, especially for a small team | |||
| dalek | rrot: r47792 | tcurtis++ | branches/gsoc_past_optimization (7 files): POST::Pattern and subclasses added. Not yet tested. |
00:47 | |
| bacek_at_work | tcurtis++ # Optimisations ftw! | 00:48 | |
| cotto_work | +1. I'm looking forward to seeing how those can be integrated with PIRATE. | ||
| and by +1 I mean tcurtis++ | 00:49 | ||
| tcurtis | bacek_at_work: The pattern classes are implemented. The transform method is not(or at least not usefully), since it still uses PAST::Transformer. | ||
| cotto_work | bacek_at_work, is there any reason postshortcut is named that instead of "post"? | 00:50 | |
| bacek_at_work | cotto_work, stagename == PCT::HLLCompiler.method. And "post" already taken. | ||
| tcurtis, look forward for full implementation :) | 00:51 | ||
| cotto_work | I ask because I want to type less when looking at post output. | ||
| maybe "postx" or "post2" | 00:53 | ||
| darbelo | pst is shorter :) | 00:54 | |
| cotto_work | "" is shortest | ||
| though I don't know how --target= would work | 00:55 | ||
| tcurtis | darbelo: not shorter, just offset a few hours. | ||
| darbelo lives in the PAST. | |||
| darbelo decides to investigat the porpect of future nutrition. | 00:56 | ||
| cotto_work | and perhaps a new keyboard | ||
| bacek_at_work | cotto_work, feel free to change it to something else. | ||
| cotto_work makes evil bikeshedding plans | |||
| darbelo | Time go get some dead cow and a new keyboard. (not made of dead cow) | 00:57 | |
| sorear | bacek_at_work: why can't you override a method? | ||
| bacek_at_work | sorear, how? | ||
| cotto_work | I've seen a candy keyboard, but not one of meat. | ||
| sorear | create a new method with the same name | ||
| bacek_at_work | sorear, than parrot pick old one. | 00:58 | |
| sorear | that sounds like a bad nqp bug | ||
| bacek_at_work | sorear, why? | 00:59 | |
| it compiles down to .namespace [PCT;HLLCompiler]; .sub "post" :method | |||
| tcurtis | bacek_at_work: You're in ".namespace [PIR;Compiler]", not ".namespace [PCT;HLLCompiler]". | 01:00 | |
| sorear | yes... but methods in subclasses should pretty much always be overriding superclass ones | ||
| if you don't have that, it's a stretch to call them classes at all | |||
|
01:00
abqar joined
|
|||
| bacek_at_work | hmm... I'll try tonight to change postshortcut to post ( if cotto will not beat me ). | 01:01 | |
| afk # meetings... | |||
| cotto_work | I will. | ||
| I'm just about out of here. | 01:02 | ||
| tcurtis | sorear: it's definitely possible to override methods in NQP and get the correct behavior. | ||
| cotto_work | clock/. | 01:06 | |
| clock? | |||
| purl | cotto_work: LAX: Wed 6:06pm PDT / CHI: Wed 8:06pm CDT / NYC: Wed 9:06pm EDT / LON: Thu 2:06am BST / BER: Thu 3:06am CEST / IND: Thu 6:36am IST / TOK: Thu 10:06am JST / SYD: Thu 11:06am EST / | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34556), fulltest) at r47792 - Ubuntu 10.04 amd64 (gcc with --optimize) | 01:11 | |
| tcurtis | cotto_work: I got distracted and changed postshortcut to post. | 01:15 | |
| cotto_work | Great! | 01:19 | |
| dalek | r: 777ddad | (Tyler Leslie Curtis)++ | (8 files): Renamed postshortcut stage to post. |
01:20 | |
| cotto_work | tcurtis++ | 01:22 | |
| and now we know your sekrit middle name | |||
| tcurtis | cotto_work: that's okay. 1/6 of it was already in my email address. | 01:26 | |
|
01:32
plobsing joined
|
|||
| ash_ | ping: plobsing | 01:36 | |
| purl | plobsing is part of our sanity injection framework or probably canadian or mailto:plobsing@gmail.com | ||
| plobsing | ash_: pong | ||
| so as I understand it, your framebuilder is now working more or less, but with new-style signatures. | 01:38 | ||
| Have you had the chance to implement tests for your new signatures? | 01:39 | ||
| ash_ | not yet, i am working to get all of the old tests passing | 01:40 | |
| i realized i had a problem with returns, anything larger than an int was being lost | |||
| (doubles didn't work), but i think i have that worked out now, just rebuilding and testing currently | |||
| plobsing | sweet | ||
| ash_ | then i'll work on some new signatures that are not in the core thunks or extra thunks set of tests | 01:41 | |
| plobsing | so your current framebuilder accepts old-style signatures as well? | ||
| ash_ | yeah | 01:42 | |
| well, almost all of the old style still means the same thing | |||
| i catch stuff like 2, 3, 4 and map those to short, int, long | |||
| we can throw in deprecation warnings easily if we see them | 01:43 | ||
| plobsing | so there aren't any ambiguous cases? | ||
| ash_ | i just mixed the old stuff into the new stuff for now, so it won't break anything | 01:44 | |
| not currently | |||
| but i haven't implemented i8, i16, i32, i64 | |||
| plobsing | i32 seems particularily problematic | ||
| ash_ | (actually, currently all of the postfix modifiers are not being parsed yet, but for now, those are all optional things | 01:45 | |
| ) | |||
| tcurtis | ash_: perhaps require some sentinel character at the beginning of the signature that wouldn't be valid in the old-style signatures to indicate that you want new-style? | ||
| plobsing | we may have to do that, if only during transition | 01:46 | |
| s/if/even if/ | |||
| ash_ | thats fine by me, i know the old one didn't allow spaces, but i ignore them, you could just put a space in front | 01:47 | |
| is there some way of doing a runtime deprecation warning? | 01:48 | ||
| plobsing | there is a facility for deprecated ops. you could look into how that works. | ||
| ash_ | alright, maybe i can put in a warning if you use an old style declaration | 01:49 | |
| plobsing | I think it might just be Parrot_warn with a PARROT_WARNINGS_DEPRECATED_FLAG warnclass | 01:50 | |
|
01:50
japhb joined
|
|||
| tcurtis | There's a Parrot_warn_deprecated C function. | 01:50 | |
| bacek_at_work | tcurtis, you can put yourself into parrot's CREDITS file. Than dalek will properly report your nick for github commits. | 01:51 | |
| ash_ | i am not using the ARGIN, ARGOUT, ARGMOD macro's on any of my arguments currently, but I can add those, I also pass all of the style tests (last i checked) | 01:52 | |
|
01:52
snarkyboojum joined
|
|||
| ash_ | plobsing: if i get the tests working in the next day or so, is there any planning we should do for the llvm stack frame builder? | 01:52 | |
| one thing that we can do, eventually, with the llvm stack frame builder is remove the places where NCI is used internally and maybe some of the other cases where NCI is used so we don't have to use libffi to make those calls because they can be slower than just directly building the calls | 01:53 | ||
| plobsing | I'm not really sure. We have a libjit one, we have a libffi one, llvm should be pretty cookie cutter. | 01:54 | |
| ash_: that is the approach taken by the libjit framebuilder | |||
| it is easier | |||
| so yes, do it | |||
| ash_ | i know they did that in macruby, at one point they used libffi to call obj-c from ruby, then they replaced all of the libffi uses with llvm stuff and eventually removed libffi all together | 01:55 | |
| 'we have a libffi one' what did you mean there? libffi stack frame builder? | |||
| plobsing | yeah, well what you've done works as though it were a frame builder | 01:56 | |
| ash_ | oh, yeah, thats true, i didn't realize that | ||
| i think the only thing that worries me about llvm is that its all in C++, it has a C interface, but i am not sure if it does all the same stuff the C++ one does | 01:57 | ||
| plobsing | well, if you are separating things up properly, and you really should be, the C++ should be able to sit in a separate file. | 01:58 | |
| also, you could have it as an external library to start off so that it doesn't interfere with core's strict C89 policy | 01:59 | ||
| ash_ | is the stack frame pluggable like that? | 02:00 | |
| plobsing | look at my libjit-fb library. it provides a framebuilder as an external library | ||
| ash_ | thats on github, right? | 02:01 | |
| plobsing | there are hooks. didn't you use those? | ||
| yes it is on github | |||
| ash_ | which hooks? | 02:02 | |
| plobsing | github.com/plobsing/parrot-libjit-f...hes/master | ||
| IGLOBALS_NCI_FB_CB and IGLOBALS_NCI_FB_UD | |||
| ash_ | no... all of my changes have centered around the src/pmc/nci.pmc file | 02:03 | |
| plobsing | nci_fb_cb gets called when a thunk is missing from the cache and nci_fb_ud is the userdata payload | ||
| I saw a lot of changes in src/pmc/nci.pmc. I assumed that was the new signature parser. | |||
| ash_ | yeah | 02:04 | |
| plobsing | in my opinion, the libffi stuff has no business in the nci pmc proper if we can help it. | ||
| ash_ | um.... where should it of gone? | 02:05 | |
| did i do this wrong? | |||
| plobsing | no. it works ergo you've done it right | ||
| I would have put it in a separate file (eg: src/nci/ffi_framebuilder.c) | |||
| ash_ | i can re-organize my code, thats not hard in theory, i just put it in the nci.pmc because all of the old nci stuff was in there (except the thunks) | 02:06 | |
| plobsing | yeah, but libffi replaces thunks. | 02:07 | |
| it's not much of a big deal. if you don't get around to it, I'll likely do it when I pull your changes back into svn | 02:09 | ||
| more important are tests | |||
| ash_ | which parts do you think should go in the src/nci/ffi_framebuilder.c? right now i parse the signature and build the callframe at the same time, but it could be separated into different parts | 02:10 | |
| plobsing | I suppose the framebuilder does the signature parsing (it has to really). Maybe we should delegate that entirely to the framebuilder (previously framebuilders parsed the signature after NCI had already parsed it once) | 02:11 | |
| ash_ | parse_sig is where the parsing starts, then it calls parse_return, which in turn calls parse_identifier 1 time (since C only allows 1 return object), that's all parse_return does, then parse_sig calls parse_args, which calls parse_identifier until the end of the string | 02:12 | |
| plobsing | what I'm getting at is, maybe nci.pmc shouldn't be parsing signatures at all and just act as a front for the appropriate framebuilder | 02:13 | |
| ash_ | got ya, that would be a lot more pluggable | 02:14 | |
| plobsing | I hope to be done my current parrot project soon, so I'll try to move your stuff over into svn this week. | 02:16 | |
| this is a fair amount of work. have you submitted a CLA? | |||
| ash_ | yeah, i have | 02:17 | |
| i have access to svn if you want me to make a branch | |||
| plobsing | oh sweet. I wasn't sure where you were along that process | 02:18 | |
| ash_ | well, i emailed my CLA to legal@parrot.org before the GSoC started, i think Coke gave me svn access | ||
| i haven't actually double checked that yet, but i think it happened already, let me check | 02:19 | ||
| plobsing | if you have svn commit access, it means your CLA was accepted IIUC | ||
| ash_ | is there an easy way to get my changes moved from git to svn? | 02:20 | |
| or should i just diff my master and the svn trunk | |||
| plobsing | ash_: not sure. I was going to look into that. The diff method is tried and true. | ||
| but fails at history | |||
| ash_ | yeah... | ||
| purl | totally dude! | ||
| ash_ | to bad there is no downstream branch on github :P | 02:21 | |
| plobsing | there should be a way to convince git-svn to do what we want | 02:22 | |
| ash_ | yeah, i was thinking that might work | 02:23 | |
| i'll look at your frame builder you did in libjit, i think it would be cool if there was some way to dump the llvm-ir too | 02:26 | ||
|
02:35
janus joined
|
|||
| ash_ | is there a way i can test if i have svn write privleges? | 03:04 | |
| sorear | add your name to the CREDITs | 03:05 | |
| your gonna have to do it eventually | |||
| ash_ | good idea | ||
| nope, it says autherization failed | 03:10 | ||
| dalek | rrot: r47793 | tcurtis++ | trunk/CREDITS: Adding myself to CREDITS. |
03:17 | |
|
03:17
snarkyboojum joined
|
|||
| plobsing | ash_: you are using your trac username/password correct? | 03:20 | |
| ash_ | yeah, i can log into trac | ||
| and yea, i used the same userame and password with svn | |||
| username* | |||
| plobsing | hmmm maybe you don't have a commit bit yet. If noone has any better ideas, I'll bring it up at the next #parrotsketch. | 03:23 | |
| ash_ | i can ask coke next time i see him online | 03:40 | |
| if you use string_make can you free the char* that you gave to string_make? or does the resulting string need that? | 03:42 | ||
| never mind, i figured it out, i mixed up two variables | 03:49 | ||
|
04:04
snarkyboojum joined,
PerlJam joined
04:13
JimmyZ joined
|
|||
| dalek | rrot: r47794 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir: [pct]: Add 'exists' and 'delete' pirops to PAST::Compiler. |
04:22 | |
| cotto | Wow. Youtube has a vuvuzela button now. | 04:40 | |
| ash_ | what is up with all the vuvuzela stuff | 04:42 | |
| cotto | I know it's from the World Cup, but beyond that it beats me. It's pretty funny though. | 04:43 | |
| bacek_at_work | cotto, if you replace postshortcut with post in pir.pir (line 43) we can have end-to-end PIR compilation in PIRATE :) | ||
| sorear | a vuvuzela...button. | ||
| cotto | I wonder why that didn't get changed. | 04:44 | |
| I'm looking forward to PIRATE being self-hosting. | 04:45 | ||
| That'll be fun. | |||
| Or rather, that'll | 04:46 | ||
| b | |||
| e | |||
| f | |||
| u | |||
| n | |||
| . | 04:47 | ||
| ash_ | are you calling it slow :P | 04:48 | |
| cotto | yes | 04:51 | |
| plobsing now thinks that cotto knows 2 orthogonal definitions of fun | |||
| cotto | gge is in a similar position | 04:52 | |
| tcurtis | gge? | ||
| purl | gge is in a similar position | ||
| bacek_at_work | cotto, for self-hosting we need .include working... | 04:53 | |
| cotto | masak's Perl 6 implementaion in perl 6 | ||
| bacek_at_work, yes | |||
| ash_ | plobsing: i am having a strange bug, nci stuff works fine the first call you make to it, but if you do a second call using the same nci object it's not returning the right result for some reason | 04:54 | |
| plobsing | ash_: are you getting bitten by cacheing by chance? | 04:55 | |
| ash_ | i don't think so, i made it re-gen the ffi_cif every time it was called and it still gives the same result, and thats the only thing i keep between calls | 04:56 | |
| plobsing | can you nopaste a small example that demonstrates the issue against origin/master ? | 04:57 | |
| ash_ | hmm, no, looking at it, i think its floats specifically that are not working, gist.github.com/451000 is the one that i am trying to fix (its the first one thats failing) | 04:58 | |
| sorear | issues with the evaluation stack? | 04:59 | |
| ash_ | issues with my nci changes | 05:00 | |
| cotto | bacek_at_work, What about doing .include as part of a preprocessor? I suspect that that's the only way to be fully compatible with imcc. (Whether that's a good idea is an open question.) | 05:02 | |
| bacek_at_work | cotto, I don't know yet. We do need some kind of "preprocessor" for macros. I hope we can avoid it for .include... | ||
| ash_ | oops, i pasted the wrong one in there, i just updated the gist gist.github.com/451000 | 05:03 | |
| cotto | Why do you want to avoid it for .include? file/line numbers? | 05:04 | |
| bacek_at_work | cotto, yes. And we have to fully parse _twice_... | 05:05 | |
| cotto | That's true. It wouldn't matter so much if parsing weren't so slow, but here we are. | ||
| ash_ | you don't have to parse twice if you want macro support... rakudo is single pass parsing and it has macro's | 05:06 | |
| bacek_at_work | ash_, it's not about macro. It's .include. | 05:07 | |
|
05:08
LoganLK joined
|
|||
| ash_ | oh sorry, i misread | 05:08 | |
| plobsing | I still don't see why you need to parse it twice | ||
| bacek_at_work | <<"HEREDOC"; .include "some.pir"; HEREDOC | ||
| plobsing | oh yeah. that's what makes IMCC's tokenizer pretty hairy. | 05:09 | |
| but doesn't the same hold true for macros? | 05:11 | ||
| bacek_at_work | plobsing, nope. We can expand macros in-place. | 05:12 | |
| we just need way to switch NQP to parse different file preserving current state | |||
| (for .include) | |||
| plobsing | <<"HEREDOC"; .macro not_a_macro() ... HEREDOC | ||
| bacek_at_work | heredocs parsed as strings in pirate. | 05:13 | |
| if we want "preprocessor" for .include we have to _parse_ it. | |||
| that's why we have to parse twice. | |||
| plobsing | macros are essentially includes on stringhandles | 05:19 | |
| tcurtis | plobsing: the difficulty with .include and single-pass parsing is that you'd have to parse the file contents where you are in the process of parsing the file you're parsing and then continue with the original file at the same position in the parse when the other file ends. | 05:23 | |
| A naive implementation of macros would suffer the same problem, but you could also modify the grammar in mid-parse(I think?) when you encounter a macro definition. | 05:24 | ||
| I think. | |||
| plobsing | except macros are implemented as includes of string in IMCC allowing for all sorts of nast^Wfun things. | 05:25 | |
| I'm not saying includes are easy, I'm saying that macros are equivalent to includes | 05:26 | ||
| cotto | I wonder how many things would break if pir files were required to have some kind of self-containedness. | 05:27 | |
| i.e. no partial subs | |||
| dalek | rrot: r47795 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c: Make sure we don't try to lookbeind for the first char in a string. |
05:28 | |
| cotto kicks dalek | 05:29 | ||
| rrot: r47796 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir: [pct]: Remove debugging 'say' |
|||
| rrot: r47797 | pmichaud++ | failed to fetch changeset: [nqp]: Update bootstrap files with regex, nqp-setting improvements. |
|||
| cotto | that was odd | ||
| dalek | p-rx: 9157c78 | pmichaud++ | (2 files): Allow hyphens and single-quotes in subrule calls. |
05:32 | |
| p-rx: f0bed9b | pmichaud++ | (2 files): Allow hyphen and single-quotes in NQP identifiers. |
|||
| p-rx: a3d5c5b | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to get debugging fix. |
|||
| p-rx: ebaf06c | pmichaud++ | (2 files): Add ResizablePMCArray .delete and .exists . |
|||
| p-rx: 4ee17c4 | pmichaud++ | src/stage0/ (4 files): Update bootstrap. |
|||
| rrot: r47798 | tcurtis++ | branches/gsoc_past_optimization (9 files): Rewrite PAST::Walker and PAST::Walker::Dynamic in NQP. Preparing for refactor. |
05:45 | ||
| cotto | bacek_at_work, why doesn't namespace_key include the square brackets? | 05:54 | |
| bacek_at_work | cotto, nope. But we can always change Grammar to include it. | 05:57 | |
| cotto | ok | 05:59 | |
| It's an easy change. I was just curious if it was intentional. | 06:00 | ||
| bacek_at_work | cotto, nope. It just happened. | 06:02 | |
| dalek | rrot: r47799 | NotFound++ | trunk/t/pmc/orderedhashiterator.t: fix silly omission: wrote a test sub but forgot to call it |
06:18 | |
| rrot: r47800 | plobsing++ | branches/dynop_mapping/compilers/imcc/pbc.c: update sub lookup fixup code |
|||
| rrot: r47801 | NotFound++ | trunk/t/pmc/filehandle.t: some FileHandle isatty tests |
06:35 | ||
|
06:50
hercynium joined
|
|||
| dalek | r: 19fe10a | cotto++ | (2 files): use the post stage instead of postshortcut |
07:06 | |
| r: 16fa680 | cotto++ | src/PIR/Grammar.pm: make namespace_key include circumfix square brackets |
|||
| bacek_at_work | cotto, btw, we can avoid "keyed_op" rule. Just add more pir_instruction:sym<delete>, <exists> and <defined> similar to <set_keyed>/<get_keyed> | 07:08 | |
| cotto | quite sensible | 07:11 | |
| It's too late for me to start on it now though. | |||
| bacek_at_work | cotto, no worries | 07:14 | |
| cotto | well, it may be too late. We'll see. | 07:15 | |
| bacek_at_work | :) | ||
|
07:16
TiMBuS joined
|
|||
| cotto | what about exists $I0, $P1['x'] vs $I0 = exists $P1['x'] ? | 07:16 | |
| bacek_at_work | just create 2 rules? | 07:17 | |
| cotto | eew | ||
| but it's workable | 07:18 | ||
| bacek_at_work | afk # bossess | ||
| cotto | sure | ||
| nafk #no bosses | |||
| I'm done. | 07:27 | ||
|
08:05
particle joined
|
|||
| dalek | r: 72c3126 | cotto++ | (3 files): add code and tests for explicit keyed set/get |
08:26 | |
| rrot: r47802 | plobsing++ | branches/dynop_mapping/src/embed.c: paper over Parrot_run_native issues |
08:29 | ||
| cotto | msg bacek my last pirate commit adds a couple failing tests. My brain stopped going before I could nail them down. | 08:59 | |
| purl | Message for bacek stored. | ||
| dalek | r: 92dc02d | cotto++ | (3 files): add *broken* code and tests for normal and sugared delete, exists and defined |
09:00 | |
| nopaste | "moritz" at 192.168.1.3 pasted "PAST optimization usage error (for tcurtis++)" (11 lines) at nopaste.snit.ch/21531 | 09:44 | |
| moritz | purl: msg tcurtics nopaste.snit.ch/21531 is what I get from my attempt at revision 47802 | 09:45 | |
| purl | Sorry, I've never seen tcurtics before. | ||
| moritz | purl: msg tcurtis nopaste.snit.ch/21531 is what I get from my attempt at revision 47802 | ||
| purl | Message for tcurtis stored. | ||
| moritz | purl: msg tcurtis also t/library/pasttransformerdynamic.t dies before running any tests | 10:08 | |
| purl | Message for tcurtis stored. | ||
|
10:23
ambs joined
|
|||
| dalek | r: 15d8b8a | bacek++ | src/PIR/Grammar.pm: Use <namespace_key> instead of <pir_key> in <op_params> |
10:26 | |
| r: 0375344 | bacek++ | src/PIR/Grammar.pm: Tune 'LTM' manually |
|||
|
10:32
ambs joined
10:34
Coke joined
10:38
JimmyZ joined
|
|||
| JimmyZ | msg darbelo in r47795, do you mean pos == 0 ? | 10:39 | |
| purl | Message for darbelo stored. | ||
|
10:42
lucian joined
|
|||
| dalek | r: fb0e64a | bacek++ | src/POST/VanillaAllocator.pm: Fix VanillaAllocator to properly initialize %type2idx |
10:49 | |
| r: e7c3712 | bacek++ | t/pbc/basic.txt: Fix test |
|||
| r: 71e6497 | bacek++ | t/ (3 files): Split keys tests into separate files |
11:06 | ||
| r: 9b47396 | bacek++ | (4 files): Remove Key.keys, use children instead |
|||
|
11:07
rtward joined
|
|||
| dalek | rrot: r47803 | mikehh++ | trunk/config/gen/makefiles/root.in: add generated_hello.pbc to examples-clean |
11:13 | |
| rrot: r47804 | mikehh++ | trunk: add generated_hello.pbc to svn:ignore |
|||
|
11:23
cognominal joined
|
|||
| bacek | msg cotto I finished Keys.Switching to PCC. Feel free to grab anything from TODO list. | 11:32 | |
| purl | Message for cotto stored. | ||
| dalek | r: a6284af | bacek++ | (5 files): Implement optimization of single int Keys |
11:34 | |
|
11:47
Coke joined
12:02
lucian_ joined
|
|||
| dalek | rrot: r47805 | NotFound++ | trunk/src/pmc/handle.pmc: fix stupid mistake in Handle.isatty |
12:02 | |
| p-rx: a915b78 | bacek++ | (2 files): Add bitwise operators |
12:07 | ||
|
12:09
whiteknight joined
12:12
khairul joined
|
|||
| dalek | rrot: r47806 | khairul++ | branches/gsoc_instrument (3 files): Added test for loadlib event. |
12:19 | |
|
12:26
bluescreen joined
|
|||
| whiteknight | good morning, #parrot | 12:29 | |
|
12:32
bkuhn joined
|
|||
| dalek | tracwiki: v136 | gerd++ | Languages | 12:50 | |
| tracwiki: trac.parrot.org/parrot/wiki/Languag...ction=diff | |||
|
13:03
JimmyZ joined
|
|||
| dalek | rrot: r47807 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c: Add missing '='. |
13:24 | |
| kudo: 18682c8 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION. |
13:26 | ||
| r: 0874100 | bacek++ | (3 files): Use RPA instead of PCT::Node to store params |
13:38 | ||
| r: d8cbfd6 | bacek++ | (2 files): Start building signatures |
|||
| r: 65022d3 | bacek++ | (2 files): More tests for build_sig. Fix handling multiple results from build_single_arg |
|||
| r: 8a8efe3 | bacek++ | (2 files): Use proper constant flag. |
|||
| r: c555784 | bacek++ | t/pbc/call.txt: Add test for simple sub invocation with sc param |
|||
| r: 9ac2e47 | bacek++ | src/POST/Compiler.pm: Handle Sub's .params |
|||
| r: 8074806 | bacek++ | src/PIR/ (2 files): Sub names can be bare <ident> |
|||
| r: 8cb6e12 | bacek++ | src/POST/Compiler.pm: Die with meaningfull message on NYI calls. |
|||
| r: 93d66b4 | bacek++ | src/POST/Compiler.pm: Awful untested ugly version of .return() handling |
|||
|
13:39
plobsing joined
|
|||
| whiteknight | bacek++ | ||
| bacek | whiteknight, good morning :) | 13:44 | |
| whiteknight | hello bacek. Good work last night | ||
| or, this morning. | |||
| or whenever the hell it is where you are | |||
| dalek | r: 8d78a43 | bacek++ | t/pbc/call.txt: Add test for multiple args/params. |
||
| bacek | It's almost tomorrow here :) | ||
| whiteknight | tomorrow? but today just started! | 13:45 | |
| bacek | whiteknight, no way! | 13:47 | |
|
13:48
Coke joined
|
|||
| whiteknight | there's only one reasonable answer: One of us is moving at the speed of light and time is dilating | 13:49 | |
| bacek | It's all relative. | 13:53 | |
| Anyway, enough for tonight. I've got basic param passing. | |||
| dalek | r: 5a69e7c | bacek++ | src/POST/Compiler.pm: DRY: Factor out common build_pcc_call subroutine. |
13:58 | |
| bacek | Hooray! Handling PCC returns is also works! | 13:59 | |
| It was easy. | 14:00 | ||
| And it's tomorrow now | |||
|
14:00
bubaflub joined
|
|||
| bacek | Time for recharge. Good night, humans. | 14:00 | |
| whiteknight | goodnight bacek | 14:02 | |
| dalek | r: f8e3240 | bacek++ | (2 files): Handle PCC call returns |
14:03 | |
|
14:05
LoganLK joined
|
|||
| dalek | rrot: r47808 | mikehh++ | trunk/MANIFEST.SKIP: re-generate MANIFEST.SKIP |
14:13 | |
| kudo: bf5bbd4 | pmichaud++ | src/core/ (2 files): Turn Array.exists into List.exists, write it a bit cleaner. |
14:15 | ||
| kudo: 7e3ddca | pmichaud++ | src/core/EnumMap.pm: Redo EnumMap.exists . |
|||
| rrot: r47809 | NotFound++ | trunk/t/pmc/stringhandle.t: test for StringHandle.isatty TT #1689 |
14:29 | ||
|
14:32
rtward joined
14:33
spinclad joined
14:43
ash_ joined
14:45
Andy joined
14:54
particle joined
15:05
particle joined
|
|||
| ambs | purl: seen coke | 15:06 | |
| purl | coke was last seen on #parrot 19 hours, 16 minutes and 33 seconds ago, saying: (my lack, not nqp's) | ||
| ash_ | is there any reason, char *s = Parrot_str_to_cstring(interp, a_string); would not be the same as "a_string->strstart" ? (i know i shouldn't peak inside the STRING object but s keeps ending up as "(null)" while the string has actual content | 15:12 | |
| mikehh need to reboot - brb | 15:16 | ||
| whiteknight | ash_: STRING->strstart is not null-terminated | 15:17 | |
| ash_ | no, when i call Parrot_str_to_cstring it literally puts "(null): into the cstring | 15:18 | |
| whiteknight | well, that doesn't seem right | 15:19 | |
| unless a_string is "(null)" | |||
| ash_ | yea... i think i am doing something wrong, let me double check my uses of the variable | 15:21 | |
| whiteknight | ok | 15:22 | |
| ash_ | so... here's my delima, i have a generic blob of data (its just a void** to a malloc of arbitrary size, its for holding the result of an NCI call, which varies depending on the signature), and the result contains the right data if i pretend i know what it is (eg. manually cast it to a *double in this case and print it) but Parrot_pcc_build_call_from_c_args isn't taking the value in correctly | 15:26 | |
| to bad you cant dereference a void* :P it would be nice to be able to say "i don't care what this is, its just a chunk of memory that has the right value" | 15:28 | ||
| moritz | well, the type encodes size information too | 15:29 | |
| ash_ | yup, i think thats the problem i am running into | 15:30 | |
| moritz | that's why derferencing a void* doesn't work | ||
| arnsholt | I think gdb tries to be helpful if you cast it to (char*) and print it | ||
| Or char[100] or something (which would be smarter) | |||
| ash_ | the value -555555.555500 as a C double is getting translated via Parrot_pcc_build_call_from_c_args into 6.95322297564109e-310 | ||
| it seems to only happen with doubles though | |||
| int's pass through fine | |||
| arnsholt | Have you double checked the exact types? Could be weirdness with loss of precision or signedness or something | 15:31 | |
| ash_ | Parrot_pcc_build_call_from_c_args(interp, call_object, "N", *(double*)return_data); (return data is a void** return_data = malloc(sizeof(double));) | ||
| thats the call thats not working correctly | 15:32 | ||
| yeah, i am doing some "bad things" there but i don't know my data types at compile time, i only know them at runtime... | |||
| arnsholt | What's the prototype of the last arg of the function? | 15:33 | |
| ash_ | its a vararg, Parrot_pcc_build_call_from_c_args(PARROT_INTERP, call_object, char* , ...); # like that kinda | ||
| arnsholt | Strange. | 15:36 | |
| purl | But true. | ||
| arnsholt | ^^ | ||
| ash_ | to make sure its my bad casting, i am going to replace return_data with just a float constant like 12.34 | 15:37 | |
| arnsholt | Good idea =) | ||
| ash_ | *compiling* | ||
|
15:41
mikehh joined
|
|||
| ash_ | yeah its my bad casting | 15:53 | |
| moritz | that's less scary than a screwed-up calling convention :-) | 15:54 | |
| ash_ | hmmm this might not be good for structures | ||
|
16:01
theory joined
|
|||
| ash_ | whiteknight: ping | 16:23 | |
| whiteknight | ash_: pong | 16:24 | |
| ash_ | i have a question i think you could help me with | ||
| whiteknight | sure, shoot | 16:25 | |
| ash_ | so, my idea of a 'stack frame builder' was whatever was building the call frame, eg. "say 1 + 2;" in my mind calls add, stores results then calls say | ||
| which is currently, if i am not mistaken, a while loop that iterates bytecode | 16:26 | ||
| my plan for the llvm stack frame builder, i think i am using the wrong words here, was to expand the bytecode into C calls so there is no loop anymore, its compiled directly to C via the llvm (and thus lets the llvm run its optimization passes over the code) | |||
| so the same example would end up with a dynamically compiled main function that does the same thing as the bytecode loop did, but with the added bonus of it could be dumped as a native executable, plus it has the llvm optimization passes done on it to do all the things they do (like dead code elimination and constant folding at the C level) | 16:28 | ||
| darbelo | That is a bit more than I would expect from a frame builder. | 16:29 | |
| ash_ | yeah, i think i am misunderstanding "frame builder" | ||
| whiteknight | ash_: Like a direct-threaded system? | 16:30 | |
| ash_ | i don't know what direct-threaded means | 16:31 | |
| NotFound | ash_: looks like you are trying to build a jit compiler. | ||
| ash_ | NotFound: yes, using the llvm | ||
| for JIT and AOT compiling bytecode into native code | |||
| for (hopefully) a speed boost | |||
| thats what I wanted to do for the GSoC | |||
| NotFound | ash_: nice, but that is much more than the nci frame builder. | 16:32 | |
| ash_ | i am almost done with the first part of my GSoC (the NCI changes to use libffi so you can have almost any signature for nci) | ||
| whiteknight | ash_: www.cs.toronto.edu/syslab/pubs/demkea_context.ps | ||
| ash_ | NotFound: there were 2 parts of my GSoC, nci was only part of it | ||
| whiteknight | that's about "context threading", but gives lots of cool information about dispatch and defines direct threading | ||
| ash_ | thanks whiteknight i'll read over that | 16:33 | |
| NotFound | ash_: but better avoid the name "frame builder" for that part, it leads to confusion. | ||
| ash_ | alright, well, i guess i should say, i want to build a JIT and AOT bytecode compiler using the llvm | 16:34 | |
| whiteknight | ash_: direct-threading is the most efficint way to dispatch ops in a VM. Basically, instead of looping over bytecode, you convert the bytecode into machine code where each opcode is replaced by a function call to the op function | ||
| basically, you unwind the runloop | |||
| ash_ | yeah | ||
| whiteknight | Context Threading, which they describe in the paper, is similar but supposedly better yada yada yada | ||
| ash_ | thats what I want to do, and let the llvm do it on the fly and make it into native code, so there is no runloop anymore, its like translating the loop into a big 'main' | 16:35 | |
| the llvm has nice optimization passes too which might see that your doing the same thing in two places, or see that a section of code is unreachable and remove the un-need parts | |||
| whiteknight | no, I misspoke. This paper describes "Context Threading", which the rest of the world calls "Direct Threading". And refers to "Direct Threading" which everybody else calls a runloop | 16:37 | |
| ash_ | my goal was to do basically the same thing that macruby did to ruby, it just with parrot | ||
| whiteknight | so, same techniques, but different people call them diffrent things | ||
|
16:38
gbacon joined
|
|||
| darbelo | whiteknight: you can get a win by dispensing with the functions and dispatchig to labels (in compilers that support it) | 16:41 | |
| It's what the old cgp runcore did IIRC. | |||
| whiteknight | darbelo: not necessarily. Keep in mind that a function call is basically just a jump, plus a stack frame | 16:42 | |
| a good optimizing compiler will see that every op has the same function signature, so we can avoid all those push/pops | |||
| Plus, function call/return tends to be very well understood by the branch predictor, so you actually will get better performance in that system over CGP | 16:43 | ||
| ash_ | whiteknight: does that sound reasonable for me to do for the rest of my GSoC? to work on that? i need to talk to plobsing but i didn't get a chance last night | ||
| i think we are misunderstanding each other because i was confused by what 'stack frame builder' meant | 16:44 | ||
| whiteknight | ash_: That's for plobsing to decide. Definitely make sure you do what your proposal says before doing anything else | ||
| darbelo | whiteknight: I might be misremembering, but the number in the 'The strcture of efficient interpreters' paper seemed to disagree with you on that last point :) | ||
| numbers* | 16:45 | ||
| cotto | ~~ | ||
| darbelo | ash_: Or make sure your mentor akys the 'anything else' first :) | ||
| ash_ | i think my proposal was not really understood correctly because i worded it wrong... | 16:46 | |
| whiteknight | darbelo: I would have to look. I may be misremembering too | ||
| I would be surprised though, CGP is horrible on the branch predictor | |||
| ash_: Well, what do you mean by "stack frame builder"? | 16:47 | ||
| ash_ | the stuff i described above with the llvm unrolling the runloop | ||
| whiteknight | okay. So then your proposal was worded extremely wrong then :) | 16:48 | |
| ash_ | yup | ||
| whiteknight | ash_: What you're talking about doing now is adding an LLVM-based direct- or context- threaded runcore | 16:49 | |
| ash_ | yea | ||
| brb lunch & | 16:55 | ||
| whiteknight | en.wikipedia.org/wiki/Threaded_code | ||
| it's confusing that they refer to this whole mess as "threading" | 16:57 | ||
| atrodo | very | 16:58 | |
|
17:06
Coke joined
|
|||
| cotto | bacek, I'm off to work. Do you have any idea what's causing the segfaults in the pbc key tests? | 17:08 | |
| dalek | r: dcea987 | cotto++ | src/POST/Key.pm: expand docs to make POST::Key a little less mysterious |
17:12 | |
| rrot: r47810 | chromatic++ | trunk/src/pmc/class.pmc: [PMC] Sped up Class PMC's isa vtable. testing Class identity. This improves the Rakudo startup benchmark by 5% and should improve all Rakudo programs similarly. |
17:13 | ||
| whiteknight | chromatic++ # nice optimization! | 17:14 | |
| cotto_work | good mroning | 17:31 | |
| or at least slightly faster ;) | 17:32 | ||
| ash_ | whiteknight: so, do you think, after i talk with plobsing, anyone would object to my changing my proposal a bit? | 17:37 | |
|
17:38
hercynium joined
|
|||
| moritz | ash_: in general changes to gsoc proposals are OK if you have good reasons, and support from your mentor | 17:39 | |
| whiteknight | ash_: I would have to see more of what you plan. A new runcore (especially one so diveregent from current cores) could be a big project | 17:42 | |
| ash_ | well, the gist of it is to just unwind the bytecode into a main function that the llvm executes | 17:43 | |
| that was kinda why i did the independent study in the spring where i started re-implementing nqp-rx on the llvm | 17:44 | ||
| whiteknight | ash_: Do that at runtime (like a proto-JIT) or do that ahead of time like an AOT compiler? | ||
| ash_ | both, all that would be different is i could add a runtime flag that dumps the llvm-ir if its set, otherwise it executes it immediately | 17:45 | |
| dumping the llvm-ir isn't that hard once its made | |||
| i could even dump the llvm-ir to the end of the pbc files or make a new bytecode file, so you only ever have to compute it once | 17:49 | ||
| cotto_work | Interesting. I don't get a big explodey segfault on my work machine. | 17:50 | |
| ash_ | with the llvm, more real fake executables would be possible too, since it might be possible to make linkable functions out the code, you could have a real executable (relatively speaking anyway), instead of store the bytecode in a big string | 17:55 | |
| that would be a bit out of the scope of the gsoc probably though, i think unrolling the runloop is possible by the end of the gsoc | 17:58 | ||
| Coke | msg kthakore - i don't know anything about sdl nor could I run those files last time I checked. so... maybe? | 18:01 | |
| purl | Message for kthakore stored. | ||
| ash_ | Coke: you got my cla didn't you? | 18:02 | |
| Coke | ash_: full name? | ||
| purl | rumour has it full name is Web Developer 0.8 extension | ||
| ash_ | John Harrison | ||
| might be John Lawrence Harrison | |||
| Coke | ash_: yup, we have it. | 18:03 | |
| why, what's up? | |||
| ash_ | I tried checking something into the svn (adding my name to the credits to see if it worked) because i am getting close to finish my libffi changes to nci, but it gave me an authentication error | 18:04 | |
| Coke | what is your trac id? | 18:05 | |
| ash_ | ash | 18:06 | |
| Coke | ash: try now. | 18:07 | |
| ash_ | yah, that works, thanks | 18:12 | |
| Coke | np | 18:14 | |
| dalek | rrot: r47811 | ash++ | trunk/CREDITS: Adding my name to the CREDITS, to test if i can commit |
18:19 | |
| whiteknight | ash++ | 18:21 | |
| opbots trust ash_ | 18:23 | ||
| slavorgn | But I already trust ash_ | ||
| slavorg | But I already trust ash_ | ||
| whiteknight | opbots help | ||
| slavorgn | I'm slavorg, an op-bot.Commands: trust, distrust, believe, disbelieve, leave, join. See also jerakeen.org/programming/slavorg | ||
| slavorg | I'm slavorg, an op-bot.Commands: trust, distrust, believe, disbelieve, leave, join. See also jerakeen.org/programming/slavorg | ||
|
18:24
slavorg left
|
|||
| ash_ | they must be twins | 18:24 | |
| atrodo | Haha, that link doesn't work | ||
|
18:24
slavorg joined
18:30
theory joined
|
|||
| whiteknight | that link for slavorg is dead. Looking through the website, there is no mention of slavorg or the code that runs it | 18:32 | |
| sorear | yeah I can't find any documentation on slavorg | 18:42 | |
| what do you want me to do? | |||
| ah | 18:43 | ||
| the command you wanted was "opbots names" | |||
|
18:49
particle joined
|
|||
| Andy plugs away at rebuilding his dev server | 18:49 | ||
| cotto_work looks at his loaned copy of the CLI Annotated Standard. | 18:52 | ||
|
18:55
patspam joined
18:57
rtward_ joined
|
|||
| sorear | whatfor? | 18:57 | |
| purl | i think whatfor is logout if the session isn't cleared? | ||
| cotto_work | steal the good ideas for Lorito | 18:59 | |
| sorear | meanwhile, I'm implementing Perl 6 on the CLI itself. | 19:01 | |
|
19:09
gbacon joined
19:11
rtward joined
19:39
theory joined
20:05
Psyche^ joined
|
|||
| ash_ | sorear: does your code with with mono too? (isn't mono CLI for like linux?) | 20:07 | |
|
20:08
dmalcolm joined,
whiteknight joined
|
|||
| sorear | ash_: It's being developed on mono. No clue if it works on .NET | 20:18 | |
| ash_ | ah | ||
| okay, thats cool | |||
| darbelo | I find the idea of develping on the clone, without knowing wether it'll work on the original kind of amusing. | 20:19 | |
| sorear | the clone itself is a suprisingly nice piece of software | 20:20 | |
| for something that's essentially a clone of a clone of the Sun JVM, it uses 4x less memory than the original | 20:21 | ||
| ash_ | Mono's main aim was to implement C#, and C# has a standard | 20:22 | |
| darbelo | And a bazillion things that got left out of the standard too. | ||
| Put another way: C has a standard too. | 20:23 | ||
| ash_ | lol true | 20:24 | |
| but they had at least a semi-reliable guide of what they were making, so you can at least say "given X, Y should happen, as per the spec" | |||
| darbelo | Hey, even scheme has a (Revised revised revised revised revised) standard too! | 20:25 | |
| ash_ | javascript has a number of standards | 20:28 | |
| that one, amazingly, runs fairly consistently, although the DOM spec sucks | |||
| darbelo | Most of the time the problem is not the standard, but what it leaves out. | 20:29 | |
| GeJ | Bonjour everyone. | 20:31 | |
| cotto_work | good day, GeJ | 20:33 | |
| dalek | nxed: r521 | julian.notfound++ | trunk/winxedst1.winxed: change the way used to track predefs used and use it load trans dynops when |
20:35 | |
| purl | dalek: that doesn't look right | ||
|
20:37
patspam joined
20:44
ambs joined
|
|||
| ambs | purl: seen coke | 20:46 | |
| purl | coke was last seen on #parrot 2 hours, 31 minutes and 58 seconds ago, saying: np | ||
|
20:47
gbacon joined
20:56
spinclad joined
21:25
mikehh joined
|
|||
| Coke | ambs: I said I'd send you an email! calm down! | 21:30 | |
| ;) | |||
| ambs tries to calm down. | |||
| Coke | I have now had yapc, travel, crash, full day of work, and just now decommuted. time for dinner, family, and then maybe you'll get your email. =-) | ||
| if it makes you feel better, we have a drop dead date. | |||
| back later. | 21:31 | ||
| ambs | hope it wasn't a plane crash :) | ||
| later ;) | |||
| bacek | Good morning, humans | 21:39 | |
| cotto_work | hi bacek | 21:40 | |
| whiteknight | good morning, bacek | ||
| cotto_work | Can someone test PIRATE on x86? | 21:41 | |
| bacek | cotto_work, not _64? | 21:42 | |
| GeJ | G'Day bacek. | ||
| cotto_work | nope | ||
| bacek | G'Day GeJ | ||
| GeJ | Heya cotto_work, whiteknight. | ||
| whiteknight | hello GeJ | ||
| cotto_work | it segfaults violently on my home x86 machine but looks fine here on x64 | ||
| whiteknight | cotto_work: I'll fire up a VM here in a minute | 21:43 | |
| cotto_work | thanks | ||
| ambs | l8r | ||
| bacek | cotto_work, pirate's test passed on my box... | 21:44 | |
| cotto_work | all of them? I see a call test failing. | 21:45 | |
| dalek | r: 945d4db | bacek++ | t/post/call.txt: Update test |
||
| cotto_work | sneaky | 21:46 | |
| bacek | :) | 21:47 | |
| cotto_work | bacek, did they pass on x86 or x64 for you? | ||
| bacek | x64 | ||
| cotto_work | ok | ||
| I'm hoping that a bit got flipped or something. It doesn't sound like a fun bug to chase down. | 21:48 | ||
| bacek | cotto_work, it _was_ fun bug. | ||
| cotto_work | At least we have somewhat useful pbc tools. | ||
| bacek | Actually 2 bugs. | ||
| 1 - LTM | |||
| 2 - VanillaAllocator | 21:49 | ||
| cotto_work | I'm referring to x86 PIRATE segfaulting. | ||
| bacek | cotto_work, hmm... It is definitely not | ||
| cotto_work | we'll see how that goes. | ||
| ash_ | i am both glad and scared of the way C lets you cast random things into other random things | 21:51 | |
| cotto_work | It's all bits anyway. What could possibly go wrong? | 21:52 | |
| Nothing. That's what. | |||
| ash_ | lol | ||
| darbelo | ash_: That's exactly the kind of fear leads to segfaults, which lead to anger, etc. | ||
| cotto_work | That chain ends in bacon, doesn't it? | 21:53 | |
| ash_ thinks of that bacon cup filled with cheese i have seen on the interwebs | |||
| darbelo | Yes, but you can't eat it through the funny helmet. | ||
| That's why Vader was always so frustated in the old movies. He couldn't have his bacon. | 21:54 | ||
| ash_ | its all bacons fault, thats why they blew up that one planet | 21:55 | |
| dalek | nxed: r522 | julian.notfound++ | trunk/winxedst1.winxed: minor refactor |
22:01 | |
| GeJ | anyone else experiencing failure in t/compilers/imcc/syn/regressions.t under runcore test? | 22:02 | |
| error:imcc:build_key:Key too long, increase MAX_KEY_LEN. | |||
| mikehh | bacek, cotto_work - building/testing parrot on i386 at the moment - will test PIRATE in a bit | 22:04 | |
| cotto_work | thanks | ||
|
22:04
davidfetter joined
|
|||
| bacek | mikehh, thanks | 22:07 | |
| cotto_work | GeJ: that looks like it's working correctly. I suspect it's just the test that needs updating. | ||
|
22:10
PerlJam joined
|
|||
| cotto_work | or not | 22:11 | |
|
22:11
dalek joined
|
|||
| dalek | rrot: r47812 | bacek++ | trunk/CREDITS: One more alias for NotFound |
22:11 | |
| darbelo | I think that test uses a 'too long' key, and then and then checks the error message. | ||
| NotFound | bacek: thanks | 22:14 | |
| bacek | NotFound, you welcome :) | 22:15 | |
| karma julian.notfound | |||
| purl | julian.notfound has karma of 308 | ||
| bacek | karma NotFound | ||
| purl | notfound has karma of 1105 | ||
|
22:15
Util joined
|
|||
| dalek | r: f113ec9 | bacek++ | src/PIR/Grammar.pm: Improve heredoc parsing slightly. |
22:16 | |
| r: 2058bdb | bacek++ | src/PIR/Grammar.pm: <process_heredoc> is token, not rule. |
|||
| r: 3d5fe39 | bacek++ | TODO: Remove completed items from TODO. |
|||
| cotto_work | seen pmchaud? | 22:17 | |
| purl | I haven't seen 'pmchaud', cotto_work | ||
| cotto_work | seen pmichaud? | ||
| purl | pmichaud was last seen on #parrot 1 days, 19 hours, 44 minutes and 43 seconds ago, saying: ...and I never ran into a place where I needed a Capture or Match to be marked as "does array" [Jun 23 02:32:41 2010] | ||
|
22:20
pmichaud joined
22:23
tcurtis joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34567), fulltest) at r47811 - Ubuntu 10.04 i386 (g++) | 22:23 | |
| t/op/exit.t - TODO passed: 6 in testf | |||
| dalek | r: f456d4a | bacek++ | src/PIR/Actions.pm: Add/remove comments. |
22:27 | |
| bacek | cotto_work, I updated TODO (and add few todo comments). If you'll be bored tonight - feel free to grab any of them :) | 22:29 | |
| cotto_work | unlikely but possible | ||
| thanks | |||
| bacek | msg pmichaud Any objections on adding terminator:sym<if>, etc to NQP? | 22:41 | |
| purl | Message for pmichaud stored. | ||
| pmichaud | bacek: do we have an example of something that fails? | ||
| nopaste | "mikehh" at 192.168.1.3 pasted "Output from PIRATE test - Ubuntu 9.10 i386 (g++)" (122 lines) at nopaste.snit.ch/21558 | 22:42 | |
| bacek | pmichaud, $past.push($_.ast) for $<node>; | ||
| cotto_work | mikehh: that's what I saw too. | ||
| pmichaud | why would that fail? | ||
| that's..... odd. | |||
|
22:43
treed joined
|
|||
| bacek | pmichaud, "Confused at..." | 22:43 | |
| pmichaud | right, but I think it must be something else causing the problem. | ||
| bacek | nqp _doesn't_ have "postfix" ops. | ||
| pmichaud | I don't understand. | 22:44 | |
| dalek | rrot: r47813 | tcurtis++ | branches/gsoc_past_optimization (9 files): Move PAST::Transformer and PAST::Transformer::Dynamic to NQP prepatory to refactor. |
||
| bacek | pmichaud, Perl6 grammar does have "token terminator:sym<for> { 'for' <.nofun> }". NQP doesn't. | ||
| pmichaud | sure | 22:45 | |
| but the reasons for having the terminator don't seem to apply here. | |||
| I think the problem is that $_ isn't defined. | |||
| bacek | It spits "Symbol not defined" in such case. | 22:46 | |
| pmichaud | in particular, the following works: | ||
| my $_; my @a; @a.push($_) if 3; | 22:47 | ||
| which tells me that the problem isn't really with handling of statement modifiers | |||
| (which is why the terminator:... tokens are there) | |||
| so, the only reason that 'for' would be a problem is if nqp somehow sees it as a valid infix operator | 22:48 | ||
| bacek | let me check. | ||
| pmichaud | (and then is unable to parse that) | 22:49 | |
| aha | |||
| the problem is that NQP doesn't have 'for' as a statement modifier. | |||
| (most likely because $_ is in the wrong place for that) | 22:50 | ||
| so, we should add statement_mod_loop:sym<for> { .panic("Statement modifier 'for' not implemented") } | |||
| bacek | Got it. Let me try. | 22:52 | |
|
22:53
Psyche^ joined
|
|||
| bacek | pmichaud, yes. Seems to work. I'll try to finish it tonight. | 22:54 | |
| afk # $dayjob | |||
| pmichaud | bacek++ | ||
| I'll be offline for the next few hours (in flight) | 22:55 | ||
| bacek | pmichaud, side question - any ideas of best way of implementing .include in pirate? | ||
| cotto_work | +1 to that whenever you can answer it | 22:59 | |
| NotFound | Finally I'm starting to use git: github.com/NotFound/wasix | 23:06 | |
|
23:09
davidfetter joined
|
|||
| whiteknight | bacek: I don't think you can get the semantics of .include identical to IMCC in PIRATE | 23:10 | |
| darbelo doesn't think we *should* get the semantics of .include identical to IMCC in PIRATE. | 23:11 | ||
| cotto_work | whiteknight: it's probably not even a good idea to get the full imcc semantics, but we need something. | 23:12 | |
| whiteknight | the closest you can probably come is to do straight text substitution | ||
| darbelo | IMCC-style textual inclusion is a pain in the ass. | ||
| whiteknight | so a two-pass parser, first pass to include file contents together into a single buffer, second pass to parse it | ||
| cotto_work | but parsing is slow | ||
| if it's evitable, we should avoid it | 23:13 | ||
| whiteknight | or, you can recurse into a new parser object when you hit .include, and append the resulting tree at the point in the parent file | ||
| darbelo | And it'll screw up line numbering. | ||
| whiteknight | that second idea will save line numbering, since each parser only knows about one file | ||
|
23:13
mikehh joined
|
|||
| darbelo | The recursing approach won't work for some of the weird crap IMCC allows. | 23:14 | |
| cotto_work | Sometimes a backwards compatibility break is a feature. | ||
| darbelo | In this case, it's a very useful feature. | 23:15 | |
| NotFound | Then you need to suggest alternatives, implement them, and deprectae weird usages with enough time. | ||
| cotto_work | suggestion: "stop doing that" | ||
| I have no idea how often the stupid stuff is done. It's probably not often because it's stupid, but you never know. | 23:16 | ||
| NotFound | For example .include 'test_more.pir' is used a lot. | ||
| cotto_work | Crud. You're right. | 23:17 | |
| NotFound | And I think most languages use .include inside namespaces. | 23:18 | |
| Inside .HLL, I meanƧ | |||
| tcurtis | Are multi-methods inheritable? | 23:21 | |
| whiteknight | tcurtis: I don't see why not | 23:22 | |
| ...unless you have a failing test case :) | |||
| nopaste | "tcurtis" at 192.168.1.3 pasted "whiteknight: what a coincidence" (24 lines) at nopaste.snit.ch/21559 | 23:27 | |
|
23:29
ash_ joined
|
|||
| cotto_work | tcurtis, should B be a subclass of A? | 23:33 | |
| It works with that change. | 23:34 | ||
| whiteknight | tcurtis: should be class B is A, methinks | ||
| tcurtis | cotto_work: yes. Hmm... indeed it does. Let me see if I can un-minimalize my test case to a point where it fails again. | ||
| It looks like it only doesn't inherit if you override one of the multi-method specializations. | 23:36 | ||
| cotto_work | That sounds more like a bug. | ||
| nopaste | "tcurtis" at 192.168.1.3 pasted "For examlpe..." (32 lines) at nopaste.snit.ch/21561 | 23:37 | |
| tcurtis | s/examlpe/example/ | ||
| whiteknight | wow, that sucks | ||
| purl | The rock is now off. | ||
| mikehh | cotto_work: still get same result for pir/PIRATE latest with parrot r47813 - Ubuntu 9.10 i386 (g++ with --optimize) | 23:40 | |
| cotto_work | mikehh, thanks. | 23:41 | |
| mikehh | i.e. result PASS but backtrace with t/03-pbc/04-call.t | ||
| cotto_work | I'll be digging into that when I have some tuits. | ||
| mikehh heading back to amd64 | 23:42 | ||
| cotto_work | tcurtis, interestingly if you add a multi for String to B, that's the one that gets called. | 23:43 | |
| nopaste | "cotto" at 192.168.1.3 pasted "let me show you it" (14 lines) at nopaste.snit.ch/21562 | 23:44 | |
| mikehh | cotto_work: and with Ubuntu 10.04 i386 (g++ with --optimize) | ||
| brb | |||
| tcurtis | cotto_work: the B or the A one? | 23:45 | |
| nopaste | "cotto" at 192.168.1.3 pasted "let me show you its output" (19 lines) at nopaste.snit.ch/21563 | ||
| cotto_work | B | ||
| A already has one | 23:46 | ||
| You seem to have found a bug. | 23:48 | ||
| tcurtis will submit a ticket. | |||
| whiteknight | tcurtis++ | 23:49 | |
|
23:53
kthakore joined,
theory joined
23:55
Psyche^ joined
23:56
mikehh joined
|
|||