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