kjaer
Joined 10 years ago
Joined 10 years ago
if (looping.mode === "off") {
// If you waited for a day, you deserve to see this workaround...
// Since there is no way to not loop a gif using gifwrap,
// let's just put a reeeeaaaaallly long delay after the last frame.
return 8640000;
}> Over time, the runtime system itself tends to become a complex, monolithic piece of software, with extensive use of locks, condition variables, timers, thread pools, and other arcana.
I'm not an expert on this, but my understanding is that the problem that algebraic effects tries to solve is to improve language semantics to make it easier to separate different levels of abstraction (e.g. separating the what from the how), while also encoding the performed effects into the type system.
[1]: https://dotty.epfl.ch/docs/reference/contextual/motivation.h...
[2]: https://dotty.epfl.ch/docs/reference/dropped-features/macros...
Both projects aim to compile to native code, and have use-cases for projects where the JVM startup time is too high. However, one of the main goals of Native Image is to offer as much partial evaluation (PE) at compile-time as possible. Scala Native does also seem to do some PE, but my understanding is that it's less than what Native Image does. However, Scala Native has the advantage of working on a representation of the source code instead of the byte code, and may therefore be able to do certain Scala-specific optimizations that would be more difficult for Native Image.
I think different projects may find that either one or the other project may be more suitable to their needs, so I think both projects can coexist.
http://dotty.epfl.ch/docs/reference/metaprogramming/inline.h...
This effectively makes it possible to have a limited form of partial evaluation.
There's also an ongoing video series called "Let's talk about Scala 3" by the Scala Center and 47 Degrees [2], which are more in-depth on certain topics, but still quite beginner-friendly. Especially the video on setting up a development environment, and the video on Scala 3's data structures might be good introductions.
[1]: https://docs.scala-lang.org/scala3/book/introduction.html [2]: https://www.youtube.com/watch?v=j-H6LSv2z_8&list=PLTx-VKTe8y...
The Arch wiki page[1] has been tremendously helpful in getting set up. However, I think the length of the article goes some way toward showing that compatibility is far from perfect.
The trackpad / NFC issues seem to only be present on laptops with NFC behind the trackpad, so my recommendation would be to avoid that one if it's possible to get a similar model without.
[1]: https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carb...