|
Parrot 3.6.0 "P�jaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 31 July 2011. |
|||
| cotto_work | wingolog.org/archives/2011/08/02/a-...g-compiler | 00:02 | |
|
00:05
benabik left
00:15
wknight-phone joined
00:19
wknight-phone left
00:38
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 00:39 | |
| Felipe | good evening! | ||
|
00:47
dafrito left
|
|||
| whiteknight | benabik: ping | 00:49 | |
| soh_cah_toa: ping | |||
| dalek | p: 4e5bf5f | pmichaud++ | src/PAST/NQP.pir: Add :pasttype<xor_nqp>, which allows the return value for two true This can likely be immediately added to Parrot's PCT as a replacement for :pasttype<xor>, but since nom/nqp will need this long before the next Parrot supported release we'll keep a copy here too. |
00:51 | |
| rrot: 2098ab5 | Whiteknight++ | src/packfile/api.c: Some extra checks in Parrot_pf_subs_by_flag. This should help to eliminate or reduce issues seen by benabik++ |
00:56 | ||
| whiteknight | msg benabik I just pushed a potential fix to master for your packfile issues. I don't have your test case here, so let me know if it helps you | 00:57 | |
| aloha | OK. I'll deliver the message. | ||
|
01:01
Kulag left
01:02
darbelo_ joined,
darbelo left
01:06
GeJ left,
GeJ joined
01:08
darbelo_ left
01:09
woosley joined
01:16
rdesfo joined
|
|||
| dalek | kudo/nom: cefbda4 | pmichaud++ | / (3 files): Some infix:<xor> improvements -- two true values passed to xor or ^^ |
01:17 | |
| kudo/nom: 6834ff0 | pmichaud++ | NOMMAP.markdown: Update NOMMAP. |
01:19 | ||
|
01:27
theory left,
whiteknight left
01:28
rdesfo left
01:34
daniel-s joined
01:41
Kulag joined
01:50
Drossel joined
01:51
Kulag left
01:59
woosley left
02:16
Kulag joined,
Drossel left
02:38
kurahaupo left,
rdesfo joined
02:41
rdesfo left
02:58
theory joined
03:09
theory left
03:42
kurahaupo joined
03:58
theory joined
04:14
SHODAN joined
04:42
rdesfo joined,
rdesfo left,
theory left
04:50
SHODAN left
05:11
woosley joined
05:12
SHODAN joined
05:31
theory joined
|
|||
| cotto | ~~ | 05:36 | |
|
05:41
theory left
05:44
theory joined
05:46
theory left,
theory joined
05:47
theory left
05:57
Kulag left,
Kulag joined
06:01
daniel-s left
06:06
Drossel joined
06:08
Kulag left
06:18
aloha left
06:19
bacek_at_work left
|
|||
| cotto | seen soh_cah_toa | 06:25 | |
|
06:31
bacek_at_work joined
06:37
aloha joined
|
|||
| cotto | seen aloha | 06:44 | |
| aloha | aloha was last seen in #perl6 6 mins 42 seconds ago joining the channel. | ||
| dalek | tracwiki: v3 | cotto++ | HBDBPlanning | 06:47 | |
| tracwiki: add a description of this page's purpose, remove some unneeded bits from the original timeline | |||
| tracwiki: trac.parrot.org/parrot/wiki/HBDBPla...ction=diff | |||
| cotto | msg soh_cah_toa I've started to look at how to rework your GSoC schedule to accommodate imcc--'s bugs. Please take a look at trac.parrot.org/parrot/wiki/HBDBPlanning and let's find some time to discuss the project. | 06:49 | |
| aloha | OK. I'll deliver the message. | ||
|
07:00
Drossel left
07:01
Kulag joined
|
|||
| dalek | rrot: 1ecc900 | cotto++ | docs/dev/profiling.pod: add a bunch of stub sections to the profiling document |
07:01 | |
|
07:02
mj41 joined
07:04
Kulag left
07:05
Kulag joined
07:13
Kulag left
07:16
Kulag joined
07:17
dafrito joined
07:21
Drossel joined
07:22
Kulag left
07:23
bubaflub left
07:27
Drossel left
07:31
fperrad joined
07:45
mls joined
|
|||
| mls | morning! | 07:45 | |
| Is there a reason why the die(INT, INT) opcode doesn't attach a continuation to the exception? | 07:46 | ||
| The other forms of die() attach it. | |||
|
08:05
Kulag joined
08:12
Kulag left
08:26
Kulag joined
08:46
woosley left
08:48
woosley joined
08:58
woosley1 joined,
woosley1 left
09:00
woosley left
09:05
jjore left
09:28
bubaflub joined
09:51
preflex_ joined
09:55
preflex left
09:57
mls left
10:03
ambs joined
10:04
lucian joined
|
|||
| dafrito | Is it okay/common to use PIR labels solely for readability purposes? | 10:41 | |
| I'd imagine they'd just get optimized away, but I'm wondering if it'll be like, offensive to people to see them ;) | 10:42 | ||
|
10:43
kurahaupo left
10:44
kurahaupo joined
10:47
cosimo joined
10:51
jjore joined
|
|||
| moritz | dafrito: why not use comments for readability? | 11:10 | |
| Felipe | morning | 11:16 | |
| dafrito | moritz, I do, but it looks clearer to me to also have the labels. | 11:31 | |
| moritz | anyway, it wouldn't offend me in any way | ||
| dafrito | I use a label followed by a comment, which indicates to me "This comment describes what this block is doing" whereas only the comment wouldn't really accomplish the same | ||
| moritz, thanks for your response :) | 11:33 | ||
|
11:33
Coke left,
Coke joined
|
|||
| moritz | I also tend do avoid writing too much in PIR :-) | 11:34 | |
|
11:35
cosimo left
|
|||
| dafrito | moritz, haha, yeah, it's a bit untenable. I'm trying to fix a bug in lua, and decided to do some refactorings along the way | 11:36 | |
|
11:40
lucian left
|
|||
| dalek | kudo/nom-exceptions: 8ea619d | moritz++ | NOMMAP.markdown: note a segfault in NOMMAP |
11:48 | |
| kudo/nom-exceptions: 69e9988 | moritz++ | src/core/Exception.pm: extract payload from parrot excetions, if available |
|||
| kudo/nom-exceptions: 0c51f85 | moritz++ | src/core/Exception.pm: in Exception, make sure we have a parrot exception before throwing |
|||
|
12:06
contingencyplan left
12:20
kurahaupo left
12:29
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:29 | |
| tadzik | good morning whiteknight | 12:30 | |
| dalek | kudo/nom: 967ab7a | tadzik++ | src/Perl6/Actions.pm: Use $/.from ~ ",' ~ $/.to as a POD block id when adding them to $=POD The previous approach didn't work for two identical POD blocks existing in the document, and caused a failure in t/pod/07-tables.t |
12:35 | |
| kudo/podparser: e028411 | jonathan++ | src/ (4 files): Register Capture type so we can use it in the binder. |
|||
| kudo/podparser: 3588736 | jonathan++ | src/core/Capture.pm: Fix a thinko. |
|||
| kudo/podparser: 0bc9883 | jonathan++ | src/ (2 files): Make |$c work again in signatures; $c becomes a Capture with the current unbound stuff in it. |
|||
| kudo/podparser: d74aaa8 | tadzik++ | / (19 files): Merge branch 'nom' into podparser |
12:36 | ||
| whiteknight | Interesting blog post about V8: wingolog.org/archives/2011/08/02/a-...g-compiler | 12:48 | |
| bubaflub | ~ | 12:53 | |
| moritz | heh, I posted that in #perl6 a few hours ago :-) | ||
| atrodo | And cotto posted it last night too | 12:55 | |
| whiteknight | oh, fun | 12:58 | |
|
13:19
dafrito left
13:24
daniel-s joined
13:35
ambs left
13:50
smash joined
|
|||
| smash | hello everyone | 13:51 | |
| whiteknight | good morning, smash | 13:52 | |
| dalek | rrot/whiteknight/load_bytecode: 63a9db0 | Whiteknight++ | src/p (2 files): Add a tag cache to PackfileView, to keep track of what initializations have been performed on it. Add two methods to access this cache. The load_bytecode_s automatically marks a packfile as having been initialized with 'load' |
15:06 | |
|
15:07
SHODAN left
15:14
davidfetter joined
15:39
daniel-s left
15:49
JimmyZ joined
15:54
ambs joined
15:55
lucian joined
16:04
JimmyZ left
16:11
sri left
16:12
_sri joined
|
|||
| whiteknight | msg benabik we should probably get together sometime soon for a meeting. let me know when you are available | 16:15 | |
| aloha | OK. I'll deliver the message. | ||
|
16:18
dmalcolm joined
16:21
particle1 left
16:30
theory joined
|
|||
| dalek | rrot/whiteknight/load_bytecode: a4a4895 | Whiteknight++ | src/packfile/api.c: load_bytecode_s should update the various caches before running do_sub_pragmas, to avoid recursion. Cache PackfileView objects by full path name, not short name, so the two load_bytecode variants are talking the same language |
16:36 | |
|
16:44
mj41 left
16:46
dafrito joined
|
|||
| whiteknight | msg NotFound can we add load_bytecode_p_s to Winxed as a builtin? | 16:46 | |
| aloha | OK. I'll deliver the message. | ||
|
16:54
particle joined
16:57
athomason joined
|
|||
| NotFound | whiteknight: there is a litlle problem: there is no way to distinguish builtins by its return type. | 17:11 | |
| load_packfile can be a good name? | |||
| whiteknight | yeah, that would be fine for me | 17:14 | |
| cotto_work | ~~ | 17:15 | |
| NotFound | $ winxed -e 'var pf=load_packfile("Test/More.pbc"); say(pf);' | 17:17 | |
| /home/julian/runparrot/lib/3.6.0-devel/library/Test/More.pbc | |||
| Like this? | |||
| whiteknight | NotFound++ | ||
| NotFound | I enjoy features so easy to implement :) | ||
| dalek | nxed: 5c9c9b9 | NotFound++ | winxedst1.winxed: add builtin load_packfile to stage 1: |
17:20 | |
| nxed: 7dac8ec | NotFound++ | pir/winxed_compiler.pir: update installable compiler |
17:21 | ||
| whiteknight | I want to get the whiteknight/load_bytecode branch merged into master today or tomorrow. It adds the necessary caching features that will make the new op more usable and compelling | 17:22 | |
| NotFound | Good | ||
| dukeleto | does anybody know what the equivalent of "on stack replacement" is for register-based vm's ? wingolog.org/archives/2011/06/20/on...ment-in-v8 | ||
| whiteknight: +1 to merging that branch sooner rather than later | |||
| NotFound | I'm going to test and commit an update to the winxed snapshot | 17:23 | |
|
17:24
preflex joined
17:25
preflex_ left
17:27
benabik joined
|
|||
| benabik | ~~ | 17:31 | |
| NotFound | dukeleto: I think javscript jitters talks its own language, unaccesible for the rest of mortals. | 17:40 | |
| dukeleto | NotFound: yes, they have their own language, but so do we :) They are doing lots of cool stuff that we would benefit from understanding | 17:43 | |
|
17:43
kurahaupo joined
17:44
M_o_C joined
|
|||
| dalek | rrot: cd7297c | NotFound++ | ext/winxed/compiler.pir: update winxed snapshot to 1.1.devel 7dac8ecc52: load_packfile builtin |
17:45 | |
| whiteknight | NotFound++ | 17:47 | |
| dalek | nxed: dacea8e | NotFound++ | NEWS: forgot to update NEWS in 7dac8ecc52 |
17:48 | |
| rrot/whiteknight/load_bytecode: ce51d7f | Whiteknight++ | / (15 files): Fix conflict in merge from master |
|||
| jnthn__ | dukeleto: Suspect the answer is tied to how Parrot JITs and what register frames look like at that point, but at first glance the easiest analagy would seem to be with combining the register space allocation for two functions - but being able to do so dynamically. I only skimmed it, though. | 17:49 | |
| NotFound | dukeleto: even better, we have a bunch of own languages ;) | ||
| dukeleto | jnthn__: that sounds about right. Glad to hear your opinion :) | 17:50 | |
| bubaflub | morning dukeleto | 17:51 | |
| benabik | whiteknight: G'afternoon | ||
| whiteknight | hello benabik. how are you doing today? | 17:52 | |
| dukeleto | bubaflub: wazzup | ||
| bubaflub | dukeleto: not a whole lot. trying to get $dayjob to get me out to Pittsburgh for PPW | ||
| dukeleto | bubaflub: how is the new house? | ||
| bubaflub | dukeleto: nice. to get my couch in i had to take out part of the door. that was fun. | 17:53 | |
| dukeleto | bubaflub: that looks like it will be fun, but I already have a bunch of travel planned around that time, so I will skip. | ||
| benabik | whiteknight: A little frustrated. It's a bit more work than I had expected to get newPOST to generate bytecode. I'm trying to figure out what it isn't generating that it needs to. | ||
| dukeleto | bubaflub: i see you have already starting reverse engineering your house... | ||
| benabik: keep on truckin'. We believe in you. | |||
| bubaflub | dukeleto: yup. a bunch of new bookshelves to assemble, got my office setup. | 17:54 | |
| dukeleto: bummer. i think there will be some other parroteers there | |||
|
17:54
preflex_ joined
|
|||
| benabik | whiteknight: My problems with PackfileView are centered around me generating invalid bytecode. Changing it to write out to a file gets parrot to output "Attempting to do sub operation on non-Sub." | 17:54 | |
| whiteknight | ouch | 17:55 | |
|
17:58
preflex left
17:59
hercynium joined
|
|||
| whiteknight | benabik: are you generating invalid bytecode because of mistakes in your code, or because of problems with the packfile pmcs? | 18:01 | |
| that is, something you need to fix, or something we need to fix? | |||
| benabik | I think it's my/bacek's code. | ||
| Just having problems tracking down what the error is, exactly. | |||
| whiteknight | okay, what is the non-sub you are trying to treat like a sub? | 18:03 | |
| benabik | whiteknight: I'm attempting to generate just an empty main sub. | 18:04 | |
| whiteknight | and that's failing? | ||
| benabik | Yup. | ||
| nqp_pct:t/compilers/pct/newpost.t | 18:05 | ||
|
18:09
Coke left,
Coke joined
|
|||
| whiteknight | bacek had an example test somewhere for using the packfile pmcs to create a simple toy function | 18:09 | |
| Add some debugging statements in the places that make the method calls to the packfile pmcs. Then when you try to build the toy sub, it will print out the sequence of method calls it's using, and you can compare | 18:10 | ||
| dalek | Heuristic branch merge: pushed 23 commits to Rosella/new_load_bytecode by Whiteknight | 18:11 | |
| cotto_work | ./examples/pir/make_hello_pbc.pir | ||
| whiteknight | yeah, that's the one | ||
|
18:12
preflex joined
18:16
preflex_ left
|
|||
| benabik | I think I'm not figuring out the index of the sub in the constant table properly. | 18:20 | |
|
18:23
mikehh left
|
|||
| dalek | rrot/NotFound/nci_as_string: 9dd2908 | NotFound++ | / (2 files): a better test for as_string method and ByteBuffer get_pointer vtable |
18:24 | |
| whiteknight | that would be a big problem | ||
| benabik | Huh. Now it runs when output, but is invalid when accessed directly. | 18:25 | |
| whiteknight | so that's something, right? | 18:28 | |
| benabik | Yes! | ||
| whiteknight | it's possible the packfile pmc reading methods are wrong, but the writing methods are correct | 18:29 | |
| or, wait. How are you outputting it? | |||
| benabik | $filehandle.print(~$packfile) | 18:30 | |
| whiteknight | and $packfile is a Packfile PMC? | ||
| benabik | Yes. | ||
|
18:30
jsut_ joined
|
|||
| benabik | Those are named by their types. | 18:30 | |
| whiteknight | But if you do $packfile.view()... you get invalid accesses? | ||
| benabik | Yes. | ||
| Well, now I get "Null or invalid PackFile" | 18:31 | ||
| whiteknight | can you nopaste me that code so I can see it? | ||
| benabik | Well, I'm not using PF directly, I'm generating POST nodes that generate it, so "that code" is a decent chunk of PBCCompiler. | 18:32 | |
| whiteknight | Can I just see the part where you create and use the View? | ||
| benabik | github.com/parrot/parrot/blob/nqp_...ler.pm#L62 | 18:34 | |
| Called from the previously commented out code here: github.com/parrot/parrot/blob/nqp_...post.t#L37 | |||
|
18:35
jsut left
|
|||
| whiteknight | okay, and what's the error you get from that? | 18:35 | |
| benabik | gist.github.com/1123441 | 18:38 | |
| Maybe get_string does some bit of assembly of the packfile? | 18:39 | ||
| whiteknight | no, I copied that code for .view() | 18:40 | |
| Are you setting the main sub in your packfile pmc? | |||
| PackfileConstantTable.set_main() | 18:41 | ||
| benabik | It's setting it on the byte code segment, I think... | ||
| %context<bytecode>.main_sub($idx) | |||
| Does it need to be set on the constant table instead? | 18:42 | ||
| benabik is getting the idea that the Packfile PMCs got some revision after bacek stopped working on PIRate. | |||
| whiteknight | try this: | ||
| actually, I don't have a code example | |||
| but yes, try to call PackfileConstantTable.set_main($idx) | 18:43 | ||
| benabik | s/<bytecode>.main_sub/<constants>.main_sub/ away... | 18:44 | |
| whiteknight | no, I think you want both | ||
| benabik | Both? | ||
| whiteknight | both | ||
| benabik | "fun" | ||
| whiteknight | actually, don't do that either | 18:45 | |
| fire up gdb and set a breakpoint on Parrot_pf_get_packfile_main_sub | |||
| we need to find out what part of that is null and causing the exception to trigger | |||
| if (pf == NULL || pf->cur_cs == NULL || pf->cur_cs->const_table == NULL) | |||
| Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL, | |||
| "Null or invalid PackFile"); | |||
| so we need to figure out what is null: pf, pf->cur_cs, or pf->cur_cs->const_table | 18:46 | ||
| benabik | Earlier it was pf->cur_cs, IIRC. But I can check again. | 18:47 | |
| whiteknight | hmm... that's probably true | 18:48 | |
| in PackfileDirectory.get_pointer, I don't see any place where pf->cur_cs would be set | |||
| that probably gets set on packfile load | |||
| benabik | Yes, it's cur_cs | 18:49 | |
| So the serialization isn't doing magic, it's the load that does the magic. :-) | |||
| whiteknight | okay, so that's the issue. Packfile.get_pointer isn't setting up pf->cur_cs. That probably gets set when load from file | ||
| benabik | magic-- | ||
| karma magic | 18:50 | ||
| aloha | magic has karma of -2. | ||
| whiteknight | let me figure out what code is required, and jam it wherever it's needed | ||
| benabik | whiteknight++ # helping me (ab)use the Packfile PMCs. | ||
| whiteknight | man, I've never traced through this code before. It's a rat's nest | 18:53 | |
| okay, found it | 18:55 | ||
| src/packfile/segments.c:make_code_pointers() | |||
| And we are *not* going to copy that logic into Packfile PMC | 18:56 | ||
| it looks to me like this would be susceptible to an ordering bug. If there was a constantTable segment in the directory before the first bytecode segment, blamo | 18:57 | ||
| benabik | That seems to be designed to set current segment into packfile. But if we already have a Packfile PMC with all it's segments, we can set it more directly. | ||
| whiteknight | right. We just need to get ahold of the first bytecode segment, and set that | 18:58 | |
| benabik | And, yes, that would get very bad if there wasn't a bytecode segment first. | ||
| whiteknight | for now, let's just assume that through luck or some kind of amazing confident planning, that isn't an issue | 18:59 | |
| benabik | My guess is that everything is set to generate PBCs in the right order. | ||
|
19:01
M_o_C left
|
|||
| nopaste | "whiteknight" at 192.168.1.3 pasted "patch for benabik++" (22 lines) at nopaste.snit.ch/67144 | 19:02 | |
| whiteknight | try that | ||
| benabik | Uhm. corrupt patch at line 23? | 19:04 | |
| I can apply by hand. | |||
| whiteknight | just jam it in there | ||
| benabik | src/pmc/packfiledirectory.c: In function ‘Parrot_PackfileDirectory_get_pointer’: | 19:06 | |
| src/pmc/packfiledirectory.c:136: error: ‘PMC’ has no member named ‘type’ | |||
| src/pmc/packfiledirectory.c:136: warning: switch missing default case | |||
| Are these `set`s supposed to be `pfseg`? | 19:07 | ||
| *seg | |||
| Well, it compiles that way, so I'm guessing gyes. | |||
| whiteknight | ah yes, switch the "seg" in the new code to "pfseg" | 19:09 | |
| sorry about that | |||
| benabik | Hm. const_table didn't get set. | 19:10 | |
| whiteknight | okay, so the ConstantTable is probably coming through the pipe before the Bytecode segment | 19:11 | |
| benabik | Yeah. | ||
| whiteknight | this is going to get ugly | ||
| benabik | I would think that we should just save pointers as we loop and then set them afterwards. | 19:12 | |
| benabik is writing that. | |||
| nopaste | "whiteknight" at 192.168.1.3 pasted "new get_pointer for benabik++" (39 lines) at nopaste.snit.ch/67145 | 19:14 | |
| whiteknight | let's see if we can fail a little bit less hard | ||
| benabik | Similar to my idea, but not identical. But you finished first. :-D | ||
| whiteknight: You left the seg->type in there, just FYI. | 19:16 | ||
| whiteknight | damnfartcrap | ||
| as should become painfully obvious, I'm not actually trying to compile the crap code I'm spitting out | 19:17 | ||
| benabik | Typical Linus method. I approve. | ||
| whiteknight | If I pretend hard enough that I don't need an automated syntax checker, it might become true one day | 19:18 | |
| benabik | Parrot_Sub_invoke, sub.c:461, pc = sub->seg->base.data + sub->start_offs | 19:19 | |
| sub->seg == 0 | |||
| whiteknight | lolwat? | ||
| benabik | Sounds like the PBC loader is doing a variety of fixups... | 19:20 | |
| Although that might be me not setting something… | 19:21 | ||
| I don't see anything in my Sub init hash that sets the bytecode segment. | |||
| whiteknight | holycrap | 19:23 | |
| src/pmc/sub.pmc: VTABLE_init: attrs->seg = INTERP->code; | |||
| benabik | Subs are assumed to be attached to the current bytecode segment? | ||
| whiteknight | yes, it's assumed to be attached to the global current bytecode segment | 19:24 | |
| AND, because we need more crap, it's only set during VTABLE_init and there's no interface to change it | |||
| benabik | Oh, fun? | ||
| whiteknight | srsly | ||
| benabik | Sounds like PBC loading could seriously use a refactor. | 19:25 | |
| whiteknight | yes | ||
| I've been working on the subsystem interface for exactly that reason: I want to get the interface cleaned up and stabilized so we can start murding the underlying logic with a flamethrower | |||
| benabik | I don't know why INTERP->code would be NULL at any point... | 19:26 | |
| whiteknight | Right. That's what I don't understand. Where is that null coming from? | ||
| benabik | Sometimes I think your version of parrot is a pile of ashes. | ||
| Although I hear ashes make very nice fertilizer. | |||
| whiteknight | what's happening here is that the packfile loading code performs a huge amount of magic, and the Packfile PMCs are relying on that magic happening during load to skip steps | 19:27 | |
| benabik | :-/ | 19:28 | |
| whiteknight | how are you creating Subs? | ||
| or, how do you add them to the constTable? | |||
| benabik | pir::push($constanttable, pir::new('Sub', %sub)) | 19:29 | |
| Where %sub is a hash with a lot of stuff in it. | |||
|
19:29
contingencyplan joined
|
|||
| whiteknight | ah. | 19:29 | |
| VTABLE_init_pmc does not call VTABLE_init and does not set attrs->seg | 19:30 | ||
| awesome-pawesome | |||
| benabik | Muliple init functions FTW. | ||
| whiteknight | not that it would matter, we wouldn't want the behavior in VTABLE_init anyway | ||
| so in this case, clear breakage is sparing us from subtle and hard-to-find bugs | 19:31 | ||
| when you are creating a packfile, do you create more than one bytecode or constantTable segment? | |||
| benabik | Nope. | 19:34 | |
| whiteknight | okay, so we can probably cheat a little ourselves. Once we have found pointers to both a PackFile_Bytecode and PackFile_ConstTable segments, we can loop over thawed PMCs and update Subs | 19:35 | |
|
19:35
particle left
|
|||
| benabik | fun. | 19:35 | |
|
19:40
particle joined
|
|||
| nopaste | "whiteknight" at 192.168.1.3 pasted "new routine for benabik++" (15 lines) at nopaste.snit.ch/67149 | 19:41 | |
| whiteknight | add that function in above the pmclass declaration. Then, down in the get_pointer vtable, add this: | 19:42 | |
| if (pf->cur_cs && pf->cur_cs->const_table) | |||
| attach_subs_to_segment(INTERP, pf); | |||
| benabik | I was about to say… Should I just guess where that goes? ;-) | ||
| whiteknight | we're all guessing today | 19:43 | |
| benabik | Above the pmclass declaration? | ||
| Ah, I see it. | |||
| dalek | kudo/nom: 21977e8 | jonathan++ | src/binder/types. (2 files): Add a way to store Nil in preperation for handling it in more cases. |
19:45 | |
| kudo/nom: 07c976f | jonathan++ | src/binder/ (3 files): Transform a segfault into an exception (moritz++ for reporting). |
|||
| kudo/nom: 1519560 | jonathan++ | NOMMAP.markdown: Remove one completed goal from NOMMAP, as well as one that's kinda too vague to be useful. |
|||
| benabik | whiteknight: Parrot_Sub_attributes undeclared… Missing a header? | 19:47 | |
| whiteknight | #include "pmc/pmc_sub.h" | 19:48 | |
| benabik | Uhm. sub->seg still null? | 19:53 | |
| whiteknight | damnit | 19:57 | |
| wtf? | |||
| where is that problem happening | |||
|
19:57
mikehh joined
|
|||
| whiteknight | ? | 19:57 | |
| benabik | I inserted a printf into attach_subs_… and it doesn't seem to have been called. :-( | 19:59 | |
| Wait... | 20:01 | ||
| It may be using the old lib parrot. Stupid dyld. | |||
| libparrot! stupid Lion autocorrect | |||
| Hm. KERN_INVALID_ADDRESS at address 0, called from runops_fast_core | 20:07 | ||
| whiteknight | lolfail | 20:09 | |
| benabik | I'm guessing that this route still needs some work… I'm going to work on the old 'generate a PBC file' method for a bit. | 20:14 | |
| whiteknight | yeah, do that | 20:16 | |
| benabik | It's fragile and hides errors, but it "works". | 20:17 | |
| whiteknight | working is overrated | ||
| benabik | whiteknight++ thanks for your help | ||
| whiteknight | no problem. I'll play with it a little more tonight | ||
| benabik | And that little glimpse into your hell. Many thanks for refactoring these things. | ||
| whiteknight | don't thank me until the part you need is fixed | 20:18 | |
| benabik | Thanks for being willing to refactor these things? | 20:19 | |
| whiteknight | don't thank me until I'm willing to refactor the part you need :) | 20:21 | |
| but seriously, some of this code is capital-T Terrible | |||
| saving interp->code, setting it to a new value and then initializing a sub which blindly copies attrs->seg = interp->code is terrible | 20:23 | ||
| maybe we can add a workaround to VTABLE_init_pmc | 20:25 | ||
| whatever. I'm signing off now. I'll be on later tonight | 20:26 | ||
| later | |||
|
20:26
whiteknight left
20:28
kurahaupo left
|
|||
| dalek | kudo/nom: 8443d11 | jonathan++ | src/core/ (2 files): Implement eqv for Enum (and thus Pair). |
20:39 | |
| kudo/nom: 40f4264 | jonathan++ | src/core/Pair.pm: Assignable .key and .value for Pair. |
|||
| kudo/nom: e9ee086 | jonathan++ | src/core/Enum.pm: Enum.invert (inherited by Pair). |
|||
| kudo/nom: c048df8 | jonathan++ | t/spectest.data: Add a passing test file. |
|||
| kudo/nom: 0cd9e76 | pmichaud++ | src/core/Bool.pm: Add some enum-like methods to Bool. |
20:44 | ||
|
20:48
kurahaupo joined
|
|||
| benabik | I created output! | 20:55 | |
| cotto_work | benabik: let's see! | 20:57 | |
| benabik | Uhm. Hm. | 20:58 | |
| bubaflub | benabik++ | ||
| benabik | It just says "foo" | 20:59 | |
| bubaflub | close enough | ||
| benabik | But it's generated from a tree: File->Sub->Op->String | ||
| Granted, I was kinda trying to get return to work... | |||
| I think return is working, but getting the return value isn't… Hm. | 21:01 | ||
| Hm. Maybe I can use the new load_bytecode__ps instead of just load_bytecode__s. | 21:05 | ||
| Return might be working, but calling the sub isn't. That's fun. | 21:12 | ||
|
21:21
fperrad left
|
|||
| dalek | rrot/nqp_pct: 7c2f280 | benabik++ | compilers/pct/src/POST/PBCCompiler.pm: [POST] Let me turn on debugging externally Having to re-bootstrap just to turn on debugging was a pain. |
21:30 | |
| rrot/nqp_pct: 2098ab5 | Whiteknight++ | src/packfile/api.c: Some extra checks in Parrot_pf_subs_by_flag. This should help to eliminate or reduce issues seen by benabik++ |
|||
| rrot/nqp_pct: 1ecc900 | cotto++ | docs/dev/profiling.pod: add a bunch of stub sections to the profiling document |
|||
| rrot/nqp_pct: cd7297c | NotFound++ | ext/winxed/compiler.pir: update winxed snapshot to 1.1.devel 7dac8ecc52: load_packfile builtin |
|||
| rrot/nqp_pct: cd2119b | benabik++ | / (31 files): Merge branch 'master' into nqp_pct Pull in whiteknight++'s extra error checking for Packfile.view |
|||
| rrot/nqp_pct: 58bb0ce | benabik++ | compilers/pct/src/POST/PBCCompiler.pm: POST::PBCCompiler - generate sub index properly The most recently added index is (length - 1), not length. Oops. |
|||
| rrot/nqp_pct: b3352ba | benabik++ | compilers/pct/src/POST/PBCCompiler.pm: POST::PBCCompler - Add get_or_create_* The PackfileConstantTable apparently had different functions for different types. Now it just has one name and acts based on the type of thing. Since NQP stores everything as a PMC we need different functions. The find_caller_lex bit may be a bit strange, but it makes the conversion faster. |
|||
| rrot/nqp_pct: 82ea945 | benabik++ | compilers/pct/src/POST/PBCCompiler.pm: POST::PBCCompiler.pbc - use PackfileView The part in the other methods that's failing is the setup in Packfile.view. So let's use load_bytecode__ps to get a Packfile PMC and work with that. |
|||
|
21:32
ambs left
|
|||
| dalek | rrot/nqp_pct: 2267de1 | benabik++ | compilers/pct/src/POST/PBCCompiler.pir: Re-bootstrap POST::PBCCompiler |
21:39 | |
| rrot/nqp_pct: b1ae9ad | benabik++ | t/compilers/pct/newpost.t: [PCT] Add return test for newPOST It's TODO'd as it doesn't seem to work yet. And based on the fact that I never see the "foo" outputted, the function isn't getting called. But decompiling and running /tmp/temp.pbc shows it seems to be compiling properly. |
|||
| benabik | That last commit is the one generating bytecode that does output. But since the output isn't shown during the test, I'm suspicious that it's getting run at all. | ||
|
21:49
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| cotto_work | seen soh_cah_toa | 22:04 | |
| aloha | soh_cah_toa was last seen in #parrot 1 days 22 hours ago saying "whatever though, i gotta go eat". | ||
| dalek | kudo/nom: 9a99a12 | pmichaud++ | src/core/Numeric.pm: Add infix:<+&>(Any, Any) (and related bitwise ops). |
22:11 | |
| kudo/nom: 120d3be | pmichaud++ | src/core/ (6 files): Make sure .Numeric is properly multied. |
|||
| kudo/nom: f72544a | pmichaud++ | src/core/metaops.pm: Fix triangle metaops on empty lists (TimToady++). |
|||
| kudo/nom: f5ab8d0 | jonathan++ | src/Perl6/Metamodel/ (2 files): Allow overriding of postcircumfix:<( )>. |
22:15 | ||
| kudo/nom: bc30e74 | jonathan++ | src/core/Capture.pm: Cheating |$c in argument lists (only puts in positional bit...will fix that up shortly). |
|||
| kudo/nom: d9a6cfa | jonathan++ | t/spectest.data: We now pass S13-overloading/typecasting-long.t. |
|||
| kudo/nom: 275e3db | jonathan++ | src/core/Junction.pm: Implement junction invocation. |
|||
| kudo/nom: d097bdc | jonathan++ | src/core/Any.pm: Any.[all|any|n?one] |
|||
|
22:36
hercynium left
22:48
dmalcolm left
22:55
particle left,
whiteknight joined,
particle joined
|
|||
| dalek | kudo/nom: 057f236 | jonathan++ | src/Perl6/Metamodel/AttributeContainer.pm: Fix bug where .^attributes could make multiple entries for an attribute in the result list. |
22:56 | |
| kudo/nom: 402f330 | jonathan++ | src/core/Attribute.pm: Some missing methods on Attribute. |
|||
| kudo/nom: 80467f3 | jonathan++ | src/ (3 files): Some missing decontainerizations in Attribute methods and a naming fix to bring us in line with spec and tests. |
|||
| kudo/nom: 538d581 | jonathan++ | t/spectest.data: Run S12-introspection/attributes.t. |
|||
| whiteknight | good evening, #parrot | 23:01 | |
| NotFound | whiteknight: I think I've identified the other pmc that needs as_string: Ptr | 23:03 | |
| whiteknight | I figured it was going to be Ptr or PtrBuf | ||
| PtrBuf has a size parameter, but we would need a way to calculate that | 23:04 | ||
| NotFound | Ptr is what StructView uses for pointers, so I think that for consistency will be the appropiate choice for 'p' returns. | ||
| whiteknight | okay | ||
| is it goint to be possible to detect length of a string with an arbitrary encoding? | 23:05 | ||
| NotFound | Arbitrary, no, but we are treating cases when the values are normal C strings | 23:06 | |
| We may need another similar method for wide strings, with its own complications. | 23:07 | ||
| Different wchar_t types depending on platforms, big or liitle endian.... | 23:08 | ||
| whiteknight | blah | 23:11 | |
| I think what we need to do, in the long run, is to specify that kind of encoding information on the NCI PMC itself | |||
|
23:11
smash left
|
|||
| whiteknight | nci = dlfunc ..., nci.return_string_as("utf8"), nci.pass_string_args_as("ascii") | 23:12 | |
| Then the nci pmc can keep state information, and perform encodings as necessary | 23:13 | ||
| NotFound | I thought about that, but I think it will be better to discuss such design having working bindings with practical usages. | ||
| whiteknight | yes, we can do that now too. But in the long-term we need a better system | ||
| we can start to think about it now | |||
| dalek | kudo/nom: 9fdde9e | pmichaud++ | src/core/Enumeration.pm: Roles apparently can't quite handle 'multi method' yet, so set |
||
| NotFound | I hope the libxml2 bindings I'm working on will open a lot of usages. | 23:14 | |
| benabik | Huh... | 23:15 | |
| Does load_bytecode try to keep you from reloading the same file twice? | 23:17 | ||
| NotFound | benabik: yes | 23:18 | |
|
23:18
whiteknight left
|
|||
| benabik | Well that would do it. Bah. Alrighty then. Updated tests after dinner and a movie. | 23:18 | |
|
23:18
whiteknight joined
|
|||
| dalek | kudo/nom: 3b56d34 | jonathan++ | src/core/IO.pm: Implement get and close subs. |
23:19 | |
| kudo/nom: 0db8c6f | jonathan++ | t/spectest.data: 3 more passing IO test files giving about 50 more passing tests. |
|||
| whiteknight | ...stoopid mouse | ||
| benabik: ping | 23:21 | ||
| NotFound | afk | ||
| bubaflub | whiteknight: ping | 23:26 | |
| whiteknight | pong | 23:27 | |
| bubaflub | i'm including GMP documentation in my own Winxed classes as POD - is there some kind of attribution that i need to give to those folks? | ||
| i sent an email asking that question to gmp-discuss but haven't received anything back yet | |||
| and while i'm there, what kind of license file do i need? | |||
| sorear | what license are the GMP docs? | 23:28 | |
| whiteknight | You can give a shout-out to the GMP folks, but you aren't including their code in your repo, so you don't need formal attribution | ||
| sorear wonders if bubaflub knows about the Debian GFDL fiasco | |||
| bubaflub | sorear: i do not; i'm all ears. | ||
| whiteknight | bubaflub: I suggest you use the artistic 2.0 license, which is what Parrot uses. That allows maximum portability with Parrot | 23:29 | |
| bubaflub | whiteknight: great. do i need a LICENSE file with those contents, or just a shout-out somewhere in the README | ||
| whiteknight | and if you do that, you can just copy a LICENSE file from another project that uses one, like Rosella or PLA | ||
| bubaflub | whiteknight: great. works for me. | ||
| whiteknight | In your readme, say something like "contributors are listed in CREDITS. For license information, see LICENSE" | 23:30 | |
| etc | |||
| dalek | kudo/nom: a207490 | pmichaud++ | / (2 files): Add prefix:<+^>(Any), winning us the S03-operators/bit.t tests. |
||
| bubaflub | sorear and whiteknight: it appears that the GMP docs are GNU Free Document License | 23:33 | |
|
23:33
rblackwe left
|
|||
| whiteknight | that only matters if you actually include GMP docs in your repo | 23:33 | |
| or in your release tarballs | |||
|
23:33
rblackwe joined
|
|||
| whiteknight | attribution is used for the same reason citations are in college papers: to prevent plagiarism. If you aren't trying to pass off somebody else's work as your own, you don't need attribution | 23:34 | |
| bubaflub | whiteknight: but i am including lots of snippets of their docs inline with my code... | 23:35 | |
| dalek | rrot: ae00b64 | Whiteknight++ | /: Merge branch 'whiteknight/load_bytecode' |
||
| sorear | it might be useful to have a link to the master copy | ||
| dalek | rrot: 770a61c | Whiteknight++ | src/p (2 files): Merge branch 'whiteknight/load_bytecode' |
||
| whiteknight | oh, okay. Then you definitely need some kind of note | ||
| sorear | so that 10 years from now when somebody looks at your old docs, they can find a more recent version | ||
| whiteknight | "Hey, I didn't write this, I'm not pretending I did. Here's who really did it, and those people are awesome" | ||
|
23:36
lucian left
|
|||
| bubaflub | gotcha | 23:38 | |
| dalek | kudo/nom: de65682 | jonathan++ | src/core/IO.pm: Implement slurp. |
23:47 | |
| kudo/nom: 6d942a8 | jonathan++ | t/spectest.data: Two more passing test files. |
|||