Tools for 2017: LuaJIT, DynASM, R, Nix, Pharo

综合编程 2016-12-31

Here is a little braindump on the programming tools I am excited about using in 2017 for my ongoing Snabb

  • LuaJIT for general purpose system programming. Simple high-level language, blazing fast JIT, and fantastic FFI. I suspect that LuaJIT is the root of a new family tree of trace-based language implementations, analogous to MACLISP
    in the 1960s, and I am eager to participate in the evolution.
  • DynASM (Lua-mode) assembler
    for accessing special x86 instructions like CRC32, AES-NI, RDPMC, SIMD, etc. This is a macro-assembler that is powerful and operates Just-In-Time. I enjoy writing assembler code directly, referring to manuals from Intel and Anger Fog, much more so than writing it indirectly using C compiler intrinsics.
  • R for data science
    and for statistical modeling
    . Lately it seems like every interesting test or benchmark produces thousands of data points to interpret, for example from a matrix of platforms/versions/configurations/workloads. I find ggplot2 and dplyr especially versatile and pleasant to work with.
  • Nix
    for automation. Nix takes a task - build a program, deploy a server, run a test, run a series of benchmarks, etc - and makes it scalable and repeatable. This is indispensible for running large software testing campaigns: scheduling the builds, archiving the raw results, post-processing to create reports, and making each case immediately reproducible. It's also great for programming-in-the-small like avoiding dependency hell for shell scripts.
  • Pharo
    for inspection. This is speculative: I want to build application-specific development tools with a frontend based on Glamour
    and a backend based on Nix that can call out to the plethora of tools in nixpkgs (R for stats, gas for disassembly, gdb to locate objects via DWARF, wireshark to decode network traffic, etc.)

I am enjoying working with a collection of complementary domain-specific tools. Gonna be another fun year of hacking :-).

责编内容by:lukego (源链)。感谢您的支持!


NULL is equal to 0 in C, so do I treat b... Afaik NULL can be (or really is, at least in my stdlib implementation) #define 'd as: ...
Nginx + LuaJIT + Webhook Install LuaJIT ngx devel kit lua-nginx-module Nginx Base apt install make gc...
Tracing JITs 4: Zooming in on a simple trace Today I want to do a simple experiment to improve my mental model of howSnabb Switch code is just-i...
Android 嵌入 LuaJIT 的曲折道路 相关链接: Windows 下编译 LuaJIT 懒人与伸手党可以直接看最底部。 为什么使用 LuaJIT Lua 官方版的编译嵌入相对简单,但是为什么要用 LuaJIT 呢?我所了...
Android 嵌入 LuaJIT 的曲折道路 相关链接: Windows 下编译 LuaJIT 懒人与伸手党可以直接看最底部。 为什么使用 LuaJIT Lua 官方版的编译嵌入相对简单,但是为什么要用 LuaJIT 呢?我所了...