Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Help testing/fixing Lua on gen_gc2 branch
Set by moderator on 15 February 2011.
00:01 donaldh joined 00:04 donaldh left
jnthn Oh horrors. Yes, leting usage of a key escape beyond the context its used in is, like, almost certainly a segfault. See key.c around e.g. line 299 for why. 00:07
cotto ~~ 00:17
00:19 cosimo_ joined, cosimo_ left
cotto jnthn, I'm sorrry you had to see that. 00:20
jnthn cotto: It's OK, when I get a segfault I@m a bunch more comfortable when I know why. 00:21
cotto this is true 00:22
jnthn cotto: iiuc though, I suspect we may be wasting a huge amount of memory on 1-char strings like "0","1","2" with captures. At the moment all PAST nodes are captures.
00:23 gerd left
jnthn I may be mis-reading, I've mainly been scanning the code to work out what I immediately need :) 00:23
00:29 whiteknight joined
dalek p/match-nom: 94e55ed | jonathan++ | src/pmc/rakudoobject.pmc:
Work around Parrot's nuts keys implementation. This means the getting/setting keys in the capture bit now seems to work well, which gets us to the next error, which is just that NQPCapture needs some more implementation effort (exists). Also will need to make those v-tables overridable.
00:32
jnthn cotto: Yeah, segfault gone. Just back to the next not implemented thingy now :) 00:33
cotto I'm glad you figured it out. 00:36
jnthn Me too. 00:37
Sleep time... &
cotto 'night 00:38
00:48 vmspb left 00:50 luben left, tcurtis left 01:01 luben joined 01:09 tcurtis joined
whiteknight I love hearing other people criticize our Key implementation 01:43
it really is lacking
Tene: ping 01:44
Tene whiteknight: pong 01:45
whiteknight Tene: There are two problems I have with threads: The way interpreters are stored in a global array (which means we must always pass a parent interp to create a child)
and the fact that some of the threads tests fail intermittently because of timing issues
lucian whiteknight: that sounds deadly 01:46
whiteknight if those two issues went away, I would be "live and let live" about threads. I wouldn't want to rip them out if they weren't causing any problems
being unusable, or under-usable are not nearly as bad as being harmful
lucian btw, threads are a necessary evil for many usages
whiteknight lucian: I think we can do threads better with a better design 01:47
lucian whiteknight: perhaps, but i think the low-level thread api should be exposed
whiteknight lucian: a good hybrid threading approach would allow us to do autothreading, and implement light-weight actors for programs which need them
lucian whiteknight: sure, but you can't do that for everything 01:48
01:48 plobsing joined
whiteknight what do you mean? 01:48
lucian some languages require real threads
and full access to them
and some usages also do (real-time)
whiteknight Tene: anyway, my point is, I don't necessarily want threads to go away, I just want them to stop causing other problems
One day I do want to reimplement that system, but there are other things to focus on first 01:49
01:49 dmalcolm left
lucian you'll basically need fine-grained locks for your interpreters 01:49
and that's not an easy problem to solve
whiteknight lucian: sure, we can still do that with a hybrid approach. For systems that need "heavy threads", we give them a tuple of OS thread and Parrot context to execute as one
Tene whiteknight: I don't see that any of that actually addresses my expressed concerns.
whiteknight systems which can be more flexible can have other options 01:50
Tene: maybe I don't understand your concerns
Tene: and I would really like to
Tene whiteknight: I've never implemented a threading system. I have vague suspicions that ripping out what little broken threading support we have would somehow increase the work or decrease the motivation for a future threads implementor, or something like that. 01:51
whiteknight Tene: That really depends how different our future "ideal" design is from the current design 01:52
Tene What I'd like to hear from someone is "I feel confident that I understand the issues related to a threads implementation and how they related to parrot's architecture, and I do not believe that removing our threads system would impede future threads work"
whiteknight if we can build on what we have, we don't want to rip out. If we can't, we need to rip out eventually
Tene: I strongly suspect that, but I can't say it for certain yet. I would need to research some of our code a bit more 01:53
Tene: Give me a day or two for serious research and I'll get back to you
lucian whiteknight: i'm curious how you'll avoid a GIL 01:54
Tene whiteknight: I don't feel that I'm in a position have any say at all in changes to Parrot, fwiw, and I'm certainly not going to start implementing a threads system myself. 01:55
whiteknight: I'm primarily expressing my feelings because I suspect that others might have similar feelings, given that I haven't seen any specific technical details ever mentioned for keeping our broken threads system in.
whiteknight Tene: your thoughts and opinions are always important. Nobody is implementing a new threads system right now
Tene: and since nobody is doing it, all our opinions are equally worthless :) 01:56
lucian heh
Tene whiteknight: I also have a vague emotional response about ripping our threads system out instead of fixing it being "moving backwards" or something like that. That's not a technical complaint, and would probably be silenced by a statement like "I feel confident that I understand what a good threading system for Parrot would look like, and what we have now would not be helpful (or actively harmful) for a good threading system for parrot." 01:57
01:57 cosimo left
whiteknight lucian: (re: GIL) if the Lorito plan really does come to pass, what we call the "interpreter" will become much smaller. Each little green thread would have it's own "global" data and maybe it's own local lock but not a GIL which covers all interps 01:58
Tene If you could say exactly those two quotes in the next #ps meeting or on the mailing list, you'll have my unqualified support, which I only feel is worth offering because I've resisted in public before.
whiteknight lucian: so the idea is that if we make the interpreter very small, the GIL becomes very small
then, it's not a matter of avoiding the GIL at all
lucian whiteknight: just how small will it be with a HLL on top?
and while multiplexed green threads are great, some languages disagree with that 01:59
whiteknight Tene: I do want your support, which is always worth the effort. I will research the code and make a firm recommendation at next #ps one way or the other
lucian: If I tell an HLL that "this is a thread", and provide an interface that does thread-like things, it doesn't matter whether that thread is heavy or light 02:00
lucian: and if the abstraction barrier is strong enough, the HLL won't know the difference
Tene whiteknight: I also expect that you'd get a useful response by posting this conversation to the list, to verify whether my feconcerns on the matter are representative.
lucian whiteknight: there are subtle interactions that would break compatibility. think of java
whiteknight lucian: I prefer not to 02:01
:)
lucian well, for parrot to be really useful you (or someone next to you) might have to
whiteknight lucian: I don't really see the issue. If we say that we can tie a Parrot ThreadContext 1:1 with an underlying OS thread and provide an interface to support that, we can handle the Javas of the world 02:02
lucian i tend to see threads and thread systems as a generally very hard problem
whiteknight and if we also provide an option to decouple and do more of an actors-based system, that doesn't hurt anybody
lucian: no question. That's why we did something easier first, like GC 02:03
and we're probably going to do JIT before threads too
threads are ard
hard
lucian whiteknight: oh about jit, were you the guy that thought static compilation would work (fast) ? 02:04
whiteknight and even if we get the underlying implementation right, we still need a library of synchronization mechanisms, data sharing mechanisms, and then we need to provide thread-safe optimizations for al these
lucian: in a certain sense, it can be fast
lucian yep, that's where the devil is
whiteknight: you should probably talk to the rubinius folks
whiteknight lucian: there's no clear-cut winner between JIT and static compilation for all workloads. For some programs, static compilation would be faster 02:05
for most normal workloads in non-trivial programs, JIT probably does win
lucian what i mean is that for duck typed languages, mixed interpreter + jit IS the clear winner
Tene whiteknight: the only concern I have about future threads is how design decisions we make now could possibly affect future implementation. For example, large parts of our current impl disallow for a copying/compacting GC.
whiteknight there's a threshold where the overhead of compilation and optimization is out weighed by the improved performance of the code 02:06
lucian Tene: that's a very good point. good threads rely on a good memory model
whiteknight: not in dynamic languages, usually
whiteknight Tene: yes, that is an important concern. I don't think we are moving towards a copying/compacting GC any time soon
lucian most research shows that java is about the breaking point 02:07
more dynamic than that, interp + jit wins
less dynamic, static wins
Tene whiteknight: I very much have no expectation that I'd know what issues might arise or not there, so I don't have any intuition about whether ripping out or current broken threads impl would hurt that or not.
whiteknight Tene: I can guarantee that the threads implementation was not designed with any of our current development goals in mind: Lorito and JIT, improved GC, etc 02:08
lucian i keep thinking whether it would be possible to cheat, with threads
whiteknight Tene: and I would be surprised if this implementation was accidentally supportive of those things
lucian: what do you mean?
lucian like there are library gcs and library jits
Tene whiteknight: That would be awesome to see you comment on with the other topics, then.
lucian surely there must be a small, c-level thread library
that's actually good/suitable 02:09
Tene whiteknight: unless the other parrot devs have very different concerns than I do, I expect that talking about those issues would get you a lot of support, modulo concerns about the deprecation policy.
As far as I'm aware, my efforts at using threading when I opened tt757 were the biggest effort any hll consumer has made at using threading. 02:10
(and I DID get programs working using threading, as long as I worked around tickling the crash bug, or with one of those patches applied, fwiw)
So, I personally have no deprecation concerns about removing it. 02:11
whiteknight what I most like about the hybrid threading idea is that it offers us a clear development path: We implement green threads, people use green threads while we implement OS thread handling internaly
and one day we flip the switch and BAM your programs run faster
lucian whiteknight: ah, there's one www.gnu.org/software/pth/ 02:12
"GNU Pth uses a M:1 mapping to kernel-space threads, i.e., the scheduling is done completely by the GNU Pth library and the kernel itself is not aware of the M threads in user-space. Because of this there is no possibility to utilize SMP as kernel dispatching would be necessary." 02:13
whiteknight lucian: we haven' done any design work on threading yet, really. No sense picking a library yet because we don't know what we need from it 02:14
Pth is good to keep in mind
lucian whiteknight: sure, i was just thinking that someone might have solved our problems already
whiteknight lucian: that sentence "there is no possibility to utilize SMP" is disturbing to me 02:18
lucian whiteknight: what they mean is that Pth threads are scheduled within one thread only 02:19
just like protothreads or w/e else
whiteknight oh, so a Pth thread can not be moved between OS threads?
lucian i'm not sure, but it doesn't on its own
whiteknight ok
lucian i mean the pth library doesn't multiplex
an actually clear wikipedia article en.wikipedia.org/wiki/Thread_(compu...ce)#Models 02:21
whiteknight In Parrot, assuming immutable bytecode, a "thread" is basically just a continuation and a context
also assuming that the context contains the current bytecode pointer
right now the current bytecode pointer is stored in the interp
plobsing s/current bytecode pointer/current bytecode reference/ 02:23
whiteknight in that sense, creating a new "thread" is just like any other subroutine invocation: Create a CallContext, and invoke it
plobsing: right
plobsing bytecode segments must be GCable to avoid eval memory leaks 02:24
whiteknight plobsing: I almost said "PC Register"
lucian hmm runtime.bordeaux.inria.fr/marcel/ inria are cool
whiteknight once we've packed up a call into a "thread" object, we can execute it on any OS thread that's available. Again, assuming we have data sharing issues sorted out 02:25
plobsing whiteknight: the hardest problem is GC. Assuming N:M threads, does every Parrot thread have a GC? does every OS thread have a GC? do we stop the world at some point? How?
there are papers that show very concurrent GC systems, but there's always the academic/RL gap
whiteknight plobsing: Good question. A concurrent algorithm would probably be best. From what I have seen Immix is thread-friendly 02:26
lucian plobsing: and they all tend to suck in different ways
i'd guess stop-the-world per-thread should suffice
whiteknight plobsing: I've seen some concurrent algorithms that have me very convinced 02:27
and if we're on an SMP system anyway, it should be fine
on a uniprocessor system, we wouldn't want that
lucian whiteknight: i'm unconvinced by usage in practice, and NUMA perf in general
whiteknight NUMA perf?
lucian performance on NUMA architectures 02:28
concurrent GCs that i've seen tended to cross process boundaries on NUMA, but i haven't seen newer research i guess 02:29
plobsing that marcel thing looks really cool 02:30
whiteknight in GC we could change things so that each thread owned it's own collection of arenas. Global pools. Threads mark their own data independently. Then the global GC can sweep empty arenas and return them to the global sore
store
plobsing and what of message objects?
lucian whiteknight: that's what most systems do, from what i've seen
we should look at erlang's OTP
whiteknight plobsing: depends how we handle them. If they are copied, no problem. If they are shared, weneed to mark the arenas shared 02:31
lucian i think shared state should be so explicit as to have its own arena(s) 02:32
whiteknight the problem is that we can't really make any intelligible designs until we know how we want to handle data sharing
that's the complicated part, and it's the fundamental design decision we're missing 02:33
lucian yeah, it's a good call to drop threads for later
keep them in mind so as to not block useful designs, i guess
lucian wishes cyclone was more popular
whiteknight do we share r/w references? do we share r/o references? do we only pass clones?
lucian how about only copy? is that unreasonable? 02:34
whiteknight deep copy? shallow copy? lazy copy?
like, are we doing COW with our shared PMCs?
plobsing I'm of the opinion that, should we postpone threads for later, we should not bother removing threads now unless and until they immediately and unacceptably impede development elsewhere.
copy-only sounds a lot like share-nothing.
whiteknight like I said before, I only want to remove them now because they are causing problems 02:35
plobsing many people seem to not like that
whiteknight: problem?
lucian plobsing: the only possible argument against that is performance
whiteknight plobsing: if you create multiple interps, you must pass a reference to the first interp to all subsequent child interps
that's a big blocker for PL/Parrot
also, mikehh sees random timing-related failures in thread.t 02:36
plobsing that has little to do with parallelism, although it is a usage of threads of execution.
whiteknight the first issue is only an implementation problem. I'm sure it could be worked around in-place if people wanted
anyway, it's time for me to get to bed. Goodnight 02:37
mikehh I suspect that it is a timing problem, but I have been getting failures in t/pmc/threads.t different tests, different platforms, and if I re-run the test it passes
02:37 whiteknight left
mikehh usually run with TEST_JOBS=4 02:38
one of the problems I see with threads is the different approaches in different operating systems 02:39
lucian mikehh: hopefully, a library would wrap that sanely. there are a few out there
(nspr comes to mind)
mikehh: or so you mean *really* different OSes without threads/processes or something? 02:40
mikehh I was thinking of the linux approach vs Posix vs M$ etc 02:41
lucian well, pthreads is everywhere, at worst as a wrapper
mikehh also different hardware approaches 02:42
lucian chromium uses pthreads, with a wrapper on windows
mikehh: like 1-n cores, numa?
mikehh One of the problems I see with threads is the problems they are having in multi-core environments 02:43
lucian the way i see it, in multi-core environments you're simply much more likely to hit the subtle timing bugs
mikehh I was reading an article on problems with the threads approach on 40 core processors 02:44
lucian mikehh: was than on a NUMA architecture? because there the shared memory approach does indeed show cracks 02:45
mikehh I think the article was on the shared memory vs message passing approach 02:47
lucian right
well, obviously that's a higher-level concern
but threads are very low-level and necessary for most other concurrency approaches
anyway, it's late here too 02:48
good night
02:49 lucian left 02:55 lateau joined 03:04 cosimo joined, tcurtis left 03:10 benabik left 03:13 cosimo left, cosimo joined 04:01 benabik joined 04:20 mtk left 04:27 mtk joined
bacek ~~ 04:56
msg plobsing "manual_wb" is actually good idea. We discussed similar thing with cotto. But for md5sum test it wouldn't make a huge difference. 04:57
aloha OK. I'll deliver the message.
bacek msg mj41 Thanks!
aloha OK. I'll deliver the message.
cotto ~~ 04:58
I thought it was interesting that he had a similar idea.
bacek cotto, what was outcome of #ps about GC? 05:00
cotto merge it now, make it the default, revisit the decision in a couple weeks
There were some objections to making the default for a release different than the default for a dev build. 05:01
bacek oookey. I don't like idea of switching GC for "release only" 05:03
cotto I understand that reservation. 05:04
anything between now and 3.3 will probably be a compromise unless we overhaul the deprecation policy 05:07
bacek so, officially we can't have gen_gc until 3.6 05:10
05:12 cosimo left
cotto actually, after 3.3 05:12
bacek I'm talking about supported releases.
cotto the deprecation notice needs to be in the 3.3 release
3.3 is supported 05:13
bacek yes
so, gen_gc will be in 3.6
cotto ah. That will be the first supported release with gen_gc according to the current policy.
s/gen_gc/gen_gc as the default/ 05:14
There was also a suggestion that we merge but make gen_gc non-default. I don't like that because it'll be easy to forget to test it, but it's an option. 05:15
Coke rakudo would certainly be testing it. 05:34
cotto yes they would 05:35
05:36 akashmanohar joined
akashmanohar I'm following the PCT tutorial and I'm stuck. Any help with this gist.github.com/828925 05:38
05:38 simcop2387 left
Coke gets partcl updated past "codestring go poof" 05:39
benabik akashmanohar: Problem is that it tells you to both add method term:sym<integer_constant> and rename term:sym<integer> to term:sym<integer_constant>?
akashmanohar benabik: ya
benabik is tired enough that he needs to double check basics. 05:40
akashmanohar: I think it is correct to remove sym<integer> instead of renaming it.
akashmanohar benabik: so the episode-3's exercises-1 is wrong?
benabik akashmanohar: Erm. Possibly, let me check. 05:41
Coke echo's whiteknight's rant about test:more not showing a total. or a percentage. 05:42
or test::harness. or tap::harness. or whatever that is. Grumble.
akashmanohar benabik: This page docs.parrot.org/parrot/latest/html/...3.pod.html code block under under "Add action methods for" and then the first exercise on the same page. Just thought I could help you dig it out. 05:43
benabik akashmanohar: Yes, that's wrong. Renaming the existing methods would make the added methods pointless. You should also remove method term:quote instead of renaming it to term:string_constant
bacek msg jnthn $P0[1] is actually calls set_foo_keyed_int. Not set_foo_keyed. 05:44
aloha OK. I'll deliver the message.
benabik ... Or at least it looks that way to me.
cotto bacek, you mean with a constant int register?
interesting factoid there
bacek cotto, yes.
cotto imcc-- 05:45
bacek and int registers too
cotto stupid prototype compiler
bacek cotto, why? It's actually DTRT in this case
cotto it doesn't do that with strings though, iirc 05:46
akashmanohar benabik: Should I correct the docs and send a pull request or file a request on the tracker?
Coke wonders if dalek is still watching partcl.
nopaste "bacek" at 192.168.1.3 pasted "Capture.set_foo_keyed_int" (12 lines) at nopaste.snit.ch/32573
dalek rtcl: 85ac914 | leto++ | Configure.pl:
Fetch the sha1 and git_describe config keys, and turn the version check into a warn
rtcl: 8f955a7 | leto++ | Configure.pl:
Remove svn cruft from Configure.pl and borrow moritz++'s code to parse describe strings
rtcl: d456b06 | leto++ | config/PARROT_GIT_DESCRIBE:
Add a config file to cache git describe strings
rtcl: 713abcc | coke++ | / (2 files):
Merge branch 'parrotgit'
05:47
cotto akashmanohar, send a pull request
rtcl: 11e84fa | coke++ | config/makefiles/root.in:
hasjit is no longer a parrot config var.
cotto we love those
rtcl: 1ec07ba | coke++ | / (2 files):
inplace concat op is gone.
rtcl: ade8121 | coke++ | / (5 files):
codestring - s/codestring/stringbuilder/
rtcl: 94f5336 | coke++ | / (2 files):
codestring - remove 'unique' method access
akashmanohar cotto: okay! thanks!
rtcl: 1349067 | coke++ | src/grammar/expr/past2pir.tg:
codestring - remove escape method.
rtcl: dccc3b5 | coke++ | / (5 files):
codestring - update usage of 'emit'
bacek cotto, no. Only ints. Remember opsc? "kic" adn "ki" arg types for ops
rtcl: 951b433 | coke++ | runtime/builtin/incr.pir:
"increment() not implemented in class 'String'"
cotto bacek, that's what I thought, but imcc makes me question my sanity at times
bacek we can extend support for "ks" and "ksc" in pirate 05:48
benabik I tend to attach patches to TTs... But I'm used to using the mailing list for git.git
cotto I'd like to have some consistency there.
bacek Do need dep notice though
cotto yup
Coke where did Parrot_get_ctx_HLL_type go? 05:49
It's gone, and I don't see a deprecation notice on teh wiki. 05:50
cotto Coke, I think it was just lightly renamed. just a sec
Coke even /lightly/ renamed functions go on the wiki.
cotto Parrot_hll_get_ctx_HLL_type
Coke Parrot_hll_get_ctx_HLL_type.
05:51 simcop2387 joined
bacek I think it was covered by "magical function rename to have proper naming convention" ticket... 05:54
Coke msg whiteknight since you're the "hll guy" these days: Parrot_get_ctx_HLL_type was renamed and there's no notice on the wiki on the deprecations pages.
aloha OK. I'll deliver the message.
Coke bacek: yes. still MUST BE DOCUMENTED. 05:55
emphasis for those discussing how we must follow the deprecation policy. ;)
bacek Coke, I don't disagree with you
cotto me neither. It was annoying when resuscitating gsoc-instrument. 05:56
dalek rtcl: 27aae9c | coke++ | src/ops/tcl.ops:
track rename of function
05:57
Coke well, that gets partcl down to a single screen of failed tests. 05:59
bacek Coke, how big screen do you have? 06:04
cotto bacek, lol 06:06
Coke ATM, 82x38 06:07
bacek Lua-on-Parrot shoutout is 3 orders of magnitude slower than original Lua...
Coke, is it in meters??? :) 06:08
Coke bacek: partcl-old is mostly working.
bacek Coke, what about -nqp version? I was going to fix it for gen_gc 06:09
Coke also mostly working. 06:10
I think all of the remaining failing tests have trac tickets open.
(for some time.)
partcl-nqp should need zero help on GC branch since there's no C in it.
06:11 rurban_ joined
bacek Coke, horray. But it can reveal bugs in parrot it self. 06:12
Coke sure.
which it does. last I checked it segfaulted mightily on branch.
have fun . ;)
bacek THANK YOU
Coke down to 58 failing tests (not test files) in partcl-old.
dalek a: 95b2985 | bacek++ | dynext/pmc/luatable.pmc:
Check that we actually have filled bucket in LuaTable before dereferencing it.
06:13
06:13 rurban left 06:14 rurban_ is now known as rurban
bacek msg fperrad Looks like I fixed crash in Lua on gen_gc2 branch. But I don't understand why it didn't crash before... 06:14
aloha OK. I'll deliver the message.
bacek Coke, which test was crashing?
t/cmd_regexp.t 06:15
sigh...
Let's run another gdb session...
Coke I think most of the remaining failures in partcl-old are related to the HLL mapping going fubar.
(so parrot behavior is bleeding through, causing tests to fail.)
bacek: I'd have to rebuild parrot and rebiuld partcl-nqp 06:16
bacek Coke, any help will help...
Coke building parrot on the branch.
06:17 theory left
bacek Thanks 06:17
akashmanohar how do i check if the pod file i edited is correct? (any way to compile that) 06:23
Coke woof. on fire.
podchecker <filename>
nopaste "coke" at 192.168.1.3 pasted "random segfault on gen_gc2 branch for partcl-nqp (for bacek)" (50 lines) at nopaste.snit.ch/32593 06:25
Coke bacek: need anything else before I sleep?
bacek Coke, no, thanks. Have a good night! 06:26
Coke k. if you can fix that one, I'm sure it'll clear up a lot of the other failures, and we can sort through what's left.
dukeleto ~~
Coke ~~
bacek: I typically run optimized, if that helps. 06:27
(and am now.)
and zzz.
cotto 'night, Coke
06:30 khisanth_ joined 06:33 Khisanth left
akashmanohar @Coke: benabik: sent pull request after fixing PCT tutorial Episode-3 06:37
benabik akashmanohar++
dukeleto akashmanohar: welcome! I haven't seen you around before.
akashmanohar that's my first commit to an opensource repo. Happy to make it.
cotto akashmanohar, awesome. Weclome! 06:38
dukeleto akashmanohar: congrats! It is a good feeling.
akashmanohar dukeleto: feels good (even tho my mom's shouting at me to hurry up for a family get-together) 06:39
dukeleto cotto: spreadsheets0.google.com/viewanaly...c3pXR3c6MQ
benabik akashmanohar: 'tis a good feeling and keeps being so. My mind still boggles a bit when I see my name in git.git.
dukeleto akashmanohar: :) I hope you stick around and hack on more stuff...
akashmanohar benabik: git.git? wow. thatc cool.
dukeleto cotto: that is the people signed up for the python gathering in portland
benabik: i submitted a patch to git.git but I am not sure if it ever made into master 06:40
akashmanohar dukeleto: when i complete the PCT tutorial. I'm going to try writing a memcached library for parrot. Seems like a good start since it's listed as "small" project in the wiki
cotto dukeleto, cool
dukeleto akashmanohar: i like the sound of that
cotto akashmanohar, that's certainly a useful technology. It's used all over the place.
benabik dukeleto: Patches there sometimes get bounced around a lot. And like anything that gets juggled, sometimes they end up on the floor. ;-)
dukeleto akashmanohar: definitely send an email to parrot-dev introducing yourself and let people know what you are up to. They will give you good feedback 06:41
benabik: yeah, git.git is the definition of "dynamic equilibrium"
akashmanohar do i need to know some perl to be able to do some more on parrot?
I come from a ruby background
dukeleto: thanks!
dukeleto akashmanohar: no, you don't need to know about perl 06:42
cotto akashmanohar, there's perl, PIR, nqp and C to play with.
dukeleto akashmanohar: our build system, and certain tests are in perl, but that is it
akashmanohar: you will most likely want to learn PIR and the C API for Parrot
akashmanohar: there is a "cardinal" project which is Ruby on Parrot, you might like 06:43
benabik dukeleto: I see one commit in git.git from you... Been in since 1.7.3.4 :-)
dukeleto benabik: i just found it! 06:45
benabik git log --author= is your friend. :-D 06:46
dukeleto worked on that commit at the Git Together 2010 06:48
06:49 zostay left
benabik sleep now 06:57
akashmanohar dukeleto: thanks! PIR and C it is.
dalek rrot: f8aa652 | (Akash Manohar J)++ | examples/languages/squaak/doc/tutorial_episode_3.pod:
Removed exercise-1 in PCT Tutorial episode-3. Methods are already being added by the user

