Commit Graph

88 Commits

Author SHA1 Message Date
Iampete1 2a75432fa2 AP_Scripting: Generator: support depends 2021-01-19 11:18:10 +11:00
Iampete1 0668c5c584 AP_Scripting: support pass by refence on none bool return 2020-11-02 17:40:21 -07:00
Pierre Kancir af1bdcfdfc AP_Scipting: fix memleak on generator 2020-08-26 17:06:23 +10:00
Siddharth Purohit 913c00dd96 AP_Scripting: add default case to fix uninitialised use situation 2020-07-30 20:28:48 +10:00
Michael du Breuil 1c789c66c3 AP_Scripting: Fix generator for nullable types with multiple return values 2020-07-28 16:22:17 -07:00
Iampete1 2ad81fb425 AP_Scripting: generator: static cast all basic return types 2020-07-28 13:47:35 +10:00
Michael du Breuil ff007dd017 AP_Scripting: Allow generator to cope with windows line endings
Also fixes allowing an extra new line on the depends entries to be
emitted, as well as a possible stack overflow in the generator if
you inserted a malicious comment.
2020-06-24 09:37:36 -07:00
Andy Piper e9b939ccb5 AP_Scripting: build fix for macOS 2020-05-13 11:59:03 -07:00
Andrew Tridgell 2c6fd13899 AP_Scripting: auto-build the bindings 2020-05-12 19:55:21 +10:00
Michael du Breuil 6753e99604 AP_Scripting: Add a return around luaL_error
This is the normal method of calling luaL_error which longjmp's away,
and it helps the static analysis tools realize that anything afterwards
will not be reached
2020-03-28 21:16:09 +11:00
Michael du Breuil a0bfc823b3 AP_Scripting: Support libraries holding the scheduler lock 2020-02-18 09:16:10 +11:00
Michael du Breuil 51f79c1b10 AP_Scripting: Add support for UART drivers
Also improves the handling of uint32_t arguments
2020-01-13 20:06:31 -07:00
Peter Barker 4c5c5fff72 AP_Scripting: add some pointers on how to work with bindings 2020-01-07 19:29:12 -07:00
Michael du Breuil 38e17e2068 AP_Scripting: Add Location get_distance_NED and get_distance_NE
Fixes a regression with nil punning which broke Location:offset() and
adds a test script that is suitable for CI to test this sort of thing
2019-10-31 07:10:55 +11:00
Michael du Breuil 610dff61d8 AP_Scripting: Fix nullable arguments numbering, add location bearing 2019-10-25 08:48:22 +08:00
Michael du Breuil f0e742caa3 AP_Scripting: Fix generation of uint32_t arguments
This also fixes the message interval description not generating
correctly, it must have been manually edited before
2019-10-14 17:51:54 -06:00
Michael du Breuil 1e66457755 AP_Scripting: Allow the bindings to descirbe any build dependencies needed
Scripting has a hard requirement on AP_Terrain being available, this
allows us to emit a cleaner error message if you have disabled terrain
but not scripting
2019-08-27 09:45:35 +10:00
Michael du Breuil 9e04939adf AP_Scripting: Protect send_text from reading the stack
Also fixes small alignment problem in generated code
2019-07-24 16:03:46 +10:00
Michael du Breuil 6caa700c09 AP_Scripting: Add literal support to the binding layer 2019-07-23 10:05:29 +09:00
Michael du Breuil f79a3100d0 AP_Scripting: Add arming call, improve range check casting 2019-07-22 14:32:54 +09:00
Michael du Breuil 0054544bd3 AP_Scripting: Add support for enums to be passed through 2019-07-19 09:34:05 +09:00
Michael du Breuil ed584313bd AP_Scripting: Remove unneeded debug output, fix the index for singleton errors 2019-07-14 00:28:00 -07:00
Michael du Breuil d58783664d AP_Scripting: Update generator to not use readline 2019-07-12 16:55:12 -07:00
Michael du Breuil 104164d2e4 AP_Scripting: Tighten range checks on library calls 2019-07-06 09:01:13 -07:00
Michael du Breuil 8db8dcd2d2 AP_Scripting: Fix up some warnings
-Remove some non forward declared issues
  -Remove forced min/max values from the enum range check
2019-05-11 18:25:43 -07:00
Michael du Breuil bd256afee4 AP_Scripting: extract a common argument check helper
Allows an easy additional flag for saving flash space
2019-05-11 18:25:43 -07:00
Michael du Breuil 84c2b18e43 AP_Scripting: Support enum types, add millis() remove manual GCS wrapper
This introduces enum types for range checking/returns, adds a millis(() call
(this returns a uint32_t), and moves over to an auto generated version of the GCS binding
2019-05-11 18:25:43 -07:00
Michael du Breuil eddf926433 AP_Scripting: Add support for semaphore protection around singletons
This makes the assumption that the semaphore is available via reference, not pointer
For a singleton object this seems like a reasonable API restriction
2019-05-11 18:25:43 -07:00
Michael du Breuil 50b76a27aa AP_Scripting: Add uint32_t support to generator 2019-04-26 08:07:19 +10:00
Michael du Breuil 7690df1d69 AP_Scripting: Add boxed numerics for uint32_t types
Also fixes bad check in send_text that could seg fault in send_text

And fixes the fact that all freshly allocated userdata's need to be
memset
2019-04-26 08:07:19 +10:00
Michael du Breuil 8e50ca9ae4 AP_Scripting: Add stack checking to allocators 2019-04-26 08:07:19 +10:00
Michael du Breuil 1b48ce57f0 AP_Scripting: Add operator overloading
Also introduces battmonitor wrappers, and removes an unneeded checkdata
2019-04-26 08:07:19 +10:00
Michael du Breuil 6bcc6d85e7 AP_Scripting: Nullable primitive arguments do not recieve a range check 2019-04-26 08:07:19 +10:00
Michael du Breuil 893779fbcd AP_Scripting: Introduce fixed minimum range type checking on primitives 2019-04-26 08:07:19 +10:00
Michael du Breuil 1895178285 AP_Scripting: Add support for nullable types
This adds nil punning to the generator. It also unifies the emitter for
both singletons and userdata, as they were almost identical to begin
with. This should ease the maintenance burden of adding new types.
2019-04-26 08:07:19 +10:00
Michael du Breuil e4035bd7e8 AP_Scripting: Add alias suppport to the scripting generator 2019-04-26 08:07:19 +10:00
Michael du Breuil 746240ebe3 AP_Scripting: Add more primitive types 2019-04-26 08:07:19 +10:00
Michael du Breuil e7d59514d9 AP_Scripting: Add an initial generator 2019-04-11 23:03:20 -07:00