taskNAUSEA - Tasks: task #4846, Implement "pseudo...


You are not allowed to post comments on this tracker with your current authentication level.

task #4846: Implement "pseudo S-expression"

Submitter:  Luca Saiu <positrone>
Submitted:  Tue 18 Oct 2005 09:24:06 PM UTC
Should Start On:  Mon 17 Oct 2005 10:00:00 PM UTC Should be Finished on:  Mon 17 Oct 2005 10:00:00 PM UTC
Category:  General Infrastructure Priority:  1 - Later
Status:  None Assigned to:  None
Percent Complete:  0% Open/Closed:  Open
Difficulty:  Medium

Tue 18 Oct 2005 09:24:06 PM UTC, original submission:  

A pseudo S-expression will be a data structure similar to an S-expression, but not garbage collected and (if possible) faster. I've not decided yet whether to use a simple "copy on-set-c?dr" policy or a reference counter. I'll have to benchmark a bit.
Pseudo S-expressions will support fixnums, symbols, booleans, floats, strings, conses and the eol.

Pseudo S-expression will support read and print, but not eval.

The idea is avoiding garbage collections for all the structures which don't need it, for example for messages to be sent over sockets. This should essentially eliminate all GCs for interactive clients after models are loaded, thus reducing pauses and increasing locality.

A separate namespace such as "pseudoscheme" should be used to avoid confusion. The interface will be a subset of the interface in the "scheme" namespace: in particular an SExpression class will be provided.

I've not decided yet whether to provide conversion operators from and to pseusoscheme SExpressions. They would make code more compact, but could they also introduce errors? By now I think not, but the issue must be pondered.

Luca Saiu <positrone>
Group administrator


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


Follows 1 latest change.

Date Changed by Updated Field Previous Value => Replaced by
2005-10-19 positrone DifficultyNone Medium

Back to the top

Powered by Savane 3.13-4b48.
Corresponding source code