in Embedded Logs

Harlock v0.5.1

It is with immense pleasure that I announce that the newest version of my scripting language, harlock v0.5.1 is out!

Here is the detailed release log, with a list the artifacts to install the language on debian-like systems, or directly a binary for the supported architectures.

Release note + artifacts @github/Abathargh/harlock


Build harlock v0.5.1 from source

Notice that you can always compile and install harlock by executing:

go install github.com/Abathargh/harlock/cmd/harlock


or:

git clone https://github.com/Abathargh/harlock
make install


Release details

This v0.5.1 release is a bugfix one, that solidifies harlock usage within build pipelines.

The main issues that were tackled are:

  • Correctly handling runtime and evaluation errors being raised at the top-level scope to trigger a non-zero error code. This led to silent errors being passed inside of pipelines using harlock. When talking about top-level scope, I mean code executed in any non-function body context, like:
var e = try open(elf_file, "elf") 
var text_addr = try e.section_address(text)
var text_size = try e.section_size(text) 
  • Drop support for go 1.15+ unsupported targets.
  • Adding previously missing .exe suffix for windows executable names when cross-compiling for windows on non-windows
  • Minor fixes to .gitignore and Makefile.

Last couple of releases included a new error system which was thoroughly tested and fixing it is the main reason for v0.5.1.

Usage and new developments

I’ve been using harlock a lot to test the avr_io nim library that I work on, alongside personal projects where I need firmware to be updated over the wire/air with huge success.

A nice working project using the language can be found in the bootloader example for avr_io, where it is used to showcase the library capabilities when writing bootloaders for embedded applications.

I wrote an in-depth article on how to use harlock for these kind of scenarios on antima at the following link.

That’s all for now, I hope you enjoyed the article and feel free to leave a comment below if you have any questions or want me to elaborate on any detail

Write a Comment

Comment