half-pie" released! | Test CallSignature PMC | pcc_reapply branch still needs your love! trac.parrot.org/parrot/wiki/Callin...nsOverview
Set by moderator on 6 October 2009.
GeJ dukeleto: thank you. 00:13
TiMBuS wasnt there a parrot function to turn a STRING back into a c string? or am i imagining things 00:14
cotto_work TiMBuS, Parrot_str_to_cstring iirc 00:15
TiMBuS that looks about right
thanks cotto
darbelo TiMBuS: Just don't forget to free it.
cotto_work it's not a very smart function, but cstrings aren't that smart in the first place
np 00:16
darbelo Don't forget to Parrot_str_free_cstring() it, actually. 00:17
TiMBuS ah. yeah i was just grepping for that 00:18
00:19 payload joined
darbelo The thing is: mem_sys_free() works too, but it's better to use Parrot_str_free_cstring() 00:20
TiMBuS does parrot have a way to allocate automatically collected memory? 00:21
cotto_work TiMBuS, if it did, we'd be using it by now. The closest we have is a ManagedStruct.
darbelo PMCs and STRINGS are both garbage collected, it dependnds on what you want to do with them. 00:22
TiMBuS: What are you trying to do? 00:23
TiMBuS oh, i'm just calling some c functions 00:24
darbelo And they want you to allocate a char * for them? 00:25
TiMBuS no they just need a string argument, im assuming STRINGs arent null terminated
coke STRINGS ain't chars.
don't look under the hood. 00:26
-> zz
darbelo TiMBuS: You're stuck with Parrot_str_to_cstring() 00:28
00:29 payload joined
TiMBuS that's fine 00:29
darbelo NotFound++ had a trick for making cstrings 'managed' let me look for it.
It might help you.
cotto_work Didn't allison say "Don't do that."? 00:30
darbelo Se said "Don't do that in the parrot core." 00:31
cotto_work important distinction there
darbelo She also said we should "stop using cstrings". 00:32
TiMBuS wellll im writing a NCI
darbelo TT#1083 If you want inspiration :)
trac.parrot.org/parrot/ticket/1083
The basic idea is to grab an allocated cstring and stick it into a ManagedStruct PMC so that the garbage collector will track it for you. 00:35
TiMBuS that makes sense
i might use it in my next language for when i just pass off certain ops to the stdc lib
00:41 pyrimidine joined 00:44 msmatsko joined 00:45 Zak joined
dalek rrot: r41744 | darbelo++ | trunk/src/io/api.c:
Replace anther 'fake' STRING with a real one.
00:47
darbelo Ok, ttbot didn't complain. I'm heading out. 00:55
cotto_work w00t
00:55 darbelo left 01:02 rhr joined 01:20 Patterner joined
dalek rrot: r41745 | jkeenan++ | branches/detect_llvm:
Create branch to work on detection of LLVM.
01:38
rrot: r41746 | jkeenan++ | branches/detect_llvm (4 files):
Rough first draft of code to detect LLVM.
01:45
01:55 Ruilov joined, rhr joined
dalek rrot: r41747 | jkeenan++ | branches/detect_llvm/config/auto/llvm.pm:
Add inline comments on module design; remove commented-out code.
01:58
02:10 Andy joined 02:35 janus joined
jrtayloriv moritz, ping 03:13
dalek rrot: r41748 | pmichaud++ | trunk/compilers/pct/src/POST/Compiler.pir:
[pct]: Add a 'yield' type to POST::Op.
03:15
03:16 rhr joined
dalek rrot: r41749 | pmichaud++ | trunk/compilers/nqp/src (2 files):
[nqp]: Allow methods to be named "category:sym<...>".
03:18
03:45 jrtayloriv joined
jrtayloriv Sorry if this already came through -- I got cut off (I've got an unbelievably annoying problem with an ethernet jack that doesn't allow the cable to "clip" into it, so I have to tape it into my laptop, and every now and then the tape comes out ... GRRAAARGH!) 03:47
If I created a closure like: 12my $closure := PAST::Op.new(:inline('%r = newclosure %0'),$past); ... how would I then go about calling it later from a PAST::Op?
(where $past is a PAST::Block representing the body of the sub) 03:48
Tene jrtayloriv: just put the result in a PAST::Op 03:49
jrtayloriv Tene, So just do a PAST::Op 'call' with $closure as the Op's first child? 03:50
Tene Yes. 03:51
jrtayloriv Tene, And I can save $closure into a PAST::Var too right?
Tene Yes.
jrtayloriv excellent, thanks
04:14 Zak joined
dukeleto 'ello 04:52
GeJ H' 05:01
dukeleto GeJ: are you working on pcc_reapply? 05:14
GeJ I'm C illiterate. The best I can do (unless I missed an obvious task I could accomplish, if so please enlighten me) is run tests from time to time and report failures. 05:28
Or for this branch in particular report an important increase of failures.
dukeleto GeJ: yeah, it is kind of rough right now. pcc_reapply does not compile on all platforms, causes infinite loops during the test suite on others, and it only makes sense to do "make corevm" and "make coretest" in pcc_reapply now 05:30
last time I checked, test_more.pir wasn't working, which is blocking me from adding tests 05:31
GeJ: one thing you can do: some error messages relating to function calls changed slightly, which has caused some tests to start failing. if you find those you can fix 'em 05:33
msg japhb looks like plumage expects an installed parrot in a particular hard-coded place 05:34
purl Message for japhb stored.
dalek TT #1096 created by dukeleto++: Plumage requires an installed parrot in a hard-coded place 05:41
rrot: r41750 | dukeleto++ | trunk (2 files):
[TT #1089][t] Convert t/pmc/resizableintegerarray.t to PIR and fix a typo in the implementation, kurahaupo++
05:48
06:01 chromatic joined 06:02 uniejo joined
japhb dukeleto, huh? Earlier this morning I just tried installing parrot in a different place (from a different build location too, no less) and it worked like a charm 06:19
dukeleto, as long as you run `parrot_nqp Configure.nqp` using the parrot_nqp from the correct parrot, all should be good. 06:20
Man, I hate having to choose between hacking and being even remotely caught up with email ... 06:21
06:22 jrtayloriv joined
moritz jrtayloriv: pong 06:28
06:28 szabgab joined
jrtayloriv moritz, Hey -- for some reason the query -- nqp && closure -- breaks irclog. The first page displays and then the second page, it removes closure from the query (try it) ... and is there any way for me to do boolean search where it will only give results where BOTH words were used in same sentence/line? 06:30
Sorry, first part wasn't clear (2:30am here, and my brain is mush) -- The first results page displays fine, but then when I click '2' to go to second page, it removes "closure" from the query. 06:31
06:32 fperrad joined
moritz jrtayloriv: the search is mostly broken, and I wanted to re-do it properly for some time now, with KinoSearch or another indexing module - so far I haven't got around to it :( 06:32
jrtayloriv No big deal -- just wanted to point it out. (I was just randomly trying things to see if I could get boolean search to work) 06:33
But a beefed up search would rock -- I've found that the irc logs are the best docs, but the search is definitely limiting. 06:34
moritz basically I wanted to wait for the 2.0 version of KinoSearch, but I guess I'll just try out the developer releases instead 06:37
06:37 viklund joined
moritz oooh, there was a dev release on Aug 31 06:37
jrtayloriv looking at their site now ... I'd never heard of it until you mentioned it. 06:38
moritz it's a port of Lucene to perl 06:39
06:40 viklund joined
jrtayloriv cool -- it's got the two things I wanted most: booleans and quoting 06:40
06:41 viklund joined
moritz aye 06:42
and stemming, and other stuff
06:42 viklund joined
dukeleto japhb: i will try again 06:42
moritz japhb: I saw on the parrotsketch logs that you need some hosting... I could offer some if you still need it 06:49
japhb: basically I have access to a server where I can hand out root access; it's a Debian Lenny box 06:50
dukeleto japhb: i see what is going on. if you run it from a parrot that was never meant to be installed (and hence was given no install prefix), it barfs
japhb: but that is mostly my fault
japhb heh 06:51
Yeah, you need to have installed your parrot with `make install-dev`. Same requirement Rakudo has, FWIW.
jrtayloriv I don't really know how to ask this question -- still trying to hash out what I'm trying to do. But basically, I am trying to figure out how to properly expand Scheme macros for my compiler. I was going to add a new stage originally, between parse and past, but I don't know (a) if that's the right way to do it, and (b) how to do it if it is. 06:52
Any recommendations for where to look for examples of such a stage in another HLL compiler? 06:53
dukeleto japhb: yes, you are correct
jrtayloriv I need to expand them before I eval the s-expressions, but I need to have access to lexicals to see if the name of the macro is being shadowed by a more local variable definition. 06:54
japhb As for hosting, moritz, thank you. (I ride Debian testing on my personal machines, so it would at least be familiar territory. :-)
06:54 mberends joined
japhb moritz, but first I want to give Allison a chance to get back to me ... she was going to look into parrot.org hosting ... and asked that I code the metadata server with mod_parrot. :-) 06:56
moritz japhb: sure; feel free to come back to my offer at any time if you need it
you can also use it as a development machine to figure out what modules and other requirements you need on the "real thing" or so 06:57
japhb moritz, that's a good idea 06:58
email or msg me the details, if you like 06:59
07:10 cotto joined
japhb moritz++ # sucker^W victim^W hosting provider 07:10
moritz ;-) 07:12
japhb Oh, which reminds me, moritz, if you've sent in a signed PaFo CLA, send me your Gitorious nick, and I'll add you as a parrot-plumage committer. 07:13
Now, there's something I'm supposed to be doing right now .... Oh right, sleeping. 07:14
g'night, all!
dukeleto japhb: night 07:15
07:40 riffraff joined
dalek TT #1096 closed by dukeleto++: Plumage requires an installed parrot in a hard-coded place 07:40
TT #1097 created by dukeleto++: Plumage fails to compile on case-insensitive file systems 07:47
dukeleto is hacking on plumage. 08:03
dalek rrot: r41751 | mikehh++ | trunk/t/op/cmp-nonbranch.t:
codetest/distro_tests failure - svn properties
08:18 payload joined
dukeleto i am guessing that plumage should have a test suite written in pir and/or nqp 08:25
08:35 allison joined 09:37 Whiteknight joined
Whiteknight good morning #parrot 09:45
mikehh hiya Whiteknight 09:47
Whiteknight hello mikehh
mikehh Test failures with fulltest on testf and testg for t/compilers/imcc/syn/macro.t and t/compilers/imcc/syn/regressions.t 09:55
t/compilers/imcc/syn/macro.t - Failed tests: 2-4 - Non-zero exit status: 3
t/compilers/imcc/syn/regressions.t - Failed test: 7 - Non-zero exit status: 1
All other tests PASS (pre/post-config, smoke (#28657), fulltest) at r41750/1 - Ubuntu 9.04 amd64
in other words the test passes on the other cores just fails -f and -g
with the same failures 09:56
got to go to the store and also fill up the car - bbl and will open a ticket on it 09:58
10:10 jhelwig joined 11:11 allison joined 11:32 mikehh joined
dalek kudo: cf8884d | jonathan++ | src/ (3 files):
Keep the main nominal type and constraint type(s) separated out at parse time. This simplifies signature construction and also avoids creating a bunch of one-elements junctions that we don't really need. Between this and yesterday's refactor, we shave about 10% or so off Rakudo's startup time.
11:43
shorten dalek's url is at xrl.us/bfquhu
12:01 masak joined 12:02 whiteknight joined
whiteknight good morning again! 12:03
coke afternoon.
purl hmmm... afternoon is when we eat my lunch.
whiteknight coke, where are you at? 12:04
coke Leeds, UK
whiteknight didn't you used to be in NY?
Coke it's only for a week.
whiteknight okay.
moritz there are things called planes, and they allow you to move real fast from NY to UK 12:05
:-)
Coke not fast enough. :P|
12:13 whiteknight joined 12:27 fperrad_ joined 12:34 Ron joined 12:36 payload joined 12:46 quek joined 12:48 Ron_ joined 12:50 Ron joined 13:06 PerlJam joined 13:09 Ron_ joined 13:11 ruoso joined 13:14 allison joined 13:16 slavorg joined 13:49 iblechbot joined
dalek kudo: a0d1e55 | moritz++ | docs/release_guide.pod:
[docs/release_guide.pod] suggest Lisbon.pm
13:52
shorten dalek's url is at xrl.us/bfqu2d
14:06 jsut_ joined 14:08 szabgab joined 14:11 Andy joined 14:18 Psyche^ joined 14:26 Ryan52 joined 14:33 theory joined
whiteknight slow day today 14:55
japhb legal detail: I offered a commit bit for Plumage to moritz, who responded thus: "I submitted a signed CLA to TPF before parrot foundation existed - I hope that qualifies (at least it qualified for a parrot commit bit ;-)" Is he correct? Were all the pre-PaFo TPF people grandfathered in? 14:59
NotFound japhb: I hope so. If not, I'm not qualified as commiter. 15:00
PerlJam japhb: I'm pretty sure they were.
moritz since the perl foundation assigned their copyright to the parrot foundation, the CLAs should also be inherited that way (though IANAL) 15:01
if it should prove to be a problem, I could also sign and send in a parrot CLA
15:04 xenoterracide joined
japhb moritz, I think you are correct, I just wanted final confirmation -- because, as NotFound pointed out, it *will* come up again. And I'd really rather not force people to do useless busywork. 15:04
PerlJam Allison is probably the one to ask for a more definitive answer. 15:05
moritz japhb: I think for final confirmation you have to ask allison++ (and for that mail works great)
japhb If it turns out that only core Parrot was grandfathered, then we'll have to do the CLA jig, but better to know that now. :-)
email sent 15:12
moritz japhb++
particle all parrot committers must sign a pafo cla 15:18
you can scan it and email it, so no postage necessary 15:19
japhb particle, are you saying that all your original Parrot committers need to do it even to work on core Parrot? That seems borken. 15:20
particle i want signed cla's from all parrot committers
moritz maybe it would make sense to generate a list of all parrot commiters who haven't yet, and write them an email or so?
japhb ugh, I hate paperwork ... 15:21
sorry for stirring up this can of worms, guys.
moritz you're just the message boy, not the bad news he delivers :-) 15:22
particle is it really that difficult? 15:24
read a document, sign it, and email, fax, or mail it. 15:25
and parrot foundation has better protection of parrot's code.
japhb particle, every little impediment, no matter how small, causes hacking to be delayed -- and if the prospective hacker isn't in the mood, they don't bother to get around to it, and potential code is lost. There's nothing that keeps people from jumping through the hoop, but on the modern Internet are a thousand little hoops to jump through, and people tend to focus energy where there are fewer hoops. If this is a truly necessary hoop, then 15:32
fine, no problem. But having spent too many painful hours looking at signup process drop-off charts on various web sites, it's clear that people are amazingly lazy when it comes to "paperwork", even when they plan to devote a huge amount of personal time to the site in question later.
You'd be amazed how often people refuse to do a 10 second task that gets in the way of a 10 hour pile of fun.
particle oh, brother. 15:33
purl brother is probably home. Gotta go. A+
particle in the time it took you to write that, you could have completed the task.
15:35 nopaste joined
particle feel free to put the task off as long as you want, until someone forces you to do it. 15:37
japhb particle, I've already done it. Long ago.
I'm more than average willing to jump through hoops for this project. :-) 15:38
15:38 Ruilov left
japhb I'm talking about *other* potential committers. 15:38
But in any case as I said: If it's legally necessary, that's that.
particle new committers must sign a cla before being granted a commit bit to parrot. 15:39
*a parrot foundation cla
16:17 iblechbot joined 16:24 darbelo joined
cotto time for w3rk 16:28
(or at least that's what I'm trying to convince myself of) 16:29
16:35 kjeldahl_ joined 16:37 cognominal joined
dukeleto 'ello 16:38
jonathan Anyone familiar with the ops compiler know if there's a way to say that I want to only take a non-constant PMC? 16:45
cotto_work good morning 16:46
jonathan, lemme dig
jonathan is digging too :-) 16:47
16:48 payload joined 16:50 nopaste joined
jonathan Ah 16:50
Marking them "inout" supresses it.
Erm, suppresses the constant variants.
cotto_work do you're happy? 16:54
s/d/s/ 16:55
jonathan erm
not yet ;-)
Is there a maximum number of operands that an op may have?
particle a long time ago it was 8 16:57
jonathan omg yes
It still is.
dukeleto is that documented?
jonathan ;^;
particle wow
jonathan But I want 9!!
dukeleto jonathan: please write a failing test :) 16:58
particle recompile.
an op with 9 operands?
cotto_work What about invar?
particle excuse me, don't you want to pass a higher-level data structure to that op?
jonathan No. 16:59
particle sheesh
jonathan If I wanted to do that, I'd not be wanting to take so many operands. :-P
particle what's the op do?
jonathan particle: Tries to set up a signature element Really Fast.
particle: It's slow today because we mess around building up a high level data structure. 17:00
Amongst other things.
particle ah, well if it's capitalized, i understand.
jonathan OK WILL BE!
;-)
It's OK, I'll cope for now. :-)
particle what consequence does it have for parrot overall to raise that limit?
jonathan Probably a memory hit. 17:01
cotto_work wonders why
purl cotto_work wo-wo-wo-wo-wooonders o/~
particle i wonder how much it slows things down, or more likely, uses memory
moritz the usual answer is "more sanity, less speed"
jonathan I was just a tad surprised to run into a hard limit there. 17:02
Thought we'd allocate by the number of things we need.
Since most ops take, like, 2 or 3 operands.
particle whaddayawant, infinite registers *and* infinite operands?
jonathan 9 isn't infinite. ;-)
particle it's approaching infinity, though :P 17:03
jonathan grins and copes with 8 for now.
cotto_work It practically is. It's almost TWO DIGITS.
jonathan "for some values of infinity" :-)
cotto_work (even more in binary)
particle it's two digits in base 8
17:05 chromatic joined 17:07 kurahaupo joined 17:10 nopaste joined
cotto_work btw, it's PARROT_MAX_ARGS in include/parrot/op.h where the limit lives 17:11
jonathan cotto_work: OK, thanks. That's good to know. 17:17
dalek kudo: 30e2cfd | jonathan++ | (4 files):
Add in ops that allow for fast construction of low level signatures.
17:19
shorten dalek's url is at xrl.us/bfqv9h
dukeleto particle: is/should the default max args to an opcode of 8 be documented somewhere? 17:30
particle yes, it should be. 17:31
heck, it should be configure-time modifiable if you ask me. 17:32
17:35 nopaste joined 17:38 einstein joined
cotto_work btw, changing that value to 16 yields no measurable slowdown in oofib fwiw. 17:40
whiteknight besides in IMCC, I can't really imagine that there would be any effect of having a limit of 16 operands 17:41
that number doesn't come into play during execution at all 17:42
the big question is: how inefficient is IMCC's algorithm for parsing operands. If it's O(N^10) we're not going to want to increase the limit too much
but if it's (more likely) O(n^2) or something, and that's only the worst case in a search for a missing opcode, the performance isn't an issue 17:43
cotto_work Without knowing imcc
's way of doing that, I'd say +1 to setting the limit to 16 to make jonathan happy 17:44
darbelo Well, if it's an IMCC-only thing you can measure it rather easily.
Just a matter of running a PIR file with lots of ops through calgrind before and after. 17:46
cotto_work It wouldn't be a bad idea to have a test op with the maximum number of params just to make sure we don't have some ugly corner case lurking. 17:47
whiteknight test case is a good idea 17:49
of course, as soon as we change the limit jonathan is going to want an op that takes 17 parameters :) 17:50
17:50 nopaste joined
whiteknight if you give a mouse a cookie... 17:50
cotto_work We'll throw him over that bridge when we come to it.
chromatic I'm backlogging, but ERGH. 17:51
whiteknight I sense a disturbance in the force, as if chromatic is displeased and then is silent
chromatic Variable-sized ops are the opposite of walking bytecode fast. 17:52
whiteknight we have variable-sized opcodes now
and fixed-size opcodes are the opposite of making bytecode small 17:53
...of course, we could get around both those issues by making opcodes have a fixed number of operands but creating a "dummy" op that only serves as a placeholder for making additional arguments available to the master op 17:55
18:01 allison joined 18:03 joeri joined
chromatic If we can make Lorito ops a fixed size (three arg form), I'm happy. 18:06
18:10 nopaste joined
cotto_work allison, what are your thoughts on bumping the maximum number of params an op can take? Rakudo apparently wants 9 and the current limit is 8. 18:17
allison cotto: these are for dynamic ops? yes, we should allow more 18:18
cotto: I'd say go for 16 next, to keep the binary boundary
18:20 nopaste joined
allison cotto: I doubt we'll need to go for 32 18:20
cotto: (or by that time we may be on Lorito, and have no limit) 18:21
whiteknight chromatic: I agree. fixed-size ops for lorito is a very very good idea
cotto_work I don't want to see one of those 32-param ops.
whiteknight in lorito-world, PBC will only really serve as a compressed interchange format anyway
cotto_work I shouldn't commit from work, but anyone with a commit bit should feel free to bump PARROT_MAX_ARGS in include/parrot/op.h to 16. 18:23
allison chromatic: fixed-size in general seems unlikely, but a fixed size of one (the call signature) is easily possible
NotFound I'm looking at rakudo generated pir and see a lot of things like: "unless_null $P21, vivify_30 | new $P21, "Failure" | vivify_30:" Maybe a new_if_null opcode can speed up and reduce size.
whiteknight cotto: on it
chromatic Fixed-size in general seems to work for many, many other machines, virtual and otherwise.
allison chromatic: are you talking about Lorito's core ops, or the ops defined on top (written in Lorito ops)? 18:24
cotto_work jonathan, there you go.
whiteknight r41752 18:25
darbelo cotto_work: All your code are belong to MS?
chromatic Lorito's core ops.
allison chromatic: if it's the former, I agree, because it's a tightly controlled set
cotto_work darbelo, only what I write while I'm on the clock.
allison chromatic: aye, agreed
whiteknight for lorito I like the idea of three-argument ops 18:26
jonathan cotto_work: Thanks.
allison 3 may not be enough (depending on how low-level we make them), but 8 certainly would be 18:27
dynamic ops, on the other hand likely will need more flexibility
chromatic Three. Fixed size.
dalek rrot: r41752 | whiteknight++ | trunk/include/parrot/op.h:
[ops] bump PARROT_MAX_ARGS from 8 to 16 to allow for a new class of overly-complicated ops. cotto++
whiteknight LLVM ops are, I believe, three-argument ops.
almost all RISC machines are too 18:28
chromatic libJIT too.
whiteknight lots of good literature about optimizing those
yes
allison chromatic: <shrug> we'll see. It's a restriction on complexity in one part of the system, and worth it if it gains us in optimizations. But, if it costs us too much complexity in another part of the system, it's worth sacrificing.
chromatic Read the code that looks for bytecode annotations. 18:30
allison Horrible code now is not prove that the same job couldn't be done with better code.
chromatic I can make that horrible code O(log n) +- some constant.
Fixed-size opcodes make that horrible code non horrible and O(1). 18:31
See also: non-local fixups.
See also: bytecode splicing.
(important for tracing JIT)
whiteknight lucky for us, a lot of extremely low-level operations lend themselves nicely to three-arg form 18:32
chromatic Exactly. There's a reason it's common. 18:33
allison Like I said, we'll see. Changes to the bytecode are pretty long-term planning.
whiteknight yes
18:39 HG` joined 18:40 nopaste joined 18:45 viklund joined 18:51 Zak joined 18:56 mokurai joined 19:00 nopaste joined
darbelo Hmm. I'm seeing failures in t/compilers/imcc/syn/macro.t 19:23
dukeleto darbelo: yeah, in fulltest? 19:24
darbelo Yup.
dukeleto darbelo: i was seeing those in trunk as well
darbelo They pass when I prove -v the file.
Same for you? 19:25
chromatic It's a difference in runcores for the line number bugs I fixed yesterday.
moritz seen Infinoid
purl Infinoid was last seen on purl 5 days, 9 hours, 28 minutes and 32 seconds ago, saying: <private message> [Oct 2 09:49:08 2009]
darbelo The tests expect the number to be wrong?
chromatic The tests expect the numbers to be right for all runcores. 19:27
I'm not sure why they're wrong in this case.
NotFound /parrot --runcore=fast t/compilers/imcc/syn/macro_2.pir 19:32
Null PMC access in get_string()
current instr.: 'test' pc -1 ((unknown file):-1)
Doesn't match Null PMC access .*current instr.*:5 19:33
chromatic That's strange, as the fast runcore is also the default runcore. 19:34
Or should be.
19:34 joeri left
NotFound Looks like in linux amd64 is not. 19:34
19:35 nopaste joined
chromatic see src/runcore/main.c lines 127 and 143. 19:35
NotFound chromatic: putting a printf in Parrot_runcore_switch I see a call with fast followed by a call with slow 19:44
chromatic Hm.
NotFound Using --runcore=fast I see two calls with fast
19:45 nopaste joined
chromatic What if you change compilers/imcc/main.c:358 to: 19:46
INTVAL core = PARROT_FAST_CORE;
NotFound That way I get two calls with fast in both cases 19:49
(with or without --runcore=fast)
chromatic Okay. Now we need to fix several testf failures. 19:50
nopaste "darbelo" at 200.49.154.173 pasted "Can our win32 users give this a test?" (73 lines) at nopaste.snit.ch/18251 19:51
NotFound t/op/annotate.t fails with that change
chromatic Several tests do. 19:52
whiteknight apparently I'm a group manager for the linked in group now 19:55
cotto_work With great power comes great responsibility.
darbelo And great potetntial for abuse.
Tene am I in that group? I don't log into linkedin often. 19:58
mikehh fulltest failures with testf, testg and testS - these cores all FAIL the same tests
t/compilers/imcc/syn/macro.t - Failed tests: 2-4
t/compilers/imcc/syn/regressions.t - Failed test: 7
All other tests PASS (pre/post-config, smoke (#28676), rest of fulltest) at r41752 - Ubuntu 9.04 amd64
dalek rrot: r41753 | darbelo++ | trunk/src/io (4 files):
Change string-internals poking via ->strstart to poking via Buffer_bufstart().
19:59
purl dalek: that doesn't look right
pmichaud phone 20:00
20:01 nopaste joined
chromatic NotFound, mikehh nopaste.snit.ch/18252 20:02
NotFound chromatic: a general solution can be setting in the runloop data a pointer to the pc variable. 20:05
That way forbids optimizing pc into a register, though. 20:06
whiteknight but we don't need to optimize it into a register in that case either, I don't think 20:07
chromatic The nopaste does that. 20:08
whiteknight Tene: I dont know if you are in the group or not. I don't know your real name :) 20:09
Unless it's somethin obvious like Tene Teneson, which I doubt
20:10 nopaste joined
NotFound The functions for setting and switching runcore are lame, they convert from numeric to string to numeric for no good reason. 20:13
whiteknight lame indeed
and on that note.. 20:14
whiteknight leaves
chromatic Backwards compatibility.
purl i think backwards compatibility is overrated. or important
20:17 xenoterracide_ joined
mikehh chromatic: the patch gets fast core through but -g and -S still FAIL 20:20
make test PASSes but the specific tests fail in _S and -g 20:22
chromatic Same tests?
mikehh t/compilers/imcc/syn/macro.t - Failed tests: 2-4 and t/compilers/imcc/syn/regressions.t - Failed test: 7 20:23
in both cores but now -f PASSes
20:24 ruoso joined
mikehh with that patch that is 20:24
20:30 nopaste joined
mikehh but make testf now fails t/op/debuginfo.t - Failed tests: 1, 7-8 20:34
chromatic Doesn't testf run the fast core? 20:38
NotFound opcode_t *current_pc; /* program counter of Sub invocation */ 20:42
This comment is realistic?
chromatic Sort of.
It's not really a counter and it's not just Sub invocation, but the spirit of the comment is right. 20:43
NotFound I think that the field name without any comment is clearer than that.
chromatic Makes sense. 20:44
cotto_work +1
purl 1
cotto_work < purl-- >
NotFound Well, my idea is: change that opcode_t * to an opcode_t **, and we only need to set it at the start of the runloop.
Coke purl += sqrt(i)
purl Coke: sorry...
20:45 nopaste joined
chromatic I'd have to see code to be sure of that, but it's worth trying. 20:46
mikehh, t/op/debuginfo.t has some workarounds for the fast core, but they're unnecessary now.
Tene okay, let's see if I can send mail to parrot-dev or not... I remember having some kind of trouble in the past. 20:47
I just replied to Phil... let's see how long it takes to go through.
Oh, immediately. That's different from what I remembered. That's nice. :)
20:49 cotto_work left, cotto_work joined
NotFound Thinking better, it can't work. runloops for context of continuations can be gone. 20:49
chromatic Even still, keeping a pointer to the current opcode in the interpreter seems like a hack. 20:53
"Oh, it *must* be faster, because we're not dereferencing two pointers to read it!"
dukeleto Tene: any word on test_more.pir on pcc_reapply ? 20:54
Tene dukeleto: last night mostly didn't happen for me. No word. 20:55
I'm more hopeful about tonight.
chromatic For introspection to work reliably, we need to know the current opcode we're executing in the PBC. That's all.
dukeleto Tene: cool, just checking
Tene: did you see the branches that i pushed to plumage on gitorious? code review? 20:58
Tene dukeleto: I didn't. 20:59
NotFound The reverse way can work: using a pointer to the context current_pc instead of having a pc and updating from it in each runloop iteration.
21:00 nopaste joined
NotFound Also bad idea, the current context can change inside the loop. 21:01
chromatic We need to store the pc in one and only one place, I suspect. 21:03
21:07 Whiteknight joined 21:10 nopaste joined
japhb dukeleto, why branch for a change to the partcl metadata? 21:10
dukeleto, and why does OS X have problems with Glue.pir being in the repo root?
dukeleto japhb: Plumage and plumage conflict. there is a TT, one sec
darbelo plumage has trac? 21:11
dukeleto japhb: i make topic branches for everything. that is how I roll
Whiteknight I love when new users get interested in parrot!
dukeleto darbelo: i just started making plumage TT's, no one told me not to :)
jdv79 what's the possibility of doing stuff like tracing jit compiling to machine code?
dukeleto japhb: trac.parrot.org/parrot/ticket/1097 21:12
jdv79 basically the stuff the js guys are doing with tracemonkey and v8.
missing an "and" in there.
japhb darbelo, AFAICT, there's no problem at the moment with just piggy backing on the Parrot Trac, since it will be folded into Parrot someday anyway
dukeleto japhb: i organized PIR files into pir/ and then the problems went away 21:13
japhb dukeleto, ah, yes, brain dead file systems. Tene gets no biscuit today. ;-)
chromatic jdv79, that's one of the goals of Lorito.
japhb dukeleto, how about 'lib' instead? 21:14
dukeleto japhb: yes, I agree. os x's filesystem should die in a fire while suffocating Steve Jobs
japhb: sure, doesn't matter to me. See, this is why I made a topic branch ;)
japhb In fact, I was considering making a src/ dir, with src/lib/ underneath.
The top level would just be the SHOUTING FILES, Configure.nqp, src/, and metadata/ . 21:15
darbelo src++
japhb And maybe leave probes/ at the top level too, I guess, since it's not really part of src/
darbelo likes src/ 21:16
japhb Would you mind re-branching with that layout in mind?
And feel free to merge the one commit for the partcl metadata fix back to master. ;-)
dalek tracwiki: v106 | whiteknight++ | WikiStart 21:17
tracwiki: + more info about more hackathons
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
shorten dalek's url is at xrl.us/bfqxye
japhb dukeleto, see above # forgot to use your nick
dukeleto japhb: sure.
japhb: you want src/lib, correct?
japhb yeah, src/plumage.nqp, src/lib/Glue.pir, src/lib/Plumage/Downloader.pir 21:18
Tene Whiteknight: did the hackathon targets mentioned during #ps get added anywhere?
21:20 nopaste joined
Whiteknight Tene: did just now 21:20
AllHackathons on the wiki
dalek tracwiki: v1 | whiteknight++ | AllHackathons
tracwiki: + info about hackathons past and prsent
tracwiki: trac.parrot.org/parrot/wiki/AllHac...ction=diff
shorten dalek's url is at xrl.us/bfqxyv
Whiteknight When does 2.0 come out? 21:25
darbelo one month after 1.9? 21:26
PerlJam Whiteknight: isn't it on the roadmap? 21:28
Whiteknight PerlJam: yeah, but I'm really lazy 21:29
plus, I was hoping somebody would just know the answer off the top of their head :)
PerlJam Whiteknight: oh, the answer is ... it's on the roadmap :)
21:30 nopaste joined 21:40 nopaste joined
Whiteknight really wishes that parrot-dev emails replied to the whole list by default 21:40
allison Whiteknight: January
Coke that'sprobably adjustable.
Whiteknight is really tired of sending a reply to just one person
allison: thanks, but my email already went out without a date in it 21:41
...and it only went to one person
>:(
Coke I don't seem to have this problem, but I use gmail.
Whiteknight I use gmail too
darbelo Some mailers have reply-to-all functionality.
moritz or even reply-to-list 21:42
Whiteknight darbelo: yes, but I never remember to click it
because all the other mailing lists I belong to have reply-to-list as the default
GeJ Good morning everyone 21:44
Whiteknight good morning GeJ 21:45
GeJ Heya Whiteknight
purl i heard Whiteknight was mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
Whiteknight allison: Do I need to fill out a Parrot CLA?
21:46 Zak joined
jrtayloriv I'm trying to figure out how to expand Scheme macros in my compiler. I don't think I can just add another stage and expand them before the 'past' stage, because I need to have access to the lexical environment, since local variables can mask the names of macros. For instance: pastebin.ca/1602550 ... I can create a macro named "replace" and shadow it with a local variable of that name. 21:46
So basically, I'm confused as to how to go about doing this. Can I somehow have a "second grammar" that is specifically for expanding macros? (Does that even make sense?) 21:48
moritz jrtayloriv: not quite... I don't think lisp macros are expanded at text level 21:49
but rather at AST level
jrtayloriv moritz, Right -- that's why I can't do it before past stage -- I need to do it during past 21:50
sorry, I don't know right word for what I am after
purl after is about getting a side effect
allison Whiteknight: yes
jrtayloriv purl forget after
purl jrtayloriv: I forgot after
moritz jrtayloriv: right, durinig PAST stage, not in a new stage (I think)
allison Whiteknight: (that is, yes, you need to fill out a Parrot CLA)
jrtayloriv moritz, But I'm trying to figure out how to check that the define-syntax definition is syntactically correct. 21:51
My grammar.pg just parses source text into s-expressions -- it doesn't deal with keywords like define or define-syntax
Those are defined as variables in the top-level environment 21:52
moritz so you need to post-pone some syntax checks to the PAST level
jrtayloriv moritz, Yes, that's what I'm asking how to do. Are there any code examples I can look at for this?
moritz looks at the rakudo sources 21:53
21:53 mokurai left
Whiteknight jrtayloriv: expand them at runtime 21:54
call back into your compiler object to compile them at runtime with the dynamic executing environment
moritz is that how lisp macros are supposed to work? 21:55
jrtayloriv moritz, (you asking about the example I posted?) Scheme macros are different from Lisp macros
moritz I didn't see the example you posted
jrtayloriv moritz, Oh, sorry -- yes, they should be expanded at run time -- local vars can shadow the names of macros. 21:56
moritz then forget everything I said ;-) 21:57
jrtayloriv Really? Then I was totally on the wrong track -- I thought you were saying that ... /me is confused 21:58
Whiteknight, Did you mean expand them during 'eval' stage? 21:59
21:59 mokurai joined 22:00 nopaste joined
jrtayloriv The problem is that I need to expand them and then generate the past for the expressions that they expand to. 22:00
allison dukeleto: around?
Whiteknight jrtayloriv: yeah, I think a runtime eval would be best for those 22:01
moritz jrtayloriv: so you want to separate the text->s-exprs and the s-expr->PAST stages?
Whiteknight I don't know Scheme, so ignore most of what I say
moritz and that's why you want a new stage?
makes some kind of sense :-)
dukeleto allison: howdy 22:03
purl hi, dukeleto.
allison dukeleto: I've just committed the hack I mentioned yesterday
dukeleto: you can now go ahead with test develoment on the pcc_reapply branch
dukeleto: we'll fully switchover to the new return handling when it passes the tests 22:04
22:04 Zak joined
dalek rrot: r41754 | allison++ | branches/pcc_reapply/src/call/args.c:
[pcc] Keep the old code in place for testing development, while we finalize the
22:04
allison dukeleto: (but this way Tene and I can collaborate on the return handling at the same time)
jrtayloriv moritz, I'm not clear on the terminology, so bear with me ... the text->s-expr and s-expr->past stages are two different things. text->sexpr is where I take the text and break it up into either lists or literals, which have no meaning yet ... then when I do sexpr->past is when I say things like "the first element of this list is the symbol 'define' which is currently mapped to a builtin primitive, so build the past for that" ... 22:05
Whiteknight I haven't seen any commits on the return handling stuff lately
dukeleto allison: thanks, that is awesome 22:06
Whiteknight anything joe schmoe code monkey can do to help?
dukeleto allison++
Whiteknight that is, joe schmoe code monkey who doesn't know how returns work?
moritz jrtayloriv: right
allison Whiteknight: a code review on fill_results
dukeleto Whiteknight: write CallSignature tests
Whiteknight allison: On it!
allison Whiteknight: that's what I've been doing, fixing logic errors a few at a time
moritz but the default for a HLLCompiler is to translate directly from text to PAST 22:07
22:07 nopaste joined
moritz and that's what you're trying to change, right? 22:07
jrtayloriv yes
moritz ok
jrtayloriv (i think -- I'm not quite clear on it yet)
allison Whiteknight: the basic idea is that it's the same as the algorithm we worked out for fill_params, except that we're looping over the results array and the returns flags, instead of the args array and params flags
jrtayloriv I'm trying to get help getting clear on it ;) 22:08
moritz so I know what you want, and why you want it
just not how to do it :/
jrtayloriv I've been unable to find any examples or docs that come close to what I'm trying to do, but I'm fairly certain that it's the right way to go about it. 22:09
allison Whiteknight: named returns are going to need slightly different logic, though. It might be worth another pseudocode round
jrtayloriv Just about everything I've read on Scheme compilers/interpreters is saying this is how it should be done
moritz jrtayloriv: did you try perldoc compilers/pct/src/PCT/HLLCompiler.pir yet?
jrtayloriv s/perldoc/less/ and yes
moritz so 22:10
you need to add a stage after parseactions, I suppose 22:11
jrtayloriv OK I know how to add a stage, I think, I just don't know what my stage should do exactly, and what it would be operating on. That's what I was originally going to do, but then I convinced myself that I should somehow try to do it during past ...
Perhaps it's time for some more headscratching time for me.
moritz I think you should it organize like this: 22:12
jrtayloriv I had parse->expand_syntax->past
moritz in the parseactions phase you just reduce the match objects to lists of lists
and then in the new stage you do lists of lists -> past
but I'm currently at loss about the details too 22:13
jrtayloriv My original idea was to somehow make the second stage look like "lists of lists -> expanded lists of lists" 22:14
and then in past stage do "expanded lists -> past"
But like I said, I think I just need to stare at it longer, because I'm not even sure if what I'm saying right now is any more meaningful than "bdj9335kdkf" 22:15
moritz that's compile time macro expansion
if that's what your language specs, that's fine 22:16
jrtayloriv moritz, Thanks for the help -- I'm off to read more about exactly when the expansion happens, so I can come back with clearer question. 22:18
moritz jrtayloriv: you're welcome. I hope somebody more competent can answer then ;-) 22:19
22:20 nopaste joined
Whiteknight allison: prior to last weekend, I haven't pseudocoded since undergrad 22:22
so I'm happy to flex that muscle a little more :)
22:23 patspam joined
darbelo pseudocodes in C 22:24
Whiteknight darbelo: Normally I call all my pseudocode "perl" 22:27
and the best part is that it runs!
darbelo Whiteknight: What's the prize on your frame-builder contest? 22:28
s/prize/no-prize/g 22:29
Whiteknight darbelo: free Parrot T-Shirt
22:30 nopaste joined
darbelo I'm looking at DynASM now, ant it loks pretty easy to hack one up. 22:30
Does it have to work post pcc_realply or is current trunk ok? 22:31
Whiteknight DynASM? 22:32
darbelo Part of the lua jit.
luajit.org/dynasm.html 22:34
Whiteknight ah yes, okay 22:35
(so many JIT engines, so little brain space)
darbelo it's x86-only, which sucks. But if there's a free T-Shirt, I'm all for it ;) 22:37
Whiteknight that's the attitude!
darbelo That's how I got into SoC ;) 22:38
22:38 TonyC joined
moritz hey, I also got a free t-shirt from SoC this year, and I was only a backup mentor 22:38
darbelo That's why I got my commit bit. So I can get the shirt without having to code next year ;) 22:39
Whiteknight moritz: me too. Thanks Darbelo!
dukeleto lulz. people go crazy over those shirts
Whiteknight I don't think I have paid for a new tshirt in about 10 years. People keep giving them to me for free 22:40
22:40 nopaste joined
moritz I did mentor a student last year, though 22:40
darbelo Whiteknight: Same here, except I just keep wearing the old ones.
;)
moritz dukeleto: actually of all the geek t-shirts I own, people most often ask me about the SoC ones 22:41
"did you really participate, or did you get that from somewhere else?"
darbelo "Nah, I stole it from some dude's laundry basket." 22:42
22:42 jsut_ joined
moritz or people expect that I bought it from ebay or so 22:42
dukeleto moritz: that is funny. just say that you do LH's laundry :)
Whiteknight I don't understand how anything could work if we turned off argment checking exceptions in Parrot
moritz ;-)
Whiteknight I suspect there would be segfaults everywhere, for every violation 22:43
I can't think of a single benefit
moritz my girlfriend works for Puma, I don't need to buy any t-shirts at all ;-)
Whiteknight moritz: lucy! 22:44
lucky!
moritz aye
Whiteknight I mean, we have :optional and :slurpy parameters, I don't know why we would also need to implicitly pass the wrong number of parameters without warning 22:45
moritz for enhanced confusion mode on April 1st
22:50 nopaste joined
dalek rrot: r41755 | mikehh++ | branches/pcc_reapply/src/call/args.c:
fix codetest failures - trailing spaces, line length and for( to for (
22:53
23:00 nopaste joined 23:01 nopaste joined 23:03 jsut joined 23:05 payload joined
dalek rrot: r41756 | whiteknight++ | branches/pcc_reapply/src/call/args.c:
[pcc] remove XXX note, we don't need to worry about :flat here
23:09
23:10 nopaste joined
Whiteknight is going to be so happy when it's time to unify args and returns 23:11
darbelo February?
purl i guess February is not the best month to visit Mtl. A bit cold, you know...
cotto_work RSN 23:12
darbelo Hmm. We should start taking notes of what we want to deprecate for the January release. 23:13
I have "In place string modification." on my kill-list. 23:14
23:16 Zak joined
cotto_work string mutability? 23:17
darbelo The opposite, I want inmutable strings.
cotto_work right. You want to kill string mutability.
darbelo Yes. 23:18
Some of the work is already done for COW, but there's still a lot of copying arround "Just in case it's modified by someone else." 23:19
23:20 nopaste joined
darbelo It's likely to speed us up. 23:20
Whiteknight immutable strings would probably be a performance win
but making it work with our current memory management scheme is going to be a headache
of course, our current string manager is a headache already, so no change 23:21
darbelo Whiteknight: Making it *attemptable* requires a pretty big deprecation notice in 2.0
Whiteknight of course, that's a bit of semantic change for us, so you want to make sure that's cool with allison et al first 23:22
23:26 TonyC joined 23:30 nopaste joined 23:33 TonyC joined 23:35 TonyC joined 23:36 TonyC joined 23:40 nopaste joined
dalek rrot: r41757 | mikehh++ | trunk (3 files):
clear up some compiler warnings from r41602
23:42
mikehh messages 23:46
cotto_work massages 23:47
purl You have no massages waiting.
mikehh pity - I could do with one :-} 23:48
cotto_work from purl?
mikehh if she is a good girl :-}
purl thanks mikehh :)
darbelo purl: are you a good girl? 23:49
purl :)
mikehh darbelo: done anything on decimal_dynpmcs recently - you mentioned quad I think? 23:53
darbelo ENOTUITS
But I can probably finish that this week. 23:54
mikehh have to try and send you some :-}
you moved it into plumage? 23:56
darbelo First project to correctly complete the fetch-build-test-install cycle :) 23:57
japhb mikehh, well, plumage can happily install it, but of course it remains in a separate repo ....
23:57 kid51 joined 23:58 chromatic joined
Whiteknight allison: ping 23:58