Conrad Irwin
๐ค PersonAppearances Over Time
Podcast Appearances
But obviously often you want to be able to refer back up the tree of like, okay, I'm an editor, but I know I'm rendered inside a pane or I know I'm rendered inside something else. And so we have a system of kind of strong pointers and weak pointers. And that works pretty well for avoiding it.
But obviously often you want to be able to refer back up the tree of like, okay, I'm an editor, but I know I'm rendered inside a pane or I know I'm rendered inside something else. And so we have a system of kind of strong pointers and weak pointers. And that works pretty well for avoiding it.
But it is one area where I wish the compiler was better because it can't tell you, hey, you have a smart pointer cycle, right? It's like you have two strong pointers in each direction. But as long as you're somewhat careful to maintain the order in your head, it's mostly fine. And we don't really have that many problems with memory leaks, at least none that we found yet.
But it is one area where I wish the compiler was better because it can't tell you, hey, you have a smart pointer cycle, right? It's like you have two strong pointers in each direction. But as long as you're somewhat careful to maintain the order in your head, it's mostly fine. And we don't really have that many problems with memory leaks, at least none that we found yet.
But it is one area where I wish the compiler was better because it can't tell you, hey, you have a smart pointer cycle, right? It's like you have two strong pointers in each direction. But as long as you're somewhat careful to maintain the order in your head, it's mostly fine. And we don't really have that many problems with memory leaks, at least none that we found yet.
Yes. So we have a whole bunch of smart pointers for view components because we need to be able to reference them from the renderer and also from the view tree. And so they need to be kind of like an arc reference from multiple places. We don't use an arc directly. Instead, we have our own wrapper around it that's a little bit more type safe for some things.
Yes. So we have a whole bunch of smart pointers for view components because we need to be able to reference them from the renderer and also from the view tree. And so they need to be kind of like an arc reference from multiple places. We don't use an arc directly. Instead, we have our own wrapper around it that's a little bit more type safe for some things.
Yes. So we have a whole bunch of smart pointers for view components because we need to be able to reference them from the renderer and also from the view tree. And so they need to be kind of like an arc reference from multiple places. We don't use an arc directly. Instead, we have our own wrapper around it that's a little bit more type safe for some things.
And so if you do have things like a double bar, you get a panic instead of a compile time check. And so it would be nice if the compiler supported that, but I understand why it doesn't.
And so if you do have things like a double bar, you get a panic instead of a compile time check. And so it would be nice if the compiler supported that, but I understand why it doesn't.
And so if you do have things like a double bar, you get a panic instead of a compile time check. And so it would be nice if the compiler supported that, but I understand why it doesn't.
So the framework gives you, it calls them a view, and you can read it or update it, just like kind of an ArcMutex. What's nice about the view is it supports a bunch of other things. So a view can be rendered, a view can be converted into kind of like a black box, any view that the renderer can deal with.
So the framework gives you, it calls them a view, and you can read it or update it, just like kind of an ArcMutex. What's nice about the view is it supports a bunch of other things. So a view can be rendered, a view can be converted into kind of like a black box, any view that the renderer can deal with.
So the framework gives you, it calls them a view, and you can read it or update it, just like kind of an ArcMutex. What's nice about the view is it supports a bunch of other things. So a view can be rendered, a view can be converted into kind of like a black box, any view that the renderer can deal with.
And so, you know, when you're given a view handle, like there are some things you can do with it. It's not just a knock around an arbitrary struct.
And so, you know, when you're given a view handle, like there are some things you can do with it. It's not just a knock around an arbitrary struct.
And so, you know, when you're given a view handle, like there are some things you can do with it. It's not just a knock around an arbitrary struct.
Yeah, I mean, yes, but. So if you're using GPUI to build an app, you definitely would use it. And it gives you the whole suite of tools. If you were just trying to pull out bits of GPUI on its own, that's probably not a bit I would pull out, just because it's so tied into the rendering system, if that makes sense.
Yeah, I mean, yes, but. So if you're using GPUI to build an app, you definitely would use it. And it gives you the whole suite of tools. If you were just trying to pull out bits of GPUI on its own, that's probably not a bit I would pull out, just because it's so tied into the rendering system, if that makes sense.
Yeah, I mean, yes, but. So if you're using GPUI to build an app, you definitely would use it. And it gives you the whole suite of tools. If you were just trying to pull out bits of GPUI on its own, that's probably not a bit I would pull out, just because it's so tied into the rendering system, if that makes sense.