Conrad Irwin
๐ค SpeakerAppearances Over Time
Podcast Appearances
I would say we very much are on the rebuild side of the spectrum. So there have been a lot of things where we haven't used what's out there. I think the other big one is Tokyo. So Tokyo has its own async runtime. But on macOS, it's not main thread aware. And macOS has a whole bunch of cool scheduling stuff to do when you have...
I would say we very much are on the rebuild side of the spectrum. So there have been a lot of things where we haven't used what's out there. I think the other big one is Tokyo. So Tokyo has its own async runtime. But on macOS, it's not main thread aware. And macOS has a whole bunch of cool scheduling stuff to do when you have...
I would say we very much are on the rebuild side of the spectrum. So there have been a lot of things where we haven't used what's out there. I think the other big one is Tokyo. So Tokyo has its own async runtime. But on macOS, it's not main thread aware. And macOS has a whole bunch of cool scheduling stuff to do when you have...
a graphical app so there's kind of a specific thread that coco knows okay like regardless of how busy the system is like we're going to keep this thread running because it's visible to the user and so we wanted to be able to hook into that system and so we have our own async runtime that's not tokyo but but kind of works works in that more ui based way of like if you want ui updates you have to be on the main thread otherwise you have to be on a background thread and we have a bunch of helpers to make sure that your code is always running on the thread you expect
a graphical app so there's kind of a specific thread that coco knows okay like regardless of how busy the system is like we're going to keep this thread running because it's visible to the user and so we wanted to be able to hook into that system and so we have our own async runtime that's not tokyo but but kind of works works in that more ui based way of like if you want ui updates you have to be on the main thread otherwise you have to be on a background thread and we have a bunch of helpers to make sure that your code is always running on the thread you expect
a graphical app so there's kind of a specific thread that coco knows okay like regardless of how busy the system is like we're going to keep this thread running because it's visible to the user and so we wanted to be able to hook into that system and so we have our own async runtime that's not tokyo but but kind of works works in that more ui based way of like if you want ui updates you have to be on the main thread otherwise you have to be on a background thread and we have a bunch of helpers to make sure that your code is always running on the thread you expect
We don't use the runtimes for Tokyo or Small. I think we use a bunch of the helper stuff from them. But I know that was a push to get rid of Small because it's like, well, we don't really need anything from here. But that's kind of where the Rust ecosystem stuff comes in. It's a very big ecosystem with a whole bunch of stuff in it.
We don't use the runtimes for Tokyo or Small. I think we use a bunch of the helper stuff from them. But I know that was a push to get rid of Small because it's like, well, we don't really need anything from here. But that's kind of where the Rust ecosystem stuff comes in. It's a very big ecosystem with a whole bunch of stuff in it.
We don't use the runtimes for Tokyo or Small. I think we use a bunch of the helper stuff from them. But I know that was a push to get rid of Small because it's like, well, we don't really need anything from here. But that's kind of where the Rust ecosystem stuff comes in. It's a very big ecosystem with a whole bunch of stuff in it.
And so it's very easy to end up with a small dependency on these things through someone else, even if we're not using the main parts of their libraries.
And so it's very easy to end up with a small dependency on these things through someone else, even if we're not using the main parts of their libraries.
And so it's very easy to end up with a small dependency on these things through someone else, even if we're not using the main parts of their libraries.
I think we actually did. I was trying to look it up. It was something we were trying to do. And so we took that piece of GPUI and split it out into a separate crate. But I'm now looking, and I can't see it within 10 seconds. So I'll have to look it up after this and find it.
I think we actually did. I was trying to look it up. It was something we were trying to do. And so we took that piece of GPUI and split it out into a separate crate. But I'm now looking, and I can't see it within 10 seconds. So I'll have to look it up after this and find it.
I think we actually did. I was trying to look it up. It was something we were trying to do. And so we took that piece of GPUI and split it out into a separate crate. But I'm now looking, and I can't see it within 10 seconds. So I'll have to look it up after this and find it.
A little side story. We're using a really old HTTP client right now called ISHC, which was very popular four or five years ago. And the reason we're using it is it's the only one that lets you plug and play the async runtime.
A little side story. We're using a really old HTTP client right now called ISHC, which was very popular four or five years ago. And the reason we're using it is it's the only one that lets you plug and play the async runtime.
A little side story. We're using a really old HTTP client right now called ISHC, which was very popular four or five years ago. And the reason we're using it is it's the only one that lets you plug and play the async runtime.
And so I really like the idea of having this kind of diverse set of async runtimes, but there seems to be some kind of... The abstraction is not in quite the right place, because it seems like if you're building something, you can't just say, oh, give me any async runtime. That's not as easy to do as it is to say, okay, we'll just use Tokyo. So that one seems to be landing on right now.
And so I really like the idea of having this kind of diverse set of async runtimes, but there seems to be some kind of... The abstraction is not in quite the right place, because it seems like if you're building something, you can't just say, oh, give me any async runtime. That's not as easy to do as it is to say, okay, we'll just use Tokyo. So that one seems to be landing on right now.