Signed-off-by: Akash Manohar J <akash@akash.im> Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
06:58
rrot: ae1bd6b | (Akash Manohar J)++ | examples/languages/squaak/doc/tutorial_episode_3.pod:
added instructions in PCT episode-3 to remove methods for term:sym<integer> and term:sym<quote>

Signed-off-by: Akash Manohar J <akash@akash.im> Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
rrot: 98bb38b | dukeleto++ | examples/languages/squaak/doc/tutorial_episode_3.pod:
Merge branch 'pull_request_124'
dukeleto akashmanohar: there you go, now you actually have your first commit in parrot.git :)
akashmanohar: make a new pull request and add yourself to CREDITS
akashmanohar dukeleto: you mean edit the CREDITS file and then make another pull request? 07:01
cotto yup
or nopaste a diff
akashmanohar thanks. 07:03
dukeleto akashmanohar: tools/dev/nopaste.pl makes that easier 07:04
cotto: have you seend tools/dev/merge_pull_request.pl ?
cotto: i just used it and it literally took me 1 minute to merge a pull request, after I reviewed the code 07:05
cotto I saw it, but I didn't grok it.
merging a pull request is already pretty simple
dukeleto cotto: you run it like: perl tools/dev/merge_pull_request.pl 124 # merge pull request 124 into a branch
cotto: yes, but too many repetitive steps that take too long, at least for me
cotto It could come in handy for a large number of pull requests. 07:06
dukeleto cotto: it creates a branch called pull_request_124, which you can run tests on, etc...
cotto I guess I'm not lazy enough to use it for a single request.
dukeleto cotto: and then if I like it, i do git checkout master; git merge --no-ff pull_request_124
07:07 fperrad joined
cotto dukeleto, have you looked at nqp and its object metamodel? 07:11
I'm thinking about if REPRCommonalities might be a good starting point for the Lorito mop. 07:18
bacek cotto, I think it's better to deprecated current Class/Object and just switch to 6model internally in current parrot. 07:37
cotto bacek, that's part of the plan
bacek cotto, put deprecation notice now than :) 07:38
dukeleto cotto: i have been watching jnthn++'s commits and trying to understand. I have a vague understanding of s-tables and v-tables
cotto: or whatever they are called
cotto dukeleto, his documentation is a big help
dukeleto cotto: lorito MOP is going to be implemented in M0, i.e. M1, correct? 07:39
cotto: so we just need to make sure that 6model is implementable in M0 ops, right?
cotto It'll be implemented in M0 ops,
yes
dukeleto sounds like another good litmus test
07:44 ShaneC joined
ShaneC are there any more comprehensive docs on pasm than docs.parrot.org/parrot/latest/html/...m.pod.html ? 07:44
dalek umage: 8b4b015 | fperrad++ | setup.pir:
disutils set by default the Submitter property
07:47
cotto 'night 07:48
bacek ShaneC, it's pretty much up-to-date. PASM wasn't changed much since. 07:49
cotto, night
ShaneC bacek: not so much worried about it being out of date, just looking for something a little more in depth 07:50
bacek ShaneC, how deeper you want to go?
ShaneC if the ops link a the bottom worked, that'd be a good start ;-) 07:51
bacek ShaneC, set ops is quite volatile. 07:52
let me check do we have generated html for it.
ShaneC is there a .pod in the repository?
bacek yes 07:53
docs/ops/*pod
ShaneC thanks, will look around there
bacek these are generated from sources. So should be most up-to-date :) 07:54
dalek rrot/gen_gc2: 6d54624 | bacek++ | src/ops/ (2 files):
Add WB into "op copy".

We are fiddling with memory breaking contract with GenGC. Restore it a bit.
08:11
rrot/gen_gc2: 1f49b91 | bacek++ | src/pmc/class.pmc:
Add WB into Class PMC when we poke into Object guts
rrot/gen_gc2: 9699c2d | bacek++ | src/pmc.c:
Add WB to pmc_reuse.

We are breaking contract with GenGC. Restore it a bit.
rrot/gen_gc2: 0474da3 | bacek++ | src/gc/gc_gms.c:
Add one more important step to GenGC algo.

Now we should handle C-stack nursery objects in a sane way.
ttbot Parrot 0474da34 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/16960 08:15
dalek rrot/gen_gc2: d37e6c5 | bacek++ | src/gc/system.c:
Add explicit casting to make c++ compiler happy. mj41++ for TapTinder
08:19
bacek msg mj41 we can connect TapTinder to github push notifications. Same way as sorear did for dalek 08:20
aloha OK. I'll deliver the message.
08:27 bacek left
moritz do we really need a 'repeat' vtable? 08:31
08:31 bacek joined
dukeleto moritz: i asked myself the same question, writing tests for it 08:34
moritz and... where do I find the list of all vtables?
dukeleto moritz: if you send an email to parrot-dev, I will share my concerns
moritz docs/vtables.pod doesn't list the get_*_keyed
for example
dukeleto moritz: src/vtable.tbl, of course
bacek moritz, src/vtables.tbl
dukeleto bacek: beat ya 08:35
moritz: src/extend_vtable.c is also a decent list that has some autogenerated POD
bacek
.oO( bloody humans... I need few upgrades to cope with them )
moritz humans are bloody inside, that's correct :-) 08:36
bacek moritz, it was I said :)
msg Coke can you retest partcl on gen_gc? It should be fixed by my latest commits.
aloha OK. I'll deliver the message.
moritz also the naming.. get_*string* but get_pmc_keyed_*str* 08:38
bacek meh... Lua is crashing badly on optimized builds...
moritz, also number, consistency and sanity
dukeleto moritz: our vtable interface has some horrible naming inconsistencies 08:39
moritz: i have literally been writing a test for every vtable function in the leto/embed_grant branch, and it is quite a learning experience
mj41 msg bacek It's on todo list github.com/mj41/TapTinder/issues/11 ... TapTinder needs more developers. 08:40
aloha OK. I'll deliver the message.
bacek mj41, ~~
mj41, ok than... 08:41
can you add "make test" step to gen_gc?
nopaste "bacek" at 192.168.1.3 pasted "msg Coke this is my current test results." (9 lines) at nopaste.snit.ch/32621 08:42
bacek bah :)
msg Coke this is my current test results nopaste.snit.ch/32621 08:43
aloha OK. I'll deliver the message.
bacek fperrad, ping
mj41 bacek Update test results web page github.com/mj41/TapTinder/issues#issue/12 08:45
bacek mj41, bah! :) 08:46
mj41 bacek but not problem to prioritize issues as real demand require 08:47
bacek mj41, I think pushes are lower priority anyway. make test will be much more useful. 08:49
mj41 bacek I know but I would like to have ttbot faster than dalek :-). 08:53
bacek mj41, good idea. Unfortunately TT has to compile a lot of code before report.
mj41, did you speak to Coke (?) about using GCC compile farm? 08:54
trac.parrot.org/parrot/ticket/1825 08:55
mj41, this one. It was actually dukeleto
dukeleto, I think we can use GCC compile farm as TapTinder clients. 08:56
no. I actually think we _should_ use GCC farm for TapTinder (right now :) 08:59
dalek p/match-nom: 3a80453 | moritz++ | src/ (2 files):
try to implement exists_keyed* vtable overrides by adopted copy & paste
09:00
dukeleto bacek: sure. Make it simple to install. 09:01
bacek dukeleto, meh. I'm working on strategy. Small tactical problems isn't in my sight
:) 09:02
09:06 jsut joined
akashmanohar is this an error? pastie.org/1569791 09:07
dukeleto akashmanohar: yes :) 09:08
akashmanohar: something is wrong in Actions.pm
akashmanohar dukeleto: in this episode docs.parrot.org/parrot/latest/html/...3.pod.html should "statement_list" actually be "statementlist"? 09:09
09:10 jsut_ left
akashmanohar else IMO the TOP method in Actions.pm would also have to be changed to use "statement_list" and the method statementlist should be renamed to statement_list. 09:11
dukeleto: am I thinking right? this is Grammar.pm github.com/SingAlong/squaak/blob/m...Grammar.pm and Actions.pm github.com/SingAlong/squaak/blob/m...Actions.pm after Exercise-5 of Episode-3 09:13
fperrad bacek, pong 09:14
dukeleto akashmanohar: yes, those seem to be some typos
bacek fperrad, I'm epically failing to fix Lua on optimized build of gen_gc... 09:15
dukeleto akashmanohar: i would say change them all to statement_list
bacek: try harder
akashmanohar dukeleto: for readability sake? ya. that nice.
bacek fperrad, any clues where to look at? Some direct poking into PMC attributes, etc.
dukeleto akashmanohar: you need to read github.com/parrot/parrot/blob/mast...rkflow.pod 09:16
akashmanohar: you are making all your commits to your master branch
akashmanohar: which makes pull requests get messed up 09:17
akashmanohar dukeleto: sorry. i havent merged the ep3 branch to my master. i linked you to the wrong files.
dukeleto akashmanohar: no worries, there is no way you could have known :)
akashmanohar dukeleto: ah. any guidelines I have to read before making pull requests to parrot repo?
dukeleto akashmanohar: but basically, make a branch for each feature/documentation/bugfix that you want to send to us
akashmanohar: yes, github.com/parrot/parrot/blob/mast...rkflow.pod :)
akashmanohar dukeleto: thanks 09:18
dukeleto akashmanohar: there is a section about branching so you can send pull requests
akashmanohar: let me know if you have questions
akashmanohar sure
dukeleto: Merged episode3 now and pushed. Now this is Grammar.pm github.com/SingAlong/squaak/blob/m...Grammar.pm and Actions.pm github.com/SingAlong/squaak/blob/m...Actions.pm after Exercise-5 of Episode-3 09:19
dukeleto cheats and uses github.com/SingAlong/parrot/commit...ce69.patch to get akashmanohar's CREDIT patch
akashmanohar should I close pull requests after they are pulled? 09:20
dalek rrot: bf75b03 | (Akash Manohar J)++ | CREDITS:
added Akash Manohar to CREDITS for foxing PCT tutorial episode-3

Signed-off-by: Akash Manohar J <akash@akash.im> Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
dukeleto akashmanohar: sure, if you see that they have not been auto-closed
akashmanohar: sometimes, if you change something in the pull request, github isn't smart enough to auto-close it 09:21
akashmanohar closed the pull request I made.
dukeleto akashmanohar: foxing :)
akashmanohar foxing? :)
dukeleto akashmanohar: your commit message had 'foxing' instead of 'fixing', no worries :)
akashmanohar haha. 09:22
tadzik I'll have to change my "fixed-faxed" line to "fixed-foxed" :)
dukeleto akashmanohar: which languages do you speak, if I may ask ? In addition to English and Ruby :)
akashmanohar Tamil and Kannada if you mean to ask human languages. But that 'foxing' was due to a hurry. 09:23
dukeleto: were you refering to human languages? 09:24
dukeleto akashmanohar: would you be interested in translating any of our website/README/documentation to Tamil or Kannada ?
akashmanohar: both :)
akashmanohar: we are always interested in translating basic documents to new spoken languages, so it makes it easier for developers of all languages to use and hack on parrot 09:25
akashmanohar dukeleto: I can do Tamil. My written kannada is limited to reading bus destination boards. I can also do Hindi if you like.
dukeleto akashmanohar: Tamil and Hindi sound good to me :)
akashmanohar: take a look at docs/translations 09:26
akashmanohar: those are all translations of our README, if you could add translations for Hindi and Tamil, that would be amazing
akashmanohar I'll start with Hindi. Readme would suffice?
dukeleto akashmanohar: yes, sounds awesome 09:27
akashmanohar: you said you wanted to write a memcached library for Parrot?
akashmanohar beautiful. I just saw there are 6 translations.
dukeleto akashmanohar: an interface to memcached, rather
akashmanohar: yes, we had some Google Code-In students that wrote a few translations
akashmanohar cool. 09:28
dukeleto akashmanohar: there are more, they live in branches in git, and have not been merged to master because they need a bit more polish
akashmanohar: or maybe we should just merge them.
akashmanohar dukeleto: maybe merge them and then let others fix the translations?
dukeleto akashmanohar: have you used memcached much? From Ruby or other languages?
akashmanohar: that is the hope
akashmanohar dukeleto: used memcached once in a python web app 09:29
dukeleto akashmanohar: i think getting parrot access memcached sounds awesome. You will want to read about our NCI (Native Call Interface) subsystem 09:30
akashmanohar my experience with memcached is limited tho. I used it on appengine. Should I know anything else to write the memcached library (ofcourse i'll playaround with libmemcached before writing the library but anything else?)
dukeleto akashmanohar: that is how you call functions in compiled libraries 09:31
akashmanohar I tried googling for the Parrot C API. anywhere I can find docs for it?
dukeleto akashmanohar: not much, really you just need to understand what code is responsible for managing memory
akashmanohar: you will want to look at some similar examples in our repo. We have bindings to mysql, postgresql, opengl, etc... 09:32
akashmanohar cool.
dukeleto akashmanohar: you can actually do what you want from PIR
akashmanohar ya i love the way the babysteps PIR book is written. 09:33
dukeleto akashmanohar: hopefully :)
09:33 jsut_ joined
akashmanohar :) 09:33
dukeleto akashmanohar: Parrot Babysteps website?
akashmanohar ya
dukeleto akashmanohar: yes, I helped write some of the testing blog posts :) 09:34
akashmanohar: examples/nci/
akashmanohar oh :)
dukeleto akashmanohar: i hope they work. They should have tests, but some don't :) 09:35
09:35 ShaneC left
akashmanohar trial-and-error is always there :) 09:35
dukeleto akashmanohar: runtime/parrot/library/Pg.pir is probably better
akashmanohar ya a PIR example maybe be nicer than writing C. 09:36
dukeleto akashmanohar: docs.parrot.org/parrot/latest/html/...l.pod.html <-- this is mostly about C
akashmanohar: also, we use libffi if you have it, so Parrot can basically do anything libffi can do, if you have it ;)
akashmanohar: but of course, watch out for huge craters carves by herds of hair-laden yaks :) 09:37
s/carves/carved/
akashmanohar i'm pretty much new to desktop programming.
dukeleto akashmanohar: what else have you done?
09:38 jsut left
akashmanohar the last time i worked on something that sits on desktop is try PHP-GTK bindings. That was maybe 5yrs ago. 09:38
dukeleto akashmanohar: examples/pir/ would also be good for you to look at, lots of simple and medium PIR examples
akashmanohar dukeleto: so all parrot libraries that need to be cross-language have to be written in PIR or C? Can't be done via another language implemented on parrot? 09:39
dukeleto akashmanohar: basically, you use dlfunc to tell PIR how to call a C/C++ function
akashmanohar: you can write it in any language, and then generate PIR or Parrot Bytecode (PBC), so it doesn't have to be interpreted every time 09:40
akashmanohar: any parrot language, that is
akashmanohar: which we call High Level Languages (HLLs)
akashmanohar like Cardinal?
dukeleto akashmanohar: yes, Cardinal is an HLL
nopaste "fperrad" at 192.168.1.3 pasted "bacek, my current error output, the Multiple Dispatch error is very strange" (19 lines) at nopaste.snit.ch/32658 09:41
dukeleto akashmanohar: Rakudo is an HLL, and NQP is also an HLL, but it is in some sense, the lowest HLL :)
akashmanohar: NQP is the language that Rakudo Perl 6 is mostly implemented in
akashmanohar it would be cool to see something like NQPwith ruby's syntax.
bacek fperrad, it's because of "add $P0, $P1, $P2". $P0 is LuaNumber. And it's already collected by GC... 09:42
dukeleto akashmanohar: there are many possibilities with parrot :)
akashmanohar: i must get to sleep, but have fun, ask questions in here and on the parrot-dev mailing list, and welcome :)
akashmanohar dukeleto: thanks for being paitent with the pull requests tragedy and good night :) 09:43
dalek rrot: 8df50db | dukeleto++ | docs/project/git_workflow.pod:
[doc] Add section about the amazing new merge_pull_request.pl
09:51
mj41 back 09:52
bacek Is there a way to do parallel make? tapir2 do normal make in less than 3 minutes.
bacek mj41, make -jN
where N is number of cpus + 1
akashmanohar can anyone help with this? github.com/SingAlong/squaak/blob/m...Actions.pm says Routine declaration requires a signature at line 21, near "($\\\\) {\\n m"
Stuck at Episode-3 and just completed exercise-5 09:53
bacek akashmanohar, wrong slash.
akashmanohar oh... silly
i was staring at the slashes for about 5mins and still couldnt figure out what that was.
bacek: thanks 09:54
09:54 lucian joined
bacek akashmanohar, "$/" is just variable name. "\\" starts "escape sequence". Something like "\\n" 09:54
09:55 fperrad_ joined 09:58 fperrad left, fperrad_ is now known as fperrad
bacek akashmanohar, $<foo> is basically a shortcut for $/.{'foo'} 10:01
akashmanohar bacek: got this gist.github.com/829119 after episode-3 and it doesnt match the PIR given in the episode's solutions. 10:02
dalek p: 99575b9 | moritz++ | / (2 files):
implement NQPMu.{new,BUILDALL,MAGIC_BUILD}. Tests.

The latter is a hack to get attribute initialization working in classes that don't define their own BUILD submethod.
Lack automatic BUILD calling.
bacek akashmanohar, try --target=parse to check parse tree. And --target=past to check generated PAST tree. Most likely mis-naming of Action methods 10:04
akashmanohar parse tree is empty
installable_squaak --target=parse -e "x=42" returns just the prompt.
seems like i'll have to check the methods once again. 10:05
nopaste "fperrad" at 192.168.1.3 pasted "bacek, partial bt" (19 lines) at nopaste.snit.ch/32661
bacek fperrad, up x 2. p t_1->flags & b_PObj_on_free_list_FLAG. It will show that t_1 is collected. 10:06
10:08 particle joined 10:10 particle1 left, lucian_ joined
nopaste "fperrad" at 192.168.1.3 pasted "bacek, gdb" (9 lines) at nopaste.snit.ch/32662 10:11
10:13 lucian left
bacek fperrad, exactly... 10:15
dalek rrot/gen_gc2: 176db42 | bacek++ | src/pmc/nci.pmc:
Move WB after we changed NCI guts.
10:19
rrot/gen_gc2: a632e65 | bacek++ | src/gc/gc_gms.c:
Change PARROT_ASSERT to Parrot_confess to enable GC validation in
rrot/gen_gc2: bca9850 | bacek++ | src/gc/gc_gms.c:
Temporary enable GC validation in optimized builds.

Lua is failing badly. I suspect rakudo and partcl aren't patched fully. And not all yaks shaved in our codebase yet.
bacek fperrad, I'm going to bed soon. My latest 2 commits will help with catching these bugs. 10:20
dalek rrot/gen_gc2: 916ea75 | bacek++ | src/gc/gc_ (2 files):
Made pobj2gen non static to be available in optimized builds.
10:22
bacek fperrad, 3 commits actually :)
10:25 lucian_ left
nopaste "fperrad" at 192.168.1.3 pasted "bacek, new output" (146 lines) at nopaste.snit.ch/32665 10:30
bacek fperrad, yes. It was a point of my latest commits... Now I have to figure out why it's happens... 10:31
11:05 lateau left
dalek TT #2015 created by mstevens++: minor pod lint 11:17
TT #2015: trac.parrot.org/parrot/ticket/2015
11:24 mstevens joined
mstevens popped in to grumble about trac 11:25
11:29 kj joined 11:30 kj is now known as kjs
dalek TT #2016 created by mstevens++: Improve spelling on docs/submissions.pod 11:36
TT #2016: trac.parrot.org/parrot/ticket/2016
mstevens I also wanted to know if that's the right sort of thing when it comes to tickets
11:46 Kapace left 11:54 kjs left 12:01 akashmanohar left 12:56 mtk left 12:57 mtk joined 13:12 akashmanohar joined
akashmanohar I have a grammar and actions file here gist.github.com/829346 according to Episode-3 of the Squaak tutorial. I checked the method names in Actions.pm and everything seems to be right. 13:29
13:43 whiteknight joined 13:45 sri left
dalek rrot-container: 46c7a04 | Whiteknight++ | .gitignore:
+.gitignore
13:47
rrot-container: d3ac676 | Whiteknight++ | / (4 files):
rearrange some files
rrot-container: c87b4d1 | Whiteknight++ | / (8 files):
lowercase folder names
13:50 sri joined
akashmanohar I have a grammar and actions file here gist.github.com/829346 according to Episode-3 of the Squaak tutorial. I checked the method names in Actions.pm and everything seems to be right. 13:53
anyone on that?
Coke msg bacek my results on partcl-nqp match yours. 13:58
aloha OK. I'll deliver the message.
atrodo akashmanohar> It's rather slow around here this time of day. Can you gist t/00-sanity.t ? 14:03
akashmanohar atrodo: no problem. i'll gist it 14:07
atrodo: gist.github.com/829346 (edited the same gist).
I remember someone mentioning around 3 months back that the sanity file was testing for something wrong at this state of the code (upto episode-3) 14:08
shouldnt t/00-sanity.t contain somthing like "a = 1" etc at this point of the tutorial (episode-3)? 14:09
14:11 rurban_ joined
atrodo I've never actually done the tutorial before, so I'm shooting in the dark 14:11
Does it work if you take the comment out of t/00?
akashmanohar atrodo: ah no. just removing the comment in t/00 doesnt work. it throws some more errors. 14:13
14:13 rurban left 14:14 rurban_ is now known as rurban
akashmanohar atrodo: I'm following this workflow: edit Actions/Grammar and then do parrot setup.pir and then parrot setup.pir test. is that right? Or do i have to do anything else to compile? 14:14
atrodo akashmanohar> I believe that's correct. It looks like it's running, just not able to parse it 14:15
akashmanohar> As I look at the grammar, I don't see how t/00 would parse. The statement rule only has assignments defined, there's no expression or function call rule
akashmanohar atrodo: according to episode-3, "say" shouldnt work since that's being removed from the rules. 14:16
exactly. should i add instructions to episode-3 to change the test file too?
Coke msg bacek same failure mode with parrot.master
aloha OK. I'll deliver the message.
atrodo akashmanohar> Good question. At the very least, the testing the parser section could use to be more clear on what to test the parser on, since you can't test the parser with t/00 14:23
akashmanohar atrodo: the files src/gen_* are generated by parrot automatically?
dalek rrot: a0818f6 | (Gerd Pokorra)++ | NEWS:
add NEWS template
14:24
atrodo akashmanohar> Good question
akashmanohar atrodo: also found a typo in the tutorial. "statement_list" should be "statementlist" 14:27
atrodo akashmanohar> I'm not positive, but it looks like src/gen_* are created by PCT 14:28
akashmanohar guess so since src/gen_grammar.pm contain statementlist instead of statement_list even after doing parrot setup.pir && parrot setup.pir test 14:29
benabik atrodo: You are correct.
atrodo benabik> Thanks, it's good to be correct
akashmanohar atrodo: benabik: thanks
:)
benabik file.pm is turned into gen_file.pir by NQP. 14:30
akashmanohar: No idea if this will help you, but I wrote up most of my understanding of PCT for school. It's intended for people halfway through a grad class in compilers, but should be mostly understandable to anyone. www.cs.rit.edu/~bcg2784/Courses/201...piler/PCT/ 14:31
akashmanohar benabik: thanks! i'll go thru it. 14:32
PerlJam benabik: I just skimmed that and it looks very useful in general to compiler writers that want to target parrot. Do you have that linked from parrot.org or would you consider wikifying it so that others can contribute and update it as needed?? 14:33
atrodo I agree, it looks like good information from what I've skimmed so far 14:34
benabik PerlJam: 1) parrot.org is a wiki? (I is clueless sometimes.) 2) It's currently written in Markdown and part of a github repo... I'll happily put it up anywhere people find convenient. 14:36
PerlJam benabik: parrot.org is Drupal and can be used in a wiki-like manner :) 14:38
benabik: but you have to have an account.
akashmanohar k. i changed everything from statementlist to statement_list 14:40
pastie.org/1570666 and those are my results 14:41
sad that every month I try parrot I get stuck at episode-3 and stop :) (done this 3 times already)
benabik akashmanohar: I found the documentation on PCT to be a bit lacking and occasionally confusing. Although I'll admit the first thing I found was something very old on wikibooks, not the tutorial. 14:42
akashmanohar benabik: agree. the first thing I found via google was the wikipedia one. 14:44
and someone here tipped me 'bout the one in the parrot docs. 14:45
Can someone look into the PCT tutorial episode-3? I tried fixing it. But seems like it's out of my understanding. 14:48
benabik: just skimmed the first page of the presentation you pointed me to. Is that something that can be used as an alternative to the Squaak tutorial?
benabik akashmanohar: Which bit in particular? 14:49
akashmanohar or is it complementary?
14:49 darbelo joined
atrodo akashmanohar> I checked out your squaak repo and didn't get the error you pasted 14:49
benabik akashmanohar: It's not a tutorial, per se... But it does walk through writing a language.
akashmanohar: It just does everything for you instead of having any exercises.
akashmanohar atrodo: oh does the parse tree and pir generate fine for x=42? 14:50
14:50 lateau joined
akashmanohar benabik: that's fine too :) 14:50
atrodo akashmanohar> Looks like it. The tests don't run obviously, but I don't get any syntax errors
akashmanohar atrodo: ya I get no syntax errors here too. but doing x=42 doesnt add 42 to the parse tree. 14:51
atrodo akashmanohar> Oh, I misunderstood then. What command are you running?
akashmanohar atrodo: ./installable_squaak --target=pir -e "x = 42" 14:52
14:52 lucian joined
akashmanohar that'll give the PIR. which doesnt match the one in the episode-3 (the one generated doesnt contain the integer and the var name) 14:52
atrodo: and then ./installable_squaak --target=parse, then in the console typing "x=42" will generate a parse tree, which again outputs only regex matches (using the -e option to pass the expression doesnt output parse tree). 14:53
I have no idea if the output is supposed to be correct according to parrot3. can anyone verify this fact? 14:54
atrodo From first glace, the parse tree looks right
akashmanohar atrodo: can you pastie it?
atrodo But you're right, the pir output is wrong
gist.github.com/829495 14:55
akashmanohar atrodo: oh. cool! so the code in the repo are right until episode-3. Anything that should be done to correct the output PIR? 14:56
Coke atrodo: you say the pir output is wrong, but show the parse output. 14:57
aloha, source? 14:58
aloha Coke: source is github.com/bacek/aloha
atrodo Coke> Yea, I was saying that what I was seeing sounded like what akashmanohar was seeing
benabik method statement_list is wrong.
atrodo That is, no assignments in the output at the PIR level 14:59
benabik rule statement_list has no statement subrule, but method statement_list uses $<statement>
It should be using $<stat_or_def> 15:00
atrodo Changing it to stat_or_def does make the pir output correct
akashmanohar atrodo: can you please mention the change? 15:01
benabik src/Squaak/Actions.pm, line 9, s/statement/stat_or_def 15:02
atrodo akashmanohar> benabik beat me to it
akashmanohar :)
also which should be run first parrot setup.pir and parrot setup.pir test? or the other way? 15:03
atrodo: benabik thanks! worked fine 15:04
atrodo Should be that way, but I think just running test will do what you need
benabik akashmanohar: Which you changed rule statement_list (in Grammar.pm) to say <stat_or_def>*, you also needed to change method statement_list (in Actions.pm) to use $<stat_or_def> instead of $<statement>
akashmanohar benabik: oh. just verified that the instruction is missing in the tutorial. 15:06
benabik: should i add it?
benabik akashmanohar: If you find something missing, add it. :-D
akashmanohar: I was going to give the tutorial a once over at some point, but I'm lacking tuits.
akashmanohar thanks. i'll first need to go thru the workflow guidelines in the wiki. seems like my pull request earlier today created a mess. 15:07
benabik: also there's something I noticed. I'll refrain from making that change since I dont understand parrot internals.
Here's that... 15:08
when a language is generated there's a method called "statementlist" and the tutorial episode-3 mentions replacing the rule "statementlist" with another called "statement_list".
but dukeleto suggested changing the names of everything else "statementlist" to "statement_list" for readablility sake, which would mean that the tools that generate the sample language would also have to use "statement_list" instead of "statementlist". Else the tutorial episode-3 would be broken 15:10
or a simpler job... just changing the name of the new rule being added here docs.parrot.org/parrot/latest/html/...3.pod.html to statementlist
benabik: ^
I seem to be talking a lot (apologies if that sounds confusing. i'll explain again if needed). 15:11
benabik akashmanohar: dukeleto suggested renaming things in the starting language shell, you mean? 15:12
benabik should have remember to have breakfast before trying to think. 15:13
akashmanohar benabik: ok i'll just fix the typo and add instructions in the tutorial to change the method statement_list to use <stat_or_def>. 15:14
benabik akashmanohar: Yeah, adding that instruction would be good. Should be added same place statement_list is added.
akashmanohar benabik: well, let me explain again. 15:15
right now what's broken in ep3 is that it asks to replace the rule statementlist with another statement_list rule (with code given)
benabik right
akashmanohar but the language generated (by default) uses statementlist in TOP rule and method.
(underscore missing) 15:16
leaving aside the one missing instruction which we discussed.
the tutorial would still generate an error coz rule & method TOP uses statementlist and not statement_list. 15:17
so either the tool that generates the squaak language shuold be changed to generate it with statement_list or the tutorial's new rule should use statementlist instead of statement_list 15:18
benabik Right. I agree, one of those should happen. :-D
akashmanohar benabik: omg. finally i could explain well :) 15:19
has tools/dev/mk_language_shell.pl been renamed to *.in ? 15:21
benabik akashmanohar: It generates .pl from .in, I think. 15:22
akashmanohar ah cool. i found out what to change to generate statement_list instead of statementlist. seems like a simple edit
benabik akashmanohar: I was just about to push a commit to do so myself. :-D 15:23
akashmanohar benabik: well, let me make my first technical commit :P 15:24
benabik akashmanohar: Go ahead.
akashmanohar benabik: I forked the parrot repo earlier this morning and made a pull request. now how do i update it to include commits from the main repo?
atrodo git pull --no-ff origin/master 15:25
sorry, no
git pull --rebase origin/master 15:26
akashmanohar atrodo: origin points to my fork
and according to github's wiki there's should be an upstream remote added when i clone a fork and it's not been added. weird
cotto_work ~~
atrodo akashmanohar> link? 15:27
benabik akashmanohar: You forked parrot via github, then cloned from your fork?
akashmanohar benabik: ya
benabik akashmanohar: I don't see how you'd end up with anything linking back to the original then.
akashmanohar benabik: help.github.com/forking/
atrodo me either, which is why i'm curious about the github link 15:28
akashmanohar "To help you keep track of that repo we will add another remote named ā€œupstreamā€:"
benabik Right, and then it gives you commands to do so.
atrodo Yep, the git remote add does that
benabik in this case: git remote add upstream git://github.com/parrot/parrot.git
akashmanohar atrodo: oh. i thought git clone for a fork will automatically contain upstream as one of my remotes
benabik Then you can "git pull --rebase upstream master" 15:29
atrodo akashmanohar> Nope, git doesn't have enough mana to cast that magic
akashmanohar :) 15:30
cotto_work busy morning 15:31
atrodo cotto_work> The magic is happening. or something 15:34
akashmanohar so what's the convention to create branches with fixes?
whiteknight good morning, #parrot
akashmanohar should i create different branches for a documentation fix and tools fix
whiteknight ...and good morning aloha!
akashmanohar whiteknight: good morning! 15:35
atrodo whiteknight> You've got mail, and lots of it
whiteknight hell akashmanohar. How are you doing today?
atrodo: I only have one message from aloha, and relatively little email today
am I supposed to have more?
akashmanohar whiteknight: been a really awesome day. I made my first commit to an opensource repo (fixed episode-3 in PCT tutorial) and makiny a couple more fixes
atrodo whiteknight> Oh, I thought I saw several msg whiteknight's when I was backlogging this morning. nevermind 15:36
whiteknight akashmanohar: congratulations! first commit day is a very awesome day 15:38
cotto_work prepares for backscroll 15:39
darbelo ~~ 15:41
cotto_work good morning, darbelo 15:42
darbelo Good $localtime, cotto_work. 15:43
15:45 lateau1 joined 15:46 lateau left
akashmanohar sent two pull requests github.com/parrot/parrot/pull/126 and github.com/parrot/parrot/pull/127 15:59
one contains a change in tools/mk_language_shell.in and another a fix for episode-3 which adds instructions to replace a method to get right output at the end of the tutorial. 16:00
cotto_work looks
akashmanohar github seems to have included the other commits for which my pull request was accepted in the morning. So I mentioned the commit hash containing the changes in the respective pull requests. 16:01
cotto_work I saw that. 16:02
moritz akashmanohar: you can just create a new branch for a pull request
akashmanohar cotto_work: motriz ya i created new branches "SingAlong/branchname" for the changes 16:03
but checked those branches from my forked repo and then made a commit. guess that was the mistake 16:04
cotto_work akashmanohar: the pct tutorial already says to replace statementlist with the statement_list specified in the tutorial. Where's the inconsistency? 16:11
akashmanohar cotto_work: ok let me explain. 16:12
cotto_work ah. Your other commit fixes that.
akashmanohar cotto_work: ya.
cotto_work Since those are related changes, they should go in the same pull request.
akashmanohar cotto_work: we had a discussion here (atrodo and benabik) about the changes.
cotto_work: so the convention for pull requests for fixes is to create a branch with the name "username/branchname"? are there any conventions about the branch names? 16:13
cotto_work: sorry. making pull requests for the first time in my life today. i'll stick to conventions. 16:14
cotto_work akashmanohar: the username convention is recommended when you're experimenting or when you don't expect other people to hack on the branch. I should clarify that.
akashmanohar cotto_work: what would branchnames be like? (for example the one for changes in my request) 16:15
cotto_work akashmanohar: something short that describes what you're working on. pct-tutorial-ep3-fix would work 16:16
akashmanohar ok. will follow that from here on.
16:17 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner
dalek rrot: 7769cf2 | (Akash Manohar J)++ | / (2 files):
various pct tutorial fixes and consistency improvements from akashmanohar++

Signed-off-by: Christoph Otto <christoph_github@mksig.org>
16:22
cotto_work there you go 16:23
akashmanohar cotto_work: thanks! :) 16:24
cotto_work thank you for contributing
akashmanohar cotto_work: my pleasure! having fun doing it.
16:24 lateau1 left 16:29 akashmanohar left
whiteknight akashmanohar++ 16:33
16:39 mib_r57nrf joined 16:40 mib_r57nrf left 17:02 Andy joined 17:04 mtk left 17:11 mtk joined 17:12 cotto left
cotto_work networkmanager-- 17:13
17:14 lucian_ joined
cotto_work msg akashmanohar You also don't need to sign off on your own commits. That's used for when you didn't write a commit but want to indicate that you've reviewed it. 17:17
aloha OK. I'll deliver the message.
17:17 lucian left 17:23 lucian joined 17:26 lucian_ left 17:36 lucian_ joined 17:40 lucian left
dalek rrot/gen_gc2: 04ae1b1 | cotto++ | / (2 files):
smarten up auto::gc a bit, remove reference to TMS gc
17:47
17:56 lucian joined 18:00 lucian_ left 18:05 ambs joined 18:10 mstevens left 18:19 lucian_ joined
cotto_work whiteknight: ping 18:20
whiteknight pong 18:21
cotto_work whiteknight: what are your thoughts on hard-coding the gc at configure time? I think I remember you mentioning something like that at some point.
18:22 lucian__ joined
whiteknight I think that's going to be our long-term solution 18:22
18:22 lucian left
whiteknight the extra level of indirection to be calling GC API routines through function pointers is wastefull 18:22
dalek p: 15ba2db | moritz++ | src/NQP/Grammar.pm:
allow <*> in proto regex body
whiteknight it's not a huge drain right now, but it's not free
cotto_work I suspect it'll be a good idea to hold off until gms is more solid, but I like the idea.
maybe post 3.3 18:23
whiteknight I think we should set it up like the platform-specific IO functions. We have multiple GC files all implementing a common API, and pick between them using #defines
cotto_work yes
that's how I pictured it 18:24
18:25 lucian_ left
darbelo There might be a use case for picking the right gc at start-up time, but I sincerely doubt we're at that point yet. 18:25
The ruby VM IIRC can take several gc parameters from environment variables. 18:28
cotto_work runtime tuning is different from runtime gc selection
darbelo Yes, but no amount of tuning will ever beat picking the right gc. 18:29
Anyway, I don't think parrot has matured to the point where that kind of runtime pluggability will pay off. 18:31
cotto_work That's a pretty safe conclusion for the time being. 18:32
18:38 frodwith left 18:39 frodwith joined
dalek rrot-container: 74440fd | Whiteknight++ | / (3 files):
move some utility methods from Container to ParrotContainer, since they have general usefulness. Add a new default_container method to ParrotContainer, which allows you to have a readily-available global container if you want
18:43
rrot-container: 65efa8b | Whiteknight++ | container/ (2 files):
add in a register_factory_method routine, so we can set up a custom factory method for building new objects
rrot-container: 2235df7 | Whiteknight++ | container/ (2 files):
Container::Item -> ItemBuilder
rrot-container: 5d74dc9 | Whiteknight++ | / (5 files):
cleanup some file names
plobsing I'd like to see a comparison before a final decision is taken about runtime pluggable GC. I don't think the indirection costs us much of anything given that the branch always goes one way and can be 100% accurately predicted. 18:46
NotFound There are such things as final decisions?
18:47 theory joined
plobsing one place that does cost us is GC implementation calling back into the API (separate file) which prevents inlining that should occur 18:47
cotto_work plobsing: of course. We won't make that kind of change without measuring the benefit. 18:49
lucian__ plobsing: i'd say having different GCs available is important, but i think changing them on-the-fly is silly and useless
whiteknight no, we certainly can't change them at runtime. That is absurd
plobsing I'm all for it if it gives decent benefits. I'm just saying I question the current line of reasoning.
whiteknight at least, not after interp initialization
atrodo There's a question. Would two interps under two different threads what two different GCs? 18:51
lucian__ plobsing: at the very least at compile-time
atrodo: i would think the distinction would be more fitting at the process level
for example, dalvik's GC is quite slow, but it uses very little memory and is good at sharing 18:52
whiteknight no, all interps under the same process must have the same GC, or same GC type
lucian__ the jvm's default gc is extremely fast, but has a large memory overhead
real-time platforms need incremental gcs
and so on
darbelo lucian, and wouldn't it be nice if you could pick one of them at start-up time?
cotto_work Multiple GCs are great. The question is when libparrot decides which one to use. 18:53
plobsing it would be nifty if we could convince the dynamic linker to manage that for us based on some startup time parameter 18:54
lucian__ darbelo: yes, it would
NotFound You can pick one before startup time... by executing a different interpreter
cotto_work plobsing: e.g LD_PRELOAD=./libparrot-gc-gms.so parrot foo.pbc ?
lucian__ but as NotFound points out, it may not be quite THAT useful
plobsing well yes, that could work. but less clunky would be nice
lucian__ i think it would be useful to see how the JVM does it 18:55
NotFound lucian__: jave does it with a lot of money.
java
cotto_work s/does/did/
lucian__ NotFound: and what did that money buy? 18:56
perhaps the underlying idea isn't expensive, just the gcs themselves
NotFound lucian__: developers and testers
lucian__ NotFound: i'm not convinced choosing the gc at startup is that expensive 18:57
NotFound lucian__: I'm not convinced there aren't lots of other things to work on before that. 18:58
lucian__ NotFound: sure, that's a good point
NotFound I think that in order to evaluate gc strategies using different interpreters is a good enough way, at least for a now. 19:01
cotto_work whiteknight: most interesting blog post about parrot-conatiner 19:03
tadzik yeah, whiteknight++
whiteknight thanks!
I've got a huge list already of things I'm planning to do with it 19:04
cotto_work I very much appreciate the example nqp code. The concept is pretty abstract and would be hard to grok without it.
tadzik btw, the example nqp code shows re resolving the objects themselves, what about resolving types, like you mentioned in the C# example? 19:05
whiteknight tadzik: That's what resolution is: I pass in a type or type name ("String") and receive back an instance of that type 19:07
the types are the keys, not the values returned
19:10 vmspb joined, donaldh joined
tadzik I see 19:10
cotto_work I like that you're doing it in mostly-pure nqp. 19:11
tadzik I'm looking forward to a DI workshop here so I'll understand all of this :)
whiteknight tadzik: It's actually much easier than it sounds. 19:12
tadzik probably. I tend to hear it's a natural thing under a scary name
whiteknight just think about it like a very flexible Factory pattern
you say "Give me an X", and the container gives you one according to the rules you've set up 19:13
you could get an existing one or a new one, it could be initialized or uninitialized, etc
tadzik nice
whiteknight but basically it's just a factory for making stuff
bacek ~~ 19:16
tadzik o/ 19:18
dalek rrot/gen_gc2: 0dd4207 | bacek++ | src/pmc/lexpad.pmc:
Add write barrier to LexPad PMC when it poke into CallContext registers.
19:21
19:25 plobsing left 19:31 donaldh left
dalek rrot/gen_gc2: 4ede1ca | bacek++ | src/gc/gc_gms.c:
Warp gc_gms_validated_objects so we can validate GMS in optimized builds.

Use C<perl Configure.pl --optimize --ccflags="-DPARROT_GC_VALIDATE"> to enable validation.
19:33
19:49 lucian joined
dalek rrot/gen_gc2: a133c63 | bacek++ | src/gc/gc_gms.c:
Remove accidentally committed line.
19:49
19:52 lucian__ left
dalek rrot/gen_gc2: 2f168ec | bacek++ | src/extend.c:
Add write barrier to Parrot_set_pmcreg.
19:56
rrot/gen_gc2: 5f1d8d9 | bacek++ | src/extend.c:
Add write barrier to Parrot_set_strreg
19:57 dmalcolm joined
bacek msg fperrad Lua doesn't fail with "Dead object found" assertion anymore. But luatable.t still segfaults. I suspect we have to throw few more write barriers into Lua/parrot. 19:57
aloha OK. I'll deliver the message.
bacek msg To reproduce segfault - revert a133c63ec6. It will force GC to collect every 1MB of allocations. 19:58
aloha OK. I'll deliver the message.
tadzik ENOFPERRAD
bacek msg fperrad To reproduce segfault - revert a133c63ec6. It will force GC to collect every 1MB of allocations. 19:59
aloha OK. I'll deliver the message.
bacek tadzik, thanks! :)
tadzik :)
bacek msg Coke Good to hear that gen_gc2 doesn't introduce more bugs to partcl :)
aloha OK. I'll deliver the message.
bacek afk # morning duties, $dayjob
dukeleto ~~ 20:12
tadzik o/ 20:13
dukeleto tadzik: top of the localtime() to you 20:15
20:27 lucian_ joined 20:30 lucian left 20:35 mikehh left, mikehh joined 20:51 rdesfo joined 20:54 nwellnhof joined
bacek_at_work ~~ 20:55
dalek p-rx: 3090e41 | moritz++ | src/NQP/Grammar.pm:
allow <*> as proto regex body
20:56
Coke aloha, source? 20:57
aloha Coke: source is github.com/bacek/aloha
21:03 lucian_ left 21:07 plobsing joined
dalek TT #2005 closed by bacek++: Parrot no longer builds on Darwin/PPC 21:15
TT #2005: trac.parrot.org/parrot/ticket/2005
rrot-instrument: 6eb4723 | Whiteknight++ | t/library/IGNORE:
Add a dummy ignore file in a new directory for the sake of one of our tests
21:18
rrot-instrument: 00aea75 | Whiteknight++ | / (2 files):
two quick fixes for initializing an oplib
21:22 whiteknight left
cotto_work brain shutting down... too much exposure to cvs 21:25
dalek rrot/nwellnhof/unicode_dynpmcs: f664da7 | nwellnhof++ | src/ (2 files):
Fix typos
21:45
rrot/nwellnhof/unicode_dynpmcs: 8bb3de1 | nwellnhof++ | t/dynpmc/os_unicode.t:
[t] More Unicode filename tests
ttbot Parrot 8bb3de14 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/18382 21:47
Parrot 8bb3de14 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/18408 21:51
atrodo cotto_work> happens everytime i type cvs 21:52
cotto_work atrodo: me too 21:53
I usually don't even have to type it.
atrodo cotto_work> huh, what were we talking about again? 21:54
cotto_work ice cream
atrodo I like ice cream. There's a small hole in the wall (literally) ice cream place near here called "hold the nuts" 21:55
dalek rrot/gen_gc2: 973a074 | bacek++ | lib/Parrot/Pmc2c/PCCMETHOD.pm:
Add more write barriers. PCC METHOD returns early when we have RETURN() statement.
21:56
21:57 donaldh joined 22:06 fperrad left
NotFound Historic moment: winxedxx has compiled and run its first non trivial program: examples/hexdump.winxed 22:09
tadzik nice! 22:10
22:11 rurban_ joined 22:13 rurban left 22:14 rurban_ is now known as rurban
dukeleto NotFound++ 22:16
22:22 toei left
dalek rrot/nwellnhof/unicode_dynpmcs: 9f51ff2 | nwellnhof++ | / (2 files):
Make find_encoding "platform" work

And make Unicode filename test check for UTF-8 support on Linux
22:25
rrot/nwellnhof/unicode_dynpmcs: 6de456e | nwellnhof++ | / (5 files):
Add configure checks for st_atim and st_atimespec

Darwin uses st_atimespec
NotFound Stripped size of the generated binary with runtime library incldued (stdc++ dynamicaly linked) 94656 bytes. Not bad. 22:28
22:29 darbelo left 22:30 toei joined
ttbot Parrot 9f51ff2e i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/18528 22:32
dalek rrot/nwellnhof/unicode_dynpmcs: d57ddd2 | nwellnhof++ | / (2 files):
codingstd fixes
22:34
22:35 darbelo joined 22:37 ambs left, AndChat joined 22:38 darbelo left
dalek rrot/nwellnhof/unicode_dynpmcs: a717d6f | nwellnhof++ | / (123 files):
Merge branch 'master' into nwellnhof/unicode_dynpmcs

Conflicts:
  \tsrc/dynpmc/os.pmc
22:39
22:42 AndChat is now known as NotFound_b
NotFound_b playing with my tablet 22:42
dukeleto NotFound: which one? 22:43
NotFound_b Toshiba folio 100 22:44
22:46 AndChat joined, NotFound_b left
NotFound Timeout too short 22:46
22:47 AndChat left
nwellnhof mj41: ping 22:48
22:48 plobsing left
ttbot Parrot 6de456e3 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/18602 22:50
22:50 NotFound_b joined
nopaste "donaldh" at 192.168.1.3 pasted "msg bacek: gen_gc2 branch and compiling Rakudo" (41 lines) at nopaste.snit.ch/32804 22:53
ttbot Parrot 9f51ff2e i386-freebsd-64int make error tt.taptinder.org/cmdinfo/18636 23:00
23:01 Andy left
ttbot Parrot a717d6fd MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/18632 23:01
nwellnhof aloha msg mj41: i saw that ttbot reports about commits to branches other than master. is there a way to get a buildstatus overview for those branches? 23:02
aloha nwellnhof: OK. I'll deliver the message.
bacek_at_work donaldh, on which platform this happens? 23:04
23:04 NotFound_b left
bacek_at_work donaldh, Darwin/i386? 23:04
donaldh Yep.
bacek_at_work: yep, known problem? 23:05
bacek_at_work donaldh, nope.
donaldh bacek_at_work: anything I can do to debug?
bacek_at_work donaldh, is it on latest gen_gc branch? 23:06
donaldh, and rakodo was realcleaned?
donaldh It's latest on gen_gc2 23:08
23:09 lucian joined
bacek_at_work donaldh, sigh... I hoped I fixed it by my latest commit. 23:09
donaldh just realcleaned rakudo again.
Answers later.
bacek_at_work donaldh, can you run "grep -c WRITE_BARRIER src/pmc/perl6multisub.c" in rakudo checkout? It should return 24. 23:10
NotFound That's the problem: the answer should be 42 23:11
dukeleto But what is the question? 23:12
donaldh Sorry, just reconfiguring and rebuilding rakudo 23:13
bacek_at_work NotFound, :)
donaldh, you can check it after rebuild
donaldh Yes, I will do and let you know. 23:14
NotFound I discovered the question some time ago. The question is "What was the age of Lewis Carrol when he wrote 'The haunting of the snark'?"
dukeleto The question is actually "What was the question?" 23:15
NotFound hunting
Coke www.boingboing.net/2011/02/16/hacke...-hack.html 23:16
donaldh grrr, parrot says it's 3_0_0 and rakudo wants 3_1_0
bacek_at_work, what rakudo ver should I checkout 23:17
bacek_at_work donaldh, HEAD
donaldh, ah. Better to rm old parrot install manually
23:20 plobsing joined
donaldh bacek_at_work: parrot says it's version 3_0_0 and rakudo HEAD now wants version 3_1_0 23:21
bacek_at_work donaldh, hmm. Let me check. 23:22
23:22 whiteknight joined
bacek_at_work Looks like Rakudo was updated to 3.1 release 23:22
donaldh Yep, yesterday by the look of it.
23:22 lucian_ joined
whiteknight what is GC validation mode? 23:25
bacek_at_work whiteknight, that we don't have referenced dead objects after collect 23:26
dalek rrot/gen_gc2: e7bab1f | mikehh++ | / (3 files):
increment version number to 3.1.0
rrot/gen_gc2: 272bcdb | mikehh++ | docs/p (2 files):
change history and release docs
23:26 lucian left
rrot/gen_gc2: 4b37667 | mikehh++ | / (3 files):
update NEWS, CREDITS and ChangeLog
rrot/gen_gc2: 6dbdffb | mikehh++ | / (2 files):
update core ops
rrot/gen_gc2: 011d460 | cotto++ | NEWS:
add Daniel Kang to list of gci students in NEWS
rrot/gen_gc2: 09c8748 | cotto++ | api.yaml:
remove "fast-tracked" from api.yaml. A better solution was found at #ps
bacek_at_work donaldh, try to pull again. I updated branch to master
rrot/gen_gc2: 819c259 | cotto++ | api.yaml:
deprecations are eligible in 3.4, not 3.3
rrot/gen_gc2: 004ca87 | (Akash Manohar J)++ | examples/languages/squaak/doc/tutorial_episode_3.pod:
Removed exercise-1 in PCT Tutorial episode-3. Methods are already being added by the user

Signed-off-by: Akash Manohar J <akash@akash.im> Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
rrot/gen_gc2: b46e8be | (Akash Manohar J)++ | examples/languages/squaak/doc/tutorial_episode_3.pod:
added instructions in PCT episode-3 to remove methods for term:sym<integer> and term:sym<quote>

Signed-off-by: Akash Manohar J <akash@akash.im> Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
rrot/gen_gc2: bcae48f | (Akash Manohar J)++ | CREDITS:
added Akash Manohar to CREDITS for foxing PCT tutorial episode-3

Signed-off-by: Akash Manohar J <akash@akash.im> Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
rrot/gen_gc2: 8d35155 | dukeleto++ | docs/project/git_workflow.pod:
[doc] Add section about the amazing new merge_pull_request.pl
rrot/gen_gc2: 65ce889 | (Gerd Pokorra)++ | NEWS:
add NEWS template
whiteknight I'll do a complete test run here. clang, gcc, g++, and icc, with/without --optimize 23:27
rrot/gen_gc2: b48afc8 | (Akash Manohar J)++ | / (2 files):
various pct tutorial fixes and consistency improvements from akashmanohar++

Signed-off-by: Christoph Otto <christoph_github@mksig.org>
bacek_at_work whiteknight, excellent! 23:28
donaldh bacek_at_work: thanks. I have it. 23:29
thankfully parrot doesn't take long to build.
bacek_at_work donaldh, erm.. It will not help.
RELEASE_3_0_0-1001-gb48afc8
23:30 contingencyplan_ joined, lucian joined, contingencyplan_ left, lucian left
bacek_at_work donaldh, can you just comment out check in rakudo Configure.pl? 23:30
ttbot Parrot 4b37667f i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/18745
donaldh yes, will do. 23:31
ttbot Parrot a717d6fd MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/18719 23:32
23:33 lucian_ left
donaldh bacek_at_work: I now have 24 write barriers in perl6multisub.c 23:34
bacek_at_work donaldh, it's good... You should have clean rakudo build. At least I hope so. 23:35
23:35 lucian joined 23:41 khisanth_ is now known as Khisanth
ttbot Parrot 4b37667f i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/18801 23:42
donaldh bacek_at_work: win! I have a rakudo build. 23:45
bacek++
whiteknight test failures here 23:48
dukeleto yay! 23:50
23:54 cognominal left
bacek_at_work whiteknight, nopaste? 23:55
whiteknight smolder.parrot.org/app/projects/rep...tails/9855
my test script is still running. I'll post the test output in a little bit
clang does not seem to like it (same failures wit/without --optimize)
bacek_at_work whiteknight, strange failures... 23:56
whiteknight, which platform? 23:57
whiteknight ubuntu 10.10, amd64 23:58
23:58 cognominal joined
whiteknight no icu, no gmp 23:58
bacek_at_work whiteknight, sigh. Looks like my latest update to master broke branch.
whiteknight w00t
i'll stop testing 23:59