Release 0.3: Stand Back, We're Proffesionals.
[Thread Prev] | [Thread Next]
- Subject: Release 0.3: Stand Back, We're Proffesionals.
- From: Ori Bernstein <ori@xxxxxxxxxxxxxx>
- Reply-to: myrddin-dev@xxxxxxxxxxxxxx
- Date: Fri, 29 Jun 2018 19:33:40 -0700
- To: myrddin-dev@xxxxxxxxxxxxxx
To quote the website, minus the detailed descriptions that people have already posted on this list: Thanks to everyone for the help, bug reports, patches, and everything else! Downloading ----------- The release has been tagged with r0.3.0 in git. If you want a tarball, you can get it from here: - https://myrlang.org/releases/myrddin-0.3.0.tar.bz2 - https://myrlang.org/releases/myrddin-0.3.0.tar.gz - https://myrlang.org/releases/myrddin-0.3.0.tar.xz Major Highlights since 0.2 -------------------------- Lots of churn. The bulk of the code size increase has been adding tests for many of our libraries. $ git diff --stat r0.2.2..HEAD | tail -n 1 322 files changed, 34451 insertions(+), 3860 deletions(-) $ git log r0.2.2..HEAD --pretty=oneline | wc -l 359 - The 'in' token has been removed fully. Now, `for elt in seq` is invalid syntax: it must be written as `for elt : seq`. This frees up a useful variable name. - A `default.nix` has been added for building on systems. - Many language bugs have been fixed, including trait issues, thanks to lgv. - Traits should work far more reliably. - We should be more agressive about flagging uses of uninitialized variables. - Linking against C works on OpenBSD - Several language features have been added - Enums should be slightly cheaper (thanks, mpu) - Auto declarations are now supported. - You can use `==` on enum style unions - Many library bugs have been fixed, covering everything from the memory allocator, through to dealing with packet loss correctly in the DNS resolver. - Mbld is a bit smarter in several ways. - It knows when the compiler or libraries changed, so it will now rebuild your myrddin install changes. This prevents some mysterious build failures around mismatched library versions. - mbld now outputs to `obj/` instead of the current working directory, leading to cleaner builds. - mbld knows how to run subsets of tests. - Several new CPU type tags are set by default. - Several new libraries have been added, most notably: - [libmath](https://git.eigenstate.org/ori/mc.git/tree/lib/math), which implements several floating point functions of interest from scratch. - [libflate](https://git.eigenstate.org/ori/mc.git/tree/lib/flate), which implements gzip compression/decompression. - Several existing ones have been significantly improved. - Libthread is now usable on OSX, thanks to the work of iriri. It also now uses futexes on OpenBSD, significantly improving its performance and behavior. - Several threading bugs have been fixed in libstd, largely focused around forking and execing in a threaded program. - Pledge has been added to libstd. It's invokes pledge on OpenBSD, and is a no-op on deficient platforms. - Constant time RSA has been implemented in libcrypto, following the lead of BearSSL - AES GCM mode is now implemented in libcrypto. - SHA HMAC functions are now implemented in libcrypto. - Libbio now has a vtable, and therefore can be used to buffer any stream of data. - Others have been less significantly improved. - Integers can be printed in any base. - std.put now will allow printing arbitrary binary data, instead of just unicode. - Libstd now counts graphemes instead of simply counting codepoints when outputting text. - Libtermdraw also counts graphemes instead of codepoints. - Regex has been sped up by several times. - libfileutil has had several API signatures changed, and now has code to remove file trees recursively. - IPv6 is now fully supported. - The size of generated binaries is now smaller, thanks to enabling `--gc-sections` by default on platforms that support it. - Dependent system tags can now be defined. - Several new APIs have been added, including: - Support for OpenBSD 6.3 (from 0.2.2) Breaking changes ---------------- - Auto variables have been removed in favor of the auto operator. - Trait syntax has been changed, in order to reduce repetition and allow for auxiliary types to be attached to traits. - The earlier `for, in` change. - libbio now returns `std.result(@t, bio.err)` instead of a custom `bio.status(@t)` type. - Hash tables now use traits instead of callbacks, meaning that all hash tables using `std.mkht(hashfn, cmpfn)` need to be replaced with `std.mkht()`. The types should be inferred appropriately in most cases. - The various equality checking functions have been removed in favor of trait overloading `std.eq`. - Several iterators have been moved out of libstd and into libiter -- Ori Bernstein
Re: Release 0.3: Stand Back, We're Proffesionals. | James Turner <james@xxxxxxxxxxxxxxx> |
Re: Release 0.3: Stand Back, We're Proffesionals. | Ryan Gonzalez <rymg19@xxxxxxxxx> |
Re: Release 0.3: Stand Back, We're Proffesionals. | Adrian Perez de Castro <aperez@xxxxxxxxxx> |
- Prev by Date: Tentative Tarballs: The Musical.
- Next by Date: Re: Release 0.3: Stand Back, We're Proffesionals.
- Previous by thread: Tentative Tarballs: The Musical.
- Next by thread: Re: Release 0.3: Stand Back, We're Proffesionals.
- Index(es):