3 ms·
I've been working on a few things lately. TMk: https://github.com/baguette/tmk https://github.com/baguette/tmk TMk is a replacement for UNIX `make` powered by
by groovy2shoes 11y ago
I've been working on a few things lately.
TMk: https://github.com/baguette/tmk https://github.com/baguette/tmk
TMk is a replacement for UNIX `make` powered by Jim Tcl. It's awesome because it's very portable (written in ANSI C) and provides all the features you expect from `make` and then some: because it's backed by a fully-featured, general-purpose programming language, you can customize your build with procedures (functions, but in Tcl they can be made to behave much like Lisp macros), loops, conditionals, etc. You can even write a loop that generates new rules at (build script) runtime. It also has support for packages, where commonly-used procedures can be collected (for example, we have plans to provide a package to make writing TMakefiles for C projects more convenient, etc.). TMk was originally called TMake, but when we googled that we found at least two other projects already called "TMake", thus we renamed it "TMk", but it's still pronounced the same. As an added bonus, it's got some pretty good documentation, if I do say so myself.
Tiny7: https://github.com/baguette/tiny7 https://github.com/baguette/tiny7
Tiny7 is a fork of TinyScheme that I'm updating to support the R7RS-small Scheme standard. It's implemented as a library that can be embedded into applications to provide Scheme as a scripting/extension/glue/configuration/... language, but it also comes with an (optional) REPL. It's awesome because it's tiny! The REPL weighs in at under 150KB when compiled with debugging information, and uses about 10KB of RAM on startup. The downside to being so tiny is that the speed situation isn't great (it's been bearable for my usage so far, but it won't be suitable for everything). However, I have plans to implement a bytecode compiler, which should speed it up a bit. It has virtually no documentation at the moment (outside of the outdated TinyScheme documentation), but I'm working on a comprehensive manual.
I've got plans for a few more projects, like a fork of dwm that uses Tiny7 for configuration, but I haven't started working on them in earnest yet.
There are other things I'm working on, too, but they're classified for the time being ;)