|
Parrot 3.1.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: ? Set by moderator on 20 February 2011. |
|||
| whiteknight | Coke: I don't know how to reproduce #2022 | 00:07 | |
| Coke: I was looking at it earlier but wasn't able to reproduce | |||
|
00:16
vmspb left
00:20
bacek_at_work left
00:29
benabik joined
00:32
benabik left
00:42
Kulag left
00:43
Kulag joined
01:08
bacek_at_work joined
01:10
kurahaupo left
01:27
lucian_ joined,
lucian left
01:33
lucian_ left
|
|||
| whiteknight | kid51: ping | 01:35 | |
|
01:38
kurahaupo joined
|
|||
| kid51 | pong | 01:44 | |
| nopaste | "kid51" at 192.168.1.3 pasted "t/src/extend_vtable.t failure" (21 lines) at nopaste.snit.ch/33424 | 02:03 | |
| whiteknight | kid51: I ended up solving my own problem | 02:07 | |
| I was trying to figure out how to use POSTMORTEM, but I was forgetting to export | |||
| bubaflub | moritz++ for the logging in #cardinal | 02:08 | |
| kid51 | Very strange: That failure in t/src/extend_vtable.t is inconsistent. | 02:16 | |
| Tene | dukeleto: I don't seem to have admin privs on github.com/parrot/cardinal/ so i can't set dalek up to report cardinal commits to #cardinal | 02:17 | |
| dukeleto: I'm rpetty sure it was you who imported the cardinal repo into the parrot org? | |||
| whiteknight | kid51: I'm having a problem on the whiteknight/imcc_compreg_pmc branch you might be able to help me with. | 02:18 | |
| t/pmc/io_stdin.t uses Parrot::Test and has some PIR tests in it, but isn't outputting PIR temporary files | |||
| I've never seen a Perl-based test run PIR code without outputting a temporary file | 02:19 | ||
| like, I would expect to see it generate a t/pmc/io_stdin_1.pir , _2.pir, _3.pir file, etc | 02:20 | ||
| kid51 | give me a minute to get to that branch. am trying to debug what I just pasted | ||
| whiteknight | I assume the behavior may be the same in master | 02:21 | |
| dalek | rrot/kid51/tt1049_make: 1d4c268 | jkeenan++ | config/gen/makefiles/root.in: Use MAKE_C instead of MAKE insider Makefile. |
02:23 | |
|
02:27
gbacon joined
|
|||
| kid51 | whiteknight: Why would you expect temporary files in a test of STDIN? | 02:28 | |
| whiteknight | kid51: how does it execute that PIR code? | 02:29 | |
| For all other tests with PIR code, it outputs the code to a temporary .pir file and executes that | |||
| see, for instance, t/pmc/io_status_6.pir, from t/pmc/io_status.t | |||
| I don't know how else it would execute that code | 02:30 | ||
| when I do "perl t/pmc/io_stdin.t", the tests all segfault for some reason. When I copy that PIR code out to a test file and run it directly, no segfault and the test passes perfectly | 02:32 | ||
| so I'm really trying to figure out how that test works | |||
| kid51 | Beats me! (I haven't looked at that file before and --dirty secret -- don't know much about testing PIR) | ||
| But, you are correct in that, in master, no .pir or .pasm files are created while running t/pmc/io_stdin.t | 02:33 | ||
| But note, in contrast, t/pmc/io.t. | 02:34 | ||
| whiteknight | okay. And that's the only Perl-testing-PIR file I've seen which dosen't use that behavior | ||
| kid51 | In every stanza there, I see: | 02:35 | |
| $P1 = new ['FileHandle'] | |||
| $P1.'open'(temp_file, "w") | |||
| $P1.'print'("Hello, World!\\n") | |||
| $P1.'close'() | |||
| ... which suggests to me that there's no magic about the creation of the temporary files. | |||
| In contrast, I don't see that in io_stdin.t | |||
| bubaflub | whiteknight and kid51: looks like it's using a specially written function in lib/Parrot/Test.pm | 02:36 | |
| line 577 | |||
| kid51 | pir_stdin_output_is | ||
| bubaflub | yeah, which eventually calls another function which calls a function in Parrot::Test::Util 'create_tempfile' | 02:37 | |
| whiteknight | right. And as soon as we start looking at Perl code, I go cross-eyed | ||
| bubaflub: okay, so it is writing out to a temporary file, just not the same kind of temporary file as all other PIR tests use | 02:39 | ||
| awesome | |||
| bubaflub | yeah | ||
| it's doing some other magic catching the output and piping the input | |||
| but not many other places seem to use that | |||
| and you're right - if there are PIR or PASM tests in a Perl5 test, they all get generated first | |||
| and then run by Parrot | |||
| whiteknight | bubaflub, kid51: I have to head to bed now. Thanks for looking at that. Maybe I'll be able to fix that test failure tomorrow | 02:40 | |
| kid51 | Testing STDIN is tricky; I wrote a CPAN module about that about 8 years ago | ||
| whiteknight | yeah | ||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 2660abe | Whiteknight++ | t/src/extend.t: fix t/src/extend.t failures. These two tests rely on the existence of a PIR compreg. After TT #1967 and TT #1868 we don't assume it is always available, especially not in an embedding or extending situation. |
||
| rrot/whiteknight/imcc_compreg_pmc: 2a317d9 | Whiteknight++ | t/src/embed.t: fix t/src/embed.t Same as the last commit, we don't always have a PIR compreg, so we can't write tests that assume one exists. Either we can remove these tests or we can update them to properly instantiate an IMCCompiler PMC |
|||
| rrot/whiteknight/imcc_compreg_pmc: e319462 | Whiteknight++ | src/pmc/imccompiler.pmc: don't force the HLL namespace to 0. I don't know why old IMCC was doing that, we shouldn't cargo-cult it. |
|||
| whiteknight | goodnight | ||
|
02:41
whiteknight left
|
|||
| dalek | rdinal: f5b5c30 | bubaflub++ | src/classes/Range.pir: fixes ranges that are exclusive |
02:45 | |
|
02:51
contingencyplan left
02:57
Kulag left,
Kulag joined
|
|||
| dalek | rdinal: 4f73472 | bubaflub++ | src/classes/Array.pir: off by one error, fix Array slices with ranges |
03:03 | |
|
03:04
rdesfo left
|
|||
| bacek_at_work | dukeleto, was it you who tried likely/unlikely macros for parrot? | 03:06 | |
| dalek | rdinal: 5c9aa2c | bubaflub++ | src/classes/Array.pir: fix another off by one error with Range and Array slices |
03:17 | |
| atrodo | bacek_at_work> ping | 03:25 | |
|
03:41
mtk left
03:46
mtk joined
|
|||
| cotto | ~~ | 03:47 | |
| dalek | rdinal: 0f1b377 | bubaflub++ | TODO: notice about rewriting object model in 6model |
03:49 | |
| bacek_at_work | atrodo, pong | 03:51 | |
| atrodo, barely here | |||
| atrodo | bacek_at_work> Yes, isparrotfastyet is mine | 03:52 | |
| bacek_at_work | atrodo, good. Which test are you using for "perl6-bench"? | ||
| aloha, isparrotfastyet.com? | |||
| aloha | bacek_at_work: I have no idea. | ||
| bacek_at_work | aloha, isparrotfastyet.com is owned by atrodo | ||
| aloha | bacek_at_work: Okay. | ||
| atrodo | bacek_at_work> *.p6 in perl6/bench-scripts | 03:53 | |
| bacek_at_work | atrodo, ah, ok. Is it hard to split it into individual graphs? | 03:54 | |
| atrodo, and actually *.pl are also perl6 | 03:55 | ||
| Tene | I don't see any changes on that graph recently; does it have a data point for the new gc? | ||
| bacek_at_work | Tene, it should... | ||
| atrodo | I can try to split them. It was faster at the time to just do the *.p6, since most of the *.pl made the entire test set take entirely too long | 03:56 | |
| Yea, I'll try to mess with it tomorrow and see what I can come up with | 04:03 | ||
| But if anyone has any better tests to run, I'd be glad to add them to the list | 04:04 | ||
| bacek_at_work | atrodo, can you also change oofib test to pass something like 30 as argument. Default 24 is too small | ||
| atrodo | Sure, I can see how that does | ||
| dalek | rrot/origin/kid51/tt1049_make: 929972a | jkeenan++ | config/gen/makefiles/root.in: Add an explicit assignment to $MAKE. |
04:18 | |
| rrot/kid51/tt1049_make: 929972a | jkeenan++ | config/gen/makefiles/root.in: Add an explicit assignment to $MAKE. |
|||
| nopaste | "kid51" at 192.168.1.3 pasted "diff of kid51/tt1049_make against its branch point" (75 lines) at nopaste.snit.ch/33425 | 04:21 | |
| dalek | TT #2025 created by jkeenan++: tools/dev/ops_not_tested.pl: Program no longer runs: libraries missing | 04:24 | |
| TT #2025: trac.parrot.org/parrot/ticket/2025 | |||
| rdinal: e875d26 | bubaflub++ | src/classes/Range.pir: hopefully the last fix for Range and off by one errors |
|||
| nopaste | "bacek" at 192.168.1.3 pasted "atrodo, this is "perl6-bench" benchmark on my box." (57 lines) at nopaste.snit.ch/33426 | 04:28 | |
| bacek_at_work | atrodo, there is few long running tests. E.g. anagram, pick-words. | ||
|
04:33
kid51 left
04:34
gbacon left
|
|||
| dalek | rrot/ptrbuf: 181544b | plobsing++ | lib/Parrot/Pmc2c/P (2 files): add PMC_HEADER_PREAMBLE section to PMC grammar This allows declarations to be inserted before all PMC supporting definitions, allowing changes in behaviour. An example of where this might be desirable is user-defined typedefs in attributes. |
04:35 | |
| rrot/ptrbuf: 48506be | plobsing++ | src/pmc/ptr (3 files): implement 3 levels of pointer-type objects Ptr - baseline pointerish function. big nastygram in description to fight feature creep. PtrBuf - can also keeps track of size PtrObj - can also clone and manage memory |
|||
| rrot/ptrbuf: eafa11a | plobsing++ | include/parrot/datatypes.h: move bit and nybble handling to unsigned bits are unsigned by definition (otherwise they'd just be signed nothingness) nybbles are hard to do signed (hardware and compiler support are uncommon) and not really all that useful. |
|||
| rrot/ptrbuf: ec609ac | plobsing++ | include/parrot/datatypes.h: add union type |
|||
| rrot/ptrbuf: 5aeabf5 | plobsing++ | include/parrot/datatypes.h: eliminate unused type flags for DPOINTER and BIGINT |
|||
| rrot/ptrbuf: dd8f285 | plobsing++ | include/parrot/datatypes.h: add alignment field to data type description |
|||
| rrot/ptrbuf: ab0f1b8 | plobsing++ | include/parrot/datatypes.h: list_new is long gone but the concept of arbitrarily sized object is still useful |
|||
| rrot/ptrbuf: 3357e4f | plobsing++ | compilers/imcc/ (4 files): allow PMC registers to be used in keys |
|||
| rrot/ptrbuf: cf5ccfb | plobsing++ | / (2 files): implement StructView PMC to view pointers as struct and union type objects |
|||
| rrot/ptrbuf: 15e98d6 | plobsing++ | / (2 files): add support for explicitly sized types to StructView |
|||
| rrot/ptrbuf: d393725 | plobsing++ | t/pmc/pmc.t: flag StructView as not possible to init() (only init_pmc() is supported) |
|||
| rrot/ptrbuf: f66e491 | plobsing++ | / (132 files): Merge branch 'master' into ptrbuf |
04:39 | ||
| bubaflub | goodnight #parrot | 04:48 | |
|
04:48
bubaflub left
|
|||
| bacek_at_work | seen moritz | 04:54 | |
| aloha | moritz was last seen in #parrot 19 hours 9 mins ago saying "msg bubaflub done, see irclog.perlgeek.de/cardinal/today". | ||
| bacek_at_work | msg moritz Can I have commit bit to perl6/bench-scripts ? | ||
| aloha | OK. I'll deliver the message. | ||
| atrodo | bacek_at_work> correct, that's why I trimmed the list a bit | 04:59 | |
| bacek_at_work | atrodo, still only 8-9 minutes to run. Is it running on your box? | 05:00 | |
| atrodo | generally, not a whole lot else | 05:01 | |
| bacek_at_work is thinking about buying dedicated hosting for parrot-related projects. E.g. "benchmarking", etc. | 05:13 | ||
|
05:41
plobsing_ left
06:14
rurban_ joined
06:17
rurban left,
rurban_ is now known as rurban
|
|||
| dukeleto | ~~ | 06:32 | |
| bacek_at_work: i will gladly take small donations. I plan on setting up Jitterbug for parrot and HLLs on my new linode, as well as something for benchmarks | 06:33 | ||
| bacek_at_work: just haven't had enough JDFI lately | |||
| bacek_at_work | dukeleto, ok :) | 06:34 | |
| dukeleto | bacek_at_work: if you need a box to do benchmarks, talk to mj41 | ||
| bacek_at_work: he has a beefy box that run some of the taptinder clients | |||
| bacek_at_work | dukeleto, I'm thinking about "semi-proper speed.pypy.com port to parrot" | ||
| dukeleto | bacek_at_work: yes, i have the same thoughts | ||
| bacek_at_work | hmm... speed.pypy.org code is available at github.com/tobami/codespeed | 06:36 | |
| dukeleto | bacek_at_work: that is quite nice | 06:37 | |
| bacek_at_work: it even had documentation | 06:38 | ||
| s/had/has/ | |||
| bacek_at_work | and samples | ||
| dukeleto | bacek_at_work: i am familiar with django, i think i can set that up for parrot | ||
| bacek_at_work | I think we can host server next to smolder. With client submitting results from other boxes. | 06:39 | |
| dukeleto | bacek_at_work: you have to be very careful about comparing benchmark data across machines | ||
| bacek_at_work: atrodo has isparrotfastyet.com | |||
| bacek_at_work | dukeleto, I know :) | ||
| Wow, codespeed has nice admin interface. | 06:51 | ||
| And sample how to submit data. | |||
| We can definitely use it for our benchmarking | |||
| dukeleto | bacek_at_work: django comes with that admin interface. I dig it. | 06:54 | |
| # Exception is: type 36 severity 2 message 'remove_role() not implemented in class 'Class'' | |||
| really? Class doesn't know how to remove roles? | 06:55 | ||
| bacek_at_work: does that seem right to you? | |||
| bacek_at_work | dukeleto, no. But I don't like our current Class/Object implementation anyway | ||
| dukeleto, and there is no .remove_role in Class PMC anyway | 06:56 | ||
| afk # going home | 06:57 | ||
| dukeleto | seems like only Object has a remove_role | 06:59 | |
| moritz | msg bacek commit access to perl6/bench-scripts granted | 07:17 | |
| aloha | OK. I'll deliver the message. | ||
| dukeleto | cotto: ping | 07:25 | |
|
07:32
fperrad joined
07:45
kurahaupo left
07:58
theory left
08:02
cosimo left
|
|||
| bacek | ~~ | 08:16 | |
| moritz, thanks | |||
|
08:22
lucian joined
|
|||
| jnthn | remove_role doesn't make much sense to me, fwiw. | 08:31 | |
| Not sure how we ended up with it. | |||
|
08:31
dip joined
08:32
dip left
08:33
dip joined
08:34
dip left
08:35
fperrad left
|
|||
| dalek | rrot/leto/embed_grant: 07377ca | dukeleto++ | t/src/extend_vtable.t: Comment out cmp_pmc test so we can merge to master |
08:50 | |
| rrot/leto/embed_grant: 4626a1e | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_(add|remove)_attribute |
|||
| rrot/leto/embed_grant: 1106ad2 | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_(add|remove)_method |
|||
| rrot/leto/embed_grant: c668feb | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_(add|remove)_parent |
|||
| rrot/leto/embed_grant: cdf2e76 | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_add_role The Class PMC has the add_role vtable but not the remove_role vtable. This seems broken. |
|||
| rrot/leto/embed_grant: 612ec78 | dukeleto++ | src/pmc/pmcproxy.pmc: Make PMCProxy invalid type error more useful |
|||
|
08:58
JimmyZ joined
09:44
ShaneC left
09:49
preflex left
09:51
contingencyplan joined
09:53
preflex joined
09:55
Kulag left
09:56
Kulag joined
10:13
JimmyZ left
10:20
lucian left
|
|||
| dalek | rrot/opsc_full_parse: 83f0ce9 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Break grammar. Start implementing "C" parsing. |
11:42 | |
| rrot/opsc_full_parse: 0f30979 | bacek++ | t/compilers/opsc/01-parse-body.t: Add op body parsing test. |
|||
| rrot/opsc_full_parse: 04917a9 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Parse simple variable declarations |
|||
| rrot/opsc_full_parse: 987367a | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Use EXPR magic for parsing |
|||
| rrot/opsc_full_parse: b3d8b5e | bacek++ | / (2 files): Add more grammar. 'Inspired' by NQP and Squaak |
12:01 | ||
| rrot/opsc_full_parse: d3dbf7d | bacek++ | t/compilers/opsc/01-parse-body.t: Add more tests. |
|||
| rrot/opsc_full_parse: 39ab83b | bacek++ | / (2 files): Implement infix:, |
|||
|
12:11
lucian joined
|
|||
| dalek | rrot/opsc_full_parse: f67b3f1 | bacek++ | t/compilers/opsc/01-parse-body.t: Reogrinze test slightly. |
12:23 | |
| rrot/opsc_full_parse: d644f6a | bacek++ | / (2 files): Convert 'old' macro handling to new style |
|||
| rrot/opsc_full_parse: 961efe1 | bacek++ | t/compilers/opsc/01-parse-body.t: Add test for if-else |
13:02 | ||
| rrot/opsc_full_parse: 07832ac | bacek++ | / (2 files): Implement casting |
|||
| rrot/opsc_full_parse: 6b1dcb9 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Add more infix/prefix tokens. |
|||
| rrot/opsc_full_parse: 44d75c8 | bacek++ | t/compilers/opsc/01-parse-body.t: Add test for bin ops |
|||
| rrot/opsc_full_parse: ac4a7a1 | bacek++ | t/compilers/opsc/01-parse-body.t: Add commented out final big test |
|||
| rrot/opsc_full_parse: 4dfb10a | bacek++ | / (2 files): Fix pointer access |
|||
| rrot/opsc_full_parse: d65d6b9 | bacek++ | t/compilers/opsc/01-parse-body.t: Add more tests. |
|||
| rrot/opsc_full_parse: 87542e1 | bacek++ | t/compilers/opsc/01-parse-body.t: Add tests for bin assignement |
|||
|
13:15
bluescreen joined
|
|||
| dalek | rrot/opsc_full_parse: 9b37fe4 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Add (untested) while and for |
13:16 | |
| rrot/opsc_full_parse: af258e5 | bacek++ | t/compilers/opsc/01-parse-body.t: Add (failing) test for space between function name and arguments. |
|||
| rrot/opsc_full_parse: dc47ac7 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Consume funcall args as term:identifier |
|||
| rrot/opsc_full_parse: 1fec042 | bacek++ | t/compilers/opsc/01-parse-body.t: Uncomment "Final Big Test". It's passing now. |
|||
| rrot: 359f1d0 | (Gerd Pokorra)++ | config/gen/makefiles/root.in: change the build order |
13:17 | ||
| rrot/opsc_full_parse: de0e293 | bacek++ | t/compilers/opsc/01-parse-body.t: Add more tests. |
13:31 | ||
| rrot/opsc_full_parse: f7f45b3 | bacek++ | / (2 files): Add ternary op |
|||
| rrot/opsc_full_parse: 215a73b | bacek++ | / (2 files): Implement circumfix:() to handle casting properly |
|||
|
13:32
whiteknight joined
13:33
plobsing joined
|
|||
| Hackbinary | good afternoon #parrot | 13:35 | |
| dalek | rrot/opsc_full_parse: 4aaa21e | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Comment out DEBUG |
13:41 | |
| rrot/opsc_full_parse: 025da50 | bacek++ | / (2 files): Blockoid finish statement |
|||
| whiteknight | good morning, Hackbinary | 13:42 | |
| and good morning, #parrot | |||
| bacek | msg cotto I created skeleton for semantic parsing of body ops. Feel free to finish it :) | ||
| aloha | OK. I'll deliver the message. | ||
| bacek | Good night, humans. | ||
|
13:42
gbacon joined
|
|||
| Hackbinary | good night bacek | 13:43 | |
| dalek | TT #615 closed by whiteknight++: portable runtime | 13:53 | |
| TT #615: trac.parrot.org/parrot/ticket/615 | |||
| TT #620 closed by whiteknight++: optimization language (past-level) | |||
| TT #620: trac.parrot.org/parrot/ticket/620 | |||
|
13:55
kid51 joined
|
|||
| dalek | TT #617 closed by jkeenan++: embedded device version, nanoparrot | 14:09 | |
| TT #617: trac.parrot.org/parrot/ticket/617 | |||
| TT #614 closed by whiteknight++: llvm jit backend | |||
| TT #614: trac.parrot.org/parrot/ticket/614 | |||
| TT #613 closed by whiteknight++: JIT | |||
| TT #613: trac.parrot.org/parrot/ticket/613 | |||
| kid51 | Good morning #parrot | ||
| whiteknight, bacek Thanks for looking at those tickets | 14:10 | ||
| mikehh | getting failures with t/src/extend_vtable.t test 2 - it is inconsistent - ran prove a bunch of times, failed about a half the time) | 14:13 | |
|
14:14
rurban_ joined
14:17
rurban left,
rurban_ is now known as rurban
|
|||
| kid51 | mikehh: I was getting that last night. But I was getting it in a branch and I thought it was due to something I was doing in the branch. | 14:17 | |
| Are you getting it in master? | |||
| If so, then that's a real bug. I didn't appear to be getting it in master. | |||
| mikehh | kid51: I see gerd++ modified the test since I pulled - let me check that | 14:18 | |
| kid51 | See trac.parrot.org/parrot/ticket/1049 for where I was encountering it | 14:19 | |
| whiteknight | kid51: Thanks for bringing some of them to my attention | 14:22 | |
| kid51 | whiteknight: Can I nudge you toward a look at trac.parrot.org/parrot/ticket/1948 ? | 14:23 | |
| dalek | rrot: 875f5bc | mikehh++ | src/gc/gc_gms.c: remove some warnings (in both gcc/g++) |
14:25 | |
| whiteknight | kid51: Yeah, I'll have to do some tests | 14:27 | |
| I may be mistaken in that regard | |||
| nopaste | "kid51" at 192.168.1.3 pasted "t/src/extend_vtable.t: Non-deterministic results" (71 lines) at nopaste.snit.ch/33505 | 14:28 | |
| kid51 | mikehh: Confirmed: Results inconsistent and mostly bad. | 14:29 | |
| whiteknight | awesome | 14:31 | |
| kid51 | Am opening TT | ||
| Assigning to dukeleto 'cause he's been working on these. His inline comments suggest that the tests are NQRFPT. | 14:35 | ||
| mikehh | I am not quite sure I follow the test - it tests for > 0 (should it be 42?) to pass | 14:39 | |
| thats == 42 I think | 14:40 | ||
| kid51 | I don't either, but it's the same approach he took for several tests | ||
| I played around with it last night. The value of 'integer' changes from one run to the next. | 14:41 | ||
| Usually it's very large. | |||
| whiteknight | can you nopaste the code for that test? | ||
| ( I can't look at it locally right now) | |||
| dalek | TT #2026 created by jkeenan++: t/src/extend_vtable.t: Non-deterministic results | 14:42 | |
| TT #2026: trac.parrot.org/parrot/ticket/2026 | |||
| nopaste | "kid51" at 192.168.1.3 pasted "t/src/extend_vtable.t" (1199 lines) at nopaste.snit.ch/33506 | ||
| whiteknight | okay, which one of those tests is failing? | 14:43 | |
| kid51 | lines 165++ | ||
| The most frequently observed failure is that only "Done" gets printed -- not "Got hash" | 14:44 | ||
| plobsing | how do I get checkdepend.t to stop complaining about grandparent-PMC header inclusion? | 14:45 | |
| whiteknight | okay, that test is wrong | ||
| the hashvalue of a PMC is not necessarily related to it's contents. It's not really something that we can test, other than to prove that we get *a* value and that it doesn't throw an exception or segfault | 14:46 | ||
| but if integer is an INTVAL instead of a UNINTVAL, it could easily be negative | |||
| kid51 | Last night I played around with a Parrot_printf call to report the value of 'integer'. I mostly got large unsigned positive values, but once got a large signed negative value. | 14:47 | |
| whiteknight | that number is going to change because the interp hash seed changes | ||
| the variable "integer" in that test is an INTVAL, I think. Not a UINTVAL | 14:48 | ||
| plobsing | pmc hashing depends on the hash seed? I thought that was just for strigns. | ||
| whiteknight | plobsing: look at src/pmc/default.pmc:hashvalue | ||
| it takes the string representation of the PMC and hashes that | |||
| plobsing | ah. it all makes sense now. | ||
| whiteknight | I won't say that "this is stupid". I will imply it loudly | 14:49 | |
| plobsing | that seems like a silly way for most objects to hash themselves. | ||
| whiteknight | not seems like | ||
| "is" | |||
| considering that distinct PMCs with different data but the same string value suddenly have the same hash value | 14:50 | ||
| plobsing | integer, for example, could bit-manipulate based on a random source | ||
| simplest being xor, although that might have some weak hash properties | |||
| whiteknight | a general hashing algorithm would probably hash the contents of the PMC* structure and also the Parrot_*_attributes structure | 14:51 | |
| and since the size of the attributes structure is stored in the vtable, that's simple to do | 14:52 | ||
| plobsing | whiteknight: not true. | ||
| manual_attrs | |||
| whiteknight | no, that's true. In those cases the user should supply a hashvalue override, or live with a weaker hash | ||
| but if we had a hashing function that took a seed, a pointer, and a size, we could make hashing easy and better than it currently is | 14:53 | ||
| let the users sort it out themselves | |||
| plobsing | they can already. it's a bit of a PITA, but you can take a pointer+length, turn it into a binary string, and hash that. | 14:54 | |
| or roll your own hash algo | |||
| in fact, the later is probably easier | |||
|
14:55
PacoLinux joined
|
|||
| whiteknight | Do we want to require the use of strings for general hashing? | 15:02 | |
| it seems like a waste to have to create a string temporary for every value we want to hash | 15:03 | ||
| and if we need to perform multi-stage hashing of values with multiple pointers, that becomes an even bigger expense | |||
| plobsing | no. we conflate buffer-like with string too much already. immutable strings make horrible buffers | ||
| whiteknight | right. So we shouldn't be telling people to turn data into binary strings for hashing | ||
| plobsing | I'm not so sure about recursing down pointers. Hashing should be shallow by default. | 15:04 | |
| whiteknight | plobsing, you would only recurse as far as the user specified. | 15:07 | |
| for an RPA, for instance, we would probably want to hash the PMC*, the PMC->data*, and the PMC->data->array* portions, because any of those things could reasonably change and change the hash value | 15:08 | ||
| but we wouldn't want to chase pointers any further than that | |||
| so we wouldn't want to hash the individual data pmcs in the array or anything | |||
| plobsing | but PMC->data->array is unique to the RPA. those aren't shared. you get as much value from hashing that as you would from just hashing the address of the PMC. | 15:09 | |
| *assuming no copying collector | 15:10 | ||
| whiteknight | well, it depends what we want the hash to be | 15:11 | |
| is it an identifier of a unique PMC, or a representation of that PMC's current data | 15:12 | ||
| plobsing | If the user has to specify what to hash and how to recurse, why not provide a shallow buffer-hashing function and let them do the recursion. KISS. | ||
|
15:12
lucian left
|
|||
| plobsing | whiteknight: IMO, a custom hashing override allows value-ish types to collide with equivalently valued types of the same kind (intentionally of course). most types are references and are unique compared to all other instances. | 15:13 | |
| whiteknight | if we're interested in getting a unique value for each PMC that fits into an integer, it seems like we could just take the value of it's PMC * | 15:14 | |
| it's a strategy that gives us unique values for each PMC, at least until we all get quantum memory | |||
| plobsing | yes, that's what I'm beginning to think should be the default | ||
| whiteknight | so default:hash_value is "return (INTVAL)SELF"? | 15:15 | |
| plobsing | return interp->hash_seed ^ (INTVAL)SELF | ||
| whiteknight | even better | ||
| plobsing | return Parrot_hash_buffer(INTERP, &SELF, sizeof (PMC *)) | 15:16 | |
| whiteknight | The benefit there is that not only is the hash more sane and less prone to collisions for PMCs with equivalent data, but it's much much faster | ||
| we have that? | |||
| (Parrot_hash_buffer)? | |||
| plobsing | hypothetical shallow buffer-hashing function | 15:17 | |
|
15:17
lucian joined
|
|||
| plobsing | it would not be hard to write. | 15:18 | |
| just factor it out of fixed8_hash | 15:19 | ||
| whiteknight | I think that would be a very valuable tool for us to have, long-term | 15:22 | |
| and has the benefit that if we pull it out into a single function, it becomes trivial to plug in new hash-engines | 15:23 | ||
| cotto_work | ~~ | 15:32 | |
| dukeleto: pong | 15:36 | ||
|
15:54
JimmyZ joined
|
|||
| dalek | rrot: adafa9f | (Gerd Pokorra)++ | tools/dev/nci_thunk_gen.pir: change to new JSON language API |
16:02 | |
| ttbot | Parrot adafa9f7 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25766 | 16:05 | |
| JimmyZ | Gerd Pokorra, you changed it and reverted it yesterday | 16:06 | |
| cotto_work | seen gerd | 16:07 | |
| aloha | gerd was last seen in #parrot 5 days 20 hours ago saying "it is: ...@perl.org". | ||
| ttbot | Parrot adafa9f7 darwin-thread-multi-2level make error tt.taptinder.org/cmdinfo/25786 | 16:11 | |
| Parrot adafa9f7 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25795 | |||
| plobsing | looks like that new JSON API isn't quite ready yet | 16:12 | |
| or possibly we need some makefile dependancies there | |||
| cotto_work | Did that get a mention on parrot-dev or in here? | 16:14 | |
|
16:17
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| dalek | rrot/ptrbuf: 761c9a9 | plobsing++ | t/codingstd/c_macro_args.t: expand macro-argument type loophole to include ALIGN_OF |
16:18 | |
| rrot/ptrbuf: 2ab64cf | plobsing++ | include/parrot/datatypes.h: [codingstd] c_indent |
|||
| rrot/ptrbuf: c264306 | plobsing++ | include/parrot/datatypes.h: [codingstd] trailing_space |
|||
| rrot/ptrbuf: 55c4db2 | plobsing++ | MANIFEST: mk_manifest_and_skip |
|||
| rrot/ptrbuf: 2ac830f | plobsing++ | MANIFEST.generated: add newly created PMCs to installation list |
|||
| whiteknight | plobsing: how is that ptrbuf work going? | 16:22 | |
| plobsing | 4 new types: Ptr, PtrBuf, PtrObj, and StructView | 16:26 | |
| Ptr is basic pointer. supports an efficient "thin" representation using manual_attrs. PtrBuf is still pretty small but keeps track of length. PtrObj has hooks for GC and cloning. | 16:27 | ||
| StructView can be used to look into any pointer-ish object. It supports struct-layout, union-layout, and custom-layout. | 16:28 | ||
| Layouts are specified using array-ish integer aggregates (FIA recommended but not required) | 16:29 | ||
| elements in the viewed pointer are looked up by index, no named lookup is builtin (but can be built on top) | 16:30 | ||
| to get/set a value, keyed-lookup is used | |||
| the general pattern StructView[PointerPMC; Index] | |||
| thus, the representation is decoupled from the pointer | 16:31 | ||
|
16:32
JimmyZ left
|
|||
| plobsing | bounds-checking is planned but not yet implemented | 16:32 | |
| whiteknight | okay, that's very nice | 16:33 | |
| so are we going to get rid of UnmanagedStruct, ManagedStruct, Pointer, and other garbage soon? | |||
| plobsing | those require a dep cycle. | 16:34 | |
| when I'm "done" the branch, I'll put out an RFC. If all goes well, we'll lose those in 3.4. | 16:35 | ||
| whiteknight | here's hoping all goes well | ||
| NotFound | C cover results looks great on a table in vertical position. | ||
| plobsing | my current obstacle is that checkdepends/makefile-generation does not handle more than one level of inheritance, and so the checkdepend test fails. | 16:37 | |
| PtrObj inherits from PtrBuf which inherits from Ptr | 16:38 | ||
| whiteknight | I hate that checkdepend test | 16:39 | |
| absolutely hate it | |||
| cotto_work | whiteknight: why? | 16:40 | |
| It's helped the build, even if it's excessively picky. | |||
|
16:41
fperrad joined
|
|||
| plobsing | cotto_work: you've been following jnthn's nom work. do you think that the StructView I just described is suitable for use for handling REPRs? | 16:43 | |
| oh hey, jnthns online too. | 16:44 | ||
| jnthn: ^^ | |||
|
16:44
kid51 left
|
|||
| jnthn | plobsing: o/ | 16:45 | |
| plobsing: Are these being build for M0, ooc? | |||
| plobsing: Or for general use? | |||
| jnthn reads back a bit to check he understands the StructView thing correctly... | 16:46 | ||
| plobsing | they're for whatever uses them. they're going to land well before Lorito and are intended to make C-interfacing less painful. | ||
|
16:46
theory joined
|
|||
| jnthn | They look lovely for doing better NCI :) | 16:47 | |
| plobsing | what about native attributes? are they suitable? if not, what do they need? | 16:48 | |
| jnthn | I think they may well be applicable there too. | ||
| It's the same problem space, pretty much. | 16:49 | ||
| brb | |||
| back | 16:54 | ||
| plobsing: I can imagine that it'd be possible to implement reprs in terms of those PMCs. | |||
| whiteknight | jnthn: I think I may be misunderstanding what 6model provides. I thought 6model provided parametric roles and class composition | 16:55 | |
| or am I conflating 6model with the things that are using 6model? | |||
| jnthn | whiteknight: The latter, though I've not broken things out all that cleanly yet in the coe base either. | ||
| *code | |||
| whiteknight | jnthn: If I want to read through the 6model code right now, where's the best place to do that? It's been a while since I read it, and I've lost my bearings | 16:57 | |
| perl6/nqp/src/pmc/*? | |||
| or is there a different repo I should be staring at? | |||
| perl6/nqp/src/metamodel/*? | 16:59 | ||
| jnthn | whiteknight: First, read github.com/jnthn/6model/blob/maste...erview.pod | ||
| whiteknight: Ignore the rest of that repo, but that doc is useful. | |||
| whiteknight | ok | ||
| jnthn | whiteknight: Best is to start in src/metamodel/rakudoobject.h | ||
| whiteknight | ok | ||
| jnthn | (Which is going to be renamed.) | ||
| I dunno what to call the thing. :) | 17:00 | ||
| atrodo | magicobject? | ||
| jnthn | NQPObject makes it too...NQP-specific. | ||
| whiteknight | parrotobject.h :) | ||
| jnthn | SMObject sounds too painful... | ||
| dalek | rrot: 843d7c6 | NotFound++ | t/pmc/fixedpmcarray.t: more test coverage for cannot autovivify |
||
| jnthn | 6MObject isn't a valid identifier. :) | ||
| atrodo | SixMObject? | ||
| jnthn | Oh, that could work. | 17:01 | |
| atrodo | Object6M? | ||
| jnthn | Or that. :) | ||
| Well, it's just a bit of renaming at some point, anyways. | |||
| But there's nothing Rakudo-specific - or even close - to rakudoobject.h. The name comes from an initial research prototype. | |||
| ttbot | Parrot 843d7c68 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25833 | 17:03 | |
| whiteknight | jnthn: So if I'm reading this code correctly, the REPRCommonalities structure basically replaces the VTABLE we have in Parrot right now | 17:04 | |
| jnthn | whiteknight: Well, apart from it only has one pointer in it. ;) | ||
| whiteknight | the REPRCommonalities I am looking at in rakudoobject.h has about two dozen function pointers | 17:05 | |
| jnthn | Oh, REPR! | ||
| Sorry, I mis-read :) | |||
| REPR is only concerned with representation/storage issues. | 17:06 | ||
| ttbot | Parrot 843d7c68 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25844 | ||
| jnthn | It doesn't have any responsibility related to method dispatch, for example. | ||
| You could see it as a partial replacement for some of the things in the Parrot v-table. | |||
| whiteknight | okay, so the combination of REPRCommonalities and STable are equivalent to VTABLE? | ||
| minus the mass amounts of crft | |||
| cruft | |||
| jnthn | That's closer, yeah. | ||
|
17:07
lucian left
|
|||
| jnthn | The splitting up of those two bits is what allows for representation polymorphism. | 17:07 | |
| whiteknight | okay, what I'm not seeing is how we initialize a repr PMC, or a rakudoobject PMC | 17:11 | |
| neither of those types appear to use PMC inheritance and neither override VTABLE_init | |||
| jnthn | whiteknight: Correct. See ops.nqp, especially instance_of. But the short answer is that it just calls REPR->instance_of | 17:12 | |
| whiteknight | okay, so where does a new repr come from? | ||
| jnthn | moment, phone call... | 17:13 | |
|
17:15
NotFound_b joined
|
|||
| ttbot | Parrot 843d7c68 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25864 | 17:15 | |
|
17:18
gbacon left
|
|||
| dukeleto | ~~ | 17:24 | |
|
17:27
jsut_ joined
|
|||
| cotto_work | dukeleto: pong | 17:28 | |
|
17:31
jsut left
|
|||
| jnthn | whiteknight: Back. The reprs are initialized at startup time, there's just a simple registry of them. They're not something one would tend to write very often, unlike meta-objects. Since there's not that many conceivable, desirable storage strategies. | 17:38 | |
| whiteknight | okay. Where does that startup initialization happen? | ||
| I'm just trying to get a sense of how things happen end-to-end | |||
| jnthn | whiteknight: Initialization is currently triggered by a dynop, which in turn calls RakudoObject_initialize(PARROT_INTERP) | 17:39 | |
| In rakudoobject.c | |||
| It calls a few other things. | |||
| One is to set up the REPR registry | |||
| The other is to bootstrap the one core meta-object. | |||
| dukeleto | cotto_work: have you taken a look at my m0-spec recent additions? | 17:40 | |
|
17:41
lucian joined,
lucian left
17:42
lucian joined
|
|||
| cotto_work | dukeleto: only briefly. Yesterday was nuts. | 17:43 | |
| On my todo list is to troll through that conversation we had Saturday evening and make sure that everything gets added to the pdd. | |||
|
17:44
mtk left
|
|||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 38e910c | Whiteknight++ | compilers/imcc/imc (2 files): pass imcc instead of imcc->interp to IMCC_fataly. This fixes a test segfault, but the test in question (t/compilers/imcc/syn/file.t) still fails for an unknown reason |
17:46 | |
| dukeleto | cotto_work: i think just about everything we talked about made it into there | 17:47 | |
| cotto_work: i feel like we are getting close to something tangible | |||
| cotto_work | dukeleto: great. I just want to double-check. If nothing else, it'll give me another chance to think on it. | 17:49 | |
|
17:50
mtk joined
|
|||
| dukeleto | cotto_work: wfm | 17:57 | |
|
17:57
NotFound_b left
17:58
NotFound_b joined,
NotFound_b left
|
|||
| cotto_work | dukeleto: did you check if that trac thing was really a bug? | 18:00 | |
| PerlJam | Who is doing work related to threads in parrot these days? I just found a link that looks interesting: swtch.com/~rsc/talks/threads07/ | 18:01 | |
|
18:04
Hackbinary left
|
|||
| sorear | PerlJam: threads in Parrot are not currently being worked on by anyone | 18:07 | |
| dukeleto | PerlJam: very interesting, thanks for the heads up | 18:10 | |
| PerlJam: stealing good ideas from Plan 9 seems like a good idea. | 18:11 | ||
| PerlJam | there are lots of links in that presentation. Many of them to papers by Doug McIlroy. That guy has been thinking about these issue since before the birth of Unix. | 18:12 | |
| atrodo | cotto_work, dukeleto, I've got a few m0-spec questsions. Should I add questions to m0-spec or just ask out load in here? | 18:18 | |
| cotto_work | atrodo: do it here since we're here to discuss them | 18:21 | |
| atrodo | That's what I was thinking. | 18:22 | |
| whiteknight | PerlJam: I'm definitely thinking about threads. Not doing actual work on them right now though | ||
| atrodo | It's strange. It seems like I have a lot of questions, but having a hard time conceptualizing them. | ||
| cotto_work | atrodo: if you can't form a coherent question, try hitting your keyboard with a banana for a minute or two. | 18:24 | |
| atrodo | wfm | ||
| m0-spec question> Will objects be able to install their own MOP, or must all objects use the same MOP | |||
| wow, strangely coherent for random typing | |||
| cotto_work | bananas are powerful | 18:25 | |
| PerlJam | atrodo: seems to me that if they must all use the same MOP that might hinder inter-language operability. | ||
| cotto_work | That's an interesting question, but I don't think it's one M0 needs to care about. | ||
| sorear | ultimately, I think any approach to threading that starts at "no shared state" is a no-go for Parrot | ||
| unless we *want* to not support languages that require shared-memory multiprocessing | 18:26 | ||
|
18:26
Hackbinary joined
|
|||
| PerlJam | cotto_work: M0 is "below" the MOP ? | 18:27 | |
| sorear | atrodo: What does your "MOP" stand for? | ||
| atrodo | Method Object Protocol. 6model | ||
| sorear | "Protocol" is your answer there | 18:28 | |
| cotto_work | PerlJam: correct | ||
| PerlJam | good. that means my mental model is still valid :) | 18:29 | |
| cotto_work | M0 should occupy the same niche that C currently does. | ||
| atrodo | Then maybe the question moves up a level and it's a Lorito question | ||
| cotto_work | atrodo: yup | ||
| dukeleto | atrodo: M0 doesn't know what a MOP is | ||
| cotto_work | Creating a new class will require accessing a meta-object. There's no reason that more than one meta-object can't coexist. | 18:30 | |
| If it's a good idea is left as an exercise for the reader. | |||
| sorear | the MOP, as I understand it, is the minimum set of common features that every PMC* has regardless of linguistic origin | ||
| dukeleto | "Homework will be collected at the end of the semester" | ||
| sorear | it is common by definition | ||
| "create a new MOP" is something you do with a text editor; it cannot be automated | 18:31 | ||
| dukeleto | sorear: meh. | 18:33 | |
| sorear: it comes down to semantics | |||
| sorear: a sufficiently advanced MOP allows changing every part of it, so I agree with you. But in essence, there are an infinite number of isomorphic MOPs. | |||
| sorear: :) | 18:34 | ||
| cotto_work | dukeleto: I'm calling mine "Jimbo" | ||
| dukeleto | cotto_work: mine is named "Joey Bagadonuts" | ||
| NotFound | Gotcha them all! | 18:35 | |
|
18:35
Hackbinary left
|
|||
| atrodo | I'm calling my Joebu | 18:35 | |
| cotto_work | I love the smell of progress in the morning. | ||
| atrodo | Except when it's the afternoon | ||
| But maybe that's just me | 18:36 | ||
|
18:37
ShaneC joined
|
|||
| atrodo | m0-spec question> I'm going to see if I understand how to call functions correctly, in pseudo code | 18:40 | |
| Ask the current context for a new context (the result is a PMC?) | |||
| Set the context's bytecode segment to the destination segement | 18:41 | ||
| Set the PC of the new context to the start of the function you want to call | |||
| manipulate the registers of the new context with passed arguments, including return location (1 int, 1 pmc of the current context?) | 18:42 | ||
| change the current context to the new context and let it take over | 18:43 | ||
| dukeleto | atrodo: sounds roughly correct to me | ||
| atrodo: a PMC is just a blob of memory which can be indexed into, as far as M0 knows | |||
| cotto_work: what do you know about the hashvalue vtable? | |||
| cotto_work: is 0 a valid hashvalue ? | 18:44 | ||
| cotto_work: i am looking to understand: What is the set of possible hashvalues? What is not a valid hashvalue ? | |||
| cotto_work: i think 0 is not a valid hashvalue, but the yak hole is deep | 18:46 | ||
| NotFound | Are we going tointroduce NaHV ? | ||
| dukeleto | NotFound: what now? | 18:47 | |
| NotFound | Not a Hash Value. | ||
| dalek | rrot: 6786a80 | dukeleto++ | t/src/extend_vtable.t: [TT #2026] Hopefully fix intermittently failing test, which assumed positive hashvalues |
18:48 | |
| dukeleto | NotFound: ah. | ||
| cotto_work | sorry, distracted for a minute | 18:49 | |
| dukeleto | cotto_work: i think i fixed it. | 18:51 | |
| cotto_work: if not, I blame you. | |||
| ttbot | Parrot 6786a804 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25900 | ||
| dukeleto | blarg. | 18:52 | |
| "load_language" couldn't find a compiler module for the language 'JSON' | |||
| dukeleto is glad he didn't break master | 18:53 | ||
| cotto_work | dukeleto: looking now | ||
| ttbot | Parrot 6786a804 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25911 | 18:54 | |
|
18:54
gbacon joined
|
|||
| sorear | how much does M0 know about PMCs? Are they just addresses? | 18:54 | |
| how much does M0 differ from C--? | 18:55 | ||
| cotto_work | dukeleto: that strikes me as a historical leftover. Nothing seems to be using it. | ||
| sorear: it knows as little as possible | |||
| I haven't looked much as c--, but the goals seem to be similar | 18:58 | ||
| dukeleto | sorear: PMCs are just regions of memory in M0, which have slots that M0 knows about | 19:01 | |
| cotto_work | It looks pretty researchy. Is it used in production? | ||
| dukeleto | sorear: i am not very familiar with c-- | ||
| cotto_work: there are no tests for it in parrot core, or use of it, but that doesn't mean a HLL isn't using it | 19:02 | ||
| cotto_work: should we mark hashvalue as deprecated and set it up for removal? | 19:03 | ||
| cotto_work | dukeleto: that sounds like a good idea unless we find a user making use of it | ||
| dukeleto | cotto_work: if we verify that no currently-working HLL is using it, then I am fine with removing it sooner, but I think that is something that is good to keep track of in api.yaml | ||
| cotto_work: so that automated tools will know all api changes | 19:04 | ||
| cotto_work | dukeleto: I want to stick with the deprecation policy unless we have an extremely good reason not to. | ||
|
19:04
tewk joined,
Hackbinary joined
|
|||
| dukeleto | cotto_work: i agree. no one is hurting because hashvalue hasn't been deleted yet. There is no rush. | 19:06 | |
| cotto_work | exactly | ||
| gen_gc would be a good enough reason in my eyes, but we have a way around that. | |||
| dukeleto | cotto_work: is there any "upgrade path" for hashtable needed? | 19:07 | |
| cotto_work: no one seems to use it, so do we need one? | |||
| cotto_work | dukeleto: There's no need for an upgrade path, but if someone really likes it, it can be reimplemented as a dynpmc method. | 19:08 | |
| sorear | cotto_work: C--, like M0 will be, has exactly one real user | ||
| tewk | Preliminary select support for parrot: github.com/tewk/parrot-select | ||
| sorear | (Glasgow Haskell specifically) | ||
| cotto_work | ghc is pretty great | 19:09 | |
| having one user means a lot more than having 0 | |||
| dalek | rrot: 79e2fe8 | dukeleto++ | api.yaml: [TT #2027] Add deprecation of hashvalue vtable to api.yaml |
19:11 | |
| dukeleto | tewk: welcome back, stranger! | ||
|
19:12
bluescreen left
|
|||
| ttbot | Parrot 79e2fe8b i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25968 | 19:14 | |
| dukeleto | quite an exciting day already... | ||
| cotto_work | if by exciting, you mean build-breaking | 19:15 | |
| dukeleto | looks like gerd++ broke master with some JSON changes | ||
| cotto_work: yes, that is what I meant | |||
| i guess i should say gerd-- | |||
| cotto_work | I'd have fixed it if I could repro. | ||
| dukeleto | cotto_work: could be a -j issue | 19:16 | |
| tewk | ERROR: Permission to parrot/parrot.git denied to tewk. | 19:18 | |
| Am I on the github commit list? | |||
| ttbot | Parrot 79e2fe8b i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26002 | 19:19 | |
| dukeleto | tewk: did you ever submit a parrot CLA? I think so, correct? | ||
| tewk: your commit bit might not have been migrated in the Great Bit Migration | |||
| tewk | I long time ago. I had a commit bit to svn | ||
| tadzik | oh, that reminds me of mine | ||
| dukeleto: did mine arrive? | |||
| dukeleto | tewk: /me will fix right now | ||
| tadzik: did you send it? ;) particle is the One Who Receives CLAs | 19:20 | ||
| ttbot | Parrot 79e2fe8b i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/25979 | ||
| Parrot 79e2fe8b darwin-thread-multi-2level make error tt.taptinder.org/cmdinfo/25994 | |||
| tewk | Is this the right syntax to push a branch to parrot github: git push origin tewk/select:tewk/select | ||
| tadzik | dukeleto: yeah, looks hell like "more than a month ago" now. Shall I send a scanned one? | ||
| dukeleto | tadzik: sure, email it to legal@parrot.org | 19:21 | |
| dalek | TT #2027 created by dukeleto++: Deprecate hashvalue vtable | ||
| TT #2027: trac.parrot.org/parrot/ticket/2027 | |||
| tadzik | dukeleto: that's a Parrot CLA or a PF CLA? | ||
| dukeleto: I've sent one to the Perl Foundation | |||
| dukeleto | tadzik: now you have me confused | 19:22 | |
| tewk: your bit is minty fresh! | |||
| tewk: can you make a branch for your select pmc ? | |||
| tewk | 12:15 <@tewk> Is this the right syntax to push a branch to parrot github: git push origin tewk/select:tewk/select | 19:23 | |
| dukeleto | tewk: these may interest you: github.com/parrot/parrot/blob/mast...rkflow.pod | ||
| tewk: nope, not the right syntax. But the above link should tell you all that you need. | |||
| tewk: and if you have questions, definitely let me know | |||
| tadzik | dukeleto: I've never sent a Parroc CLA. I've sent a Perl Foundation CLA to the Perl Foundation around a month ago | ||
| dukeleto | tadzik: ah, well, I am the wrong person to ask about that :) | 19:24 | |
| tadzik | dukeleto: should I send one to PaFo? | ||
| dalek | rrot/tewk/select: 2fc8fad | tewk++ | src/pmc/hash.pmc: Hash pmc gets set_pmc_keyed_int and delete_keyed_int |
||
| dukeleto | tewk: right now, I think you want to clone parrot.git, then a branch, and put your select pmc commits in there | ||
| rrot/tewk/select: 6df2ffa | tewk++ | / (9 files): Select PMC |
|||
| dukeleto | tadzik: sure, if you want a commit bit :) | ||
| tadzik | well, another one? :P | 19:25 | |
| dukeleto | tadzik: can't have too many, is my philosophy | ||
| tewk | dukeleto: its the right syntax, just verbose :) | ||
| tadzik | how many do I have to have to win a toaster? :) | ||
| dukeleto | tewk: ah, I stand corrected :) I'd never used that full syntax before | ||
| NotFound | Someone needs github superpowers? | ||
| tadzik | dukeleto: no, but would it be nice and legal for me to send one? | ||
| dukeleto | tadzik: MAXINT | ||
| NotFound: i just found tewk++'s commit bit under the couch cushion | 19:26 | ||
| NotFound | I see it now. | ||
| dukeleto | tewk: if you could send a quick email to parrot-dev describing what your select PMC branch does, that would be awesome. Many parrot hackers are allergic to IRC. | 19:27 | |
|
19:27
bluescreen joined
|
|||
| NotFound | Or a blog post, looks more fashion these days. | 19:28 | |
| tewk | dukeleto: already sent. | 19:29 | |
| I didn't really say what it does, besides nonblocking IO. It just adds Perl5 IO::Select like functionality | 19:31 | ||
| cotto_work | I figured. That sounds like a welcome addition. | 19:37 | |
| whiteknight | holy crap! tewk out of nowhere! | 19:40 | |
| and with a fully-formed Select PMC too, no less | 19:42 | ||
| lucian | that plan9 thing is pretty much erlang OTP | 19:43 | |
| tadzik | huh? | 19:44 | |
| lucian | and they implement it in terms of threads anyway | 19:45 | |
|
19:48
bluescreen left
|
|||
| dukeleto | lucian: OTP = ? | 19:49 | |
| lucian | dukeleto: erlang's VM | ||
| in fact, otp is in some ways better than pike&all's thing, which appears to have evolved into go | |||
| in the end, parrot will need to provide shared-memory threads | 19:51 | ||
| otherwise HLLs won't be able to implement other things on top | |||
| tadzik | dukeleto: so, should I send my CLA or not? | ||
|
19:53
Hackbinary left
|
|||
| dukeleto | tadzik: yes! | 19:59 | |
| tadzik | dukeleto: where is the form? | 20:00 | |
| whiteknight | Coke: ping | 20:01 | |
| actually, nevermind. Coke unping | |||
| tadzik | dukeleto: o'right, I found it | 20:02 | |
| dukeleto: am I requested to complete Schedule I? | |||
| dalek | sella: 6999eae | Whiteknight++ | query/ (4 files): Some prototype files for a new object-query library. Think .NET Linq, with the same bad performance but now it's on Parrot |
||
|
20:03
gerd joined
|
|||
| gerd | dukeleto: I can not reproduce the JSON error, but I do not know anything about taptinder | 20:06 | |
| dukeleto | gerd: i think it is something to do with parallel builds | 20:08 | |
| gerd: can you try compiling with "make -j 2" ? | |||
| tadzik: you don't need the schedule I | |||
| gerd | I will try it. | ||
| dalek | TT #2014 closed by doughera++: t/tools/mk_language_shell.t might use an old installed parrot | 20:11 | |
| TT #2014: trac.parrot.org/parrot/ticket/2014 | |||
| gerd | dukeleto: a fresh checkout, perl Configure and make -j 2, builds fine at my host | 20:13 | |
|
20:14
lucian_ joined
20:15
lucian left
20:23
vmspb joined
20:29
gerd left
20:31
Hackbinary joined
20:37
Hackbinary left
20:48
Hackbinary joined
20:54
Hackbinary left
21:03
cognominal left
|
|||
| mj41 | Fixed (html escaped) TapTinder error output tt.taptinder.org/cmdinfo/25763 | 21:10 | |
| tadzik | dukeleto: cla sent | 21:15 | |
| mikehh | there is definately a dependency problem with make world | 21:16 | |
| "load_bytecode" couldn't find file 'P6Regex.pbc' - called from Sub 'gen_sigtable' pc 1920 (tools/dev/nci_thunk_gen.pir:927) | 21:21 | ||
| cotto_work | mikehh: how easily can you repro that? | 21:22 | |
| er, reliably | |||
| mikehh | hit it a few times now | ||
| whiteknight | tadzik: we've received your CLA. Thanks for the submiss | 21:23 | |
| submission | |||
| tadzik | and, how do I generate html docs like those on docs.parrot.org? | ||
| whiteknight: thank you | 21:24 | ||
| cotto_work | tadzik: make html | ||
| it'll be in docs/html and docs/resouces | |||
| whiteknight | tadzik: Process basically goes like this: At the next #ps you can be nominated. If there's a vote and we all like you, you win | ||
| cotto_work | *resources | ||
| tadzik | oh, I'm stupid. Thanks cotto_work | ||
| whiteknight | tadzik: otherwise, you must enter the "trials". In that case you some make sure you know a good physician, and maybe a good lawyer | ||
| tadzik | whiteknight: nominated to what? Win what? :) | ||
| whiteknight | s/some/should/ | ||
| tadzik: nominated to be a contributor | 21:25 | ||
| and win a commit bit | |||
| dalek | rrot: cbdce42 | tadzik++ | examples/languages/squaak/doc/tutorial_episode_5.pod: Fix formatting in Squaak tutorial, episode 5 |
||
| tadzik | whiteknight: I alredy have one :) | ||
| dalek: thanks, Justin Time | 21:26 | ||
| whiteknight | tadzik: already have one? Then why did you send in a CLA? | ||
|
21:26
Hackbinary joined
|
|||
| tadzik | whiteknight: dukeleto told me it was The Right Thing To Do | 21:26 | |
| and I felt like it'd be fair | |||
| whiteknight | okay then. I guess you already win | 21:27 | |
| ttbot | Parrot cbdce424 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26033 | 21:29 | |
|
21:29
whiteknight left
|
|||
| ttbot | Parrot cbdce424 darwin-thread-multi-2level make error tt.taptinder.org/cmdinfo/26036 | 21:30 | |
| Parrot cbdce424 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26045 | 21:31 | ||
| tadzik | how do you find the following deprecation detection syntax for api.yaml? wklej.org/id/480196/ | 21:34 | |
| dalek | rrot/opsc_full_parse: 1cf8605 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Add boolean && and || |
21:35 | |
| rrot/opsc_full_parse: ad36014 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Add shift infix |
|||
| rrot/opsc_full_parse: bc4160f | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Add '.' and prefix:& |
|||
| rrot/opsc_full_parse: 9a335e9 | bacek++ | t/compilers/opsc/01-parse-body.t: Add tests for (expr|goto) macros. |
|||
| rrot/opsc_full_parse: 9a27651 | bacek++ | / (2 files): op_macro is term, not statement |
|||
| luben | dukeleto cotto, if the discussion is about VTABLE_hashvalue it is used in the hash-tables. When using PMC keys we get PMC's hashvalue. Every PMC could override the default implementation in order to provide faster or more appropriate hashing. | 21:36 | |
| Removing hashvalue vtable will give us more speed (because of less indirection) but also less flexibility | 21:38 | ||
| cotto_work | luben: you're right. I missed that when digging around. | 21:40 | |
| tadzik: what's the difference? | 21:42 | ||
| luben: can you quickly add that to dukeleto's ticket? | |||
| luben | ok | ||
| tadzik | cotto_work: the regex: part is supposed to be handled by a script which checks files for possible deprecations | 21:44 | |
|
21:44
perlite_ joined
|
|||
| tadzik | that'll possibly contain different regexes for different code files (pir, pasm, nqp, etc) | 21:44 | |
| any idea how to access command-line arguments from nqp? | 21:47 | ||
| cotto_work | That makes sense. I'd make the mechanism more general, or at least be more explicit that the regex is intended to detect uses of the deprecated thing. | ||
| you have to do some fakery with q:pir iirc. | 21:48 | ||
|
21:48
perlite left,
perlite_ is now known as perlite
21:49
vmspb left
|
|||
| tadzik | well, my newest plan is to make it a module and run it from pir | 21:49 | |
| cotto_work: what do you mean by "more general"? | |||
| cotto_work | support more than one way of detecting deprecated things | ||
| tadzik | so a section like detection/regex/pir? | 21:50 | |
| cotto_work | I'm not sure what those other detection methods would look like though, so it might be premature. | ||
| yes | |||
| tadzik | well, the idea can be abandoned if wrong. I'll try to work out something to present at #ps tomorrow | 21:51 | |
| or even before | |||
| cotto_work | Thanks. | ||
| My first inclination would be inline code, but that's not ideal. | |||
|
22:00
Hackbinary left
|
|||
| dalek | p: 9a7d4a9 | moritz++ | src/HLL/Compiler.pm: move some code in HLL::Compiler.compile from PIR to NQP |
22:07 | |
| p: 05b3461 | moritz++ | src/HLL/Compiler.pm: rewrite method compile in NQP. A bit shorter now :-) |
|||
| p: e659566 | moritz++ | src/stage0/ (4 files): update bootstrap |
|||
|
22:14
rurban_ joined
22:17
rurban left,
rurban_ is now known as rurban
22:25
Hackbinary joined
22:35
plobsing left,
Hackbinary left,
plobsing joined
|
|||
| dalek | rrot: 40c0d36 | fperrad++ | runtime/parrot/library/TAP/Parser.pir: [TAP] use encoding utf8 |
22:40 | |
|
22:42
lucian joined
22:43
lucian_ left,
cosimo joined
|
|||
| ttbot | Parrot 40c0d36d i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26098 | 22:43 | |
| Parrot 40c0d36d i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26110 | 22:47 | ||
| tadzik | bacek: you around? | 22:48 | |
| bacek_at_work | tadzik, barely | ||
| tadzik | alright, will poke you tomorrow | 22:49 | |
| ttbot | Parrot 40c0d36d i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26123 | 22:50 | |
| bacek_at_work | tadzik, just ask. I'll try to answer. Probably with little bit of latency | ||
| NotFound | ./runtime/parrot/languages/JSON/JSON.pir is not deleted by make realclean. | ||
| That explain why we are not seeing the problem. | |||
| dukeleto | NotFound: nice catch! | 22:51 | |
| cotto_work | the makefile rules around that file weren't very carefully written | 22:52 | |
| NotFound: thanks for finding that | |||
| NotFound | Avec plaisir | 22:53 | |
| Now I can't build parrot :D | 22:56 | ||
|
23:00
Hackbinary joined
|
|||
| NotFound | make runtime/parrot/languages/JSON/JSON.pir # does it, as expected | 23:00 | |
| mikehh | t/pir/pbc_fallback_1.pbc is untracked by git status and not removed by make realclean (after fulltest) | ||
|
23:02
fperrad left
23:03
Hackbinary left
|
|||
| NotFound | There is a dependence on DATA_JSON_LIB_PBCS but I don't see were is this var defined. | 23:03 | |
| mikehh | oh I got: | ||
| bacek_at_work | NotFound, nowhere. | 23:04 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#10564) fulltest) at 3_1_0-211-g79e2fe8 - Ubuntu 10.10 i386 (gcc-4.5) | ||
| NotFound | Good place, there are lots of interesting things there. | ||
| mikehh | but I had to run make -j world twice | ||
| NotFound plays 'Nowhere man' | 23:05 | ||
|
23:06
Hunger left
|
|||
| NotFound | Same thing with JSON_LANG | 23:07 | |
|
23:09
whiteknight joined,
kid51 joined
23:10
Hunger joined
|
|||
| cotto_work | NotFound: compilers/data_json/Defines.mak | 23:11 | |
| dalek | TT #997 closed by jkeenan++: [BUG] Segmentation fault by building TGE on ppc64 | 23:12 | |
| TT #997: trac.parrot.org/parrot/ticket/997 | |||
| tadzik | bacek_at_work: please take a look at github.com/tadzik/parrot-deprecation-detector it fails due to some YAML::Tiny error, as described in README. Help will be very welcome. It's possibly some error on my side too | 23:18 | |
| NotFound | The lack of dependance on JSON_LANG seems to be the main problem. | 23:22 | |
| BTW, there is some reason for using a .pir file instead of a .pbc? This is against the goal of not compiling pir during load_bytecode | 23:23 | ||
| bacek_at_work | tadzik, did you check tools/dev/resolve_deprecated.nqp ? | 23:28 | |
| tadzik, or I don't understand purpose of your module totally? | |||
| dalek | rrot: 0c91dd2 | mikehh++ | t/src/extend_vtable.t: test needs a cast to run with g++ |
23:32 | |
| rrot: 0986ee3 | nwellnhof++ | t/dynpmc/os.t: Skip bad cwd test on anything but Linux By suggestion from doughera++. Should fix TT #1951. |
23:33 | ||
| ttbot | Parrot 0c91dd2a i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26170 | 23:34 | |
| Parrot 0986ee34 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26190 | 23:37 | ||
| Parrot 0986ee34 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26215 | 23:39 | ||
| kid51 | I just got that same build failure. on linux/i386 with g++ build. Built successfully moments before that. | 23:41 | |
| cotto_work | NotFound: it should use a pbc | ||
| ttbot | Parrot 0986ee34 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/26240 | 23:45 | |
| tadzik | bacek_at_work: turns out you didn't. If you check out the api.yaml in the repo, you will see the new section 'detection', or sth like this. Inside there is a regex section, with a regex for pir code. The script I'm writing will use this regex to check for deprecated constructs in pir code | 23:47 | |
| bacek_at_work | tadzik, ah, ok. I'll look at it closer tonight. | ||
|
23:47
Andy left
|
|||
| tadzik | thanks | 23:48 | |
| dalek | rrot/kid51/tt1049_make: c8ff9ee | jkeenan++ | / (2 files): Apply patch contributed by doughera++ in TT #1049, then fix some tests to work with that patch. |
23:52 | |
|
23:56
nwellnhof joined
|
|||
| nwellnhof | ~ | 23:57 | |
| tadzik | hello | 23:58 | |