Just out of curiosity: does PicoLisp have some mechanism for dumping the process image (or some equivalent effect) so you can save a PicoLisp process in a certain state and restart it there.
On 04/28/2017 08:54 AM, Alexander Burger wrote: > On Fri, Apr 28, 2017 at 08:08:35AM -0800, Christopher Howard wrote: >> Sounds like quite a project in and of itself. > > Indeed. > > You might consider to take ErsatzLisp (or miniPicoLisp), and throw out all I/O > functionality, and other system accesses like Runtime...exec(). > > ♪♫ Alex > >> On 04/27/2017 10:18 PM, Joh-Tob Schäg wrote: >>> I thought about the same. >>> My insights are: >>> You can 'let all relevant symbols with alternative functions or just >>> NIL. Adresses 1 & 2 >>> You might want to change the repl in a way that if for example the >>> symbols car and list are evaluated they return a meaningless number. (It >>> might be possible to calculate the offset and execute arbitrary lisp >>> code.) 1 & 2 >>> And alternative would be to rewrite the picolisp eval function and only >>> let it load Symbols from a certain namespace/symbol to function property >>> list. >>> Regarding 3: the best way to archieve that is putting the execution of >>> this code in a 'later. You can either cancel them after a certain time >>> via kill while your game world goes on (ask regenaxer how the open pipe >>> is handled or wait for the result) 3 execution time aspect. >>> To controll the space aspect you need rewrite picolisp in picolisp and >>> maintain your own free list or let all functions the user can call >>> either increase a counter on each allocation and throw an error if the >>> number of allocations exhausts the virtual machine capacity. >>> >>> Am 28.04.2017 04:18 schrieb "Christopher Howard" >>> <christopher.how...@qlfiles.net <mailto:christopher.how...@qlfiles.net>>: >>>> >>>> Hi list, I was wondering if there would be a practical way to safely >>>> contain a picolisp interpreter (or some subset of commands) inside >>>> another picolisp program. E.g., suppose you have a computer game >>>> programmed in PicoLisp, and the main character found a computer terminal >>>> that allowed him to run some commands or program something in PicoLisp >>>> The obvious safety concerns here are: >>>> >>>> (1) You either want to disable disk access, or make it so that disk >>>> access pulls from a virtual disk in the game. >>>> >>>> (2) You don't want the user to be changing memory in the game itself, >>>> only his virtual memory. >>>> >>>> (3) You don't want the user to be able to exhaust memory or blow the > -- Christopher Howard, Computer Assistant Alaska Satellite Internet 3239 La Ree Way, Fairbanks, AK 99709 907-451-0088 or 888-396-5623 (toll free) fax: 888-260-3584 mailto:christop...@alaskasi.com http://www.alaskasatelliteinternet.com -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe