lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Tue, Nov 28, 2017 at 10:23 PM, Paige DePol <lual@serfnet.org> wrote:
> Russell Haley <russ.haley@gmail.com> wrote:
>
>> I'd like to look at the GC code at some point. Anything you (or any of
>> the authors) can offer about the design and implementation of Lua on
>> the mailing list is wonderful.
>
> There is an interesting article[1] on the LuaJIT website that covers a number
> of GC algorithms that might be a good starting point. It really helped me
> to understand how the current non-generational collector works.
>
> Lua uses the tri-color algorithm, and the LuaJIT author has extended that
> to a quad-color algorithm. Dave Hayden posted earlier on this thread about
> an algorithm where he added red/yellow flags to implement a generational
> garbage collector in Lua 5.3 as well.
>
> ~Paige
>
> [1] http://wiki.luajit.org/New-Garbage-Collector#gc-algorithms
>
>
Brilliant, thank you so much. Aaargh! (falls down rabbit hole). :)

This actually answers some questions (and posses new ones) I have
about using Lua in a real time environment. My targets are RTEMS and
learning how to use the FreeBSD real time clock. Specifically I want
to know about RT clocks and GC (which this illuminates), as well as
running Lua in an environment without a virtual memory manager. From
my limited understanding, RTEMS doesn't have one because it runs as a
single binary with a single memory space.

Russ