4 ms·
Indeed. Also interesting: Hedgehog lacks any mutation operator, because (paraphrasing) debugging issues caused by mutability over a slow serial line is not an e
by silentbicycle 16y ago
Indeed. Also interesting: Hedgehog lacks any mutation operator, because (paraphrasing) debugging issues caused by mutability over a slow serial line is not an effective use of time.
Also, it sounds like the way they implemented the standard library (at the Lisp level; functions used are part of the bytecode) brings implicit tree-shaking. Probably an excellent trade-off for embedded programming.
- andrewcooke 16y agoi had to google "tree shaking". i (now) think it means removing unneeded parts of the system for deployment (like compiler and debugger). but i don't understand how anything a library does can implicitly implement that. can you expand?
- silentbicycle 16y agoThe way the system is set up (according to the paper), all functions appear as bytecode, i.e., the only stdlib functions added are those that are actually used. Probably not a big deal in most cases, but it sounds like a major bonus for embedded systems. For hedgehog, most of the system is only present at compile-time, under the assumption that it can do heavy compilation but will run on a weak system. Also, thanks for all your blogging / commenting / etc. about OCaml over the years! Learned a ton. I'll buy you coffee or a pint if we ever cross paths.
- andrewcooke 16y agoOK, thanks. (Do you have the right person? I haven't used OCaml for years now. Anyway, if so, glad I could help...)
- silentbicycle 16y agoI think so...it was several years ago, when I was learning OCaml.