|
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 | ||