20,741
edits
No edit summary |
|||
| Line 24: | Line 24: | ||
Overall, porting the interpreter from C to C++ would enable the use of modern C++ features and libraries, which could potentially improve the performance, efficiency, and flexibility of the scripting language. And it could help bring Nasal up to par with other parts of the FlightGear code base. | Overall, porting the interpreter from C to C++ would enable the use of modern C++ features and libraries, which could potentially improve the performance, efficiency, and flexibility of the scripting language. And it could help bring Nasal up to par with other parts of the FlightGear code base. | ||
== Status == | |||
'''Last updated: 12/2022''' | |||
* Introduce garbage collection {{Progressbar|60}} | |||
* Document the existing GC {{Progressbar|50}} | |||
* Provide readonly stats to inspect the GC {{Progressbar|10}} | |||
* Provide hooks to register custom callbacks to control GC (e.g. from FlightGear) {{Progressbar|10}} | |||
* Generalize the existing GC interface so that it we can begin tinkering with alternate GC schemes {{Not done}} | |||
== Background == | == Background == | ||
FlightGear is an open-source flight simulator that includes built-in scripting support using the Nasal programming language. Nasal is a dynamic language that uses automatic memory management, which means that it manages the allocation and deallocation of memory automatically. Over the last two decades, Nasal has become an essential part of FlightGear, and its use has grown significantly, with many subsystems and features depending on Nasal scripts to function properly. | FlightGear is an open-source flight simulator that includes built-in scripting support using the Nasal programming language. Nasal is a dynamic language that uses automatic memory management, which means that it manages the allocation and deallocation of memory automatically. Over the last two decades, Nasal has become an essential part of FlightGear, and its use has grown significantly, with many subsystems and features depending on Nasal scripts to function properly. | ||