Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
micmus
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
8 ms
·
1.
▲
by
micmus
4y ago
The type checker from WhatsApp is open sourced and actively used. See https://github.com/WhatsApp/eqwalizer
2.
▲
by
micmus
6y ago
In general I would say there's no good single book or resource that describes everything comprehensively. There's a lot of resources, though, but mostly scattered in various places. The BEAM Book [1] is a good, though unfinished r
3.
▲
by
micmus
6y ago
I would say it's mostly that nobody optimized it (perhaps yet) for that environment. There's generally nothing inherently slow in the VM boot sequence - it's just that this was not a priority, so it's slow. There are som
4.
▲
Elixir v1.10
(elixir-lang.org)
364 points
by
micmus
7y ago
|
138 comments
5.
▲
by
micmus
7y ago
That's probably not true in the recent versions - in OTP 20 the zlib integration was reworked and is now based on NIFs (similar to Java's JNI) instead of port drivers.
6.
▲
by
micmus
7y ago
Given that NumPy is implemented in C and only with bindings to Python, you can do exactly the same on the BEAM and indeed it exists (though not widely used): https://github.com/versilov/matrex
7.
▲
by
micmus
8y ago
"Erlang Abstract Form" is just a fancy name for an AST - a representation of the Erlang syntax in terms of Erlang data structures.
8.
▲
by
micmus
9y ago
I can't stress how important that is. We have about 1.5k tests in our Phoenix app and they almost all hit the database - they run in 30 seconds. I compare this to a Rails app where 1k tests run 8 minutes. Having a fast test suite makes
9.
▲
by
micmus
9y ago
Absinthe is completely separate from that project. I think the whole community effort is around Absinthe at the moment and it's shaping into a great library. There's also a PragProg book coming out in Autumn "Craft GraphQL A
10.
▲
by
micmus
9y ago
Yes. That's not changed. All NIFs (regular or dirty ones) are executed directly in the context of the VM. A safe option would be a port - a regular program where you communicate through stdin/stdout. Ports allow representing such
11.
▲
by
micmus
9y ago
Dirty schedules are about functions implemented in C - called NIFs (Native Implemented Functions) - a sort of FFI you'd find in most languages. Because of preemptive nature of Erlang, doing lengthy work in those functions can destabili
12.
▲
by
micmus
10y ago
Elixir's EEx templating engine compiles templates into plain elixir functions, which makes the templates really fast.
13.
▲
by
micmus
10y ago
Erlang has a per-process GC - each Erlang process has it's own heap and it's own garbage collector. There's no VM-wide GC. This usually means the GC pauses apply only to a small part of your system, while the other parts are