Developer tools for CdM processors
Project description
Developer tools for Coco-de-Mer processors
Installation
-
Download latest version
-
Install Python package from
.whl
file- Run
pip install cdm-devkit-x.x.x.whl
Package will be published to PyPI soon
- Run
-
Install VS Code extension from
.vsix
fileRemove all other extensions that add support for CdM processors
- Open Command Palette
Ctrl+Shift+P
- Type
vsix
- Select
Install from VSIX
- Select
vscode-cdm-extension-x.x.x.vsix
- Read more
Extension will be published to VS Code Marketplace soon
- Open Command Palette
Development kit contents
After installation you get several components:
-
CLI Programs
cocas
- assembler for CdM processorscocodump
- disassembler for CdM processorssynthm
- secondary decoder synthesis utility- (coming soon)
-
VS Code Extension
- Assembler language support for all CdM processors (syntax highlighting and code snippets)
- Debug support (coming soon)
-
cdm-devkit-misc archive
-
Processor implementations (
./
) -
Logisim libraries (
jar/
)logisim-banked-memory
- banked memory forcdm16
logisim-cdm-emulator
- emulated CdM processors
-
Code and scheme examples (
examples/
)
-
Getting started
Check out our Getting Stated guide.
Documentation
We are working on documentation, it will be available soon.
However, some docs are available in docs/
directory.
Report a bug
You can report a bug with GitHub Issues.
-
Open new issue here
-
Use a template
-
Provide a proper name and description of a problem
-
Provide information on how to reproduce a bug
Setting up development environment
-
Python-based projects use
Poetry
as build system-
Install
Poetry
-
Run
poetry install
to download dependencies
cocas
usesANTLR
to parse assembly language-
antlr4-python3-runtime
is needed to runcocas
and is installed with other dependencies -
However, if you want to fiddle with grammar files and generate new parser you would need to install
antlr4-tools
, this package is installed with development dependencies (Read more)
-
-
Java-based projects use
Gradle
as build system-
Install
JDK
-
gradlew
script should downloadGradle
automatically on first run
-
-
VS Code Extension uses official tools
Building
Building individual projects
-
Python-based projects:
- Run
poetry build
- Run
-
Java-based projects:
-
Navigate to project folder
-
Run
./gradlew jar
(on Unix) -
Run
.\gradlew.bat jar
(on Windows)
-
-
VS Code extension:
-
Navigate to
vscode-cdm-extension/
-
Run
vsce package
-
Building all projects at once
There is a Makefile
that will build all projects and prepare files for distribution
- Run
make
to build all projects
Set VERSION
variable if you want to specify project version
- Example:
make VERSION=1.2.3
VERSION
should be valid SemVer version
You can get
make
on Windows from GnuWin32 project.
- For Windows 10 and above:
- Run
winget install GnuWin32.Make
- Maybe you would need to add
bin/
directory of make to yourPATH
- Using
Chocolatey
:
- Run
choco install make
- You can read about other installation methods here
Contributing
-
All contributions should be done via pull requests.
-
Commit messages should be written according to these guidelines
-
Commit messages should start with a scope identifier - project name surrounded by square brackets. That will help to determine which project commit belongs to.
Example: [cocas] Add new feature
Commits related to whole repository shouldn't use scope identifier
Possible scope identifiers are:
-
General:
docs
ci/cd
examples
tests
-
Processor implementations:
cdm*
-
Projects:
cocas
cocoemu
cocodump
synthm
logisim-banked-memory
logisim-cdm-emulator
logisim-runner
vscode-cdm-extension
Contact us
-
If you have a proposal or a suggestion you are free to open a GitHub Issue here.
-
For other questions contact:
-
Email: n.repin@g.nsu.ru
-
Telegram: @cdm_updates
(channel with updates, linked chat for support)
-
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cdm_devkit-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d39eab12a7aa496e11d144b343fcd3cb91613db7918c32a827ed7361f318491 |
|
MD5 | c85ebebf02e0f1a3e8e5fa304f05207b |
|
BLAKE2b-256 | f6820dac0c2cd7a5c59602b6e824c3913b22c3e524cd8a73cef583c83aa8120c |