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
nvcccompiler warnings.
- Disable
- Exceptions.
- Raise exception when assigning to
DeferredExpression. - Raise exception if
Variablehas no initial value.
- Raise exception when assigning to
- QA.
- Disable faulty
pylintissues. - Raise max locals limit for
pylint. - Remove PyPy3 from supported versions.
- Disable faulty
- Refactoring.
- Change
ConstantAPI to rid of eval. - Move
DeferredExpressionto separate module. - Move code generation to
CellularAutomaton.__init__ - Change
Constantdefining mechanism.
- Change
- Core.
- Add
TotalisticRuleProperty. - Add
RandomProperty. - Add
FloatVariable. - Add
long intto supported types. - Add
BscaDetectorMixintoProperty. - Add
Parameterclass. - Integrate parameters to core engine.
- Add meta-params population from
Experimentclass. - Implement interactive parameters.
- Add validation for field's dimensionality.
- Add
- Seeds.
- Add
ChainedPatternfunctionality. - Add support for
RandIntin mixed expressions. - Add option to
RandIntmaking it constant.
- Add
- Tools.
- Add
xentica.toolspackage. - 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/maxfunctions over a number of arguments.Float/inttype 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
EvoLifeexample model. - Add
NoiseTVexample model.
- Add
- Tests.
- Implement full test suite with
tox. - Add test for broad bit width.
- Add test for
RendererPlainclass. - Add test for illegal assign to
DeferredExpression. - Add test for
Variablewithout init value. - Add tests for Lifelike rules helpers.
- Add test for code property.
- Add tests for
core.variablescoverage. - Add tests for
tools.xmathmodule.
- Implement full test suite with
- Documentation.
- Add separate section for testing.
- Add core.expressions to docs.
- Miscellaneous.
- Add
NoiseTVandEvoLifeto 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/ctypeusage inCellularAutomatonclass.
- 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/PrimordialSoupseed generation.
- Optimize
- Examples.
- Add Shifting Sands example.
- Refactoring.
- Make some private properties public.
- Rename
LocalRandomstreams. - Add properties getter to
ContainerProperty. - Move GPU stuff to separate classes.
- Decompose
BSCAclass creation into smaller methods. - Move
core.topology.mixinstocore.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
RandIntto generate NumPy arrays.
- Fix
- Refactoring.
- Fix most of
pylintissues through the code.
- Fix most of
- Tests.
- Fix
BigBang/PrimordialSouptests. - 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.