8 ms·
Erlang/OTP 19.0 has been released
- andy_ppp 10y agoAmazing! Now how do I use Elixir 1.3 with the new Erlang VM?
- tuvistavie 10y agoYou just install the new Erlang VM, install Elixir 1.3, and that's it! Elixir 1.3 is compatible with Erlang 19, and will by default use the Erlang installation available on the path, so nothing to do in particular. If you want an easy way to install both, you can check asdf [1]. [1]: https://github.com/asdf-vm/asdf https://github.com/asdf-vm/asdf
- oomkiller 10y agoElixir is currently already compatible with Erlang 19. The work for adding support for the new features to Elixir is being worked on/tracked here: https://github.com/elixir-lang/elixir/issues/4617 https://github.com/elixir-lang/elixir/issues/4617
- im_down_w_otp 10y agogen_statem a new state machine behavior Very cool! For reasons not the least of which are the community involvement in its evolution. dialyzer: the support for maps is very much extended both the type specification syntax and the type analysis. OMG! Yes! Finally `maps` don't have to be a giant escape hatch in the type-checking system. Experimental support for Unix Domain Sockets Sweet tap-dancing Moses! This is awesome. I've wanted this for, so so so long. This should pave the way to all kinds of useful things. Better database clients, better Redis clients, more straightforward integration with things like libfiu and tcsd.
- _pmf_ 10y agoI cannot find the documentation for gen_statem anywhere; all I find is references to some specific examples.
- marianoguerra 10y agohttp://erldocs.com/current/stdlib/gen_statem.html?i=0&search=gen_statem#undefined http://erldocs.com/current/stdlib/gen_statem.html?i=0&search...
- _pmf_ 10y agoThank you!
- asabil 10y agoHere: http://erlang.org/doc/man/gen_statem.html http://erlang.org/doc/man/gen_statem.html
- _pmf_ 10y agoAh, thank you!
- im_down_w_otp 10y agoFrom the docs: "This is a new behavior in Erlang/OTP 19.0. It has been thoroughly reviewed, is stable enough to be used by at least two heavy OTP applications, and is here to stay. Depending on user feedback, we do not expect but can find it necessary to make minor not backward compatible changes into Erlang/OTP 20.0." It's honestly hard to overstate how excellent seeing that note is. It's a significant change in tone regarding community involvement in the design, structure, and implementation of core OTP components. It's really exciting to see. I can't help but see this as part of a halo-effect that originates in the inclusive and thriving community around Elixir. It really seems like both ecosystems are getting a lot from each other right now.
- 10y ago
- anfroid555 10y agoerlang:open_port(spawn, ...) 3-5 times faster mnesia_ext: plugin of external storage solutions to mnesia
- varg 10y agoAh nice! ..wonder if mnesia_ext is bundled with leveldb support?
- X4lldux 10y agoI'd rather have Bitcask or RocksDB - something that has better crash recovery capabilities. LevelDB was marked as being prone to data corruption. DETS has similar problems when not closed properly.
- biokoda 10y ago> LMDB was marked as being prone to data corruption Don't know where you got your information from, but LMDB is verified as the safest storage engine: https://www.usenix.org/conference/osdi14/technical-sessions/presentation/pillai https://www.usenix.org/conference/osdi14/technical-sessions/...
- X4lldux 10y agoSorry, I was thing about LevelDB. ANd yes, you are right about LMDB!
- rdtsc 10y agoDETS is supposed to repair itself on startup. I think most crash-only systems work that way (on startup, start reading from end and find last consistent bit and chop off the rest). But there could obviously been a bug there.
- X4lldux 10y agoI have a very modest experience with it, but when a crash happened it was game-over for it. Maybe I was doing something wrong.
- smegel 10y agoErlang is written in a ton of quite readable C and assembly. If you like delving into the internals of advanced software, it's well worth a read. Take the HiPe compiler for example: https://github.com/erlang/otp/tree/OTP-19.0/erts/emulator/hipe https://github.com/erlang/otp/tree/OTP-19.0/erts/emulator/hi... It deals with running native and interpreted program code together, just reading the comments gives you a feel for the kind of low level concepts that go into making such an interpreter. I like this one: /* * Native code calls an emulated-mode closure via a stub defined below. * * The closure is appended as the last actual parameter, and parameters * beyond the first few passed in registers are pushed onto the stack in * left-to-right order. * Hence, the location of the closure parameter only depends on the number * of parameters in registers, not the total number of parameters. */
- jbandela1 10y agoLooks like it has gotten a lot better than "Now for the tricky bit" days. See https://youtu.be/lKXe3HUG2l4?t=640 https://youtu.be/lKXe3HUG2l4?t=640
- brightball 10y agoEverything around the Erlang\Elixir ecosystem just seems to be in a dramatic climb these days.
- willyk 10y agototally agree, lots of activity/interest in NYC
- X4lldux 10y agoExciting two days in Elixir world! Elixir 1.3, Ecto 2.0, Erlang/OTP 19 - amazing!
- shritesh 10y agoPhoenix is hinting that 1.2 might drop too https://twitter.com/elixirphoenix/status/745265003775823872 https://twitter.com/elixirphoenix/status/745265003775823872
- brightball 10y agoSupposedly they were just waiting for Ecto 2 to be finalized before releasing.
- alxndr 10y agoaaaaand there it is! https://github.com/phoenixframework/phoenix/releases/tag/v1.2.0 https://github.com/phoenixframework/phoenix/releases/tag/v1....
- X4lldux 10y agoI'm soooo happy right now! :)
- desireco42 10y agoEcto is 2.0, awesome. Just was busy there days, didn't pay attention.
- rdtsc 10y ago* Like the gen_statem new state machine. * mnesia_ext : means a whole set of new possibilities to scale Mnesia. I think Klarna started that work and was using it in production. LevelDB was used for the backend. * 3-5x faster open_port means being able to start and execute external executables. Forking was basically moved to fork a special process as opposed to main VM. Tracing should be a lot faster as well. This is the one I mostly exciting. Been using tracing instead of adding log statement but if it is faster, it means can do more in production with it. Saw they have lttng as well. Also worth playing with. * Code loading is now parallelized. So hopefully startup should be faster. * Domain sockets. I know some people wanted this for ages. This should be nice. There were external project which did it, but it is nice to see it in the VM. * os:perf_counter/1 function. Probably a read out of rdtsc or such instruction. That should be fun to use. * ++ operator for lists now uses a single pass, so should be faster (before used to use another pass to check if list is proper). * Observer now has configurable update frequency and length for graph windows. I'll be using that. I like observer. Very impressive. Not a lot of 30 some year old languages make such kind of updates (yes Erlang is 30 years old this year, that is probably older than most HNers here).
- devbug 10y agoRegarding Klarna's work on LevelDB + ETS, there's this wonderful presentation given by Mikael: https://vimeo.com/132692834 https://vimeo.com/132692834 Here's the slides: http://www.erlang-factory.com/static/upload/media/143415340626199euc2015mnesialeveldb.pdf http://www.erlang-factory.com/static/upload/media/1434153406...
- rdtsc 10y agoVery nice. Thank you!
- lpgauth 10y agoWith `os:perf_counter/1` also comes msacc aka microstate accounting. Thanks @garazdawi :) http://erlang.org/documentation/doc-8.0-rc1/lib/runtime_tools-1.10/doc/html/msacc.html http://erlang.org/documentation/doc-8.0-rc1/lib/runtime_tool...
- tbrooks 10y agoAnd others think building on top of BEAM is risky... https://news.ycombinator.com/item?id=11946824 https://news.ycombinator.com/item?id=11946824
- lucidstack 10y agoI honestly don't get that comment. It quickly mentions that the BEAM hasn't got a bright future, and then goes on the qualities of Scala, and how Ruby was horrible. How does that contribute IN ANY WAY to a thread about a new version of Elixir being released? I'm not saying that what they say it's wrong, just tremendously out of context and unnecessary.
- willyk 10y agoFor anyone who's interested, we have some relevant community-run, regional conferences coming up in NYC next month: - Erlang Camp (Sat Jul 16), http://erlang.camp/ http://erlang.camp/ - Elixir Camp (Jul 15-17), http://elixircamp.io/ http://elixircamp.io/ - Phoenix Camp (Jul 15-17), http://nyc.phoenix.camp http://nyc.phoenix.camp - Nerves Camp (Sun Jul 17), http://nerves.camp/ http://nerves.camp/ We've got a good mix of speakers coming together and the conference open to all (with suggested donation pricing for tickets). We also still have a few session slots open if anyone wants to present (particularly around Erlang/OTP).