Parrot 4.3.0 "In Which..." | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 25 April 2012.
cotto ~~ 00:03
00:13 whiteknight joined 00:17 nbrown joined 00:18 schmooster joined, GodFather joined
nbrown cotto: good evening 00:24
i see you were working on m0 args stuff today 00:25
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.
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.
cotto no need to msg me 00:32
I use an irc proxy, so I don't miss anything unless it mysteriously goes offline 00:33
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
as for the noisy build, I don't know how to make a certain class of them go away
how can you make the int to pointer of a different size (and the reverse) not cause a warning? 00:35
benabik ~~
cotto that's a problem we'll need to figure out
'evening, benabik
whiteknight blah, the worst part about a new OS is having to reinstall all the old libraries and parrot build dependencies
cotto x86 cm0 also skips every other arg because of the pointers size difference 00:36
wheee
whiteknight I may never submit another smoke report, if I have to go through cpan hell again to get all the prereqs
nbrown ok, we'll need to do a better job of knowing the size of ints, pointers, etc of the current system
cotto clearly 00:37
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?
cotto so many holes to plug 00:39
nbrown yeah, but that's fun
cotto there's a lot of overlap. The spec is largely concerned with the serialized m0b data. 00:40
nbrown true 00:42
did you have any thoughts on how to fix the 64 bit math issue?
cotto nothing comes immediately to mind 00:43
nbrown ok, me neither
cotto well, nothing elegant
nbrown everything I can think of is very messy
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:44
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
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.
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
cotto and thanks again for jumping in!
nbrown I'm trying to as well, but I'll admit I'm a little muddled right now 00:49
02:00 JimmyZ joined 02:24 jashwanth joined
nbrown cotto: checkout my last two commits to github.com/nbrown/parrot/tree/m0-c-args-fix 02:25
cotto: it fixes the every other arg problem 02:26
cotto don't mind if I do
nbrown the issue was the test was expecting the elements of the argv array to be 64 bits each 02:27
cotto nbrown++
yeah
nbrown we probably should free the memory in interp_free, but at least it accesses the args correctly 02:28
cotto that patch leaves a couple spots for uninitialized memory to creep it 02:29
(the earlier one) 02:30
nm
nbrown really?
ok
dalek rrot/m0-c-args-fix: 6811dd3 | nbrown++ | src/m0/c/m0_interp.c:
Use 32 bit integers for the string length and encoding
02:32
rrot/m0-c-args-fix: c571a65 | nbrown++ | src/m0/c/m0_interp.c:
Make interp_argv be uint64_t* instead of char**

