Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Pricing

Pablo Galindo

👤 Person
238 total appearances

Appearances Over Time

Podcast Appearances

We'll see. We cannot answer that. We cannot answer that. We don't know. So we're in the stage of... So actually, this is an important thing, by the way, which I don't think we have mentioned. This, in 3.13, indeed, there is a build of Python that will not have the Glow interpreted log, but you don't get it by default. You need to manually compile Python.

We'll see. We cannot answer that. We cannot answer that. We don't know. So we're in the stage of... So actually, this is an important thing, by the way, which I don't think we have mentioned. This, in 3.13, indeed, there is a build of Python that will not have the Glow interpreted log, but you don't get it by default. You need to manually compile Python.

I mean, there is people that are already distributing Python with this, so probably you don't need to manually do it. Like, you can fetch it from your distribution probably.

I mean, there is people that are already distributing Python with this, so probably you don't need to manually do it. Like, you can fetch it from your distribution probably.

Yes, exactly. But it's not the normal one. Like, if you install Python 3.13, it has the guild.

Yes, exactly. But it's not the normal one. Like, if you install Python 3.13, it has the guild.

Yes, you need to, it's actually called Python 313T. T. Or 43. Whatever. It's just the way it is. Sure. It's free-threaded. So you need to run that. And with that build, you can actually select a runtime only with that one. You can select a runtime if you want the guild or not.

Yes, you need to, it's actually called Python 313T. T. Or 43. Whatever. It's just the way it is. Sure. It's free-threaded. So you need to run that. And with that build, you can actually select a runtime only with that one. You can select a runtime if you want the guild or not.

And this is very useful in case you want to try the performance difference or because you want to, like imagine, for instance, you are doing one of these libraries and you want to test if your library works with and without but you don't want to run your CI with two builds or whatever. So you can do it.

And this is very useful in case you want to try the performance difference or because you want to, like imagine, for instance, you are doing one of these libraries and you want to test if your library works with and without but you don't want to run your CI with two builds or whatever. So you can do it.

There are consequences of this because, for instance, in Python over the years, we have added a lot of new optimizations. Like, for instance, one of the things that I think Lucas was missing on the reason Python is slow is that apart from this whole new direction, and it's actually part of the reason, but is that it's dynamic, right? Like, so this is very important.

There are consequences of this because, for instance, in Python over the years, we have added a lot of new optimizations. Like, for instance, one of the things that I think Lucas was missing on the reason Python is slow is that apart from this whole new direction, and it's actually part of the reason, but is that it's dynamic, right? Like, so this is very important.

Like, if you are adding two variables, x and y, the interpreter is going to say, what is x? Oh, x is an integer. Okay, let me fix the code for adding integers. Okay, what is y? Oh, it's an integer. Okay, let me fix the code. Okay. And then the next iteration of the loop is going to say the same thing. What is x?

Like, if you are adding two variables, x and y, the interpreter is going to say, what is x? Oh, x is an integer. Okay, let me fix the code for adding integers. Okay, what is y? Oh, it's an integer. Okay, let me fix the code. Okay. And then the next iteration of the loop is going to say the same thing. What is x?

So, like, it's very annoying compared to just, like, you know, here's a bunch of bytes, and I'm going to add this to this bunch of bytes because I know what they are, right? So in this particular case, precisely to avoid this dynamism, we have added a lot of optimizations that try to find this pattern. So they say, okay, you're adding these two variables together.

So, like, it's very annoying compared to just, like, you know, here's a bunch of bytes, and I'm going to add this to this bunch of bytes because I know what they are, right? So in this particular case, precisely to avoid this dynamism, we have added a lot of optimizations that try to find this pattern. So they say, okay, you're adding these two variables together.

But, you know, the last 3,000 times I have seen this addition, they were integer. So, you know, it's kind of a good chance that they are integers the next time. So I'm going to create this like super performance code that is going to just reach into the internals of the integer object in Python. It's going to grab the real integer and it's going to add it at CSP.

But, you know, the last 3,000 times I have seen this addition, they were integer. So, you know, it's kind of a good chance that they are integers the next time. So I'm going to create this like super performance code that is going to just reach into the internals of the integer object in Python. It's going to grab the real integer and it's going to add it at CSP.

It's going to get the result without asking all these stupid questions and then it's going to box it again into a Python object. And it's much faster. You can still have a float suddenly and it will de-optimize and whatnot, but that is a good problem. All those optimizations don't work without the GIL because they're not thread-safe.

It's going to get the result without asking all these stupid questions and then it's going to box it again into a Python object. And it's much faster. You can still have a float suddenly and it will de-optimize and whatnot, but that is a good problem. All those optimizations don't work without the GIL because they're not thread-safe.