Bun: cgroup-aware AvailableParallelism / HardwareConcurrency on Linux
Comments
elffjs
himata4113
I had to take a moment to find out why all primitives in chrome were in the WTF namespace.
WTF is just kinda funny. Seen it used in loggers too log.wtf("this should never happen")
dboreham
That comment put my brain into an infinite loop for a while...
nevon
Anyone have ideas about what to do when using cgroup weights rather than max?
I'm currently in the process of removing cpu.max from our clusters, to allow applications to better utilize the available cpu time which currently is just being wasted. We will use cpu weights to make sure that cpu time is fairly allocated during contention, and to not oversubscribe the hosts, but I'm sure that among the thousands of applications that are running on those clusters today, many will be relying on cpu.max to size threadpools etc.
On the one hand, we do want applications to use the available cpu time, but at the same time they need to not kill themselves by running out of memory.
phplovesong
I had high hopes for Bun, but looks like it has gone down the shitter after they went all in on vibecoding.
loevborg
This was pre-Anthropic but the fact that Bun automatically loads .env files if they're present almost disqualifies it from most tasks https://github.com/oven-sh/bun/issues/23967
It makes it hard to take them too seriously with such a design choice - a footgun really. It's so easy to accidentally load secrets via environment variables, with no way to disable this anti-feature.
rvz
Damn. That one is absolutely horrific.
What a find.
gear54rus
Any specific links to problems? I was planning to start a new project on it :(
phplovesong
Deno is solid. Or just use nodejs, it got many of the features deno/bun originally shipped with. No matter how you slice it, node is still the defacto server side JS runtime.
pjmlp
Anthropic acquisition, what do you expect as outcome?
gear54rus
Best case is they throw their endless amount of paper at it without touching it. At least something useful comes out of this AI crap then. One can dream.
hu3
I still have high praises since one of my clients use it in production.
I personally use it's tooling part which is screamingly fast.
pier25
it's been flawless for me
embedding-shape
That's maybe more worrisome, everything has tradeoffs, if you don't know them yet, search for them :)
pier25
It's worse to assume something is completely broken and anyone who has had a good experience with it to be an ignorant.
I know the tradeoffs. For me it's way better than Node. Especially given the campaign targeting Node devs.
https://socket.dev/blog/attackers-hunting-high-impact-nodejs...
embedding-shape
> It's worse to assume something is completely broken and anyone who has had a good experience with it to be an ignorant.
About the same, regardless, truth usually sits somewhere in the middle :)
> I know the tradeoffs
No harm no foul then, "it's been flawless for me" certainly gave me a different impression, but I guess as long as we all find the tools that work for us.
pier25
Well I certainly didn't say "it's flawless" :)
saagarjha
I feel like https://github.com/oven-sh/WebKit/commit/35315978baee84ed1bd... is the more interesting commit tbh
jasdfwasd
> p = (char*)"";
yikes
lioeters
I thought that was a typo or the forum software removed something, but no - it's a pointer to an empty string literal. If I understand how that works, this creates a null byte (in the read-only memory section of the compiled output?) and points to it. Before this line it checks if p is NULL.
I wonder what is the advantage of doing this? Maybe to make sure that p is an actual pointer, so later code can just make that assumption.
lokar
Yeah, it simplifies later code, and is safer in the face of future changes.
Or put another way, it tightens the API/contract of that chunk of code to always return a valid string.
lioeters
That makes sense, with that "guard" at the top, the rest of the function can return the pointer anywhere. And I imagine the compiler will ensure the empty string literal is created only once. Good to know!
rcxdude
it would be better to make p a const char* though, so that the code is not casting away the constness of the string literal (which can invoke undefined behaviour, though in practice string literals are going to be in a read-only area of memory anyway).
boomskats
Haha, did I just hear someone whisper GOMAXPROCS?
Something from the PR description that I had to look up to understand: "WTF" is "WebKit Template Framework".