make m0_args_basic access the correct argument.
nbrown awesome 02:33
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:36
nbrown I agree 02:37
I'll be honest, I'm not sure how to do that
cotto it probably means something like a runtime data segment that M0 programs can treat like main memory 02:38
s/segment/area/ 02:39
no pointers to anything outside that from within m0 code 02:40
nbrown ok
cotto (apart from ffi, etc)
nbrown that make sense
cotto the perl code's about to get meaningfully weirder
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
nbrown yeah, I find some of the perl to be head scratchingly interesting
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
cotto perl5 m0 is still much easier to work with than the C implementation 02:43
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
nbrown me neither
cotto if the data segment becomes part of m0b, we're getting dangerously close to smalltalkland 02:45
except for all the other smalltalkey things
nbrown I keep being tempted to write some macros to abstract it out, but I'm not that great at C macros
I don't really know smalltalk
cotto If you can write a macro that results in cleaner and/or more understandable code, go for it! 02:46
nbrown random question, is m0 supposed to be C89 or C99? 02:48
cotto as much of c99 as msvc supports 02:50
it seems to be the limiting factor
nbrown ok
benabik I have a lot of issues apparently. 02:51
dalek nxed: 2c37d51 | NotFound++ | winxedst2.winxed:
use some more binders and algorithms
benabik Hey, that syntax works better when I actually write it properly. 02:56
NotFound++
winxed++
The inline syntax in winxed is pretty smart.
*inline PIR 02:57
cotto benabik, what issues?
As your mentor, I feel obligated to be at least as confused as you.
NotFound benabik: what syntax?
benabik cotto: I've been generating work for NotFound. Thought I had found something new, but it worked once I got the syntax right.
Oh, wait, no... I misread the result. 02:58
NotFound: I'm trying to use defined_i_p_k
NotFound: I thought ${ defined ret, obj[key] }; had done it, but I mis-read the output. 02:59
NotFound benabik: no, the operands of pirops are parsed and handled as expresions. 03:02
So that is the same as: { var temp = obj[key]; ${ defined ret, temp }; }
benabik So I realized. The $P2[$S1] perfectly lined up with the defined $I1, $P3 underneath. 03:04
Uhm. If that made any sense.
NotFound: Is there a good way to use keyed opcodes? 03:05
NotFound benabik: yes: using the appropiate winxed syntax for each use ;) 03:06
In that case: ret = defined obj[key];
benabik Huh. Didn't see that browsing through the code... 03:08
dalek nxed: 007e6a8 | NotFound++ | winxedst (2 files):
rename getlexnum to generatelexnum for clarity
benabik Yeah. That doesn't seem to parse. 03:09
NotFound Uh, sorry.... 03:10
benabik exists is there, but not defined.
NotFound Yes, I was planning to add it at the same time, but delayed don't remember why. 03:11
03:17 JimmyZ joined
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 :-(
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:39
JimmyZ nbrown++ 03:42
nbrown thanks JimmyZ
JimmyZ :P
nbrown JimmyZ: how's your branch coming along? 03:43
JimmyZ nbrown: stopped, I don't like forks. there are too many forks in the linux community :P 03:44
benabik JimmyZ: Branches != forks
JimmyZ benabik: my branch are different goal 03:45
*is
nbrown awww, I was curious where it would go next. It seemed interesting
JimmyZ divergence 03:46
nbrown: parrot already use type register :)
uses
cotto nbrown++ 03:47
nbrown, how much longer are you online tonight?
nbrown I know, but m0 wasn't laid out that way originally and I was curious how it would work that way
cotto: not much, I'm EST based and starting to get sleepy
cotto ok 03:48
nbrown why?
got anything else you want me to think about? 03:49
cotto I'm thinking about m0's memory layout
nbrown yeah, that might be a conversation for another time 03:50
cotto there are three ways that constants data can go
do you have more or less than 15 minutes?
nbrown probably 20ish 03:51
cotto I'll type fast then
nbrown nice :)
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
nbrown right
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
cotto the third is that all values are inline and that constants aren't always fixed-width
nbrown so in the third case, how would you know where the 3rd constant is? walk the constant table? 03:53
cotto the second is the least magical and surprising 03:54
yes. it'd require some smarts on the part of the interp
which is why I don't like it
nbrown and probably a dedicated load_const op
I'd tend to lean toward the second. It would also work with the memory model you were talking about before 03:55
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
anything that doesn't fit into a register goes there and the VM would be largely self-contained
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?
cotto it'd start with a fixed size area and would have to manually request more.
nbrown why would the physical memory ops need to be special? 03:59
ok, that makes sense
cotto different word size, potentially
nbrown ok, but it would only have to be deref, right? 04:01
cotto I think so. not 100% sure 04:02
nbrown yeah, me neither. I'm trying to think it through
I see the potential need for a different sized deref, but I'm not sure about the others 04:03
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.
nbrown It's so much better than late
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
I feel like the second has the fewest special cases 04:09
cotto M0 should have as few of those as possible. 04:10
nbrown I think we should sketch it out and then try it out in a branch 04:11
I agree 100%
cotto that's my plan for the next few days
sketch it out a bit, sleep on it and go from there
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
cotto definitely
nbrown yeah, that's why I don't stress about how easy/hard it is to write
but I worry about special cases because those are hard to generate
cotto exactly 04:13
nbrown Ok, I'm beat. It's bedtime for me. Talk to you later 04:16
cotto 'night
04:41 dukeleto joined 05:44 particle joined
dalek rrot/m0-c-args-fix: 6618c48 | cotto++ | t/m0/integration/m0_args_basic.m0:
remove bogus test. m0_args tests this more effectively
07:24
07:31 fperrad joined 07:53 JimmyZ joined 08:04 brrt joined 08:12 lucian joined
dalek rrot/coke/rm_pasm: 187f2a3 | jimmy++ | t/pmc/orderedhash.t:
change t/pmc/orderedhash.t to pir
08:54
moritz JimmyZ++
dalek rrot/coke/rm_pasm: 6c659be | jimmy++ | t/pmc/ (2 files):
change t/pmc/coroutine.t to pir
09:05
rrot/coke/rm_pasm: 2d16eaa | jimmy++ | t/pmc/sub.t:
attempted to change t/pmc/sub.t to pir, test failed
09:23
rrot/coke/rm_pasm: d0a06e6 | jimmy++ | t/pmc/sub.t:
change invokecc $P0 to $P0() in t/pmc/sub.t to pir
09:27
09:31 PacoAir joined
dalek rrot/coke/rm_pasm: b39ed59 | jimmy++ | t/op/jit (2 files):
removed t/op/jitn.t and t/op/jit.t
09:33
rrot/coke/rm_pasm: 4274277 | jimmy++ | MANIFEST (3 files):
removed jit from MANIFEST.*
09:40
09:47 prologic left
dalek rrot/coke/rm_pasm: 8302da7 | jimmy++ | t/pmc/iterator.t:
attempt changed t/pmc/iterator.t to pir
09:51
p: 480d22d | (Arne SkjƦrholt)++ | src/6model/reprs/CArray.c:
[CArray] Refactor bind_pos_boxed/at_pos_boxed.

