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"
>>> >:
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