Lua Loader changes posted

From: Warner Losh <imp_at_bsdimp.com>
Date: Sat, 10 Feb 2018 02:36:42 -0700
I'm at a good point in the lua loader, so I've posted changed to
https://reviews.freebsd.org/D14295 for review.

It works great in the userboot.so loader test harness, but I've not booted
this on real hardware yet, so anyone wanting to take it for a spin be sure
you have an old-working loader or some other way to recover your machine /
VM.

It's purely opt-in right now. You must build WITHOUT_FORTH=yes and
WITH_LOADER_LUA=yes. The good news is you don't need a full buildworld. You
can just build stand (but don't forget the above options on both the build
and the install).

It's getting close. But there's no man page (it will be committed without
one unless someone else writes it). I've done a lot of cleanup of the
original GSoC code that was then cleaned up a bit by Rui, etc (all the
names of the contributors are in the review and will be in the commit
message). However, I'm sure the lua code could use some more cleanup. The
menu code is especially inefficient at drawing boxes and could likely use
some additional cleanup. Despite the slight roughness around the edges, I'm
grateful to Zakary Nafziger's menu changes from this past fall. They look a
lot better than the final GSoC state. I arbitrarily decided to follow the
same conventions we do with style(9) for the lua code.

The loader and os module code (the C code in lutil.c) could also use some
close scrutiny. I've cleaned up the LUA code to match the new lua modules
stuff, but haven't done this code at all and it likely could benefit from a
final pass there. The original code was written before you could have
integers, so there may be a couple of stray places that still use numbers.
If anyone with a lot of Lua embedding experience could look, that would be
great.

Please let me know what you think. It's been a long road to get /stand into
decent enough shape to allow us to build lua w/o changes to lua (OK, only 1
change to lua since there was a format that was forced to be floating point
that couldn't change with a #define). It's also quite a bit different than
either the final GSoC code, or the Rui branch, or the cleaned up, forward
ported Rui branch. Most of my changes have been to the C glue code, though
I did some tweaks to the lua code.

Warner
Received on Sat Feb 10 2018 - 08:36:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:14 UTC