|
Parrot 3.1.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Get GSoC ideas on wiki. Merge/review tewk/select. Evaluate attribute_defs, rip out in branch Set by moderator on 1 March 2011. |
|||
|
00:15
bubaflub left
|
|||
| kid51 | ~~ | 01:28 | |
| plobsing | hi kid51 | 01:41 | |
| kid51 | plobsing: Did you see trac.parrot.org/parrot/ticket/2037? | 01:45 | |
| Or: trac.parrot.org/parrot/ticket/540 ? | |||
| plobsing | kid51: yeah. that looks at least partially GC related. infnan had *nothing* to do with anything GCable. | ||
| kid51 | I didn't think it did. | 01:46 | |
| I looked at the final diff and saw nothing mysterious. | |||
| The fact that something subsequently "corrected" the problem is as scary as the problem itself. | |||
| plobsing | possibly a makefile failure with old object files? | 01:47 | |
| which would explain a rebuild fix | |||
| kid51 | Doubtful; when I was bisecting, I included a 'make realclean; perl Configure.pl' every time. | ||
| Unless there were object files named in one version of the 'clean' target but not another. | 01:48 | ||
| But that's a remote chance. | |||
| plobsing | possibly an installed parrot conflicting? | 01:49 | |
| whiteknight | rakudo build takes sooooooo long | 01:50 | |
| src/gen/core.pm is huge | 01:53 | ||
| 13.5 minutes total | 01:55 | ||
|
02:10
kid51 is now known as kid51_at_dinner
02:31
whiteknight left
02:39
ingy joined
|
|||
| cotto | ~~ | 02:46 | |
|
02:56
kid51_at_dinner is now known as kid51
|
|||
| bacek | aloha, humans | 03:09 | |
| kid51 | bacek, Did you see trac.parrot.org/parrot/ticket/2037 ? | 03:14 | |
| bacek | kid51, yes. | 03:15 | |
| I'll try to look at it later today | |||
| kid51 | Thx | ||
|
03:26
contingencyplan left
|
|||
| bacek | kid51, how much memory do you have on this box? | 03:30 | |
| kid51 | 256M | 03:44 | |
| (my 7-y-o iBook G4) | |||
| bacek | kid51, ok. | 03:48 | |
| kid51 | It's the same machine that has been our reference point for "small resources" for other GC-related questions. | 03:49 | |
| And all of your GC stuff that's gone into master was tested on it first | 03:50 | ||
| dalek | rrot: b3bae9c | bacek++ | / (4 files): Remove interp->dynamic_env. Leftover of #876. |
03:55 | |
| bacek | kid51, can you produce backtrace of segfault? | 03:56 | |
| kid51 | What would be the steps to do that? | 03:57 | |
| bacek | gdb --args ./parrot-nqp --target=pir --output=compilers/opsc/gen/Ops/Compiler/Grammar.pir compilers/opsc/src/Ops/Compiler/Grammar.pm | 03:59 | |
| r | |||
| bt 10 | |||
|
03:59
bubaflub joined
|
|||
| kid51 | It's late here, and I'll have to checkout that commit. Will try to get to it tomorrow. Thx. | 04:01 | |
| bacek | kid51, no worries. | 04:05 | |
| you can do it on HEAD btw | 04:06 | ||
| kid51 | But at HEAD I am not getting that failure | 04:08 | |
| Will that suffice? | |||
| Problem: | 04:10 | ||
| On Darwin, we recently made a change to guarantee that dynamic linking will work correctly on an installed parrot | 04:11 | ||
| But the price we paid for that is that during dev/testing, while dynamic linking works from 'make', it doesn't work (as well) from, e.g., 'prove'. | 04:12 | ||
| To run 'prove' on many of the t/pmc/*.t tests now, I first have to say: | |||
| export DYLD_LIBRARY_PATH=/Users/jimk/gitwork/parrot/blib/lib | 04:13 | ||
| This is the first time I've tried to use 'gdb' on this machine since that change. | |||
| gdb --args ./parrot-nqp --target=pir --output=compilers/opsc/gen/Ops/Compiler/Grammar.pir compilers/opsc/src/Ops/Compiler/Grammar.pm | |||
| I get: | |||
| warning: Unable to read symbols for "/usr/local/lib/libparrot.dylib" (file not found). | 04:14 | ||
| Reading symbols for shared libraries ........ done | |||
| (gdb) r | 04:15 | ||
| Starting program: /Users/jimk/gitwork/parrot/parrot-nqp --target=pir --output=compilers/opsc/gen/Ops/Compiler/Grammar.pir compilers/opsc/src/Ops/Compiler/Grammar.pm | |||
| dyld: Library not loaded: /usr/local/lib/libparrot.dylib | |||
| Referenced from: /Users/jimk/gitwork/parrot/parrot-nqp | |||
| Reason: image not found | |||
| Program received signal SIGTRAP, Trace/breakpoint trap. | |||
| 0x8fe05fc4 in __dyld__ZN4dyld5_mainEPK11mach_headeriPPKcS5_S5_ () | |||
| nopaste | "kid51" at 192.168.1.3 pasted "backtrace on Ops/Compiler/Grammar.pir problem" (16 lines) at nopaste.snit.ch/35586 | 04:16 | |
|
04:20
bubaflub left
04:25
bubaflub joined,
bubaflub left
|
|||
| bacek | kid51, not really helpful... | 04:31 | |
| kid51 | I suspected as much. | 04:32 | |
| plobsing | try setting the env var for the launching GDB process | ||
| kid51 | How would I do that? | ||
| plobsing | just put it in front of the invocation | 04:33 | |
| A=B gdb ... | |||
| kid51 | I already have this in my .bashrc: | ||
| export DYLD_LIBRARY_PATH=/Users/jimk/gitwork/parrot/blib/lib | |||
| plobsing | oh | ||
| kid51 | Are you talking about something else? | ||
| plobsing | nope, that would be it. | 04:34 | |
| kid51 | The problem, I think, is that /usr/local/lib/libparrot.dylib is now hard-coded into the binary(ies) | ||
| plobsing | can you manually copy the lib to there? | 04:35 | |
| kid51 | This looks like the same problem we addressed in trac.parrot.org/parrot/ticket/2005 | 04:38 | |
| plobsing: I tried placing a symlink in that directory. | 04:40 | ||
| Got same results | |||
| plobsing | the same dyld problem? | 04:41 | |
| kid51 | Yes. But let me try the actual file. | ||
| hmm that may have worked | 04:42 | ||
| Reading symbols for shared libraries ......... done | |||
| nopaste | "kid51" at 192.168.1.3 pasted "backtrace, having copied libparrot.dylib to /usr/local/lib" (15 lines) at nopaste.snit.ch/35587 | 04:44 | |
| plobsing | so you aren't able to reproduce the original issue. | ||
| kid51 | That was at HEAD. I'll try the commit that failed tomorrow. | ||
| kid51 must sleep | 04:45 | ||
|
04:45
kid51 left
|
|||
| nopaste | "bacek" at 192.168.1.3 pasted "Patch for kid51++" (1146 lines) at nopaste.snit.ch/35588 | 04:51 | |
| bacek | ouch | ||
| too late | |||
|
04:51
lucian left
|
|||
| dalek | rrot: ded4b56 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm: Insert write barriers into proper places during parsing |
04:53 | |
| rrot: 652c6b5 | bacek++ | src/ops/core_ops.c: Rebootstrap ops with proper write barriers |
|||
|
05:04
mikehh left,
mikehh joined
05:40
preflex left
05:42
preflex joined
|
|||
| dalek | rrot: a0de3ff | petdance++ | frontend/parrot/main.c: removed unused Parrot_confess. We have a public one anyway. |
06:04 | |
| ttbot | Parrot a0de3ff4 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/50039 | 06:06 | |
| dalek | rrot: cb8b624 | petdance++ | src/interp/inter_misc.c: removed unused var |
06:20 | |
| rrot: ab009a4 | petdance++ | / (2 files): consted and annotated Parrot_hsh_hash_buffer |
|||
| sorear | Parrot_hsh_ ? Really? | ||
| ttbot | Parrot ab009a47 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/50106 | 06:22 | |
| Parrot ab009a47 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/50116 | 06:23 | ||
| dalek | rrot: 77ee887 | petdance++ | / (2 files): consting func args in Parrot_pa_count_used() |
06:29 | |
| ttbot | Parrot 77ee8874 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/50192 | 06:31 | |
| Parrot 77ee8874 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/50190 | |||
| dalek | rrot: c4a9402 | petdance++ | / (2 files): allow the ARGIN arg to be ARGIN_NULLOK |
06:37 | |
|
06:37
fperrad joined
|
|||
| ttbot | Parrot c4a94027 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/50250 | 06:39 | |
|
06:57
rurban_ joined
06:58
theory left
07:00
rurban left,
rurban_ is now known as rurban
|
|||
| dalek | rrot: f5a2fed | bacek++ | include/parrot/api.h: Add foward declaration of Parrot_confess. Fix debug c++ builds. |
07:24 | |
| ttbot | Parrot f5a2fedf i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/50374 | 07:27 | |
| dalek | rrot: 21a351e | bacek++ | include/parrot/api.h: Add PARROT_EXPORT to Parrot_confess declaration. |
07:41 | |
| rrot/opsc_llvm: 085a273 | bacek++ | / (4 files): Skeleton for LLVM bindings |
08:43 | ||
| tadzik | whoa, whoa | 08:57 | |
| dalek | rrot/opsc_llvm: ed424f8 | bacek++ | / (6 files): Move global functions loading into LLVM.pm |
08:59 | |
|
09:56
Teedev joined
|
|||
| dalek | rrot: c114262 | jimmy++ | / (4 files): s/Parrot_hsh_hash_buffer/Parrot_hash_buffer/ |
09:56 | |
| rrot/opsc_llvm: 632f2d1 | bacek++ | t/library/llvm.t: Made test to looks more like test. |
10:12 | ||
| rrot/opsc_llvm: afa93ef | bacek++ | runtime/parrot/library/LLVM.pm: Add more functions. |
|||
| rrot/opsc_llvm: 8be7bfe | bacek++ | runtime/parrot/library/ (2 files): Add Builder |
|||
| rrot/opsc_llvm: 394c8fe | bacek++ | runtime/parrot/library/LLVM/Module.pm: Add "private" _get_ptr to fetch underlying pointer. |
|||
| rrot/opsc_llvm: 4db2e0d | bacek++ | runtime/parrot/library/LLVM.pm: Add more functions. |
|||
| rrot/opsc_llvm: 89299c0 | bacek++ | runtime/parrot/library/LLVM.pm: Add more functions. |
|||
| rrot/opsc_llvm: 3feabbb | bacek++ | runtime/parrot/library/LLVM.pm: More functions! More! |
|||
| rrot/opsc_llvm: 5b2e672 | bacek++ | runtime/parrot/library/LLVM/Type.pm: Add LLMV::Type |
|||
| rrot/opsc_llvm: b04aef4 | bacek++ | runtime/parrot/library/Rules.mak: Add new classes to build. |
10:13 | ||
| rrot/opsc_llvm: ab2c037 | bacek++ | runtime/parrot/library/llvm_lib.pir: Include new generated files |
|||
| rrot/opsc_llvm: eaed6fe | bacek++ | / (2 files): Add LLVM::Module.add_function |
|||
|
10:14
mikehh left
|
|||
| nopaste | "bacek" at 192.168.1.3 pasted "LLVM in Parrot :)" (35 lines) at nopaste.snit.ch/35589 | 10:16 | |
| Tene | bacek: Very nice. | 10:23 | |
|
10:48
lucian joined
|
|||
| dalek | rrot/opsc_llvm: a3e2d28 | bacek++ | / (3 files): Add LLVM::Function for real |
10:57 | |
| rrot/opsc_llvm: 3a157c6 | bacek++ | runtime/parrot/library/LLVM.pm: Add more functions. |
|||
| rrot/opsc_llvm: 9b35f82 | bacek++ | t/library/llvm.t: Add test for apeend_basic_block. |
|||
| rrot/opsc_llvm: d473cea | bacek++ | / (5 files): Add LLVM::BasicBlock |
|||
| rrot/opsc_llvm: 262226c | bacek++ | runtime/parrot/library/ (4 files): Add LLVM::Constant |
|||
| rrot/opsc_llvm: f339d44 | bacek++ | runtime/parrot/library/LLVM/Builder.pm: Add more guts to Builder. |
|||
| rrot/opsc_llvm: c906385 | bacek++ | runtime/parrot/library/LLVM/Builder.pm: Add few actual builders to Builder. |
|||
| rrot/opsc_llvm: 1ffb6e9 | bacek++ | / (2 files): Add tests and fix Builder creating |
|||
| rrot/opsc_llvm: da76a9d | bacek++ | runtime/parrot/library/LLVM/BasicBlock.pm: Add BasicBlock._get_ptr to use within Builder. |
|||
| rrot/opsc_llvm: 88d2883 | bacek++ | t/library/llvm.t: More tests |
|||
|
11:06
Teedev left
11:08
lucian_ joined
11:09
lucian left
11:16
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 11:19 | |
| tadzik | morning | 11:27 | |
| whiteknight | hello tadzik. how are you today? | ||
| tadzik | oh cool | 11:28 | |
|
11:28
woosley joined
|
|||
| tadzik | I'm in the Netherlands, on a hackathon with mberends, masak and jnthn | 11:28 | |
| whiteknight | that sounds awesome | 11:29 | |
| tadzik | aye | ||
| Tene | What are you guys hacking on? | 11:38 | |
| tadzik | currently it's Yapsi, but it's soon to be a module smoketesting and benchmarking infrastructure | 11:39 | |
| but don't tell anyone, cos I'm not sure if that isn't a secret project :) | |||
|
11:39
lucian joined
11:42
lucian_ left
11:48
PacoLinux_ joined
11:51
lucian_ joined
11:54
lucian left,
jrt4 left
11:55
lucian joined
11:57
lucian_ left
11:58
lucian_ joined
12:01
PacoLinux_ left,
lucian left
12:11
lucian joined
12:12
lucian left
12:15
lucian_ left
|
|||
| dalek | rrot/opsc_llvm: e14fb8d | bacek++ | runtime/parrot/library/LLVM.pm: Fix signature |
12:35 | |
| rrot/opsc_llvm: b2c4182 | bacek++ | / (4 files): Implement Builder.call. Also factor out common functionality to covert |
|||
| rrot/opsc_llvm: 1076130 | bacek++ | runtime/parrot/library/LLVM/Function.pm: Implement set_linkage |
|||
| nopaste | "bacek" at 192.168.1.3 pasted "LLVM - work in progress :)" (83 lines) at nopaste.snit.ch/35591 | 12:36 | |
| jnthn | bacek: wow! | 12:37 | |
| bacek | whiteknight, look at nopaste :) | ||
| jnthn | bacek++ | ||
| whiteknight | bacek: nice! | 12:38 | |
|
12:46
PacoLinux_ joined
|
|||
| dalek | TT #2040 created by jonathan++: load_ bytecode with a unicode string fails | 12:47 | |
| TT #2040: trac.parrot.org/parrot/ticket/2040 | |||
| rrot/opsc_llvm: 6263568 | bacek++ | runtime/parrot/library/LLVM/Type.pm: Add more types |
12:55 | ||
|
13:00
contingencyplan joined
|
|||
| dalek | p/lexical-setting: ebf7adc | jonathan++ | / (6 files): Merge latest changes from mater into lexical-setting. |
13:01 | |
|
13:03
PacoLinux_ left
|
|||
| dalek | rrot/opsc_llvm: 3ed5117 | bacek++ | t/library/llvm.t: Create function with args in test |
13:04 | |
|
13:10
kid51 joined
|
|||
| dalek | p: d36ca9c | jonathan++ | / (2 files): Stub in a --setting= command line argument. |
13:15 | |
| p: 93dc13f | jonathan++ | / (3 files): Re-work the build and bootstrap process to fit the new role of the setting. Since it'll be the outer lexical scope of programs, it needs to be built like the rest of the various bootstrapped bits, not just sa if it's a module. |
|||
| p: 5be7a2c | jonathan++ | .gitignore: Update .gitignore. |
|||
| p: 17d2709 | jonathan++ | / (3 files): Parsing/compilation of {YOU_ARE_HERE} and inclusion of it at end of setting. |
|||
| p: 5a4019f | jonathan++ | build/Makefile.in: Fix make bootstrap-files for setting. |
|||
| p: fd70004 | jonathan++ | src/stage0/ (4 files): Update bootstrap to include some of the bits needed for setting support. |
|||
| p: 0c6b294 | jonathan++ | build/Makefile.in: Can use --setting=NULL for compiling setting in stage 1 now. |
|||
| p: b9e1141 | jonathan++ | src/NQP/ (2 files): Few fixes to the {YOU_ARE_HERE} compilation. |
|||
| p: b158fac | jonathan++ | src/stage0/ (4 files): Update bootstrap with compilation fixes. |
|||
| p: cafdaf5 | jonathan++ | build/gen_setting.pl: Work around a weird parsing fail - something that shoulda been treated as a block got parsed as a postcircumfix. |
|||
| p: 3a5e136 | jonathan++ | build/Makefile.in: Need to fix up various things before we can put Mu and the native types into the lexical setting, so don't do that just yet. |
|||
| p: 1aa0ec3 | jonathan++ | src/NQP/ (2 files): First cut of loading NQPCORE.setting by default, overridable at the command line with --setting=NULL or --setting=OTHER. Seems to work, including how it intersects with interactive mode (uses the same outer-setting mechanism...yay). Big missing piece: setting loading not handled in pre-compiled code yet. |
|||
| p: a32c5f9 | jonathan++ | src/NQP/Compiler.pm: Make sure if we try to use a setting twice it'll work out. |
|||
| p: ebf7adc | jonathan++ | / (6 files): Merge latest changes from mater into lexical-setting. |
|||
| p: ecaf0c5 | jonathan++ | src/stage0/nqp-setting.nqp: nqp-setting.nqp (loadable setting) now gone in favour of lexical setting; remove it. |
|||
| jnthn | branch merge heuristic fail! | ||
|
13:19
PacoLinux_ joined
|
|||
| moritz | jnthn: more karma for that jonathan guy :-) | 13:24 | |
| jnthn | :) | ||
| That guy commits so much more than me :P | |||
| moritz | jnthn: it seems that GNU make doesn't like the commented out bits in \\ - continued lines in Makefile | 13:25 | |
| jnthn | moritz: oh, ouch | ||
| moritz | jnthn: I'll fix it | ||
| jnthn | moritz: thanks | ||
| dalek | p: 080d583 | moritz++ | build/Makefile.in: make GNU make happier |
13:30 | |
|
13:33
PacoLinux_ left
|
|||
| whiteknight | I think the heuristic merge detection looks for at least 15 commits | 13:34 | |
| tadzik | moritz: I have a pull request for you | 13:35 | |
|
13:41
mikehh joined
|
|||
| jnthn | Hmm, oddness. I'd have thought IMCC uses declare_lex_preg method on LexInfo to set up lexinfo associations... | 13:46 | |
| But it seems not to. | |||
| jnthn wonders how dependent we are on lexicals living in registers... | 13:48 | ||
| eww...very dependent. | 13:55 | ||
| OK, so, er, IMCC doesn't actually follow the interface that the lexicals spec says it does. :/ | 14:00 | ||
| whiteknight | in other news, the world is round, the sky is up, and bears poo in the woods | 14:05 | |
| jnthn | OK, this is designed stupidly. | 14:06 | |
| In nqpclr I...could just do it rght. | |||
| :/ | |||
| *right | |||
| gah, so munch indirection and screwing around when all lexpad incarnation should be is a memcpy :/ | 14:07 | ||
| I can find a way to work around all this I guess. | |||
| It may be easier to just do NQP its own lexicals implementation or something, than to try and work within this. | 14:08 | ||
| Ah well, will ponder it over lunch. | 14:11 | ||
| dalek | rrot/opsc_llvm: bb2473b | bacek++ | src/dynpmc/ (3 files): Skeleton for LLVMEngine wrapper |
14:30 | |
| rrot/opsc_llvm: af54ffd | bacek++ | runtime/parrot/library/LLVM (2 files): Fix stupid typo |
|||
| rrot/opsc_llvm: 699cb37 | bacek++ | runtime/parrot/library/LLVM/Constant.pm: Add Constant.integer |
|||
| rrot/opsc_llvm: 9252309 | bacek++ | / (2 files): Pass return type to add_function |
|||
| rrot/opsc_llvm: fb705f4 | bacek++ | t/library/llvm.t: Add 'test' for invoking of LLVM generated function |
|||
| nopaste | "bacek" at 192.168.1.3 pasted "LLVM - intermediate results." (85 lines) at nopaste.snit.ch/35593 | 14:31 | |
| dukeleto | bacek: top of the morning, meatbag | 14:32 | |
| bacek | that's it | ||
| We can create small function via LLVM, call it and fetch results. | |||
| Done. (almost) | |||
| And it's 1:30AM... | |||
| Good night, humans | 14:33 | ||
| dukeleto | bacek++ | ||
| rurban | bacek++ | 14:40 | |
| whiteknight | jnthn: IMCC is far from sacrosanct. If you need to change something there, we're open to hat | 14:43 | |
| that | |||
|
14:44
M_o_C joined
14:55
sigue left
14:57
rurban_ joined
14:59
woosley left
15:00
rurban left,
rurban_ is now known as rurban
15:02
sigue joined
15:09
ambs joined
15:30
M_o_C left
|
|||
| dukeleto kicks IMCC for funzies | 15:30 | ||
|
15:35
sigue left
|
|||
| jnthn | I suspect the problem is the entire design of lexical storage so much as IMCC. | 15:42 | |
| (Upon further reflection.) | |||
|
15:58
sigue joined
|
|||
| jnthn | On the one hand, the model doesn't commit to "lexicals stored in registers". OTOH, the existence of .lex '$foo', $P0 kinda does. | 16:11 | |
| Coke yawns. | 16:12 | ||
| jnthn | o/ Coke | 16:13 | |
| Coke | o/ jnthn | 16:15 | |
|
16:19
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
17:15
theory joined
|
|||
| whiteknight | jnthn: Well, we've known for a long time, months into years, that lexicals are a problem and need a redesign | 17:57 | |
| jnthn: I think all we are waiting for is somebody to put forward a compelling new design | |||
| jnthn | whiteknight: Doing NQPLexInfo and NQPLexPad at the moment, to explore. | ||
| LexPad is kinda a PMC allocation for no good reason. | 17:59 | ||
| Unless you have a language that needs that. | 18:00 | ||
| whiteknight | jnthn: okay, if you come up with something good, we may be eager to incorporate it down into Parrot | ||
| jnthn | OK. | ||
| I think I have a way to keep the current API intact and get what I want and still get it quite cheaply. | 18:01 | ||
| Sadly, LexPad pokes into LexInfo's guts | |||
| Without checking it really is a LexInfo | 18:02 | ||
| Segv! | |||
| Guess that's fast though :) | |||
| whiteknight | our new tagline: "Parrot: When we segv, we do it fast" | 18:14 | |
| tadzik | "We don't always segv, but when we do, we do it fast" | 18:16 | |
| whiteknight | the most interesting VM in the world | 18:17 | |
| dukeleto | Parrot: More Coredumps Than You Ever Thought Possible | ||
| whiteknight | I think IMCC creates the LexInfos, so it can be reasonably certain that the PMC it accesses is a LexInfo | 18:34 | |
| jnthn | In theory IMCC pays attention to the HLL map.. | ||
| Well, in practice too, thankfully :) | 18:36 | ||
| whiteknight | IMCC cares not for your simple theories | ||
| Coke seems to recall there's YA branch that needs testing against partcl. | 18:43 | ||
| vtable_overrides, perhaps. | 18:44 | ||
| dalek | p/slp: d36a4cd | jonathan++ | / (3 files): Stub in NQPLexInfo and NQPLexPad, which will eventually give static lexpad support. |
19:10 | |
| p/slp: 94fc85c | jonathan++ | src/pmc/nqplexinfo.pmc: Provide a way to set a static value into a lexpad explicitly, and to indicate when all static values are set. |
|||
| p/slp: 5c2b972 | jonathan++ | src/pmc/nqplexpad.pmc: Insert static values into a context's registers, thus putting values from the static lex pad in place per invocation. |
|||
|
19:25
kid51_ joined,
kid51 left
|
|||
| Coke | partcl "make test" times are noticable slower in a single run of whiteknight's branch. | 19:25 | |
| I'll run it several times (and then rerun master) to get an average. | 19:26 | ||
|
19:26
kid51_ left
|
|||
| whiteknight | Coke: okay, thanks | 19:27 | |
| Coke: does partcl make heavy use of isa, or can? | 19:33 | ||
| because those are the two things which would have gotten slower in the branch | 19:34 | ||
|
19:44
kid51 joined
19:54
lucian joined
20:16
bubaflub joined
|
|||
| Coke | whiteknight: heavy? I can't say. Certainly it uses those. | 20:19 | |
| sorear | Why are can and find_method separate? | 20:21 | |
| plobsing | because objects can lie? | 20:23 | |
| sorear | it looks like "find_method" overrides are available, and affect can, and affected can even before can overrides were added | 20:24 | |
| plobsing | uncanny | 20:26 | |
| whiteknight | sorear: at the moment, "can" is just a thin wrapper around find_method. VTABLE_can just tells us if find_method returns something | 20:31 | |
| if that's a semantic relationship we want to keep, that's fine. If we want to be able to decouple the two, that's also fine | 20:32 | ||
| that said, if we absolutely always want VTABLE_can to defer to VTABLE_find_method (and there's an argument to be made for that), we can just rip out the extra vtable | 20:33 | ||
| Coke | whiteknight: timings look fine. | ||
| whiteknight | Coke: fine as in "not noticably worse than master?" | ||
| sorear: in Parrot core, there are only two implementations of VTABLE_can: default and Object. Both defer directly to find_method | 20:35 | ||
| and since Object is the mechanism through which all PIR-defined types are written, it is essentially always that way | |||
| jnthn | I think one of Rakudo's dynpmcs may override it, but it's one that'll go away in the nom branch. | 20:38 | |
| Oh, maybe it doesn't... | 20:39 | ||
| (as in, doesn't override it) | |||
| whiteknight | okay, so this is starting to sound like an easy decision | ||
| Coke | whiteknight: yes. it's pretty even. | 20:40 | |
| whiteknight | Coke: okay. Thanks for checking it. We may not merge that branch in anyway, if "can" is going to be on the chopping block | ||
| Coke | I think our current vtable override mechanism is painful. Seems like we could do better. | 20:41 | |
| ... which is kind of a non sequitor, I realize. | |||
| jnthn | I'm quite happy with 6model's way. | 20:42 | |
| It should be a bunch faster than the way Parrot currently does it. | |||
| The idea is probably stealable into Parrot today too, fwiw. | 20:44 | ||
| sorear | 6model has vtable overrides now? for how long? | 20:46 | |
|
20:46
lucian_ joined,
kid51 left
|
|||
| whiteknight | Coke: you're right. The current vtable override system in Parrot is duct tape and paper clips | 20:47 | |
| blah, VTABLE_get_class isn't overridable either | 20:48 | ||
| jnthn | sorear: Didn't finish it up fully yet, but what's left is boring LHF. | 20:49 | |
| sorear grumbles about jnthn changing 6model while sorear tries to steal it | |||
| jnthn | sorear: For at least a few weeks, though. | ||
| sorear: Note, Parrot vtable override | |||
|
20:49
lucian left
|
|||
| jnthn | They're not very interesting to steal ;) | 20:49 | |
| I'll give the typecheck cache logic an update worth stealing soon though :) | 20:50 | ||
| sorear | Is nqp-nom better than 6model.net at everything yet? | 20:51 | |
| Coke: you have connections at TPF, right? | 20:52 | ||
| jnthn | Not everything, but most. | ||
| Well, at least as good at, anyway. | |||
| sorear | What are nqp/ctmo and nqp/match-nom? | 20:53 | |
| jnthn | match-nom is making Match object use new meta-model | 20:56 | |
| ctmo = compile time meta-objects | |||
| That branch is making me do yak shaving first :) | |||
| sorear | Is NQP reported by dalek? | 20:59 | |
| jnthn | Yes | ||
| I've comitted today and seen the commit messages here and #perl6 | |||
| Any Parrot folks got any idea why my lexinfo - which works just fine in the .pir file - gets deserialized as a LexInfo? Or appears to... :/ | 21:02 | ||
| plobsing | lexinfo deserialized as a lexinfo? I'm not seeing a problem. | 21:04 | |
| jnthn | plobsing: Sorry, i wasn't clear | ||
| I have a hll mapped lex info (NQPLexInfo) | |||
| It's a dynpmc | |||
| When I run the .pir file it's the correct type, which means IMCC musta done the Right Thing and recognized the hll mapping. | |||
| However, when I compile it to .pbc, then run that, the type is Parrot's LexInfo | 21:05 | ||
|
21:05
fperrad left
|
|||
| jnthn | Which is bizzare as my NQPLexInfo isn't even a subclass | 21:05 | |
| sorear | when IMCC is in pbc-mode, are you sure it loads your dynpmc library _at all_? | ||
| try adding debugging statements to your VTABLE_init | 21:06 | ||
| jnthn | Oh hmm...that is a good question... | ||
| sorear | it's possible that it never was a NQPLexInfo to begin with | ||
| plobsing | jnthn: how are you loading the dynpmc library? | ||
| jnthn | sorear: bingo | ||
| plobsing: gist.github.com/857666 | 21:07 | ||
| plobsing: turns out the :immediate never gets called in PBC mode. | |||
| plobsing | yeah. use .loadlib in stead. | ||
| whiteknight | no, :immediate only gets run by the compiler, not by the loader | ||
| welcome to IMCC flag hell | 21:08 | ||
| jnthn | whiteknight: Yes, so why doesn't the compiler run it in PBC mode? | ||
| plobsing: I'm using .loadlib already | |||
| whiteknight | jnthn: :immediate is "directly after compilation" | ||
| plobsing | jnthn: then it is loaded. | ||
| jnthn | whiteknight: No, it's not. | ||
| whiteknight | jnthn: :load is "when loaded as a PBC" | ||
| jnthn: the implementation would beg to differ | |||
| jnthn | :immediate means "as soon as IMCC has finished parsing it" | ||
| If it didn't, it'd happen too late for IMCC to see the hll mapping and make the correct type of lex info. | 21:09 | ||
| plobsing | this argument is moot if .loadlib is already being used. THIS IS NOT THE PROBLEM YOU ARE LOOKING FOR. | ||
| whiteknight | jnthn: the exact timing with respect to parsing is moot, because :immediate runs during parsing, not PBC loading | ||
| jnthn | whiteknight: I know! | ||
| Apart from IMCC *doesn't* bother to run it during the parse if you use -o x.pbc rather than just running the PIR file right off. | 21:10 | ||
| So the HLL map never takes place | |||
| So we create a normal LexInfo instead of an NQPLexInfo | |||
|
21:10
masak joined
|
|||
| sorear | So if you put a "say" in the :immediate sub, then compile to PBC, nothing gets printed by imcc? | 21:10 | |
| jnthn | sorear: Correct, that's how I checked. | 21:11 | |
| masak | hi, I just caused the GC to crash. anyone interested? :) | ||
| plobsing | dynpmc HLL maps are managed by pmc2c. | ||
| whiteknight | jnthn: oh, I didn't understand what you are saying. So it doesn't run with -o? | ||
| sorear | masak: we're busy beating up the PIR compiler. Wanna join? | ||
| whiteknight | that's definitely weird | ||
| jnthn | whiteknight: Correct. | ||
| masak | sorear: not really. :) | ||
| jnthn | whiteknight: Yes, I think it's weird too | ||
| plobsing: Oh...I can do the mapping in the PMC? | |||
| plobsing | I beleive so. That's how partcl does it IIRC. | 21:12 | |
| jnthn | That may work out better for me. Maybe. :) | ||
| sorear | It's still a bug if :immediate isn't | ||
| jnthn | aloha, partcl? | ||
| aloha | jnthn: partcl is broken, so it's not clear your change breaks it more or github.com/partcl/partcl | ||
| jnthn | sorear: I agree. | ||
| I can make a ticket. | 21:13 | ||
| sorear | Can you reproduce the behavior without nqp_group? | ||
| jnthn | sorear: Almost certainly. | ||
| yes, I can | 21:14 | ||
| Filing ticket | |||
| dalek | TT #2041 created by jonathan++: :immediate ignored when compiling to PBC | 21:21 | |
| TT #2041: trac.parrot.org/parrot/ticket/2041 | |||
| jnthn | plobsing: OK, I get further with the mapping in the PMC | 21:23 | |
| Ah, and another fiddle later, things seem to be working out better. | 21:25 | ||
| plobsing++, sorear++ | |||
| dalek | p/slp: 67337e1 | jonathan++ | src/pmc/nqplexinfo.pmc: Add visit, which should in theory mean all the state of this PMC gets serialized. |
21:26 | |
| p/slp: 4f4fa4f | jonathan++ | src/pmc/nqplex (2 files): Add hll and map directives to NQPLexInfo and NQPLexPad PMCs. Now seems things get serialized as wanted. |
|||
|
21:27
lucian_ left
|
|||
| plobsing | jnthn: you know you don't have to explicitly delegate freeze() and thaw() to SUPER right? | 21:29 | |
|
21:30
spinclad joined
|
|||
| jnthn | plobsing: oh, duh | 21:31 | |
| plobsing: Yes, I was at the "anything crazy to make things work" stage :) | |||
|
21:31
lucian joined
|
|||
| jnthn | Will toss, thanks. | 21:31 | |
| Next piece of fun is realizing that NQP doesn't declare a HLL | 21:32 | ||
| So I can't HLL map anything at the moment! | |||
| The yaks. They're lining up all down the street. | |||
| plobsing | maybe if you let them age, they'll lose their hair | 21:33 | |
| jnthn | :) | ||
|
21:34
lucian_ joined
21:37
lucian left
21:42
hudnix left
21:45
hudnix joined
|
|||
| cotto | ~~ | 21:47 | |
| masak | :: | ||
| plobsing | __ | 21:51 | |
| cotto | the robot seems to be on another coding rampage | 21:58 | |
| jnthn | (the robot)++ | ||
| masak | (coding rampage)++ | 21:59 | |
| cotto | bacek++ | ||
|
22:04
lucian_ left
22:05
masak left
22:11
masak joined
22:17
masak left
22:20
masak joined
22:24
ambs left
22:25
masak left
|
|||
| NotFound | ~~ | 22:25 | |
|
22:29
lucian joined
|
|||
| dalek | p: 2e788f6 | jonathan++ | src/ (7 files): Move NQP into a HLL of its own. This is a pre-req for being able to HLL-map things for NQP's use, but will also go a long way to resolving NQP/NQP-rx symbol conflicts. |
22:54 | |
| p: eb5f068 | jonathan++ | src/NQP/ (2 files): Register NQP as just NQP, not NQP-rx. |
|||
| p: 4c71035 | jonathan++ | t/hll/0 (2 files): Update a couple of tests to track NQP moving to its own HLL namespace. |
|||
| p: 3cc2814 | jonathan++ | src/stage0/ (5 files): Update bootstrap. |
|||
|
22:57
rurban_ joined
23:00
rurban left,
rurban_ is now known as rurban
23:36
lucian left
23:52
bubaflub left
|
|||
| dalek | sella: 826d9f4 | Whiteknight++ | src/test/ (6 files): starting some big cleanups to the test library, specifically refactoring the Loader class. Add docs |
23:55 | |
| sella: 8b9db86 | Whiteknight++ | src/test/ (5 files): refactor the Suite, Result, and Loader classes |
|||
| sella: b145466 | Whiteknight++ | src/test/Testcase.winxed: finish test docs and refactors |
|||
| sella: 93183cb | Whiteknight++ | / (15 files): improve error message on mockobject verify, listing all un-hit expectations. Improve error reporting for exceptions to show multi-line messages and full backtraces. MockObject.Factory can now return controllers of multiple types. Add tests for tests. |
|||
| whiteknight | let me tell you what: Writing this mock object library is extremely fun | 23:57 | |
| NotFound | winxed -Ofun | ||
| whiteknight | for serious! | 23:58 | |
| winxed is turning out to be an extremely pleasant experience | |||
| NotFound | Warning: redundant option | ||
| whiteknight | :) | ||
| NotFound: I'm thinking the winxed tokenizer logic might make a very nice stand-alone library | 23:59 | ||