Parrot 4.1.0 "Black-headed Parrot" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 28 February 2012.
00:27 wagle joined 00:40 wagle joined 01:53 elmex joined
whiteknight I'm getting pretty close with this branch 02:38
load_bytecode_s and load_language_s opcodes are dead and gone, almost all of the library is updated 02:39
src/packfile/api.c is much cleaner and I have more to do
but all the cleaning doesn't need to happen in this branch
02:42 PacoAir joined
whiteknight one thing I'm noticing is that dependency information for the files in runtime/parrot/library/* is completely missing from the makefile 02:55
Because there's the implicit assumption that load_bytecode was going to compile a .pir file if it can't find the .pbc
which means a single file may be compiled multiple times during the build 02:56
We need to go through and review some of the crap we have in runtime/parrot/library 03:27
some of it probably needs to be jettisoned, much of it should be rewritten in NQP or Winxed
dalek rrot/m0: 926ab69 | dukeleto++ | / (2 files):
Migrate m0 makefile rules to the main makefile
03:42
aloha (parrot/parrot) Issues opened : 733 (M0 C implementation fails on t/m0/m0_integration.t) by leto : github.com/parrot/parrot/issues/733 03:55
04:17 travis-ci joined
travis-ci [travis-ci] parrot/parrot#138 (m0 - 926ab69 : Jonathan "Duke" Leto): The build passed. 04:17
[travis-ci] Change view : github.com/parrot/parrot/compare/6......926ab69
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/837570
04:17 travis-ci left
benabik whiteknight++ # cleaning the packfile API 04:17
04:25 plobsing joined, dngor joined
dukeleto ~~ 04:33
05:14 dngor joined
dalek href="https://parrot.github.com:">parrot.github.com: 3f4c2a7 | alvis++ | README_release.pod:
Some corrections to the text.
06:27
href="https://parrot.github.com:">parrot.github.com: 6e9cbe2 | alvis++ | README_release.pod:
Move README_release.pod (and rename it to 'release_parrot_github_guide.pod') to the parrot repo.
rrot: 2228093 | alvis++ | docs/project/release_manager_guide.pod:
Update the guide to point to new 'release_parrot_github_guide.pod'.
07:37
rrot: 1f2436e | alvis++ | docs/project/release_parrot_github_guide.pod:
Add 'release_parrot_github_guide.pod' to 'docs/project'.
rrot: a1d58e8 | alvis++ | MANIFEST:
Update MANIFEST to include 'docs/project/release_parrot_github_guide.pod'
07:56 travis-ci joined
travis-ci [travis-ci] parrot/parrot#139 (master - a1d58e8 : Alvis Yardley): The build passed. 07:56
[travis-ci] Change view : github.com/parrot/parrot/compare/d......a1d58e8
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/838188
07:56 travis-ci left 08:09 fperrad joined 08:14 particle joined 08:30 dngor joined 09:45 bacek joined
dalek p/new_make: e916eda | bacek++ | tools/build/Makefile.in:
Parallelize stage0 build
10:04
10:15 PacoAir joined
dalek p: 6010c98 | bacek++ | src/6model/serialization.c:
Pacify compiler by explicit casting
10:22
p/new_make: 607cd33 | bacek++ | / (14 files):
Merge branch 'master' into new_make
10:24 johbar_work joined 10:44 mj41 joined 11:08 contingencyplan joined 11:41 whiteknight joined
whiteknight good morning, #parrot 11:55
moritz \\o whiteknight 11:56
nine good morning, whiteknight
whiteknight hello nine, mortiz
dalek rrot/threads: 5165f6a | nine++ | lib/Parrot/Pmc2c/PMC/Proxy.pm:
Don't create proxies for PMCNULL results lest PMC_IS_NULL no longer works
12:17
rrot/threads: 97254da | nine++ | lib/Parrot/Pmc2c/PMC/Proxy.pm:
Block the GC while executing a proxied method

Proxy runs methods on the target with the target's interp. If GC is triggered during this run, the foreign interp's GC could find our PMCs on the call stack. It would also not find any PMCs which are on the foreign interp's callstack. And most of all it could be that the foreign interp also starts collecting garbage at the same time...
So we block the foreign GC to prevent this from happening.
rrot/threads: 2b11eac | nine++ | lib/Parrot/Pmc2c/PMC/Proxy.pm:
Use Parrot_thread_create_proxy to create proxies

