Age | Commit message (Collapse) | Author |
|
ADDR instruction now executes correctly with or without a register
modifier being present on the next address.
|
|
Return type was set to 'c_int' when it should have been 'None'.
|
|
Like in the original Salis, all register modifiers default to 'rax'
when not enough are present.
|
|
|
|
|
|
|
|
[#27] Not exactly a 'tappable pipe', this simple communications module
allows for IPC between individual Salis organisms and different
simulations via UDP sockets.
|
|
[#27] Code is now entirely free from the common pipe. We can begin
implementing its replacement.
|
|
[#27] C library now only takes care of relaying data to/from functors,
which must be provided by the wrapping application (in this case, a
new python module named 'common.py').
|
|
|
|
[#36] Using high numeric keys cycles simulation until a timeout is
reached. This helps prevent Salis from hanging if a high number of
cycles are requested.
|
|
[#25] I've returned the Escape key functionality as it is needed to
exit the simulator when in minimal mode.
|
|
[#25] Fireup plugin takes advantage of new command line options to
load simulations in minimal mode and already running.
|
|
[#25] New command line arguments make it easier to start-up Salis
already in these states. This will be useful for the Fireup plugin.
|
|
|
|
|
|
[#25] Toggle minimal mode with 'M' key. When on minimal mode, only
current cycle, epoch and process count are shown.
|
|
[#24] Capital W and S keys now apply fast vertical pan on World page.
|
|
[#24] Capital W and S keys now apply fast vertical scroll on Process
page.
|
|
[#24] I want to free up capital 'S' in order to implement fast
vertical scroll on Process and World pages.
|
|
|
|
|
|
[#29] Makefile now generates both release and debug builds on every
run. Salis.py can load the debug version on demand via a command line
argument (--debug). Release version is loaded by default.
|
|
[#28] Bit flags were exclusively a cosmetic component, not needed at
all to run the simulator. I've added a new 'render' module that takes
care of appending bit flags to rendered memory images, providing the
same aesthetic result, but only when requested.
|
|
[#28] This flag served no purpose except to facilitate rendering.
However, performance has a higher priority so I've eliminated this
feature. Block start rendering can still be implemented via other
methods.
|
|
[#28] IP flag served no purpose except to facilitate rendering.
However, performance has a higher priority so I've eliminated this
feature. IP rendering can still be implemented via other methods.
|
|
|
|
|
|
[#14] This new code makes back-space work correctly through SSH. It
still needs to be tested in Cygwin.
|
|
|
|
Source files are meant to be indented 4 spaces. This makes sure files
are displayed correctly in GitHub.
|
|
This seems to be the correct way to print individual characters. Salis
now keeps correct background colors through SSH.
|
|
[#20] The 'fireup.py' plugin can load one, or several, pre-saved
simulations and restart them automatically, each inside its own tmux
session.
|
|
[#19] I felt it was too easy to quit the simulation accidentally. Now,
a user has to type 'q' or 'quit' on the console in order to exit.
|
|
This solves issue [#18].
|
|
[#17] After having removed organisms' reward/punishment mechanisms,
the number of executed instructions will always match the number of
processes. No need to keep this.
|
|
[#12] Allowing to toggle the IP layer (white) can help the user
better visualize of the underlying memory block structure.
|
|
[#16] Allowing organisms to EAT information is causing huge reefs to
form too early and occupy most memory space. Here we replace EATB/F
with the old shift left/right. This is done to compare simulation
stability.
|
|
This fixes issue [#13].
|
|
|
|
An user may now specify simulation's auto-save interval during
initialization. This works for both new and loaded simulations.
|
|
|
|
[#8] We compress all auto saved files via a subprocess call to 'gzip'.
Saved files are reduced to around 25% of their original size.
|
|
|
|
[#5] Whenever terminal gets resized with the console open, we call the
Printer.on_resize() method to adequately query the new window size.
|
|
[#4] Modules now utilize better naming conventions for
differentiating between public and private members and methods. We no
longer make use of properties.
|
|
I've found that allowing organisms to eat from everywhere (including
addresses owned by other organisms) made the simulation too unstable.
Organisms may now eat from either free memory, or from self-owned
memory.
|
|
[#1] Cursor process selection loop was searching for processes under
the cursor by iterating based on process count, instead of process
queue capacity.
|
|
|