Eigenstate: myrddin-dev mailing list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Release 0.3: Stand Back, We're Proffesionals.


So, I think you need to add a 'pre { overflow-x: auto; }' to your CSS or something...

Attached is an image showing the problem.


On June 29, 2018 9:33:47 PM Ori Bernstein <ori@xxxxxxxxxxxxxx> wrote:

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

Attachment: Screenshot_20180629-215002.png
Description: PNG image


Follow-Ups:
Re: Release 0.3: Stand Back, We're Proffesionals.Ori Bernstein <ori@xxxxxxxxxxxxxx>
References:
Release 0.3: Stand Back, We're Proffesionals.Ori Bernstein <ori@xxxxxxxxxxxxxx>