All notable changes to Xentica project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.2.0 - 2019-06-29
- Core.
- Disable
nvcc
compiler warnings.
- Disable
- Exceptions.
- Raise exception when assigning to
DeferredExpression
. - Raise exception if
Variable
has no initial value.
- Raise exception when assigning to
- QA.
- Disable faulty
pylint
issues. - Raise max locals limit for
pylint
. - Remove PyPy3 from supported versions.
- Disable faulty
- Refactoring.
- Change
Constant
API to rid of eval. - Move
DeferredExpression
to separate module. - Move code generation to
CellularAutomaton.__init__
- Change
Constant
defining mechanism.
- Change
- Core.
- Add
TotalisticRuleProperty
. - Add
RandomProperty
. - Add
FloatVariable
. - Add
long int
to supported types. - Add
BscaDetectorMixin
toProperty
. - Add
Parameter
class. - Integrate parameters to core engine.
- Add meta-params population from
Experiment
class. - Implement interactive parameters.
- Add validation for field's dimensionality.
- Add
- Seeds.
- Add
ChainedPattern
functionality. - Add support for
RandInt
in mixed expressions. - Add option to
RandInt
making it constant.
- Add
- Tools.
- Add
xentica.tools
package. - Add color conversion helpers module (
tools.color
).- Basic HSV to RGB conversion.
- Genome coloring: positional and modular methods.
- Add math functions wrappers (
tools.xmath
)Min
/max
functions over a number of arguments.Float
/int
type casting.- Counting a number of non-zero bits in integer (
popc
).
- Add CA rules helpers (
tools.rules
).- Convert Golly nonation to integer.
- Convert integer to Golly notation.
- Add genome manipulation helpers (
tools.genetics
).- Crossover several genomes in stochastic way.
- Mutation during genomes' crossover.
- Add
- Examples.
- Add
EvoLife
example model. - Add
NoiseTV
example model.
- Add
- Tests.
- Implement full test suite with
tox
. - Add test for broad bit width.
- Add test for
RendererPlain
class. - Add test for illegal assign to
DeferredExpression
. - Add test for
Variable
without init value. - Add tests for Lifelike rules helpers.
- Add test for code property.
- Add tests for
core.variables
coverage. - Add tests for
tools.xmath
module.
- Implement full test suite with
- Documentation.
- Add separate section for testing.
- Add core.expressions to docs.
- Miscellaneous.
- Add
NoiseTV
andEvoLife
to benchmark.
- Add
- Major fixes.
- Fix augmented assigns to properties and variables.
- Fix direct assignments to variables.
- Fix variables names in declarations.
- Fix variable's fallback name.
- Fix
BscaDetectorMixin
. - Fix
ColorEffect
. - Fix
dtype
/ctype
usage inCellularAutomaton
class.
- Minor fixes.
- Remove unnecessary conditions.
- Fix default field size.
- Fix minor codestyle issues.
- Fix typos and grammar in docs.
- Fix imports in examples.
0.1.1 - 2018-07-24
- Optimization.
- Optimize
BigBang
/PrimordialSoup
seed generation.
- Optimize
- Examples.
- Add Shifting Sands example.
- Refactoring.
- Make some private properties public.
- Rename
LocalRandom
streams. - Add properties getter to
ContainerProperty
. - Move GPU stuff to separate classes.
- Decompose
BSCA
class creation into smaller methods. - Move
core.topology.mixins
tocore.mixins
.
- QA.
- Add pylint config.
- Add pylint run script.
- Tests.
- Add test for non-uniform buffer interactions.
- Add test for unset viewport.
- Major fixes.
- Fix direct buffer assignments.
- Fix property assignments.
- Fix direct Variable assignments.
- Minor fixes.
- Fix
Lattice.index_to_coord()
- Fix
Experiment.seed.generate()
arguments. - Fix
RandInt
to generate NumPy arrays.
- Fix
- Refactoring.
- Fix most of
pylint
issues through the code.
- Fix most of
- Tests.
- Fix
BigBang
/PrimordialSoup
tests. - Fix checksums in tests.
- Fix
- Miscellaneous.
- Fix typos in docstrings.
- Base functionality.
- Translate Python functions describing CA logic into CUDA C.
- Evolve CA step by step, using resulting GPU kernels.
- Render the current CA state into 2D NumPy array for subsequent visualization.
- Save and load current CA state.
- Multi-dimensional CA topologies.
- N-dimensional orthogonal lattice.
- N-dimensional cases of Moore and Von Neumann neighborhoods.
- Wrap the board into N-torus.
- Surround the board by static cells.
- CA inner logic.
- Multiple integer 'properties' per each cell state.
- Buffered interaction between neighbors.
- Lazy read access and deferred write access to GPU memory.
- Packing and unpacking cell's state into raw bit sequence.
- Mixed values in expressions with variables/properties.
- Rendering.
- Computed colors per each cell.
- 'Moving average' color effect, for smoother visualization.
- Projection into 2D plain from higher dimensions.
- Experiments.
- Experiment classes describing initial state and meta-parameters.
- Independent deterministic RNG stream per each CA.
- 'Big Bang' and 'Primordial Soup' initial random patterns.
- Bridge with Moire GUI.
- Tests.
- 100% code coverage by unittests.
- Performance check script.
- Documentation.
- Throughout API documentation via docstrings.
- Sphinx configuration to automatically build and publish at Read The Docs.
- Project overview.
- Brief installation instructions.
- Placeholder for tutorial.
- Miscellaneous.
- MIT License.
- Readme.
- Contributing Guidelines.
- Code of Conduct
- Changelog.