Camelia, the Perl 6 bug

IRC log for #parrot, 2012-05-01

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 cotto ~~
00:13 whiteknight joined #parrot
00:17 nbrown joined #parrot
00:18 schmooster joined #parrot
00:18 GodFather joined #parrot
00:24 nbrown cotto: good evening
00:25 nbrown i see you were working on m0 args stuff today
00:28 nbrown msg cotto I don't think that the fact that I didn't convert the argv string to an m0 string should have been the issue. I was using the constant as an m0 string and the arg as a c string
00:28 aloha OK. I'll deliver the message.
00:29 nbrown msg cotto but kudos for converting the args, it definitely needed to get done now that I think about it
00:29 aloha OK. I'll deliver the message.
00:32 cotto no need to msg me
00:33 cotto I use an irc proxy, so I don't miss anything unless it mysteriously goes offline
00:34 cotto the cm0 build is very noisy on x86.  It looks like that's the next thing to fix.
00:34 nbrown cotto: ok, I won't do that anymore
00:34 nbrown as for the noisy build, I don't know how to make a certain class of them go away
00:35 nbrown how can you make the int to pointer of a different size (and the reverse) not cause a warning?
00:35 benabik ~~
00:35 cotto that's a problem we'll need to figure out
00:35 cotto 'evening, benabik
00:35 whiteknight blah, the worst part about a new OS is having to reinstall all the old libraries and parrot build dependencies
00:36 cotto x86 cm0 also skips every other arg because of the pointers size difference
00:36 cotto wheee
00:36 whiteknight I may never submit another smoke report, if I have to go through cpan hell again to get all the prereqs
00:36 nbrown ok, we'll need to do a better job of knowing the size of ints, pointers, etc of the current system
00:37 cotto clearly
00:38 cotto I continue to not like that m0 will do a bunch of otherwise-unnecessary 64-bit math of 32-bit platforms.
00:38 nbrown btw, is the interpreter data described in the spec supposed to describe the m0b file or the computer running the interpreter?
00:39 cotto so many holes to plug
00:39 nbrown yeah, but that's fun
00:40 cotto there's a lot of overlap.  The spec is largely concerned with the serialized m0b data.
00:42 nbrown true
00:42 nbrown did you have any thoughts on how to fix the 64 bit math issue?
00:43 cotto nothing comes immediately to mind
00:43 nbrown ok, me neither
00:43 cotto well, nothing elegant
00:43 nbrown everything I can think of is very messy
00:44 nbrown alright, well I think I'm gonna pull your c-args branch and see how it works while I think about eliminating those warnings
00:46 cotto ok
00:46 nbrown if you can think of something else that you'd like me to work on or think about, feel free to let me know
00:47 nbrown I'm willing to work on whatever you think is best
00:47 cotto a tiny spring appears to have fallen out of my laptop.  I hope it's not important.
00:48 cotto I'll definitely be thinking about both the immediate issues and what the long-term plan should look like.
00:48 nbrown me too, that would be terrible
00:48 cotto and thanks again for jumping in!
00:49 nbrown I'm trying to as well, but I'll admit I'm a little muddled right now
02:00 JimmyZ joined #parrot
02:24 jashwanth joined #parrot
02:25 nbrown cotto: checkout my last two commits to https://github.com/nbrown/​parrot/tree/m0-c-args-fix
02:26 nbrown cotto: it fixes the every other arg problem
02:26 cotto don't mind if I do
02:27 nbrown the issue was the test was expecting the elements of the argv array to be 64 bits each
02:27 cotto nbrown++
02:27 cotto yeah
02:28 nbrown we probably should free the memory in interp_free, but at least it accesses the args correctly
02:29 cotto that patch leaves a couple spots for uninitialized memory to creep it
02:30 cotto (the earlier one)
02:30 cotto nm
02:30 nbrown really?
02:30 nbrown ok
02:32 dalek parrot/m0-c-args-fix: 6811dd3 | nbrown++ | src/m0/c/m0_interp.c:
02:32 dalek parrot/m0-c-args-fix: Use 32 bit integers for the string length and encoding
02:32 dalek parrot/m0-c-args-fix: review: https://github.com/parrot/parrot/commit/6811dd3a62
02:32 dalek parrot/m0-c-args-fix: c571a65 | nbrown++ | src/m0/c/m0_interp.c:
02:32 dalek parrot/m0-c-args-fix: Make interp_argv be uint64_t* instead of char**
02:32 dalek parrot/m0-c-args-fix: The pointers in interp_argv need to be uniformly 8 bytes each. This will
02:32 dalek parrot/m0-c-args-fix: make m0_args_basic access the correct argument.
02:32 dalek parrot/m0-c-args-fix: review: https://github.com/parrot/parrot/commit/c571a6548a
02:33 nbrown awesome
02:36 cotto the pointer thing is trickier.  The problem as I see it is that we need to cleanly separate the concept of the underlying system's pointers from M0's internal pointers.
02:37 nbrown I agree
02:37 nbrown I'll be honest, I'm not sure how to do that
02:38 cotto it probably means something like a runtime data segment that M0 programs can treat like main memory
02:39 cotto s/segment/area/
02:40 cotto no pointers to anything outside that from within m0 code
02:40 nbrown ok
02:40 cotto (apart from ffi, etc)
02:40 nbrown that make sense
02:40 cotto the perl code's about to get meaningfully weirder
02:41 nbrown that's a great phrase, it made me laugh
02:41 cotto though to be fair, this whole project is an exercise in abusing perl
02:41 nbrown yeah, I find some of the perl to be head scratchingly interesting
02:42 cotto that's a very diplomatic way of putting it.  I don't think we're doing what larry had in mind.
02:42 nbrown it's a pretty impressive twisting of the language
02:43 cotto perl5 m0 is still much easier to work with than the C implementation
02:44 nbrown I actually think I've spent more time with the C implementation and find it clearer, but the pointer manipulations are a pain
02:44 cotto that's the part I don't like
02:44 nbrown me neither
02:45 cotto if the data segment becomes part of m0b, we're getting dangerously close to smalltalkland
02:45 cotto except for all the other smalltalkey things
02:45 nbrown I keep being tempted to write some macros to abstract it out, but I'm not that great at C macros
02:45 nbrown I don't really know smalltalk
02:46 cotto If you can write a macro that results in cleaner and/or more understandable code, go for it!
02:48 nbrown random question, is m0 supposed to be C89 or C99?
02:50 cotto as much of c99 as msvc supports
02:50 cotto it seems to be the limiting factor
02:50 nbrown ok
02:51 benabik I have a lot of issues apparently.
02:51 dalek winxed: 2c37d51 | NotFound++ | winxedst2.winxed:
02:51 dalek winxed: use some more binders and algorithms
02:52 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/2c37d5192d
02:56 benabik Hey, that syntax works better when I actually write it properly.
02:56 benabik NotFound++
02:56 benabik winxed++
02:56 benabik The inline syntax in winxed is pretty smart.
02:57 benabik *inline PIR
02:57 cotto benabik, what issues?
02:57 cotto As your mentor, I feel obligated to be at least as confused as you.
02:57 NotFound benabik: what syntax?
02:57 benabik cotto: I've been generating work for NotFound.  Thought I had found something new, but it worked once I got the syntax right.
02:58 benabik Oh, wait, no...  I misread the result.
02:58 benabik NotFound: I'm trying to use defined_i_p_k
02:59 benabik NotFound: I thought ${ defined ret, obj[key] }; had done it, but I mis-read the output.
03:02 NotFound benabik: no, the operands of pirops are parsed and handled as expresions.
03:02 NotFound So that is the same as: { var temp = obj[key]; ${ defined ret, temp }; }
03:04 benabik So I realized.  The $P2[$S1] perfectly lined up with the defined $I1, $P3 underneath.
03:04 benabik Uhm.  If that made any sense.
03:05 benabik NotFound: Is there a good way to use keyed opcodes?
03:06 NotFound benabik: yes: using the appropiate winxed syntax for each use ;)
03:06 NotFound In that case: ret = defined obj[key];
03:08 benabik Huh.  Didn't see that browsing through the code...
03:08 dalek winxed: 007e6a8 | NotFound++ | winxedst (2 files):
03:08 dalek winxed: rename getlexnum to generatelexnum for clarity
03:08 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/007e6a82ee
03:09 benabik Yeah.  That doesn't seem to parse.
03:10 NotFound Uh, sorry....
03:10 benabik exists is there, but not defined.
03:11 NotFound Yes, I was planning to add it at the same time, but delayed don't remember why.
03:17 JimmyZ joined #parrot
03:21 NotFound benabik: I'm afraid the only way right now is if (exists obj[key] ) ${ defined ret, obj[key] }; else ret = false;
03:21 benabik :-(
03:39 nbrown cotto: I just fixed the m0_args test to treat argv[1] as an m0 string. It passes for me now. Let me know if it works for you
03:42 JimmyZ nbrown++
03:42 nbrown thanks JimmyZ
03:42 JimmyZ :P
03:43 nbrown JimmyZ: how's your branch coming along?
03:44 JimmyZ nbrown: stopped, I don't like forks. there are too many forks in the linux community :P
03:44 benabik JimmyZ: Branches != forks
03:45 JimmyZ benabik: my branch are different goal
03:45 JimmyZ *is
03:45 nbrown awww, I was curious where it would go next. It seemed interesting
03:46 JimmyZ divergence
03:46 JimmyZ nbrown: parrot already use type register :)
03:46 JimmyZ uses
03:47 cotto nbrown++
03:47 cotto nbrown, how much longer are you online tonight?
03:47 nbrown I know, but m0 wasn't laid out that way originally and I was curious how it would work that way
03:47 nbrown cotto: not much, I'm EST based and starting to get sleepy
03:48 cotto ok
03:48 nbrown why?
03:49 nbrown got anything else you want me to think about?
03:49 cotto I'm thinking about m0's memory layout
03:50 nbrown yeah, that might be a conversation for another time
03:50 cotto there are three ways that constants data can go
03:50 cotto do you have more or less than 15 minutes?
03:51 nbrown probably 20ish
03:51 cotto I'll type fast then
03:51 nbrown nice :)
03:51 cotto first, each entry in the consts segment is fixed width and can either be a fixed-width value or a pointer to main memory, not unlike what we have now
03:51 nbrown right
03:52 cotto the second is similar, except that the pointers are offsets to a later point in the constants segment
03:52 nbrown which is what you suggested yesterday
03:52 cotto the third is that all values are inline and that constants aren't always fixed-width
03:53 nbrown so in the third case, how would you know where the 3rd constant is? walk the constant table?
03:54 cotto the second is the least magical and surprising
03:54 cotto yes.  it'd require some smarts on the part of the interp
03:54 cotto which is why I don't like it
03:54 nbrown and probably a dedicated load_const op
03:55 nbrown I'd tend to lean toward the second. It would also work with the memory model you were talking about before
03:56 cotto Since we're going to need some rw memory too, that could live either in its own segment or be appended to the consts data (with a ro barrier to keep constants data from getting clobbered).
03:56 cotto anything that doesn't fit into a register goes there and the VM would be largely self-contained
03:58 cotto there'd need to be separate ops for dealing with physical memory (or a special case in deref, which isn't preferable), but this might cause fewer problems than it solves
03:58 nbrown how would we choose how much memory to allocate for the VM? And how would we handle an overflow situation?
03:58 cotto it'd start with a fixed size area and would have to manually request more.
03:59 nbrown why would the physical memory ops need to be special?
03:59 nbrown ok, that makes sense
03:59 cotto different word size, potentially
04:01 nbrown ok, but it would only have to be deref, right?
04:02 cotto I think so.  not 100% sure
04:02 nbrown yeah, me neither. I'm trying to think it through
04:03 nbrown I see the potential need for a different sized deref, but I'm not sure about the others
04:06 nbrown so in summary, our current method is probably the simplest. The second is nice for mmap and I'll bet it will have security benefits if we do it carefully. And the third will require some ops to walk the constant segment
04:06 cotto It feels good to run into fundamental design problems early in the process.
04:06 nbrown It's so much better than late
04:07 cotto the current method is the simplest from a naive implementation perspective.  The second is probably simpler overall.
04:07 nbrown fair enough, I can see that argument too
04:09 nbrown I feel like the second has the fewest special cases
04:10 cotto M0 should have as few of those as possible.
04:11 nbrown I think we should sketch it out and then try it out in a branch
04:11 nbrown I agree 100%
04:11 cotto that's my plan for the next few days
04:11 cotto sketch it out a bit, sleep on it and go from there
04:12 cotto It's nice to realize that even if writing m0 directly is hairy, it'll be almost 100% generated in the end.
04:12 nbrown let me know where you put it. I'd love to look at it
04:12 cotto definitely
04:12 nbrown yeah, that's why I don't stress about how easy/hard it is to write
04:12 nbrown but I worry about special cases because those are hard to generate
04:13 cotto exactly
04:16 nbrown Ok, I'm beat. It's bedtime for me. Talk to you later
04:16 cotto 'night
04:41 dukeleto joined #parrot
05:44 particle joined #parrot
07:24 dalek parrot/m0-c-args-fix: 6618c48 | cotto++ | t/m0/integration/m0_args_basic.m0:
07:24 dalek parrot/m0-c-args-fix: remove bogus test.  m0_args tests this more effectively
07:24 dalek parrot/m0-c-args-fix: review: https://github.com/parrot/parrot/commit/6618c48e18
07:31 fperrad joined #parrot
07:53 JimmyZ joined #parrot
08:04 brrt joined #parrot
08:12 lucian joined #parrot
08:54 dalek parrot/coke/rm_pasm: 187f2a3 | jimmy++ | t/pmc/orderedhash.t:
08:54 dalek parrot/coke/rm_pasm: change t/pmc/orderedhash.t to pir
08:54 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/187f2a39dc
08:54 moritz JimmyZ++
09:05 dalek parrot/coke/rm_pasm: 6c659be | jimmy++ | t/pmc/ (2 files):
09:05 dalek parrot/coke/rm_pasm: change t/pmc/coroutine.t to pir
09:05 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/6c659be912
09:23 dalek parrot/coke/rm_pasm: 2d16eaa | jimmy++ | t/pmc/sub.t:
09:23 dalek parrot/coke/rm_pasm: attempted to change t/pmc/sub.t to pir, test failed
09:23 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/2d16eaaf9e
09:27 dalek parrot/coke/rm_pasm: d0a06e6 | jimmy++ | t/pmc/sub.t:
09:27 dalek parrot/coke/rm_pasm: change invokecc $P0 to $P0() in t/pmc/sub.t to pir
09:27 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/d0a06e6883
09:31 PacoAir joined #parrot
09:33 dalek parrot/coke/rm_pasm: b39ed59 | jimmy++ | t/op/jit (2 files):
09:33 dalek parrot/coke/rm_pasm: removed t/op/jitn.t and t/op/jit.t
09:33 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/b39ed59f62
09:40 dalek parrot/coke/rm_pasm: 4274277 | jimmy++ | MANIFEST (3 files):
09:40 dalek parrot/coke/rm_pasm: removed jit from MANIFEST.*
09:40 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/42742776c4
09:47 prologic left #parrot
09:51 dalek parrot/coke/rm_pasm: 8302da7 | jimmy++ | t/pmc/iterator.t:
09:51 dalek parrot/coke/rm_pasm: attempt changed t/pmc/iterator.t to pir
09:51 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/8302da780a
10:00 dalek nqp: 480d22d | (Arne Skjærholt)++ | src/6model/reprs/CArray.c:
10:00 dalek nqp: [CArray] Refactor bind_pos_boxed/at_pos_boxed.
10:00 dalek nqp:
10:00 dalek nqp: Since we've added child_objs, we can cache the generated String objects as
10:00 dalek nqp: well, and eliminate the need for at/bind_pos_complex.
10:00 dalek nqp: review: https://github.com/perl6/nqp/commit/480d22de3c
10:00 dalek nqp: 3776cef | (Arne Skjærholt)++ | src/ (2 files):
10:00 dalek nqp: Check argument objects for changes after a C language call.
10:00 dalek nqp:
10:00 dalek nqp: Some refactoring of CArray to fit in with the write barriering.
10:00 dalek nqp: review: https://github.com/perl6/nqp/commit/3776cefbdf
10:00 dalek nqp: e99865a | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops:
10:00 dalek nqp: No need to write barrier non-concrete objects.
10:00 dalek nqp: review: https://github.com/perl6/nqp/commit/e99865a687
10:00 dalek nqp: 2fb45b9 | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops:
10:00 dalek nqp: Handle non-concrete objects properly in write barriers.
10:00 dalek nqp: review: https://github.com/perl6/nqp/commit/2fb45b97ab
10:00 dalek nqp: bcf4b25 | (Arne Skjærholt)++ | src/6model/reprs/CArray.c:
10:00 dalek nqp: [CArray] Handle non-concrete objects correctly in bond_pos_boxed.
10:00 dalek nqp: review: https://github.com/perl6/nqp/commit/bcf4b25328
10:00 dalek nqp: ab59c7d | moritz++ | src/ (2 files):
10:00 dalek nqp: Merge remote branch 'origin/dyncall-wb'
10:00 dalek nqp: review: https://github.com/perl6/nqp/commit/ab59c7d618
10:00 dalek nqp: b5fe71a | moritz++ | tools/lib/NQP/Configure.pm:
10:00 dalek nqp: [configure] automatically configure push urls
10:00 dalek nqp:
10:00 dalek nqp: when cloning NQP or Parrot, automatically add an ssh-based pushurl,
10:00 dalek nqp: to make contributions easier for those with commit bits
10:00 dalek nqp: review: https://github.com/perl6/nqp/commit/b5fe71ab1e
10:04 dalek nqp: 0dde8f3 | moritz++ | tools/lib/NQP/Configure.pm:
10:04 dalek nqp: [configure] automatically configure push urls
10:04 dalek nqp:
10:04 dalek nqp: when cloning NQP or Parrot, automatically add an ssh-based pushurl,
10:04 dalek nqp: to make contributions easier for those with commit bits
10:04 dalek nqp: review: https://github.com/perl6/nqp/commit/0dde8f3dd0
10:15 dalek parrot/coke/rm_pasm: f71f8b1 | jimmy++ | t/op/spawnw.t:
10:15 dalek parrot/coke/rm_pasm: attempt changed t/pmc/spawnw.t to pir
10:15 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/f71f8b15ea
10:19 dalek parrot/coke/rm_pasm: 0b9731d | jimmy++ | t/op/spawnw.t:
10:19 dalek parrot/coke/rm_pasm: fix t/pmc/spawnw.t, test passed
10:19 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/0b9731d3ac
10:27 dalek rakudo/nom: 5552804 | moritz++ | docs/ChangeLog:
10:27 dalek rakudo/nom: fill in some ChangeLog entries
10:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5552804f58
10:27 dalek parrot/coke/rm_pasm: ba2d72a | jimmy++ | t/pmc/ (3 files):
10:27 dalek parrot/coke/rm_pasm: fixed some test in t/pmc/*.t
10:27 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/ba2d72a60d
10:35 dalek parrot/coke/rm_pasm: 38a473b | jimmy++ | t/op/string_cs.t:
10:35 dalek parrot/coke/rm_pasm: convert t/op/string_cs.t to pir
10:35 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/38a473ba0c
10:39 JimmyZ removing pasm is a big project!
10:41 moritz aye
10:41 moritz which is why it's good to have helpers
10:41 moritz JimmyZ++
10:42 JimmyZ yep, it's a manual labor
10:42 JimmyZ :P
10:43 JimmyZ Coke++
10:49 jashwanth joined #parrot
10:59 dalek parrot/coke/rm_pasm: 4af6103 | jimmy++ | t/pmc/freeze.t:
10:59 dalek parrot/coke/rm_pasm: convert t/pmc/freeze.t to pir
10:59 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/4af610323c
11:05 brrt left #parrot
11:16 dalek nqp: 480d22d | (Arne Skjærholt)++ | src/6model/reprs/CArray.c:
11:16 dalek nqp: [CArray] Refactor bind_pos_boxed/at_pos_boxed.
11:16 dalek nqp:
11:16 dalek nqp: Since we've added child_objs, we can cache the generated String objects as
11:16 dalek nqp: well, and eliminate the need for at/bind_pos_complex.
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/480d22de3c
11:16 dalek nqp: 3776cef | (Arne Skjærholt)++ | src/ (2 files):
11:16 dalek nqp: Check argument objects for changes after a C language call.
11:16 dalek nqp:
11:16 dalek nqp: Some refactoring of CArray to fit in with the write barriering.
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/3776cefbdf
11:16 dalek nqp: e99865a | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops:
11:16 dalek nqp: No need to write barrier non-concrete objects.
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/e99865a687
11:16 dalek nqp: 2fb45b9 | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops:
11:16 dalek nqp: Handle non-concrete objects properly in write barriers.
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/2fb45b97ab
11:16 dalek nqp: bcf4b25 | (Arne Skjærholt)++ | src/6model/reprs/CArray.c:
11:16 dalek nqp: [CArray] Handle non-concrete objects correctly in bond_pos_boxed.
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/bcf4b25328
11:16 dalek nqp: 2bfa3a5 | (Arne Skjærholt)++ | / (3 files):
11:16 dalek nqp: Merge branch 'master' of github.com:perl6/nqp
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/2bfa3a5a2b
11:16 dalek nqp: 4db3ed0 | (Arne Skjærholt)++ | / (3 files):
11:16 dalek nqp: Merge branch 'master' into dyncall-wb
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/4db3ed0617
11:50 benabik joined #parrot
11:54 jashwanth joined #parrot
11:58 dalek nqp/toqast: 07ab3c7 | jnthn++ | src/QAST/ (2 files):
11:58 dalek nqp/toqast: Sketch out 'bind' op; since it's sensitive to the variable type, the real work on this will be done by the QAST::Var processor.
11:58 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/07ab3c752a
11:58 dalek nqp/toqast: d8fd160 | jnthn++ | src/QAST/Compiler.nqp:
11:58 dalek nqp/toqast: Implement lookup of and binding to locals; handles natively typed ones right off (which PAST never did).
11:58 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/d8fd160af3
11:58 dalek nqp/toqast: b67c3b8 | jnthn++ | t/qast/qast.t:
11:58 dalek nqp/toqast: Some very basic tests for binding to a local of the various native types, and ensuring a bind works as an rvalue too (e.g. we return the bound value).
11:58 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/b67c3b812b
12:15 dalek rakudo/nom: e9d0bbb | tadzik++ | src/core/terms.pm:
12:15 dalek rakudo/nom: Fix %*ENV regressions
12:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e9d0bbb8a0
12:20 jwilliams joined #parrot
12:21 dalek rakudo/nom: 4c241c8 | moritz++ | / (3 files):
12:21 dalek rakudo/nom: implement -I command line option
12:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4c241c86e2
12:22 brrt joined #parrot
12:22 Coke JimmyZ++ # ooh, thanks for the pasm help!
12:22 brrt i just realised something
12:22 brrt winxed is the java of parrot
12:22 brrt low level, object oriented, matched to the underlying vm
12:23 benabik I tend to think of it as the C to PIR's assembly
12:23 whiteknight joined #parrot
12:23 whiteknight good morning, #parrot
12:23 benabik o/ whiteknight
12:25 jwilliams is parrot vm based on csp model?
12:27 brrt morning
12:27 benabik jwilliams: What is this csp model?  It uses CPS (Continuation Passing Style)
12:27 whiteknight good morning benabik
12:36 jwilliams benabik: Sorry. My fault. It should be CPS model, not csp.
12:36 jwilliams I came across to read that parrot is based on CPS model, but I can't find that article right now.
12:36 jwilliams So just want to make sure.
12:36 moritz yes, it is.
12:36 benabik jwilliams: 'salright.  There are so many acronyms that I can't assume typos.  :-)
12:37 JimmyZ jwilliams: http://www.linux-mag.com/id/4197/
12:41 jwilliams Thanks for the article. That's useful. : )
12:46 JimmyZ_ joined #parrot
12:54 dalek nqp/toqast: 28c8f73 | jnthn++ | t/qast/qast.t:
12:54 dalek nqp/toqast: Make sure simple lookups of locals work too.
12:54 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/28c8f73aad
13:00 dalek parrot/coke/rm_pasm: cb3a7ed | jimmy++ | t/compilers/imcc/reg/alloc.t:
13:00 dalek parrot/coke/rm_pasm: removed some pir/pasm test which is not really useful
13:00 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/cb3a7edb95
13:08 dalek parrot/coke/rm_pasm: dea6133 | jimmy++ | t/op/interp.t:
13:08 dalek parrot/coke/rm_pasm: convert t/op/interp.t to pir
13:08 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/dea61337b3
13:15 Coke JimmyZ++ # woot!
13:16 dalek parrot/coke/rm_pasm: b773a23 | jimmy++ | t/op/basic.t:
13:16 dalek parrot/coke/rm_pasm: convert t/op/basic.t to pir
13:16 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/b773a2376e
13:19 dalek parrot/coke/rm_pasm: 16f74a2 | jimmy++ | t/op/exit.t:
13:19 dalek parrot/coke/rm_pasm: removed some pir/pasm test from t/op/exit which is not really useful
13:19 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/16f74a28bd
13:20 lucian http://int3.github.com/doppio/about.html
13:22 alvis` joined #parrot
13:22 dalek parrot/coke/rm_pasm: 89f681f | jimmy++ | t/pmc/signal.t:
13:22 dalek parrot/coke/rm_pasm: convert t/op/signal.t to pir
13:22 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/89f681f2d5
13:23 Coke lucian: heh. neat.
13:26 dalek parrot/coke/rm_pasm: 07912e1 | jimmy++ | t/op/exceptions.t:
13:26 dalek parrot/coke/rm_pasm: convert t/op/esceptions.t to pir
13:26 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/07912e10b0
13:27 lucian Coke: indeed
13:30 Coke down to 17 failing test files in branch. JimmyZ++ moritz++
13:30 Coke moritz, JimmyZ: https://gist.github.com/2567909
13:32 dalek parrot/coke/rm_pasm: 78d07b5 | jimmy++ | t/pmc/bignum.t:
13:32 dalek parrot/coke/rm_pasm: convert t/op/bignum.t to pir
13:32 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/78d07b56ab
13:34 whiteknight joined #parrot
13:36 dalek parrot/coke/rm_pasm: a4d7c4e | jimmy++ | t/ (2 files):
13:36 dalek parrot/coke/rm_pasm: fixed plan and s/pasm/pir/g
13:36 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/a4d7c4e4b6
13:36 JimmyZ :)
13:37 nbezzala joined #parrot
13:40 Coke 16...
13:42 Coke 121 instances of "pasm" in t/ left.
13:43 whiteknight you guys are kicking butt
13:43 dalek parrot/coke/rm_pasm: f81f7b4 | jimmy++ | t/pmc/nci.t:
13:43 dalek parrot/coke/rm_pasm: convert t/pmc/nci.t to pir
13:43 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/f81f7b4274
13:44 dalek parrot/coke/rm_pasm: 5a31b97 | jimmy++ | t/pmc/nci.t:
13:44 dalek parrot/coke/rm_pasm: s/pasm/pir/g in t/pmc/nci.t
13:44 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/5a31b97227
13:52 dalek parrot/coke/rm_pasm: 2d8802a | jimmy++ | t/pmc/exception-old.t:
13:52 dalek parrot/coke/rm_pasm: convert t/pmc/exception-old.t to pir
13:52 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/2d8802ab94
13:53 * JimmyZ stopped converting
13:55 alvis` left #parrot
13:56 jwilliams left #parrot
13:57 lateau joined #parrot
14:02 JimmyZ Coke: there are some test I don't know how to fix, most about .include
14:03 JimmyZ Coke: fixing it means more tests passing
14:04 Coke JimmyZ: example?
14:06 Coke looks like "t/compilers/imcc/syn/file.t
14:06 JimmyZ Coke: .include "interpinfo.pir" in t/pmc/sub.t
14:07 * Coke notes that the include.*pasm tests in imcc/syn/file.t can just be deleted, since we already test including pir.
14:07 Coke JimmyZ: I think those just need to be moved outside of a .sub
14:09 dalek parrot/coke/rm_pasm: f5a6c21 | jimmy++ | t/pmc/bignum.t:
14:09 dalek parrot/coke/rm_pasm: removed a test which is not really useful
14:09 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/f5a6c21f7a
14:11 dalek parrot/coke/rm_pasm: ba010c6 | jimmy++ | t/pmc/signal.t:
14:11 dalek parrot/coke/rm_pasm: s/pasm/pir/g in t/pmc/signal.t
14:11 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/ba010c6e29
14:13 dalek parrot/coke/rm_pasm: 02c6281 | jimmy++ | t/pmc/io.t:
14:13 dalek parrot/coke/rm_pasm: convert t/pmc/io.t to pir
14:13 dalek parrot/coke/rm_pasm: review: https://github.com/parrot/parrot/commit/02c6281789
14:13 Coke hurm. actually, that doesn't seem to matter. include from inside a sub is fine.
14:13 Coke JimmyZ: do the initial conversion, show me the code, and how it fails.
14:14 benabik JimmyZ: Have you rebuilt on the branch?  It should generated the appropriate .pir files during build.
14:14 JimmyZ benabik: nope ..
14:14 benabik Nope you didn't rebuild, or no it didn't generate the files?
14:15 JimmyZ benabik: I didn't rebuild, I just build a master
14:15 JimmyZ benabik: and installed
14:15 Coke JimmyZ: ah!
14:15 benabik JimmyZ: interpinfo.pir and the other runtime/parrot/include/*.pir files are built during the build process.  If you only built on master, then it won't be able to find them.
14:16 Coke benabik++ - you need to run the tests against a parrot build on the branch.
14:22 Coke also, shouldn't need to install to run the tests.
14:30 dalek parrot: 2af81f0 | petdance++ | tools/dev/pbc_to_exe.pir:
14:30 dalek parrot: consted a local var
14:30 dalek parrot: review: https://github.com/parrot/parrot/commit/2af81f04e2
14:35 * JimmyZ sleeps
14:43 benabik Hm.  Winxed internals are... somewhat opaque.
14:43 benabik Pretty organized, but it takes some figuring to determine what's what.
14:44 NotFound benabik: What are you looking for?
14:44 benabik NotFound: I'm poking around at a defined operator for fun and lack of profit.
14:46 benabik NotFound: Also, do you ever sleep or work?  It seems like any time I discuss Winxed you're here.  ;-D
14:47 NotFound benabik: these last days I've been doing bizarre sleep times.
14:50 NotFound benabik: I'm going to add it
14:53 benabik NotFound: I figured I'd try to do something myself for once instead of just making a pile of work for you.  :-)
14:53 benabik NotFound: But if you beat me to it, yay.
14:53 lateau joined #parrot
14:53 fperrad joined #parrot
14:55 fperrad joined #parrot
14:56 NotFound benabik: delete and exists have common parts, and adding defined to the bunch can benefit from some refactor, so I prefer to do it myself.
14:57 dmalcolm joined #parrot
15:10 benabik NotFound: Fair enough.  I'll continue poking around though.  It is fairly cleanly designed, just not documented.  Makes for a bit of a learning curve.
15:25 dalek winxed: c8cabac | NotFound++ | winxedst2.winxed:
15:25 dalek winxed: operator defined - experimental
15:25 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/c8cabac47f
15:26 benabik woo, I was writing something similar.
15:27 benabik Which I guess means I was doing something right.
15:33 dalek rakudo/named_pod_vars: a2db837 | tadzik++ | src/Perl6/ (2 files):
15:33 dalek rakudo/named_pod_vars: First attempt at implementing Pod variables like $=data, $=SYNOPSIS etc
15:33 dalek rakudo/named_pod_vars: review: https://github.com/rakudo/rakudo/commit/a2db83712a
16:21 whiteknight joined #parrot
16:24 dalek nqp/cstr: eee0fa5 | (Arne Skjærholt)++ | / (4 files):
16:24 dalek nqp/cstr: First cut of handling explicitly managed strings.
16:24 dalek nqp/cstr: review: https://github.com/perl6/nqp/commit/eee0fa501f
16:27 whiteknight hmmm... that reminds me, I really wish our own handling of C strings was improved
16:27 dalek winxed: 55d24bc | NotFound++ | winxedst2.winxed:
16:27 dalek winxed: fix inline of var declarations and subblocks
16:27 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/55d24bc54e
16:27 brambles joined #parrot
16:29 whiteknight of course, I'm not prepared to fix it myself yet
16:31 NotFound whiteknight: fix what?
16:32 whiteknight I wish that we cached generated C strings, I wish that we could work with them more cleanly through NCI
16:35 NotFound I think a generic caching of generated C string is too error prone.
16:35 whiteknight can be, yes. But repeatedly reproducing C strings for a STRING is very inefficient
16:36 benabik It shouldn't be too error prone with immutable strings.
16:36 benabik Although I suppose they can be altered when we hand them off.  :-/
16:37 NotFound Caching them may lead to always copying it just in case it gets unexpectedly freed.
16:40 NotFound Anyway, I like better using a ByteBuffer than str_to_cstring
16:40 NotFound The ByteBuffer is garbage collected.
16:40 whiteknight if ByteBuffer had a way to extract a C-string from a STRING and cache that, that would be good
16:41 NotFound Cache where? In the STRING?
16:44 whiteknight in the ByteBuffer
16:46 NotFound ByteBuffer already does it, but you may need to reencode before.
16:47 NotFound And adding the NUL terminator
16:48 whiteknight right, we need something that does those things automatically, because C strings are so common to use in NCI and other places
16:49 whiteknight We need it to be much easier to work with C strings at the user-level
16:51 NotFound whiteknight: you can't automatically know what each use needs.
16:52 whiteknight NotFound: Maybe not, but we can provide much easier tools for various cases
16:52 NotFound Yeah, that's doable.
16:52 whiteknight An easier interface to get a cached constant, an easier interface to get a copy. An easy way to say whether it should be freed automatically or freed manually, etc
17:08 Coke interesting. "t/steps/auto/icu-01.t" fails in coke/pasm when running "perl Configure.pl --test"
17:18 Coke er, coke/rm_pasm
17:21 Coke msg petdance - getting several warnings in the build on OSX 10.7.3, gcc 4.2.1
17:21 aloha OK. I'll deliver the message.
17:21 dalek parrot/m0-c-args-fix: 5140899 | cotto++ | src/m0/c/m0_ops.c:
17:21 dalek parrot/m0-c-args-fix: macroize op invocations to make debugging a bit less painful
17:21 dalek parrot/m0-c-args-fix: review: https://github.com/parrot/parrot/commit/5140899c41
17:30 jashwanth joined #parrot
17:51 cotto ~~
17:56 jashwanth joined #parrot
18:00 benabik Heh.  Apparently Facebook has bots on an internal IRC channel to monitor code and releases and they maintain karma for their developers.
18:01 benabik http://arstechnica.com/business/news/2012/0​4/exclusive-a-behind-the-scenes-look-at-fac​ebook-release-engineering.ars?utm_source=rs​s&utm_medium=rss&utm_campaign=rss
18:20 brrt joined #parrot
18:29 dukeleto ~~
18:34 dalek rakudo/named_pod_vars: eee338b | tadzik++ | src/Perl6/Actions.pm:
18:34 dalek rakudo/named_pod_vars: Remove some leftover debugging output
18:34 dalek rakudo/named_pod_vars: review: https://github.com/rakudo/rakudo/commit/eee338bb85
18:34 dalek rakudo/named_pod_vars: 641e6b7 | tadzik++ | src/Perl6/Actions.pm:
18:34 dalek rakudo/named_pod_vars: Make the compiler not whine about undeclared $= variables, and vivify them to Any
18:34 dalek rakudo/named_pod_vars: review: https://github.com/rakudo/rakudo/commit/641e6b7e46
18:35 dalek winxed: f6c2c61 | NotFound++ | winxedst2.winxed:
18:35 dalek winxed: allow try modifiers in inline
18:35 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/f6c2c61c10
18:56 dalek winxed: 30b6a24 | NotFound++ | winxedst2.winxed:
18:56 dalek winxed: some fixes in argument modifiers and don not ignore them when inlined
18:56 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/30b6a24c49
19:01 alvis joined #parrot
19:02 dalek nqp: 446badf | moritz++ | src/PAST/NQP.pir:
19:02 dalek nqp: nqp::die as alias for pir::die
19:02 dalek nqp: review: https://github.com/perl6/nqp/commit/446badfc49
19:02 dalek nqp: d498216 | moritz++ | / (2 files):
19:02 dalek nqp: allow single-letter command line options without spaces between option and value
19:02 dalek nqp:
19:02 dalek nqp: also allow grouping of options that take arguments. Now -Ilib and -pes/// should work
19:02 dalek nqp: review: https://github.com/perl6/nqp/commit/d49821658c
19:03 mdupont joined #parrot
19:04 dukeleto mdupont: welcome
19:24 dalek winxed: 765b6bb | NotFound++ | winxedst2.winxed:
19:24 dalek winxed: tiny refactor of modifier lost cloning
19:24 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/765b6bbf34
19:30 alester joined #parrot
19:50 Coke there #ps today?
19:51 dukeleto Coke: i think so
19:51 dukeleto nine: ping
19:57 whiteknight oh crap, I completely forgot about #ps
19:57 NotFound Uh....
19:58 whiteknight I've got the long-term memory of a fruit fly
20:02 dalek winxed: 3fd0e6b | NotFound++ | winxedst2.winxed:
20:02 dalek winxed: do not ignore var modifiers in inline
20:02 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/3fd0e6b6ac
20:02 brrt what is basically the cross-platform way to include parrot api files?\
20:03 brrt also, apxs is pretty nice
20:04 whiteknight brrt: What do you mean, parrot api files?
20:04 NotFound brrt: tricky question: the C standard says that #include <> looks for files in a platform dependant way, and #include "" in other platform dependant way.
20:05 brrt header files, i mean
20:06 brrt i know there was a 'trick' for it, just can't recall it
20:07 whiteknight -Iparrot/include
20:07 whiteknight I think that's what you're talking about
20:07 whiteknight Also, there's a parrot_config program which contains all the configure-time key/value pairs
20:08 dalek nqp/cstr: abef7b9 | (Arne Skjærholt)++ | src/6model/reprs/CStr.c:
20:08 dalek nqp/cstr: Handle encoding parameter for CStr representation.
20:08 dalek nqp/cstr: review: https://github.com/perl6/nqp/commit/abef7b968b
20:08 whiteknight so something like "parrot_config include_dir" will return what I think you are asking for
20:08 brrt ok, tn
20:08 brrt x
20:13 brrt parrot_config includedir actually
20:13 brrt but.... the header files are installed in a versioned directory
20:14 brrt also, is there a way to make gmake run... slower?
20:15 whiteknight ....slower?
20:15 brrt yes, otherwise my laptop overheats\
20:15 brrt used to do so only on flash, now also on compiles
20:15 whiteknight wow, that's not a problem I've had before
20:16 whiteknight You try opening that hog up and cleaning out the dust?
20:16 benabik De-dusting and a cooling tray would be my recommendations.
20:16 whiteknight I think emacs has a key combination to do that
20:18 brrt1 joined #parrot
20:21 brrt1 so, back
20:21 lucian joined #parrot
20:25 brrt my current solution is to hit ^Z once in a while
20:26 whiteknight brrt: We might be able to get you set up with an account on feather or something else like that
20:26 benabik You could replace gcc with a script that does (sleep 1; /usr/bin/gcc)
20:26 whiteknight oh yes, that's a good idea
20:26 whiteknight and definitely use ccache. Not compiling a file is much less intensive than compiling it
20:28 whiteknight Anyway, I've got to run catch a train. Talk to you cats later
20:28 brrt bye!
20:28 * brrt likes ssh, also; nice idea for the script
20:30 dukeleto brrt: hola
20:30 dukeleto brrt: you need an account somewhere for testing?
20:31 brrt dukeleto: i can get away without, but i'd like one nevertheless :-)
20:31 dukeleto Attention GSoC students: this will help you: https://github.com/leto/Util​/blob/master/bin/new_parrot
20:32 dukeleto brrt: http://gcc.gnu.org/wiki/CompileFarm
20:32 dukeleto brrt: send them your ssh key and tell them your are a GSoC student for Parrot
20:33 brrt i will
20:44 cotto blargh
20:44 cotto long meeting is long
20:52 brrt where can i link to for the parrot license?
20:52 brrt github of course
20:52 cotto https://github.com/parrot/​parrot/blob/master/LICENSE
20:55 brrt so, mail was send
20:55 brrt sent
20:58 brrt see you all tomorrow
20:58 brrt left #parrot
21:23 contingencyplan joined #parrot
21:42 alvis joined #parrot
22:30 dukeleto ~~
22:33 cotto hi dukeleto
22:33 cotto how goes the crazy?
22:42 dukeleto cotto: exceedingly crazy
23:06 kid51 joined #parrot
23:17 benabik joined #parrot
23:55 whiteknight joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced