È con immenso piacere che annuncio il rilascio della versione 0.5.1 del linguaggio di scripting harlock!
Di seguito è possibile trovare i dettagli specifici della release, insieme agli installer per sistemi debian ed i binari per le architetture supportate.
Release note + artifacts @github/Abathargh/harlock
Compilare harlock v0.5.1 da sorgente
Qualora non vogliate un binario o la vostra specifica combinazione di sistema operativo/architettura non sia presente tra i binari pre-compilati, c’è sempre la possibilità di compilare il linguaggio da sorgente eseguendo:
go install github
o:
git clone https://github.com/Abathargh/harlock make install
Dettagli sul rilascio
La versione v0.5.1 ha lo scopo di risolvere alcuni bug, solidificando l’uso di harlock all’interno di pipeline di build.
I principali problemi affrontati in questo rilascio sono i seguenti:
- Gestire correttamente errori di runtime e nel motore di evaluation, quando questi arrivano ad essere innalzati fino al top-level scope. Questo problema causava il fallimento di alcune build in modo silenzioso, dato che gli error code di ritorno alle chiamate all’interprete erano sempre 0. Quando parlo di top-level scope parlo di codice eseguito nello script non all’interno del corpo di funzioni, ad esempio come questo:
var e = try open(elf_file, "elf") var text_addr = try e.section_address(text) var text_size = try e.section_size(text)
- Eliminare il supporto per le combinazioni di os/architetture non più supportate a partire da go 1.15, principalmente per sistemi 32-bit basati su darwin.
- Aggiunta del suffisso “.exe” per eseguibili windows durante la cross-compilazione di questi su sistemi non-windows.
- Fix minori sui file .gitignore e Makefile.
L’ultimo paio di rilasci hanno incluso un nuovo sistema della gestione degli errori che è stato testato approfonditamente e che smetterà di essere una sperimentale con la versione v0.6.0 del linguaggio. Rendere questo sistema più stabile è il principale motivo per questa v0.5.1.
Uso e nuovi sviluppi
Ho utilizzato harlock un bel po’ ultimamente, per progetti personali in cui avevo bisogno di firmware aggiornabile over the wire/air. L’ho anche usata per testare una libreria scritta in nim che mantengo, che potete trovare su github: @github.com/Abathargh/avr_io.
Un esempio esaustivo dell’uso di questa libreria e di harlock, può essere trovato nella cartella di esempi di avr_io, dove mostro come utilizzare la libreria, nim e harlock per costruire un bootloader per piattaforme embedded: avr_io/examples/bootloader.
Avevo già scritto un articolo su queste feature in passato su antima: potete trovare più dettagli in questo articolo. Approfondiremo il tema nel prossimo futuro qui su antima!
Per questo articolo è tutto, per eventuali approfondimenti o chiarimenti vi invito come al solito a commentare nella sezione qui sotto!