parrot.org/ - clean up those smolders for the release!
Set by moderator on 20 October 2008.
00:09 AndyA joined 00:33 bacek joined
bacek hi there 00:38
01:07 tetragon joined 01:34 Ontolog joined
Croke sydney... alias? damian? 01:37
bacek Croke? 01:49
Tene msg pmichaud If you check out the "!PMC_IS_NULL(iter) && VTABLE_get_bool(interp, iter)" loop in scheduler.c's Parrot_cx_find_handler_local, you'll see that it's never true for the second exception 02:01
purl Message for pmichaud stored.
Tene This looks to be because context->handlers is always null 02:03
02:03 Robrt left 02:04 Ademan joined
Tene Both calls to pcxfhl get the same context. 02:06
The difference is that the first time through, it has a valid ->handlers
02:10 allison_ joined
cotto Netherlands++ #nerdiest currency ever 02:12
Tene anyone know how I can set a watch on memory location in gdb? 02:20
02:38 dmknopp left 02:48 petdance joined 02:58 allison_ joined 03:18 tetragon joined 03:42 bacek_ joined 03:53 Psyche^ joined 04:53 allison_ joined
cotto Tene, watch 0xcafef00d 05:46
You can watch a symbolic name, but the breakpoint will be disabled once the variable goes out of scope. 05:47
tewk watch *(int*) 0xcafef00d sets a hardward watch and is much faster. 05:57
cotto happy! 05:59
06:05 MariachiElf joined 06:29 bacek_ joined 06:31 Bzek joined 07:27 uniejo joined 07:59 Ademan_ joined 08:31 cognominal joined 08:46 iblechbot joined 08:52 masak joined 09:21 cosimo joined 09:37 Lorn joined 10:09 kj joined
dalek r32246 | julianalbo++ | trunk: 10:14
: fix for 't' string passing in jitted nci
diff: www.parrotvm.org/svn/parrot/revision?rev=32246
10:20 tomyan joined
dalek r32247 | masak++ | trunk: 10:37
: [rakudo] implemented .contains and ACCEPTS in Hash (RT #60234)
diff: www.parrotvm.org/svn/parrot/revision?rev=32247
masak rakudo: sub alwaystrue { return 1 }; say 0 ~~ alwaystrue 11:00
11:00 ruoso joined
masak misses some kind of evalbot 11:15
11:20 Ontolog joined
szabgab if I recall yesterday someone said that he has trouble installing wxPerl on Gentoo 12:09
I just IM-ed the guy who says he is the maintainer and he asked for bug reports on bugs.gentoo.org 12:10
13:03 tetragon joined 13:09 Lorn joined
Infinoid I didn't have a problem installing wxPerl, I just had a problem with their forcing a really old version of it. 13:16
and I still haven't gotten it working after having rolled my own packages with newer versions... so I'm not really sure what the solution is yet 13:21
13:22 gryphon joined
Croke is there a channel for padre somewhere? 13:28
(I don't see one here or on freenoe) 13:29
PerlJam heh, my ubuntu upgrade keeps saying "about 34 minutes remaining" then "about 2 hours remaining" then "about 9 hours remaining", then back to 30-something minutes.
dalek r32248 | rurban++ | pdd30_install: 13:32
: [cage] fix svn props
diff: www.parrotvm.org/svn/parrot/revision?rev=32248
Croke karma padre? 13:39
purl padre has karma of 2
Croke wow. padre is not responding. =-) 13:40
szabgab Croke: no channel so far 13:44
but often on #win32 chatting with Alias and sometimes tsee
tewk pmichaud,tene: ncigen is broken, what ::=>; changes do I need to make 14:07
particle what broke? 14:08
tewk 'Method 'type' not found for invocant of class 'c99AST;TypeDef 14:11
make test doesn't run anymore. 14:12
particle a standard pct error
hrmm, i'll have a look
tewk src/c99AST.pir has my custom ast in it. 14:13
particle ok, i see struct and typedef test failures 14:15
14:22 PacoLinux joined 14:30 ben joined 14:34 grim_fandango joined 14:37 notbenh joined 14:42 Limbic_Region joined 14:48 polyglotbot joined
Tene lolcode: VISIBLE "OH HAI EVRYONE IM BACK!!!" 14:49
polyglotbot No output (you need to produce output to STDOUT)
Tene Ooo... segfault!
That's... awkward.
particle tewk: $work has me chasing other bugs, but ncigen is on my list 14:50
Tene Let's try rebuilding parrot...
tewk particle: thanks 15:02
15:03 rdice joined
tewk 'Method 'type' not found for invocant of class 'c99AST;TypeDef make me think it has something to do with the way I define my AST classes in c99AST.pir, I modeled them after PAST nodes. 15:06
'type' should be inherited from c99AST::VarDecl 15:07
correction c99AST::Node inherits from PCT::Node
so I guess "I modeled them after PCT nodes" 15:08
Tene looks a bit at ncigen 15:10
looks like I've fixed it, checking a bit more... 15:13
15:15 gaz joined
Tene Still one test failure that I don't quite understand. 15:18
15:19 allison_ joined
dalek r32249 | tene++ | trunk: 15:21
: [ncigen]: NameSpace updates
diff: www.parrotvm.org/svn/parrot/revision?rev=32249
Tene prods tewk 15:23
tewk Tene++, there might have been a failure or two 15:25
NotFound tewk: did you see my last nci fix? 15:26
tewk NotFound: yes 15:28
NotFound++,
Croke anyone here know mod_rewrite? 15:29
PerlJam Croke: just what I read from google :)
pmichaud I know a bit.
Tene I know a little bit
Croke when doing a rewrite, do you have access to the hostname or just the path?
I want to do a rewrite substituting part of the hostname into part of the path. 15:30
Ah. ubuntuforums.org/archive/index.php/t-83594.html
can I use %{HTTP_HOST} in the substitution? 15:31
(trying to get foo-asdf.bar.baz/frob/stuff to map to http;//foo-asdf.bar.baz/frob-foo/stuff 15:32
pmichaud yes, you have the host name
I have an example of that, I think
Croke (my problem is, I think, that I only want part of the hostname. 15:33
pmichaud doing a partial substitution might be tricky, though.
Croke ... though that doesn't matter, I think.
yah, nevermind. =-)
thank you. =-)
particle RewriteCond %{HTTP_HOST} ^subdomain.website.com$ [OR] 15:35
RewriteCond %{HTTP_HOST} ^www.subdomain.website.com$
RewriteRule ^(.*)$ http://www.website.com/~subdomain/ [R=301,L]
do you need it for multiple subdomains? 15:36
szabgab Croke: I opened #padre on irc.perl.org, let see if someone is coming
pmichaud In addition to plain text, the Substition string can include 15:37
1. back-references ($N) to the RewriteRule pattern 2. back-references (%N) to the last matched RewriteCond pattern
so yes, there's a way to do a backreference to the RewriteCond
so you can do
dalek r32250 | tewk++ | trunk:
: [NCIGEN] a couple more :: -> ; fixes
diff: www.parrotvm.org/svn/parrot/revision?rev=32250
pmichaud RewriteCond %{HTTP_HOST} ^([^-]*).* 15:38
and then
RewriteRule ^/frob /frob-%1 15:39
particle is that first star greedy?
pmichaud they normally are, yes.
(they're pcre)
you could require the -, as in
RewriteCond %{HTTP_HOST} ^([^-]*)-.*
that would cause the rewrite to not occur if the hostname doesn't have a hyphen in it 15:40
probably don't need that trailing .* anyway
particle yeah
Croke we can just use the full hostname in the sub; that's fine. just trying to map something that is typically meant for a standalone installation to work with some crazy reverse proxy setup they're using here. 15:42
(I'm in app dev. I shouldn't have to help out the server guys with this. =-)
rewritecond lets you mangle the hostname? hurm. 15:43
pmichaud rewritecond lets you grab parts of the hostname for later mangling 15:44
(mangling takes place in rewriterule)
or, more precisely, you can use rewritecond to capture things that you later wish to use in your mangling :-) 15:45
Croke I think this is enough information to make the server guys dangerous. excellent. 15:47
pmichaud++ 15:48
jonathan hi hi 15:52
15:59 grim_fandango_ joined, Theory joined
jonathan pmichaud: Any news yet on if you want/can have a Rakudo hacking one side of the Parrot summit? 16:00
pmichaud checking. :-)
16:04 grim_fandango__ joined
pmichaud if so, it would probably be the day before. 16:05
currently I arrive at SJC at 2:30pm 16:07
I could change it so that I arrive there around 10:10am
changing my existing ticket costs $180, though.
(cancelling and rebooking might be cheaper -- haven't checked that yet.)
Tene I might be able to move my flight earlier too... I'll have to remember to check that when I get home. 16:08
tewk I'm comming in at noon 16:09
pmichaud anyway, I expect that meeting Friday before might be better than Monday after.
Everyone's arriving on Friday anyway, we might as well make use of the Friday afternoon/evening.
and it doesn't incur an extra hotel stay
in your (jonathan's) case, you might arrive on thursday, so you have some rest time 16:10
tewk I saw that pmichaud was coming in the early afternoon, so I booked a noon flight
pmichaud then we could meet up early-ish on friday.
jonathan Yes, arriving on Thursday would maybe be better. 16:12
Don't want to be exhausted for the summit! 16:13
pmichaud I'll see if I can move my flight to earlier on Friday. At any rate, I suspect friday will be the better meetup-hacking day, unless the summit organizers decide to try to do a friday event of some sort. (I wouldn't advise it -- we can certainly do something sat evening if that's the case.)
16:24 jq joined
pmichaud changing my ticket will cost $180, and would give us an extra 4 hours. I suspect it might be better to simply stick with my existing ticket, but plan to meet up about 4pm on Friday and spend the afternoon/evening hacking. 16:30
(I hack much better in the evening anyway.) 16:31
jonathan Sure, and I will have had a bit of chance to adjust to the timezone.
OK.
pmichaud next we just need to figure out where we're all staying, but particle++ is reportedly working on that :-) 16:32
Tene No, he already took care of it. The wiki says he's renting a van, remember? 16:33
;)
particle check the wiki, i've updated hotel info 16:34
kj jonathan: when you're flying? 16:35
17:02 mj41 joined 17:14 chromatic joined 17:15 chromatic joined
jonathan kj: NOt sure yet - will look soon. 17:20
17:39 ab5tract joined 17:42 jq joined 18:23 gryphon joined 18:36 gryphon joined
Croke chromatic: did you fix -t4 ? 19:12
ah. I was running against an old version. 19:13
chromatic I haven't touched it yet. 19:14
tewk Croke: which version. If it isn't ancient, it might be helpful to run a bisect. 19:15
Knowing where to look is half the battle
Tene <3 git-bisect. 19:16
tewk Croke: even has his own svn-biset I believe, where is it again? 19:17
Croke a version which involved local changes which was never committed. 19:18
I just didn't re-make after svn revert-ing.
tewk ah 19:19
Croke opens a ticket with whatever information he has.
which isn't much, but at least gives a way to reproduce the bug. 19:22
Croke chromatics: "but a pir-only version would be helpful"
19:29 LimbicRegion joined 19:33 Limbic_Region joined 19:49 peepsalot joined
Croke quiet today. hope everything is getting all their neighborhood kids sugared up. 19:53
s/everything/everyone/
Croke wonders what the hell happened to his brain.
Tene Nah, I'm in an airport in PHL. 19:54
Croke brains? 20:02
purl NO BRAINS FOR YOU! NEXT!
20:17 rdice joined
jonathan happily lives in a country that, some of the expat community aside, doesn't do Haloween. :-) 20:17
cotto I don't care for the costumes, but the candy is nice. 20:19
jonathan It not being haloween never stopped me eating candy. ;-)
20:24 gryphon joined
cognominal jonathan++ # Haloween has contaminated France 20:34
chromatic As if you could tell. 20:36
szbalint nov 1st is the day of the dead here 20:37
20:38 bacek joined
szbalint people go to cemeteries usually, visit the graves of dead loved ones 20:38
it clashes quite badly with the import haloween stuff 20:39
chromatic Take a shotgun and aim for the head. 20:40
NotFound But... today is not christmas?
Croke hah 20:41
NotFound (For those that are not *real* programmers (I hope there is no such people here) ): 31oct == 25dec 20:42
Croke (day of the dead) was happy to see una ofrenda at my kids school. 20:43
(here in anglo suburbia) 20:46
20:46 Lorn joined
szbalint (hungary's day of the dead just shares a common name with the mexican day of the dead - it's entirely a separate thing) 20:46
Croke oh, sure, confuse me. 20:47
jonathan Tomorrow is a national holiday here - All Saint's Day.
Croke chromatic: -t4 goes squirrely in Parrot_Context_get_info
NotFound jonathan: all people in the country are saints?
szbalint I think it is ment to be the day of the saints which otherwise have no special day 20:48
or something like that :)
jonathan I think so, yes. :)
Erm, that was in response to szbalint, not NotFound. That can't be true. I live here. :-) 20:49
szbalint ah, you're in slovakia right? For some reason I always think of the UK when seeing your nick :) 20:50
jonathan Yes, I live in Slovakia now. But originally I'm from the UK. 20:52
NotFound That explains all. You are not saint because you are foreign ;)
jonathan has been foreign for the last year. :-) 20:54
Croke gets closer... 20:55
NotFound Croke: tcl does not compile with c++, and checking why I see that in C is giving warnings that looks like real problems. 20:58
src/binary.c | cc1: warning: ./include: No such file or directory 20:59
Croke probably not getting compiler flags set properly when the makefile is created. 21:05
NotFound I realclean and reconfigure
jonathan particle: Have worked out what flight to take.
And updated page with (current) exact cost.
NotFound Croke: I don't see any rule in Makefile related to src/binary.c 21:06
jonathan I'll go from Vienna rather than Bratislava - takes a little longer to get to, but is much cheaper.
NotFound Croke: if the default rule is used, there is a: CC_INC = -I./include that can be the reason for the message. 21:08
Croke have to run now, but have narrowed down the -t4 stuff to Parrot_full_sub_name's invocation of Parrot_ns_get_name 21:11
... which does a PCCINVOKE to get some information rather than just look it up in a hash, which may be what screws us up.
-> halloween
NotFound Croke: I think the Makefile problem is the lack of the rule .c$(o) 21:14
21:18 dolmen joined
NotFound Mmmm... no. The rule is present, but is not exactly the same as the main 21:18
I've got it: the CC_INC = @cc_inc@ expands to a value intended to use from the parrot root, not from languages/tcl 21:26
chromatic That's true. 21:27
NotFound And the solution is... ?
chromatic Use a Tcl-specific include there? 21:30
NotFound -I../../include ? 21:31
chromatic Seems reasonable.
NotFound Simpler solution: drop it. The parrot include directory is already included elsewhere :? 21:35
particle jonathan++ for the update 21:36
NotFound The other problems where PMCNULL used instead of NULL with STRING * 21:38
purl: paset? 21:39
purl notfound: bugger all, i dunno
NotFound purl: paste?
purl i think paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste
nopaste "NotFound" at 213.96.228.50 pasted "tcl fixes" (43 lines) at nopaste.snit.ch/14439
NotFound Croke: ping 21:41
chromatic Looks sane to me. 21:49
jonathan particle: Basically, I'm in the position now where if I can get it confirmed my travel can be funded, I can come. 21:53
particle: Do I have to fill some grant application in, or contact someone, or...? 21:54
allison jonathan: filling out the survey wiki page is the official application process, which I see you've done 21:56
mmmm... I see <pre> tags break the parrot.org template 21:58
jonathan allison: Ah. That's refreshingly unbeaurocratic. :-) 21:59
A month in Russia makes you forget how simple things *can* be. ;-)
allison jonathan: :)
Croke NotFound: pong 22:00
NotFound Croke: see the nopaste
Croke NotFound: does src/binary.c cause a build failure? 22:01
or just warnings?
NotFound Croke: warnings in C, failure in C++
Croke as I just updated that to prevent an infinite loop somewhere. 22:02
NotFound Croke: but returning PMCNULL when must be NULL looks like a serious problem, anyway.
Croke Oh, It's quite likely I fixed it wrong. 22:04
can you add the src/binary.c one as a patch to the partcl queue so I don't lose it?
NotFound I'll try, but I'm not familiarized with code.google.com 22:05
Croke partcl? 22:06
purl partcl is, like, tcl on parrot or code.google.com/p/partcl
Croke NotFound: code.google.com/p/partcl/issues/entry
applied the other bit and added your nick to CREDITS
And after halloween, I'll check it out and see if I can fix it the right way. 22:07
->
(thanks)\\
NotFound 69, nice number 22:09
Andy rakudo.org needsa favicon.ico 22:20
22:29 TiMBuS joined 22:59 davidfetter joined, masak joined
dalek r32251 | allison++ | pdd22io: 23:09
: [pdd22io] Keep revision history of old UNIX I/O file under new names.
diff: www.parrotvm.org/svn/parrot/revision?rev=32251
23:10 tetragon joined
dalek r32252 | allison++ | pdd22io: 23:11
: [pdd22io] Converted UNIX I/O for filehandles to new architecture.
diff: www.parrotvm.org/svn/parrot/revision?rev=32252
r32253 | allison++ | pdd22io: 23:23
: [pdd22io] Partial conversion of UNIX I/O for sockets.
diff: www.parrotvm.org/svn/parrot/revision?rev=32253
r32254 | allison++ | pdd22io: 23:26
: [pdd22io] Keep revision history of old Windows I/O file under new names.
diff: www.parrotvm.org/svn/parrot/revision?rev=32254
masak happy November, everyone! 23:28
jonathan November! :-D 23:29
It's Christmas soon.
tetragon Not November yet in Toronto 23:30
chromatic tetragon, Oct 31 == Dec 25
masak tetragon: you'll like it, just wait :)
jonathan: btw, nice to have you back.
jonathan Nice to be back. Am refreshed and ready for action. :-)
tetragon brandishes the fork from the BSD stuff she wore to the office
chromatic Though if you asked me "Hey chromatic, do you know the difference between November and Dec?" I would have to say "Apparently not."
masak jonathan: sounds excellent.
jonathan Do I even want to know how many tickets are in the Rakudo RT queue now... 23:31
masak whistles innocently
jonathan :-)
Will dig back into Rakudo next week.
masak aye.
I'll do my best to help. 23:32
chromatic jonathan, if Rakudo scares you, how about PCC?
jonathan Me too. :-)
PCC as in...the calling conventions?
chromatic Yes.
jonathan inter_call.c is one of the bits of Parrot that I occasionally try to fit into my head...and then fail. 23:33
Are they in need of changes, fixes, optimizations...or?
chromatic In particular, I wonder if it's necessary to create a new FixedIntegerArray PMC for subs where the type and number of arguments is static at compile time, rather than freezing a constant PMC into the bytecode.
Though I do remember you adding arity support to subs a while back. Do we use that?
jonathan The FixedIntegerArray PMC represents the signature. 23:34
The arity stuff looks at this PMC, yes.
We use it to see the types of the arguments, and their flags. 23:35
By "create a new one", what do you mean?
chromatic I'm thinking of ways to reduce GCable elements in calls.
jonathan Oh.
I didn't think we created one during the calling?
I thought that we just had one as a constant PMC.
Or are you talking about calls from C? 23:36
e.g. PCCINVOKE and Parrot_PCCINVOKE? 23:37
Those do I suspect (or could believe) create one per call.
chromatic PCCINVOKE for sure.
jonathan Aha, OK.
I thought you meant call from one PIR sub to another PIR sub, in which case we should not be allocating these. 23:38
chromatic Like you, I can't keep src/inter_call.c in my head.
Right. In theory, we shouldn't.
jonathan We don't have to, I figured a while ago there were ways to optimize it in the future, but it felt more optimization-ish and thus was a "worry about it later" thing. :-)
(Shouldn't have to allocate during PCCINVOKE, that is.) 23:39
Theory sneezes
chromatic In Theory, it's too dark to read.
jonathan hands Theory a tissue
Theory wipes
jonathan chromatic: One option is to have a static (at a C level) variable per callsite, when we use PCCINVOKE inside a PMC. 23:40
And stash the array in that.
chromatic I realize we're brainstorming, but static variables... yick.
jonathan And just have some logic. "Do we have it?"
OK, I'll be more abstract. 23:41
We have some thingy that per callsite stores the fixed PMC array that we build from the signature. :-)
But actually the cost in Parrot_PCCINVOKE is muchly, I suspect, the building of the signature.
chromatic Is it the caller or callee signature?
jonathan From the character array. 23:42
Caller.
chromatic Does it get modified?
jonathan No.
chromatic Sounds cacheable.
jonathan Right, that's what I was failing to say. :-)
chromatic "PP->I" => FixedIntegerArray PMC 23:43
jonathan Yup. And if we can do that process once...
It's FTW.
chromatic Throw an Orcish Maneuver into PCCINVOKE, and everyone's happy.
jonathan Since those are C strings, maybe we can even use their memory addresses as cache keys rather than the string itself, but it depends how much the strings are shared across the Parrot binary. 23:44
chromatic Let's just use a cstring Hash.
jonathan That works too.
chromatic That way external code can use the cache too.
jonathan It'd cache more correctly.
True. 23:45
Good point.
allison before you head too far down this direction, the signature integer array is going away entirely, replaced by a CallSignature PMC
chromatic These strings will tend to run between two and ten characters long anyway, so hashing time is minimal.
jonathan allison: We'll still want to build that from the PI->P style strings, I suspect.
allison but, the CallSignature PMC is a container for the arguments, and so different for each call
jonathan erm.
You plan to create a new GC-able object per call? 23:46
allison and, yes, it is built from PI->P style strings
jonathan This sounds very much like the Perl 6 idea of a capture holding the arguments...
allison jonathan: yes, but only one. that's 2-3 fewer GC-able objects per call than we create now
jonathan What do we create per call now? 23:47
allison jonathan: it is very like it, CallSignature is a subclass of Capture (for the moment)
jonathan From PIR to PIR, I thought about nothing.
Other than a RetContinuation PMC which we generally recycle.
chromatic Sounds right.
allison currently, we create a integer args array, an integer returns array
jonathan We don't create them *per-call*. 23:48
From PIR to PIR.
Per call site, yes. Not per call.
allison on the static calls, true, they're constants 23:49
jonathan Where static call = the calls from one PIR sub to another = the common case.
allison (those aren't the only ones, but I'd have to dig up that code again)
jonathan Do you think we'll be able to re-cycle these CallSignature PMCs as an optimization in the future? 23:50
(Obviously, replacing their contents...)
Or see them as something that we can even optimize away the creation of? 23:51
chromatic Or cache?
purl cache is 1 => for that cached cursor?
allison jonathan: GC is recycling objects
jonathan we keep the PMC headers allocated, and reuse them 23:52
jonathan allison: I think we are talking about recycling in a different way. Here I mean, we don't have a CallSignature get collected at all.
allison having it GC'd is an advantage
chromatic Single-bucket GC (even concurrent or iterative) is lousy at recycling lots of frequently-recycled headers. 23:53
jonathan Indeed.
chromatic Turn off RetCont recycling sometime and see how much slower things go.
Alternately, write a C compiler that never stack allocates and always heap allocates.
jonathan Right. I am talking here about doing some recycling of these in the same meaning as we recycle RetConts.
23:54 Andy joined
allison it would be possible to have a lightweight signature recycling similar to RetConts, though I'm not sure either recycling scheme will hold up well under concurrency 23:54
chromatic Where we use PMCs as we would automatic variables in C, we can occasionally improve performance dramatically.
allison (I suspect they'll be a disaster in concurrency)
jonathan Oh, I'd expect to keep a cache or bunch of them to recycle per interpreter. 23:55
chromatic The only problem in concurrency is 1) if the GC isn't concurrency safe, which is a disaster elsewhere or 2) if other threads/processes/LWPs use the same PMC at the same time
jonathan Not recycle them across 'em.
allison all of this is predicated on the idea that we will continue to have an embarrassingly slow, non-generational, non-incremental GC
which isn't a good assumption
chromatic All of this is predicated on the idea that all PMCs come from the same PMC pool. 23:56
allison yes, non-generational (generational would have a "young" pool swept frequently)
jonathan I don't think that assuming some day we'll have such a blazingly fast GC we can just allocate as many short-lived objects as we like is much of a better idea to predicate stuff on...
chromatic That presumption only works if you can ensure that nothing in the older generation refers to anything in the younger generation. 23:57
allison chromatic: the problem with concurrency is that the custom recycled objects have a different lifetime than ordinary GC'd objects, so while ordinary GC may be made safe for concurrency, the custom GC may not 23:58
chromatic: for collecting, yes
chromatic add_pmc_to_free_pool() does need to be effectively atomic, but it should be atomic anyway. 23:59
allison and with CallSignatures you can guarantee it, they're short-lived and purely internal
chromatic See #1 in How To Screw Up Concurrency in Your GC above
jonathan That's just adding something to a linked list. If there's a CAS operation portably available, then it can be done atomically.
chromatic You need a lock around two pointer swaps.