Since we've added child_objs, we can cache the generated String objects as well, and eliminate the need for at/bind_pos_complex.
10:00
p: 3776cef | (Arne SkjƦrholt)++ | src/ (2 files):
Check argument objects for changes after a C language call.

Some refactoring of CArray to fit in with the write barriering.
p: e99865a | (Arne SkjƦrholt)++ | src/ops/nqp_dyncall.ops:
No need to write barrier non-concrete objects.
p: 2fb45b9 | (Arne SkjƦrholt)++ | src/ops/nqp_dyncall.ops:
Handle non-concrete objects properly in write barriers.
p: bcf4b25 | (Arne SkjƦrholt)++ | src/6model/reprs/CArray.c:
[CArray] Handle non-concrete objects correctly in bond_pos_boxed.
p: ab59c7d | moritz++ | src/ (2 files):
Merge remote branch 'origin/dyncall-wb'
p: b5fe71a | moritz++ | tools/lib/NQP/Configure.pm:
[configure] automatically configure push urls

when cloning NQP or Parrot, automatically add an ssh-based pushurl, to make contributions easier for those with commit bits
p: 0dde8f3 | moritz++ | tools/lib/NQP/Configure.pm:
[configure] automatically configure push urls

when cloning NQP or Parrot, automatically add an ssh-based pushurl, to make contributions easier for those with commit bits
10:04
rrot/coke/rm_pasm: f71f8b1 | jimmy++ | t/op/spawnw.t:
attempt changed t/pmc/spawnw.t to pir
10:15
rrot/coke/rm_pasm: 0b9731d | jimmy++ | t/op/spawnw.t:
fix t/pmc/spawnw.t, test passed
10:19
kudo/nom: 5552804 | moritz++ | docs/ChangeLog:
fill in some ChangeLog entries
10:27
rrot/coke/rm_pasm: ba2d72a | jimmy++ | t/pmc/ (3 files):
fixed some test in t/pmc/*.t
rrot/coke/rm_pasm: 38a473b | jimmy++ | t/op/string_cs.t:
convert t/op/string_cs.t to pir
10:35
JimmyZ removing pasm is a big project! 10:39
moritz aye 10:41
which is why it's good to have helpers
JimmyZ++
JimmyZ yep, it's a manual labor 10:42
:P
Coke++ 10:43
10:49 jashwanth joined
dalek rrot/coke/rm_pasm: 4af6103 | jimmy++ | t/pmc/freeze.t:
convert t/pmc/freeze.t to pir
10:59
11:05 brrt left
dalek p: 480d22d | (Arne SkjƦrholt)++ | src/6model/reprs/CArray.c:
[CArray] Refactor bind_pos_boxed/at_pos_boxed.

Since we've added child_objs, we can cache the generated String objects as well, and eliminate the need for at/bind_pos_complex.
11:16
p: 3776cef | (Arne SkjƦrholt)++ | src/ (2 files):
Check argument objects for changes after a C language call.

Some refactoring of CArray to fit in with the write barriering.
p: e99865a | (Arne SkjƦrholt)++ | src/ops/nqp_dyncall.ops:
No need to write barrier non-concrete objects.
p: 2fb45b9 | (Arne SkjƦrholt)++ | src/ops/nqp_dyncall.ops:
Handle non-concrete objects properly in write barriers.
p: bcf4b25 | (Arne SkjƦrholt)++ | src/6model/reprs/CArray.c:
[CArray] Handle non-concrete objects correctly in bond_pos_boxed.
p: 2bfa3a5 | (Arne SkjƦrholt)++ | / (3 files):
Merge branch 'master' of github.com:perl6/nqp
p: 4db3ed0 | (Arne SkjƦrholt)++ | / (3 files):
Merge branch 'master' into dyncall-wb
11:50 benabik joined 11:54 jashwanth joined
dalek p/toqast: 07ab3c7 | jnthn++ | src/QAST/ (2 files):
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
p/toqast: d8fd160 | jnthn++ | src/QAST/Compiler.nqp:
Implement lookup of and binding to locals; handles natively typed ones right off (which PAST never did).
p/toqast: b67c3b8 | jnthn++ | t/qast/qast.t:
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).
kudo/nom: e9d0bbb | tadzik++ | src/core/terms.pm:
Fix %*ENV regressions
12:15
12:20 jwilliams joined
dalek kudo/nom: 4c241c8 | moritz++ | / (3 files):
implement -I command line option
12:21
12:22 brrt joined
Coke JimmyZ++ # ooh, thanks for the pasm help! 12:22
brrt i just realised something
winxed is the java of parrot
low level, object oriented, matched to the underlying vm
benabik I tend to think of it as the C to PIR's assembly 12:23
12:23 whiteknight joined
whiteknight good morning, #parrot 12:23
benabik o/ whiteknight
jwilliams is parrot vm based on csp model? 12:25
brrt morning 12:27
benabik jwilliams: What is this csp model? It uses CPS (Continuation Passing Style)
whiteknight good morning benabik
jwilliams benabik: Sorry. My fault. It should be CPS model, not csp. 12:36
I came across to read that parrot is based on CPS model, but I can't find that article right now.
So just want to make sure.
moritz yes, it is.
benabik jwilliams: 'salright. There are so many acronyms that I can't assume typos. :-)
JimmyZ jwilliams: www.linux-mag.com/id/4197/ 12:37
jwilliams Thanks for the article. That's useful. : ) 12:41
12:46 JimmyZ_ joined
dalek p/toqast: 28c8f73 | jnthn++ | t/qast/qast.t:
Make sure simple lookups of locals work too.
12:54
rrot/coke/rm_pasm: cb3a7ed | jimmy++ | t/compilers/imcc/reg/alloc.t:
removed some pir/pasm test which is not really useful
13:00
rrot/coke/rm_pasm: dea6133 | jimmy++ | t/op/interp.t:
convert t/op/interp.t to pir
13:08
Coke JimmyZ++ # woot! 13:15
dalek rrot/coke/rm_pasm: b773a23 | jimmy++ | t/op/basic.t:
convert t/op/basic.t to pir
13:16
rrot/coke/rm_pasm: 16f74a2 | jimmy++ | t/op/exit.t:
removed some pir/pasm test from t/op/exit which is not really useful
13:19
lucian int3.github.com/doppio/about.html 13:20
13:22 alvis` joined
dalek rrot/coke/rm_pasm: 89f681f | jimmy++ | t/pmc/signal.t:
convert t/op/signal.t to pir
13:22
Coke lucian: heh. neat. 13:23
dalek rrot/coke/rm_pasm: 07912e1 | jimmy++ | t/op/exceptions.t:
convert t/op/esceptions.t to pir
13:26
lucian Coke: indeed 13:27
Coke down to 17 failing test files in branch. JimmyZ++ moritz++ 13:30
moritz, JimmyZ: gist.github.com/2567909
dalek rrot/coke/rm_pasm: 78d07b5 | jimmy++ | t/pmc/bignum.t:
convert t/op/bignum.t to pir
13:32
13:34 whiteknight joined
dalek rrot/coke/rm_pasm: a4d7c4e | jimmy++ | t/ (2 files):
fixed plan and s/pasm/pir/g
13:36
JimmyZ :)
13:37 nbezzala joined
Coke 16... 13:40
121 instances of "pasm" in t/ left. 13:42
whiteknight you guys are kicking butt 13:43
dalek rrot/coke/rm_pasm: f81f7b4 | jimmy++ | t/pmc/nci.t:
convert t/pmc/nci.t to pir
rrot/coke/rm_pasm: 5a31b97 | jimmy++ | t/pmc/nci.t:
s/pasm/pir/g in t/pmc/nci.t
13:44
rrot/coke/rm_pasm: 2d8802a | jimmy++ | t/pmc/exception-old.t:
convert t/pmc/exception-old.t to pir
13:52
JimmyZ stopped converting 13:53
13:55 alvis` left 13:56 jwilliams left 13:57 lateau joined
JimmyZ Coke: there are some test I don't know how to fix, most about .include 14:02
Coke: fixing it means more tests passing 14:03
Coke JimmyZ: example? 14:04
looks like "t/compilers/imcc/syn/file.t 14:06
JimmyZ Coke: .include "interpinfo.pir" in t/pmc/sub.t
Coke notes that the include.*pasm tests in imcc/syn/file.t can just be deleted, since we already test including pir. 14:07
JimmyZ: I think those just need to be moved outside of a .sub
dalek rrot/coke/rm_pasm: f5a6c21 | jimmy++ | t/pmc/bignum.t:
removed a test which is not really useful
14:09
rrot/coke/rm_pasm: ba010c6 | jimmy++ | t/pmc/signal.t:
s/pasm/pir/g in t/pmc/signal.t
14:11
rrot/coke/rm_pasm: 02c6281 | jimmy++ | t/pmc/io.t:
convert t/pmc/io.t to pir
14:13
Coke hurm. actually, that doesn't seem to matter. include from inside a sub is fine.
JimmyZ: do the initial conversion, show me the code, and how it fails.
benabik JimmyZ: Have you rebuilt on the branch? It should generated the appropriate .pir files during build. 14:14
JimmyZ benabik: nope ..
benabik Nope you didn't rebuild, or no it didn't generate the files?
JimmyZ benabik: I didn't rebuild, I just build a master 14:15
benabik: and installed
Coke JimmyZ: ah!
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.
Coke benabik++ - you need to run the tests against a parrot build on the branch. 14:16
also, shouldn't need to install to run the tests. 14:22
dalek rrot: 2af81f0 | petdance++ | tools/dev/pbc_to_exe.pir:
consted a local var
14:30
JimmyZ sleeps 14:35
benabik Hm. Winxed internals are... somewhat opaque. 14:43
Pretty organized, but it takes some figuring to determine what's what.
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.
NotFound: Also, do you ever sleep or work? It seems like any time I discuss Winxed you're here. ;-D 14:46
NotFound benabik: these last days I've been doing bizarre sleep times. 14:47
benabik: I'm going to add it 14:50
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
NotFound: But if you beat me to it, yay.
14:53 lateau joined, fperrad joined 14:55 fperrad joined
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:56
14:57 dmalcolm joined
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:10
dalek nxed: c8cabac | NotFound++ | winxedst2.winxed:
operator defined - experimental
15:25
benabik woo, I was writing something similar. 15:26
Which I guess means I was doing something right. 15:27
dalek kudo/named_pod_vars: a2db837 | tadzik++ | src/Perl6/ (2 files):
First attempt at implementing Pod variables like $=data, $=SYNOPSIS etc
15:33
16:21 whiteknight joined
dalek p/cstr: eee0fa5 | (Arne SkjƦrholt)++ | / (4 files):
First cut of handling explicitly managed strings.
16:24
whiteknight hmmm... that reminds me, I really wish our own handling of C strings was improved 16:27
dalek nxed: 55d24bc | NotFound++ | winxedst2.winxed:
fix inline of var declarations and subblocks
16:27 brambles joined
whiteknight of course, I'm not prepared to fix it myself yet 16:29
NotFound whiteknight: fix what? 16:31
whiteknight I wish that we cached generated C strings, I wish that we could work with them more cleanly through NCI 16:32
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
benabik It shouldn't be too error prone with immutable strings. 16:36
Although I suppose they can be altered when we hand them off. :-/
NotFound Caching them may lead to always copying it just in case it gets unexpectedly freed. 16:37
Anyway, I like better using a ByteBuffer than str_to_cstring 16:40
The ByteBuffer is garbage collected.
whiteknight if ByteBuffer had a way to extract a C-string from a STRING and cache that, that would be good
NotFound Cache where? In the STRING? 16:41
whiteknight in the ByteBuffer 16:44
NotFound ByteBuffer already does it, but you may need to reencode before. 16:46
And adding the NUL terminator 16:47
whiteknight right, we need something that does those things automatically, because C strings are so common to use in NCI and other places 16:48
We need it to be much easier to work with C strings at the user-level 16:49
NotFound whiteknight: you can't automatically know what each use needs. 16:51
whiteknight NotFound: Maybe not, but we can provide much easier tools for various cases 16:52
NotFound Yeah, that's doable.
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
Coke interesting. "t/steps/auto/icu-01.t" fails in coke/pasm when running "perl Configure.pl --test" 17:08
er, coke/rm_pasm 17:18
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.
dalek rrot/m0-c-args-fix: 5140899 | cotto++ | src/m0/c/m0_ops.c:
macroize op invocations to make debugging a bit less painful
17:30 jashwanth joined
cotto ~~ 17:51
17:56 jashwanth joined
benabik Heh. Apparently Facebook has bots on an internal IRC channel to monitor code and releases and they maintain karma for their developers. 18:00
arstechnica.com/business/news/2012/...mpaign=rss 18:01
18:20 brrt joined
dukeleto ~~ 18:29
dalek kudo/named_pod_vars: eee338b | tadzik++ | src/Perl6/Actions.pm:
Remove some leftover debugging output
18:34
kudo/named_pod_vars: 641e6b7 | tadzik++ | src/Perl6/Actions.pm:
Make the compiler not whine about undeclared $= variables, and vivify them to Any
nxed: f6c2c61 | NotFound++ | winxedst2.winxed:
allow try modifiers in inline
18:35
nxed: 30b6a24 | NotFound++ | winxedst2.winxed:
some fixes in argument modifiers and don not ignore them when inlined
18:56
19:01 alvis joined
dalek p: 446badf | moritz++ | src/PAST/NQP.pir:
nqp::die as alias for pir::die
19:02
p: d498216 | moritz++ | / (2 files):
allow single-letter command line options without spaces between option and value

also allow grouping of options that take arguments. Now -Ilib and -pes/// should work
19:03 mdupont joined
dukeleto mdupont: welcome 19:04
dalek nxed: 765b6bb | NotFound++ | winxedst2.winxed:
tiny refactor of modifier lost cloning
19:24
19:30 alester joined
Coke there #ps today? 19:50
dukeleto Coke: i think so 19:51
nine: ping
whiteknight oh crap, I completely forgot about #ps 19:57
NotFound Uh....
whiteknight I've got the long-term memory of a fruit fly 19:58
dalek nxed: 3fd0e6b | NotFound++ | winxedst2.winxed:
do not ignore var modifiers in inline
20:02
brrt what is basically the cross-platform way to include parrot api files?\\
also, apxs is pretty nice 20:03
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.
brrt header files, i mean 20:05
i know there was a 'trick' for it, just can't recall it 20:06
whiteknight -Iparrot/include 20:07
I think that's what you're talking about
Also, there's a parrot_config program which contains all the configure-time key/value pairs
dalek p/cstr: abef7b9 | (Arne SkjƦrholt)++ | src/6model/reprs/CStr.c:
Handle encoding parameter for CStr representation.
20:08
whiteknight so something like "parrot_config include_dir" will return what I think you are asking for
brrt ok, tn
x
parrot_config includedir actually 20:13
but.... the header files are installed in a versioned directory
also, is there a way to make gmake run... slower? 20:14
whiteknight ....slower? 20:15
brrt yes, otherwise my laptop overheats\\
used to do so only on flash, now also on compiles
whiteknight wow, that's not a problem I've had before
You try opening that hog up and cleaning out the dust? 20:16
benabik De-dusting and a cooling tray would be my recommendations.
whiteknight I think emacs has a key combination to do that
20:18 brrt1 joined
brrt1 so, back 20:21
20:21 lucian joined
brrt my current solution is to hit ^Z once in a while 20:25
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)
whiteknight oh yes, that's a good idea
and definitely use ccache. Not compiling a file is much less intensive than compiling it
Anyway, I've got to run catch a train. Talk to you cats later 20:28
brrt bye!
brrt likes ssh, also; nice idea for the script
dukeleto brrt: hola 20:30
brrt: you need an account somewhere for testing?
brrt dukeleto: i can get away without, but i'd like one nevertheless :-) 20:31
dukeleto Attention GSoC students: this will help you: github.com/leto/Util/blob/master/bin/new_parrot
brrt: gcc.gnu.org/wiki/CompileFarm 20:32
brrt: send them your ssh key and tell them your are a GSoC student for Parrot
brrt i will 20:33
cotto blargh 20:44
long meeting is long
brrt where can i link to for the parrot license? 20:52
github of course
cotto github.com/parrot/parrot/blob/master/LICENSE
brrt so, mail was send 20:55
sent
see you all tomorrow 20:58
20:58 brrt left 21:23 contingencyplan joined 21:42 alvis joined
dukeleto ~~ 22:30
cotto hi dukeleto 22:33
how goes the crazy?
dukeleto cotto: exceedingly crazy 22:42
23:06 kid51 joined 23:17 benabik joined 23:55 whiteknight joined