SeattleTestbed / seash

Interactive vessel management tool
MIT License
0 stars 10 forks source link

Add module to dry-run code before `run` #106

Open aaaaalbert opened 7 years ago

aaaaalbert commented 7 years ago

Going through seash's upload/start/run/show log functions slows down interactive development of code a lot. A suggestion brought in from SAS'17 was to first "dry-run" code on the machine hosting seash before uploading and starting the code on the remote vessel.

A very cheap implementation could just run a Repy program that reads the user code into a VirtualNamespace and notifies the user of any (static, code safety, syntax etc.) errors.

In a more complex version, the user code could actually be executed for a few seconds, and then exitall()ed. For this, seash needs a separate sandbox dir so that the code that is "dry-run" doesn't overwrite or delete seash's own files. The dir would ideally be populated with whatever the remote vessel contains, so that all data and code is accessible. (In the specific case of Sensibility Testbed, a security layer is required that adds to the namespace the sensor calls which are only available on Android.)

aaaaalbert commented 7 years ago

For reference, here is one program implementing the "cheap" option described above: https://github.com/aaaaalbert/repy-doodles/blob/master/statically_check_all_libraries.r2py