News for hackers. Stuff that matters.
Re:The Rust I wanted had no future by hayley-patton on Monday June 05, 2023 @06:09AM (#36194389)
There are type systems which can track complexity (e.g. http://gallium.inria.fr/~fpottier/slides/fpottier-2011-01-jf...) but that's still different to performance; async/sync tells us things like "touches disk" or "touches network" but not "O(2^n) might take a really long time".

Alternately, an effect system can communicate "touches disk", can make functions which are polymorphic to effects (e.g. map touches the disk if the mapping function touches the disk), and can distinguish different effects, unlike async/sync being anything-or-nothing. IMO async is more of an implementation detail (as "may suspend/yield" is not a very precise or interesting effect), whereas effects would communicate the properties that ohgodplsno wants to know.

Re:The Rust I wanted had no future by mike_hearn on Monday June 05, 2023 @06:33AM (#36194549)
Yes, but are there any effects systems in use outside of maybe Haskell? Effects seem mostly to be stuck in the research lab and have been for a long time.
Re:The Rust I wanted had no future by hayley-patton on Monday June 05, 2023 @06:37AM (#36194566)
I don't mean "effects" in the sense where you can have effect handlers which get delimited continuations and all; it'd just mark what could happen (like checked exceptions). But I can't think of any languages with that and not effect handlers; Koka, Eff, and Unison come to mind for effects, though their practical-ness may vary.
Re:The Rust I wanted had no future by zozbot234 on Monday June 05, 2023 @07:09AM (#36194761)
Do you really need effect handlers as a separate feature once you have async/await? It seems like you could easily encode one with the other.
Re:The Rust I wanted had no future by hayley-patton on Monday June 05, 2023 @09:48AM (#36196159)
An effect handler is allowed to invoke a continuation multiple times; I believe this is not possible with async/await.
Re:The Rust I wanted had no future by ohgodplsno on Monday June 05, 2023 @07:13AM (#36194792)
Verse has effects, which by virtue of exposing it to the entire Fortnite community probably makes it a bigger language than Haskell in terms of user counts.

https://dev.epicgames.com/documentation/en-us/uefn/specifier...

converges/diverges, computes, varies, reads, writes, transacts, no_rollback.