Twitter | Pretraživanje | |
Michał Muskała
Software engineer, speaker, trainer, open source. Erlang, Elixir, Ruby. he/him 🏳️‍🌈
1.763
Tweetovi
504
Pratim
2.984
Osobe koje vas prate
Tweetovi
Michał Muskała 21 min
Odgovor korisniku/ci @sasajuric @devoncestes
Yes, but it needs to be done manually, by default every function - native or not - is equal.
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 42 min
Odgovor korisniku/ci @devoncestes
Just to complicate things more, this is not what BEAM is actually executing 😉 when a module is loaded, instructions are specialised and transformed to fit better into the VM. The bytecode in files is more of an interchange format between compiler & runtime
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 44 min
Odgovor korisniku/ci @devoncestes
To make it more complex not all operations take the same amount of time either. Reductions are less a measure of anything, more a mechanism to ensure that process is evantually made at some point
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 45 min
Odgovor korisniku/ci @devoncestes
By operation I mean bytecode/opcode - names differ. For example an operation can be extracting an element from a tuple, another would be comparing the element to something, another could be checking if a value is a list, and many, many more.
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 6 h
Odgovor korisniku/ci @sasajuric @devoncestes
They are generally treated as any other function call, so one reduction on call & one on return. There are extra APIs to consume more if your function is doing more work
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 18 h
Odgovor korisniku/ci @devoncestes
A reduction is counted on every function call and return. It's only a approximate measure of performance - you can in theory do arbitrarily many operations inside the function, though in practice that's limited by the fact that erlang doesn't have loops.
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 1. velj
Odgovor korisniku/ci @antonpaisov
We definitely should! At least something good comes out of it 😉
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała proslijedio/la je tweet
Code BEAM 31. sij
👉 👉 Tooling 👉 Developer experience How much time did you spend today reading code? Learn how Erlang tooling can make reading and understanding code easier from at ! 🙌 Book tickets now!
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 31. sij
I might or might not be a bit drunk right now, but it's the first time for me outside of EU since 2004, when Poland joined, and it's so sad. It feels to me like prejudice, and xenophobia, and homophobia, and all the worst in humanity winning and there's nothing anybody can do...
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 31. sij
Odgovor korisniku/ci @robertoaloi
You can insert whitespace or even comments (😱) between almost any two tokens in Erlang
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 31. sij
Odgovor korisniku/ci @mononcqc @louispilfold i 2 ostali
I definitely agree. We're also working on solving some of those issues. Are you coming to Code BEAM SF? If so, it would be great to talk a bit more about this in person
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 31. sij
Odgovor korisniku/ci @sasajuric @akoutmos @acscherp
Not really, that's why were thinking about alternatives
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała proslijedio/la je tweet
Erlang Ecosystem Foundation 30. sij
A diverse community is not only a strong community but a thriving community! We are happy to announce our joint initiative w/ to offer 10 training scholarships! Apply today
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 30. sij
Odgovor korisniku/ci @mereghost @_solnic_
First house you build for your enemy, second house you build for your friend, third house you build for yourself 😉
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 30. sij
Odgovor korisniku/ci @akoutmos @acscherp
Dialyzer takes 30 minutes on my 24-core dev server, not to mention tests or other things in this hook. Running it all on commit is not an option, on every push probably not either.
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 30. sij
Odgovor korisniku/ci @edisonywh @acscherp
I'm less concerned about CI resources - it's much more powerful than my local machine 😛 but yeah, I admit I didn't notice initially it was a pre-push hook and not pre-commit
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 30. sij
Odgovor korisniku/ci @acscherp
Nooooo... pre commit hooks are the evilest thing ever invented 😛 I fully agree those checks should be running on CI and generally should block you from merging code, but not locally, it's so annoying and disruptive
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 26. sij
That’s fair, yeah. DCO is a good option, but even in Erlang it's error prone due to dynamic calls
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 26. sij
Well... I think such core would need to include Enum (for for & stuff) and String (for interpolation), which means the two biggest part of the stdlib. I don't think you'd gain much by such split in reality
Reply Retweet Označi sa "sviđa mi se"
Michał Muskała 26. sij
It's not that simple. Many syntactical constructs in elixir expand to some stdlib calls - for is Enum.reduce, [] is Access.get, and probably more. It's hard to distinguish what needs runtime support from what doesn't
Reply Retweet Označi sa "sviđa mi se"