Releases: typelead/eta
[Minor Release] Eta v0.8.6b5
This release contains support for Java 9 and above and includes some bug fixes.
See the commentary in the issues below for more details:
-
#648 - A minor code generation improvement that avoids off-heap allocations for constant strings.
-
#943 - Finally adds support for Java 9, 10, and 11.
-
#942 - Code generation improvement that avoids overflowing the constant pool for large code files (2k+ lines).
-
#947 - Fixes a bug that causes invalid paths to be generated for temporary files resulting in runtime exceptions. (@mgsloan)
Thanks to @jneira and @GordonBGood for documentation improvements (#561, #935, #936).
In addition, thanks to all the people who have filed detailed issues and all our wonderful community members and users.
[Minor Release] Eta v0.8.6b4
This release contains major performance improvements and several bug fixes.
Eta has suffered from some space leaks in programs that make heavy use of laziness to the point where it can potentially cause the GC to hang. We not only fixed this problem in general by implementing thunk clearing, but we also implemented an optimization we didn't have before - the selector thunk optimization which is an absolute requirement for any lazy language to be practical.
See the commentary in the issues below for more details:
-
#517 - Implements selector thunk optimization
-
#907 - Fixes a bug with foreign exports involving generics and arrays
-
#916 - Fixes a bug with file locking on Windows which causes spurious "resource busy" exceptions.
-
#919 - Fixes a bug where pattern splices via Template Metaprogramming were causing compiler panics.
-
#927 - Fixes a bug with importing multidimensional Java arrays into Eta
Thanks to all the people who have filed detailed issues and all our wonderful community members and users.
[Minor Release] Eta v0.8.6b3
This release primarily contains bug fixes.
The relevant issues are linked below with brief descriptions of what they entail:
#878 - Fixes a severe bug with floating point operations in Eta.
#891, #897 - Fixes a bug with categorizing Unicode characters in the GHC.Unicode
module in base
.
#893 - Fixes a bug with using <:
constraints in foreign export declarations.
#896 - Fixed a bug with the trampoline
function that makes it fail for values.
#898 - Support supplementary Unicode character literals
#913 - Relaxes case restriction for type constructors since their names won't appear in generated code.
#915 - Fixes a bug that caused ClosedByInterruptException
to be thrown spuriously.
Thanks to all the contributors who have contributed to this release:
Thanks to all the people who have filed detailed issues and all our wonderful community members and users.
Eta v0.8.6b2
What's in the v0.8.6b2 release
1) REPL Upgrades
- Printing non-Showable Values
- Saving Evaluation History
2) CPU Usage Fix
It was reported that the CPU usage was over 100% when idle (#839, #862, etlas #69 ). We fixed this problem by doing a small refactor of the RTS. Now the usage is down to < 1% when idle.
Eta v0.8.6
Eta v0.8.6
Reproducible builds
Eta now supports reproducibility by default. If you need details on how to see this in action, check out this gist.
Base-4.11.1.0
We've upgraded to base-4.11.1.0
to support the newer hackage packages.
Backpack
In order to support better extensibility at compile-time while keeping good performance we took sometime to port Backpack into Eta.
Language Extensions
Eta now supports ApplicativeDo
, Strict
, and StrictData
language extensions.
Library Stabilizations
Servant, Scotty, Spock, Yesod, and Warp work in Eta.
Better Nix Builds
For more information check out this page
Pattern Match Checking
We’ve backported GHC 8’s pattern match checker which performs intelligent exhaustiveness checking, especially for GADTs.
Warning Messages
Warnings now give a proper context showing you exactly which flags enable the warning in the first place, making day-to-day usage a bit smoother.
Major Bug Fixes
- Concurrent Runtime: We did a stress test on a simple Warp server by flooding it with requests to see whether there were any concurrent bugs we needed to fix. We found a few and the fixes are included in this release. There are currently known issues with Eta apps hogging the CPU, which will be fixed by the next release.
- Memory Manager: The memory manager is part of the runtime responsible for allocating off-heap memory. There were some concurrent bugs discovered and fixed in this release.
- StackOverflowErrors: In the process of making PureScript work with Eta we discovered some gaps in our trampolining mechanism. We fixed those allowing you to use the trampoline function to handle a wider class of StackOverflowErrors.
- TemplateHaskell: They were several minor bugs in TemplateHaskell that lead to strange type errors. These have been fixed in this release.
For more details on this release check out the blog post.
v0.7.0b2
Compiler
- Fixed an FFI bug where the wrong class was being generated for a method call in generic class causing method not found exceptions at runtime. (@rahulmutt)
- (#603, #610) Fixed a bug in which let-no-escape bindings were being passed arguments in the wrong order causing unexpected (but exception-free) behavior at runtime. (@jarekratajski)
- (#609, #622) Accurately track relinking state of java inputs to the compiler. (@jneira)
Runtime
- Improve performance of
eta.runtime.io.MutVar.set()
by usinglazySet
to avoid a volatile write sinceMutVar
provides no concurrency guarantees. (@rahulmutt) - (#628) When deferencing an address to a ByteBuffer, return an empty buffer when the input is a null address. (@jneira)
Documentation
- (#615, #620) Update the etlas init dialogue and fixed the Java code adding an exception throwing signature. (@y-taka-23)