Parrot 4.10.0 "[Red-eared Parakeet]" parrot.org/ | Log: irclog.perlgeek.de/parrot
Set by moderator on 21 November 2012.
00:46 Reini joined 01:10 benabik joined 01:14 Mike-PerlRecruiter_ joined
dalek rrot/native_pbc: f0c6afe | rurban++ | t/native_pbc/number.t:
[GH #394] special case some native_pbc/number.t tests

New marker for partially skipped tests: S4,S8 to skip on 4/8 byte platform T4,T8 to skip 4/8 byte pbc testfiles. Problem: 8_16_le=>4_8_le fails, but 8_16_le=>8_8_le passes
02:17
02:53 davidfetter joined 04:36 Psyche^ joined 05:47 Reini joined 08:51 sjn_ joined 08:52 sjn_ left 09:32 jsut_ joined 11:20 migimunz joined 13:14 Mike-PerlRecruiter_ joined 13:41 PacoAir joined 13:52 Reini joined 13:59 migimunz joined 14:25 PacoAir joined 14:56 bluescreen joined 14:57 benabik joined, PacoAir joined 15:24 prammer joined 16:16 dmalcolm joined 16:46 mj41 joined 16:47 ttbot joined 16:58 Mike-PerlRecruiter_ joined 17:03 davidfetter joined 17:04 contingencyplan joined, dngor joined 17:05 benabik joined, bluescreen joined 17:16 dngor joined 17:58 Reini joined 18:10 benabik joined
rurban day7 perl6 advent preview: perl6advent.wordpress.com/?p=1217 18:10
Anyone wants to write about parrot threads? I've reserved day 11 for us. 18:11
davidfetter 404
benabik It's not published yet, so it's not visible to people not logged in. (Or perhaps not even everyone who is.) 18:12
davidfetter ah
benabik isn't logged in, so is basing this on experience with other similar systems. 18:13
rurban I guess you need a wordpress account to see it. It should be public
18:14 Reini joined
rurban I see... 18:14
gist.github.com/4226700 18:15
migimunz hello 18:27
do all PIR statements/opcodes have to be inside subs?
also, for local or captured variables, find_name should do the exact same thing as find_lex, right? 18:48
PerlJam migimunz: it seems like your first question you can easily test yourself. 18:59
19:03 benabik joined
migimunz PerlJam, I did, but I was thinking about having multiple files, and where I'd define my classes, etc 19:03
I'm not quite sure yet how parrot deals with multiple pir files tbh 19:04
19:16 dngor joined 19:31 Hunger joined 19:33 tuxit joined
rurban I think I have found a GC problem with threads and IO, when doing -t1 on something large 19:52
gc_gms_mark_pmc_header: self->work_list might be empty
github.com/parrot/parrot/issues/875 19:56
dalek rrot: ddf6aec | rurban++ | src/gc/gc_gms.c:
[GH #875] Fix SEGV with empty GC self->work_list in the grey marker

See github.com/parrot/parrot/issues/875 Do not mark a PMC as grey if the self->work_list is empty. I do not know if that is correct, but it fixed the issue.
20:02
benabik dislikes "don't know if that is correct" in connection to the GC. 20:11
In fact, I find that very suspicious. GMS allocates the work_list at the beginning of the sweep and clears it at the end. mark_header shouldn't be called outside of that... 20:21
rurban Yes, very disturbing. But --trace with a long list of output almost always triggers this bug. 20:33
benabik Oh, even worse. The call stack says this is in gc_gms_mark_and_sweep. 20:49
20:50 autark joined
Coke --trace hasn't worked right in years. 20:52
davidfetter maybe it shouldn't be there, then 20:53
dalek Heuristic branch merge: pushed 28 commits to parrot by rurban 20:56
rurban haha, same axe as with -O1 which perfectly worked fine, only -O2 was broken, but now we no optimizer at all. 20:57
benabik What was just merged?
rurban Merged native_pbc
benabik rurban++
rurban You need to do a make clean, again as with threads
Now the biggest changes are in. 20:58
Some codingstd failures still...
benabik Hmmm.... 21:01
mark_interp marks its parent. Is this a problem with threads?
rurban I'm finishing my merge and then check GC with threads. Each thread runs its own GC I heard 21:05
benabik That's my worry.
I think what's happening is that trace_root is breaking that barrier.
rurban Oh... 21:06
benabik So the work_list is NULL because the parent isn't currently running GC.
Also: mark_interp comment says "Mark an interpreter and all direct children", but it seems to walk _up_ the interps, not down. 21:08
dalek rrot: 38b82fb | rurban++ | / (3 files):
[codingstd] fix 3 violations from native_pbc: hard tabs, cpp indents
21:13
rurban m lib_deps was also broken for a while. Stupid perl5 piping error 21:17
And only valid for 32-bit, ha! 21:18
21:36 Hunger joined
dalek rrot: 8911774 | rurban++ | examples/compilers/japhc.c:
[examples] fix include of examples/compilers/japhc.c

use #include "pmc/pmc_sub.h"
21:38
rrot: d3685d3 | rurban++ | tools/dev/lib_deps.pl:
[tools] fix perl5 cmd pipes for make lib_deps

Also enable nm parsing on 64-bit. The previous version did only 32-bit
rrot: ed7dac5 | rurban++ | / (2 files):
[tools] more lib_deps: add -Iinclude/pmc
22:09
rurban msg benabik can you come up with a better fix for thread & GC? Looks like we are sweeping too much. 22:29
aloha OK. I'll deliver the message.
migimunz hm, why does .lex take it's parameters comma separated, while .param and .local take them space separated? 22:39
rurban migimunz: good question but too late to change 22:51
migimunz rurban, I was just wondering if there's a reason to it, or a way to know which directive requires which syntax 22:52
I don't mind it otherwise
rurban Ideally only compiler writers should care about .pir quirks. A user should just compile his src to .pir/.pbc 22:54
migimunz well, I am writing a compiler for a custom language 22:55
rurban Welcome :)
migimunz thanks :D
23:02 Hunger joined 23:03 benabik joined 23:10 whiteknight joined
rurban benabik: can you come up with a better fix for thread & GC? Looks like we are sweeping too much. 23:10
benabik rurban: I'm not sure what the correct fix is and I'm too distracted right now to work on it. 23:12
diakopter relurks from a distance; ttyl :) 23:13
23:13 diakopter left
rurban I see. I have an idea, but I also have no time yet. 23:14
23:31 aloha joined
whiteknight rurban: What's the problem? 23:40
rurban 321048a1f1558 and issue #875 23:41
github.com/parrot/parrot/issues/875
whiteknight ok 23:42
The "real" solution, in the long term, is to switch to an explicitly concurrent GC algorithm 23:43
rurban I fixed it temporlarily by checking against an empty GC ->work_list, but benabik thinks that we can cut a thread sweep at all from roots into a Task
GC should only run in its own interp
That's our idea 23:44
GC should traverse from root only the children interp's, but not the parents 23:46
Is our GC not explicitly concurrent already? 23:47
whiteknight no, it's a single-threaded algorithm, that runs independently in each thread 23:48