20,741
edits
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{{Main article|How the Nasal GC works}} | {{Main article|How the Nasal GC works}} | ||
{{Stub}} | {{Stub}} | ||
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. | |||
One example of this is the Canvas 2D rendering system, which uses Nasal scripts to set up and animate render-to-texture targets inside the simulator. Additionally, FlightGear has its own addon framework, which allows developers to create the equivalent of plugins using Nasal scripts instead of binary plugins. This has contributed to the proliferation of Nasal in FlightGear, as can be seen in complex aircraft like the space shuttle and many airliners, as well as in the weather engine, which is largely implemented in Nasal. | |||
Overall, Nasal has become an important part of FlightGear, and its use has grown significantly over time. Many of the simulator's most complex and advanced features rely on Nasal scripting, and the continued development of FlightGear's addon framework is likely to result in even more use of Nasal in the future. | |||
In FlightGear, the Nasal scripting language is used to create scripts that can be run inside the simulator. These scripts are executed via callbacks that are triggered by timers and listeners, which can cause the garbage collector to be triggered in a non-deterministic fashion. This means that the garbage collector may run at different times and in different ways depending on the specific actions and events that are happening in the simulator. | In FlightGear, the Nasal scripting language is used to create scripts that can be run inside the simulator. These scripts are executed via callbacks that are triggered by timers and listeners, which can cause the garbage collector to be triggered in a non-deterministic fashion. This means that the garbage collector may run at different times and in different ways depending on the specific actions and events that are happening in the simulator. | ||