Skip to content

Contributing

Neal Beeken edited this page Sep 16, 2019 · 1 revision

Contributing

Getting Setup

If you want to contribute to the dashmips project you will need the following:

  • Poetry is used for dependencies, it will help get you up and running
  • After installing Poetry, and cloning this repository:
  • poetry install - will install the dashmips dependencies in a virtual environment that won't harm your global set up.
  • poetry run X - can run X command in the correct python environment
  • Try poetry run pytest --tap-stream --tap-outdir=testout --mypy --docstyle --codestyle to ensure all tests are passing correctly

Adding Syscalls / Adding Instructions

You can add to the existing files in the dashmips/instructions and dashmips/syscalls directories using the relevant decorator (@). If you add instructions or syscalls to a new file in these subdirectories ensure that the new file is named with the pattern: *_instructions.py or *_syscalls.py where * is whatever identifier you choose.

Testing environment install

To make sure dashmips installs correctly in a clean environment I've created a dockerfile that sets up the minimal required env for dashmips. The command below can be used to create the image.

docker build --rm -f "tests\test_env\Dockerfile" -t dashmips_test_env:latest .

Debugger Protocol

The dashmips process loads the program from a file and opens a websocket. The supported commands can be found in dashmips/debug.py as functions prepended with debug_. The protocol loosely follows JSONRPC for the sake of quick development iteration it is not compliant however this could be easily remedied in a future release.

dashmips icon
Clone this wiki locally