Stream: wasmtime

Topic: Help choose the color to paint this bikeshed


view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:02):

As the OOM-handling effort progresses, it has become clear that we probably shouldn't name our OOM-handling collections the same as their equivalent abort-on-OOM alloc/std types. This is because things get pretty confusing during this period of time where we haven't migrated everything over to the OOM-handling collections (and almost certainly won't have migrated 100% any time soon; we may never even bother migrating the stuff under wasmtime::compile::*) and so when you see a Vec you have to wonder "is this abort-on-OOM alloc::vec::Vec or OOM-handling wasmtime_core::alloc::Vec?" That is annoying and we shouldn't add the additional and unnecessary mental load on ourselves.

So that begs the question: what naming scheme should we use for our OOM-handling, fallible-allocation-only collections?

The following candidates will use Vec as an example, but to be clear this will naming scheme also apply to our OOM-handling String, HashMap, etc...

Some initial ideas from @Alex Crichton :

Some more ideas:

I hate every one of these options, pls help

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:07):

I hate every one of these options, pls help

honestly I agree with this take, but I'd also say that my dissatisfaction with these names isn't enough to overcome the desire to rename and avoid name clashes with the standard types

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:07):

oh for sure, I think we are in the same boat here

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:08):

OpVec - "oom propagating" or "overpowered"

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:08):

the original pusher

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:09):

I'd ever-so-slightly lean towards TVec still so far along the lines of "T for try" where the libstd methods are try_* so far

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:12):

I don't know why by TVec just feels weird to me. maybe because T is so often a type param

I think the least-worst choices IMO rn are

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:12):

I also didn't recoil as much as I thought I would at Xec

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:13):

lol we could also do Wec, WashMap, etc and if you use a polish pronunciation of "W" then it is the same as "vec"

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:13):

I'm feeling like leaning towards something small to demarcate these collections insofar as I'd rule out TryVec

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:13):

lol well the polish part doesn't work soo well for Wtring

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:13):

it really doesn't

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:14):

I think I might still lean more towards a prefix though

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:14):

and Q* seems fine by me

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:14):

QHashMap, QString, QVec, QIndexMap, ...

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:14):

QHashSet

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:15):

QPrimaryMap

view this post on Zulip Ramon Klass (Feb 13 2026 at 18:15):

shouldn't wec come before xec after vec? (sorry)

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:15):

QEntitySet

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:15):

XndexMap doesn't really work

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:15):

looks like xanax

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:15):

lol

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:15):

okay so QVec et al?

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:16):

my gut is _Vec, although I'm not wed to Q in particular there

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:16):

Q is a p cool letter

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:16):

Q sort of makes me think "qt vec"

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:16):

hrm

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:17):

Q feels not unreasonable to type though

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:17):

"double yoo" is just too long

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:17):

good point

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:17):

gotta have a single-syllable-letter...

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:17):

although that literally only rules out W

view this post on Zulip Alex Crichton (Feb 13 2026 at 18:17):

I'd say QVec

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:17):

never thought about that before

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:18):

okay lets go with Q

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 18:18):

it has a nice ring to it

view this post on Zulip Chris Fallin (Feb 13 2026 at 19:15):

I'm late to this convo but I'd second the "Q_ looks like Qt types" that could lead to confusion (that's certainly where my mind went). very bikeshed comment of me (but that's the thread, sorry!) but ZVec maybe? reminiscent of "zero" and embedded stuff somehow

view this post on Zulip Paul Osborne (Feb 13 2026 at 19:38):

Having done my time with Qt, I had the same thought @Chris Fallin but I do think the form makes sense. I've seen S prefixes for "safe" variants but don't love that either as safe has a very defined meaning in Rust already.

view this post on Zulip Alex Crichton (Feb 13 2026 at 19:44):

BVec for "bikeshed vec"

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 19:45):

BBTreeMap

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 19:45):

BsVec -- bikeshed vec

view this post on Zulip Alex Crichton (Feb 13 2026 at 19:46):

I'd agree though "safe" wouldn't be right for this in that both variants (libstd and fallible) are safe Rust-wise

view this post on Zulip Alex Crichton (Feb 13 2026 at 19:46):

I'm also loathe to acknowledge that Qt has a monopoly on Q-prefixed things in code...

view this post on Zulip Alex Crichton (Feb 13 2026 at 19:47):

not that I've ever done anything with or in Qt myself heh

view this post on Zulip Alex Crichton (Feb 13 2026 at 19:47):

KVec - "kernel suitable"

view this post on Zulip fitzgen (he/him) (Feb 13 2026 at 19:50):

that seems decent to me

view this post on Zulip Chris Fallin (Feb 13 2026 at 20:00):

my response is just... "K"

view this post on Zulip Chris Fallin (Feb 13 2026 at 20:00):

(seems fine!)

view this post on Zulip Christof Petig (Feb 13 2026 at 20:51):

:thinking: K is fine, the easily pronounceable Wa prefix has not been mentioned, yet ... WaVec reminds me more of Wasmtime than KVec.

view this post on Zulip Victor Adossi (Feb 14 2026 at 01:01):

It sounds like KVec is already the winner here, but allow me to offer some more paint buckets:

CheckedVec/CzechedVec
FVec ("F" for fallible)
AllocVec/AVec
OFVec ("OF" for "OOM Free")
OomfVec (personal favorite)

view this post on Zulip matt rice (Feb 17 2026 at 18:51):

I find the CzechedVechumorous, but would shorten it to CzVec,


Last updated: Feb 24 2026 at 04:36 UTC