Proxy's methods create proxies for returned objects. Before this fix, it did this by calling Parrot_pmc_new_init itself but using the wrong (the proxied) interp, so all Proxy objects originating from proxied method calls would be allocated on the wrong interp.
Use Parrot_thread_create_proxy which handles this correctly, reducing the places in which proxies are created.
rrot/threads: 7b7202e | nine++ | src/pmc/parrotinterpreter.pmc:
Remove some dead code from clone_interpreter
whiteknight I think I'm going to get pbc_merge fixed to properly merge annotations 13:04
so that has me excited
nine sounds cool 13:05
13:11 lateau joined 13:49 dngor joined
whiteknight !!! I think I've got it! 13:56
tadzik \\o/ 13:57
whiteknight actually, the integer constants seem to be off by 1 14:00
moritz maybe check if the original annotations are off by 1 too 14:07
I remember that some part of PCT produced 0-based line numbers 14:08
whiteknight no, it was my fault. Loop error 14:17
I was iterating over all keys, but reading the same set of annotations for each 14:18
remembering to add in start_offset is very important
dalek rrot/remove_sub_flags: 1b2a3df | Whiteknight++ | / (7 files):
rebootstrap ops
14:22
rrot/remove_sub_flags: 1336403 | Whiteknight++ | / (9 files):
Update TGE to output load_bytecode_p_s. Update several more bits of the runtime
rrot/remove_sub_flags: 4388949 | Whiteknight++ | / (9 files):
Update several more libraries
rrot/remove_sub_flags: c66f9c9 | Whiteknight++ | / (4 files):
Add new routine Parrot_pf_get_annotations_segment. Use it in IMCC to clean up some code. Use it in pbc_merge, along with some other magic, to implement merging annotations. Annotations need a lot more documentation.
rrot/remove_sub_flags: 2c77e51 | Whiteknight++ | .travis.yml:
Merge branch 'remove_sub_flags' of github.com:parrot/parrot into remove_sub_flags
14:30 travis-ci joined
travis-ci [travis-ci] parrot/parrot#141 (remove_sub_flags - 2c77e51 : Whiteknight): The build is still failing. 14:30
[travis-ci] Change view : github.com/parrot/parrot/compare/0......2c77e51
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/840114
14:30 travis-ci left
nine What's the GC registry's purpose? 15:20
15:20 lateau joined
benabik Registering GCs? 15:31
Probably as a root set for the GC, but I haven't actually looked. :-/
nine It's only written to in src/pmc.c and src/string/api.c 15:32
Otherwise only used in the GC, so I think you'r right in that it's a root set 15:33
benabik We might be pinning strings for some reason...
nine So there definitely should be one gc_registry per interpreter 15:34
benabik seems likely. 15:35
15:45 Psyche^ joined 15:59 dngor_ joined
nine I start to wonder if proxy should use the thread's interp for proxied calls instead of the target's 15:59
on the other hand, this would break for methods which create and return new PMCs. Those would get created on the thread's interp, but Proxy doesn't know this and would create new proxies for these objects even though it hurts more than it helps 16:06
dukeleto ~~ 16:28
nine: strings are handled specially in the GC, ever since the immutable strings merge, iirc
17:01 lateau joined 17:06 Hunger joined 17:09 lateau joined
dukeleto Blast from the past: the original "git pull" shell script github.com/gitster/git/blob/839a7a...ull-script 17:18
nine dukeleto: wow...wonder how many great tools started out as a rather simple shell script 17:21
17:24 preflex_ joined
dukeleto nine: all of them 17:24
nine: :)
nine: i saw you asking about string and GC 17:25
nine: strings are immutable since Parrot 2.x-ish, so they are dealt with specially in the GC
nine dukeleto: so far I didn't have any problems with strings and GC which makes me nervous. There must be some 17:26
whiteknight: is it a good thing when I can reliably create and run 120000 tasks on 8 threads? 17:29
dalek kudo/nom: b13c517 | jonathan++ | src/Perl6/Actions.pm:
Seems that we already end up with file annotations being emitted, so don't add them again in an extra way in the Actions. The extra way in question also didn't escape output, meaning a foobar'd.p6 would cause invalid code-gen; sisar++ for reporting.
17:35
17:38 dngor joined 17:50 dngor_ joined
dukeleto nine: that sounds pretty awesome 18:35
cotto dukeleto++ 19:27
19:56 johbar_work joined
whiteknight nine: yes, I would say that is absolutely fantastic 19:57
cotto nine++ 20:00
nine whiteknight: the results are promising, but it was a hard week's work. At least my doubts about being able to get this to work somehow are almost gone 20:50
cotto nine, that's very encouraging 21:01
nine PARROT_ASSERT++ 21:04
21:06 alvis joined
nine cotto: let's just say, it's good that I didn't know what was ahead of me when you brought me into Parrot ;) 21:08
cotto let's just say that 21:28
dalek p/new_make: 282e894 | bacek++ | tools/build/Makefile.in:
Revert "Parallelize stage0 build"

This reverts commit e916eda7eca1299fc709b7d0fbecbd6745198a50.
21:59
22:03 dngor joined 22:19 nnunley joined 22:37 dngor_ joined
bacek_at_work msg nine Look at src/gc/gc_gms.c line 655. In the nutshell - finalization of GC in child interpret is a mess and need some love. 23:23
aloha OK. I'll deliver the message.
23:30 pjcj joined 23:34 pjcj joined