Hacker News .hnnew | past | comments | ask | show | jobs | submit | kzrdude's commentslogin

We could tell, if someone did independent work of reviewing a sample of the contributions and recent changes (and published in a blog post for example).

I'm a programmer and even I like writing in a non-programmable environment. Programming in the document system just stimulates the more primitive parts of my brain that love the processing and programming more than the writing itself. So it's distracting in that way.

Claude models are usable through certain github copilot plans, so that's a counterexample, isn't it?

Good point but this forum leans heavily towards software, so we are used to the latter! I have worked close to IC development so had to learn and tangle with the former idea too, was interesting.

There's a massive wave of stuff, at least. Sorting it, is not easy.

What benefit does the lazy import have here - if we use the value in a type hint at module scope anyway? Would that require Deferred evaluation of annotations -- which I don't think are enabled by default?

Type annotations are lazily evaluated by moving them behind a special annotations scope as of 3.14:

https://peps.python.org/pep-0649/

https://docs.python.org/3/reference/compound_stmts.html#anno...

With 3.15, using lazy typing imports is more or less an alternative to putting such imports behind an "if TYPE_CHECKING" guard.


Ah, thanks for the update. My only check before asking was to check if the future feature for annotations had been enabled by default yet. It has then effectively been abandoned instead, I guess.

Yup, "from __future__ import annotations" will eventually be removed:

> from __future__ import annotations (PEP 563) will continue to exist with its current behavior at least until Python 3.13 reaches its end-of-life. Subsequently, it will be deprecated and eventually removed.


So the future behavior is deprecated before it ever became the default?

It was an abandoned path even before 3.10, it just took longer to implement 649 and 749 than they expected.

But this is a "...will continue to exist with its current behavior at least..." is an important bit there.

From pep-0749:

     Sometime after the last release that did not support PEP 649 semantics (expected to be 3.13) reaches its end-of-life, from __future__ import annotations is deprecated. Compiling any code that uses the future import will emit a DeprecationWarning. This will happen no sooner than the first release after Python 3.13 reaches its end-of-life, but the community may decide to wait longer.
It has a good overview of the history.

https://peps.python.org/pep-0749/


Correct. Before the "from __future__ import annotations" behavior that converts annotations to strings became the default, they figured out a better mechanism for circular type annotations (making them lazy) that is implicitly backwards compatible and that didn't need to be guarded behind a future statement.

Ironically, the new default behavior (making type annotation evaluation lazy) is not backwards compatible with the "from __future__ import annotations" behavior of converting annotations to strings, so they can't just rip out "from __future__ import annotations" and instead it needs to be deprecated and removed over multiple releases.

Oh, what tangled webs we weave! :-)


After the rise of Rust, it has gained more visibility? But some people were interested in C in this way long ago too, I used to hang out in some godforsaken irc channel where people competed in out-pedanticing each other over the C standard.

I trust your historical C usage was more productive than that..


AI is getting really useful, might be why

My go-to example of "UB is everywhere" is this one:

    int increment(int x) {
        return x + 1;
    }
Which is UB for certain values of x.

C23 removed the whole stuff about indeterminate value and trap representation. Underflow/overflow being silent or not is implementation defined.

Signed overflow is just undefined.

TBF that is the same as saying "signed overflow is UB".

yes but it is a 'picture' that makes you think about it in a different way.

As mentioned in another recent thread, that time is now.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: