{ "info": { "author": "Neal Beeken", "author_email": "nbbeeken@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Education", "License :: OSI Approved :: MIT License", "Programming Language :: Assembly", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Assemblers" ], "description": "# Dashmips\n\nDashmips is a Mips Interpreter CLI Program.\n\n## Requirements\n\nDashmips has no dependencies beyond requiring `python 3.7`.\nThere is a dataclasses module for python 3.6 that may make this module work but it is untested.\n\n## Install\n\nThe recommended way to install dashmips is with pip:\n\n```sh\npip install dashmips\n```\n\n## Usage\n\nIf you installed via pip you should now have a binary in your path that you can launch by typing:\n\n```sh\ndashmips\n```\n\nor equivalently\n\n```sh\npython -m dashmips\n```\n\n## Running\n\n```sh\ndashmips run FILE.mips\n```\n\n> Note: FILE is a positional argument in the run subcommand\n\n## Debugging\n\nIn order to leave a flexible environment for debugging dashmips doesn't provide an interface for human debugging of a mips program. Instead the debugger included is a server that accepts the json format of a mips program over the network and will do the requested operations returning an updated MipsProgram json object.\n\nThere is a vscode extension that can speak dashmips specific json language [here](https://github.com/nbbeeken/dashmips-debugger).\n\n### Debugger Protocol\n\nThe 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_`.\nThe 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.\n\n## Contributing\n\n### Getting Setup\n\nIf you want to contribute to the dashmips project you will need the following:\n\n- [Poetry](https://poetry.eustace.io/docs/) is used for dependencies, it will help get you up and running\n- After installing Poetry, and cloning this repository:\n- `poetry install` - will install the dashmips dependencies in a virtual environment that won't harm your global set up.\n- `poetry run X` - can run X command in the correct python environment\n- Try `poetry run pytest --tap-stream --tap-outdir=testout --mypy --docstyle --codestyle` to ensure all tests are passing correctly\n\n### Adding Syscalls / Adding Instructions\n\nYou can add to the existing files in the `dashmips/instructions` and `dashmips/syscalls` directories using the relevant decorator (`@`).\nIf 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.\n\n### Testing environment install\n\nTo 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.\n\n```sh\ndocker build --rm -f \"tests\\test_env\\Dockerfile\" -t dashmips_test_env:latest .\n```\n\nHappy coding!\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nbbeeken/dashmips", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dashmips", "package_url": "https://pypi.org/project/dashmips/", "platform": "", "project_url": "https://pypi.org/project/dashmips/", "project_urls": { "Homepage": "https://github.com/nbbeeken/dashmips", "Repository": "https://github.com/nbbeeken/dashmips" }, "release_url": "https://pypi.org/project/dashmips/0.1.2/", "requires_dist": [ "dataclasses (>=0.6,<0.7); python_version == \"3.6\"", "websockets (>=8.0.2,<9.0.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Mips Interpreter", "version": "0.1.2" }, "last_serial": 5793221, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "83b9abcfd47f4fdaa71c5d4a22f366ac", "sha256": "e10894ce40bd89d1ea5379f23d65cd6dde2a07857acc38d3062a7b8cd28f02ae" }, "downloads": -1, "filename": "dashmips-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "83b9abcfd47f4fdaa71c5d4a22f366ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11743, "upload_time": "2018-10-02T18:55:21", "url": "https://files.pythonhosted.org/packages/31/ee/f44d54072443c8a67818b4dbf3a6762c6d16ba34d82e6d707ee3b42d15df/dashmips-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed41b1601eb7d718f4489ca735525330", "sha256": "086ac89aec05fd427a3b9b11dfa8433610f17a57eabfe857a903e9907bcf8b92" }, "downloads": -1, "filename": "dashmips-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ed41b1601eb7d718f4489ca735525330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8536, "upload_time": "2018-10-02T18:55:22", "url": "https://files.pythonhosted.org/packages/60/18/8b49a9b529ec447bb8afac1fcd24f4a5cfc36a6dd6c9d6426a91125c5571/dashmips-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "43f1bdf10b66e184a64de786a5f3c3c7", "sha256": "5e87cd10567c290beded724791c945a53ad8aa09907dfd17daf60b7efcd110e3" }, "downloads": -1, "filename": "dashmips-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "43f1bdf10b66e184a64de786a5f3c3c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31257, "upload_time": "2019-01-24T00:47:34", "url": "https://files.pythonhosted.org/packages/d5/98/c2b1a370a01e8dd58e77a8b99b7f60bf67e998f2075b4b1e9f17959b231e/dashmips-0.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9123fcea0dfdcee609c0101d2f4b3304", "sha256": "24911e044131b834f28cd92cb80c9559d1767a41f270b6d23c624aa18f2599a8" }, "downloads": -1, "filename": "dashmips-0.0.10.tar.gz", "has_sig": false, "md5_digest": "9123fcea0dfdcee609c0101d2f4b3304", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21809, "upload_time": "2019-01-24T00:47:36", "url": "https://files.pythonhosted.org/packages/09/10/972cfef72dfd09bb288e512237e38b683e8df654c9c25fbb72e208f3da7f/dashmips-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "be84069d6b14164e58c6a1719defb4cd", "sha256": "bee376414f04081d49455bf00d5116db5f6e198c814569ad2471db3425b70997" }, "downloads": -1, "filename": "dashmips-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "be84069d6b14164e58c6a1719defb4cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31529, "upload_time": "2019-01-24T02:19:20", "url": "https://files.pythonhosted.org/packages/48/20/c3af7514424fbc328fba1b00ff745e52d1293e55979a2d2ee74fa952c5c5/dashmips-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a119c33ecc513484ed323fc0d7c5d5d0", "sha256": "a4cc7bec3beefca34b5d0a68167363509d989cc1b469da6e86ff7b973b67bba9" }, "downloads": -1, "filename": "dashmips-0.0.11.tar.gz", "has_sig": false, "md5_digest": "a119c33ecc513484ed323fc0d7c5d5d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22172, "upload_time": "2019-01-24T02:19:21", "url": "https://files.pythonhosted.org/packages/e2/fb/fa117faf9a7c9620fa0944a386c0813f5fec3e65f9b60841674b8479f8a8/dashmips-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "2748d08e01efb73d94c29f849141b15f", "sha256": "36036929aa87d09ec4ebb51e077af1cda937452dde08513bcfd9ee518e001994" }, "downloads": -1, "filename": "dashmips-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "2748d08e01efb73d94c29f849141b15f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 32031, "upload_time": "2019-06-09T16:05:08", "url": "https://files.pythonhosted.org/packages/86/99/9eaa53f7c5b655bcd58f848d29145e91ddf7eff4549fc81a6b7d170bfdd2/dashmips-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c55322db3280a6e1e270da33e2400af", "sha256": "fad8fe0861c845fa98aabba3783f68a34e48266447f470b305c6820b9f278ae9" }, "downloads": -1, "filename": "dashmips-0.0.12.tar.gz", "has_sig": false, "md5_digest": "1c55322db3280a6e1e270da33e2400af", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 24085, "upload_time": "2019-06-09T16:05:10", "url": "https://files.pythonhosted.org/packages/72/0a/dca737f64830f3efc8dd40a8fe07ce496d0e01ce91ec2105f2f47ecb9bd9/dashmips-0.0.12.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7ab609f623f24fb924b92ff87e78317e", "sha256": "855045c768a80af9d8e545c13283d71dee35b60da0d9826a770f7390d6522684" }, "downloads": -1, "filename": "dashmips-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7ab609f623f24fb924b92ff87e78317e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19611, "upload_time": "2018-10-03T01:18:53", "url": "https://files.pythonhosted.org/packages/73/5e/323863344e653142257c9195e7d7141799a387bd41cc5a10d3267fc1a8df/dashmips-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3de4b87fec4234bca6cb76a9c3693215", "sha256": "56af65e7febfdd5f784d2cbd22b18053024ed023ba7fec67a743432eee42f1a8" }, "downloads": -1, "filename": "dashmips-0.0.2.tar.gz", "has_sig": false, "md5_digest": "3de4b87fec4234bca6cb76a9c3693215", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11897, "upload_time": "2018-10-03T01:18:54", "url": "https://files.pythonhosted.org/packages/7d/95/6415099d87b2ab29157b368ad61c0032a251945a01b7cbb9b2de13228e61/dashmips-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "127d8203a3d3ad501563b31a6ae15224", "sha256": "371330f411361a6460d5be5a4de2c253ad28a6d1f983f5ed0bab51d18fec9486" }, "downloads": -1, "filename": "dashmips-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "127d8203a3d3ad501563b31a6ae15224", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20011, "upload_time": "2018-10-05T18:10:29", "url": "https://files.pythonhosted.org/packages/51/30/a01ce759ef84c7beacbbb234cde35ea66cb90b7320b8e880d67996fad5d3/dashmips-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9376d7b23bba5128ee0fa2d01242f33b", "sha256": "7008f3d0eeed3889c218a4765f7f2324e417e74985f878cf6f2dab8997bd18fd" }, "downloads": -1, "filename": "dashmips-0.0.3.tar.gz", "has_sig": false, "md5_digest": "9376d7b23bba5128ee0fa2d01242f33b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12316, "upload_time": "2018-10-05T18:10:30", "url": "https://files.pythonhosted.org/packages/a0/98/12ca78892ea0085b63afd7dc3404b65bedc6c432c215134b41021994ec66/dashmips-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "183364bebea7cca45eb084b6405d45b0", "sha256": "a7c2e231fecb1dd3e931e75028156402aafde70d071fd82389391998c4609d5d" }, "downloads": -1, "filename": "dashmips-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "183364bebea7cca45eb084b6405d45b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24865, "upload_time": "2018-10-13T17:05:02", "url": "https://files.pythonhosted.org/packages/85/90/df4f64dc2f5e60b4c08fe2861f3d72c4fb1bbcd9048d07d9255023921dbb/dashmips-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5db5601fa9a31576ef3d9ae732af8f8d", "sha256": "ec7a33e1518cc7761f0e493c4f12703fb7f4f7154a51086302ec385fbe0c22ec" }, "downloads": -1, "filename": "dashmips-0.0.4.tar.gz", "has_sig": false, "md5_digest": "5db5601fa9a31576ef3d9ae732af8f8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16108, "upload_time": "2018-10-13T17:05:03", "url": "https://files.pythonhosted.org/packages/e4/02/c86c936a86829cc8eb6c0aad772467b32876c026435666cfaadb86135adf/dashmips-0.0.4.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "f4c0fcf3eee27bcbcda388d33916e314", "sha256": "688496ba171b16dd0e65c8e36eb396f07cb81002b58228ef2ab80a91b316d99f" }, "downloads": -1, "filename": "dashmips-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f4c0fcf3eee27bcbcda388d33916e314", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29306, "upload_time": "2018-10-30T20:59:50", "url": "https://files.pythonhosted.org/packages/9d/49/42547c2a728ab031e0d793724cfd7b9a9a4c2db1987871e5a022dabe8194/dashmips-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95909002e78c0fa200574d150b96df12", "sha256": "9edbcc09cf2fdb8bd8448481d2ebe8a1b41946476383a78667395b84c1339630" }, "downloads": -1, "filename": "dashmips-0.0.6.tar.gz", "has_sig": false, "md5_digest": "95909002e78c0fa200574d150b96df12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19002, "upload_time": "2018-10-30T20:59:51", "url": "https://files.pythonhosted.org/packages/31/42/b791d301693f7ed41ebd52d3f7ee4c1ffdc51e09f0d86946dafd9114d715/dashmips-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "583ca7db4538f6c87df9431e68cba0e6", "sha256": "b1fcc83a8becf03f4f94a52284589d27c6e40addbec5810e113852389e551147" }, "downloads": -1, "filename": "dashmips-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "583ca7db4538f6c87df9431e68cba0e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30229, "upload_time": "2018-11-09T17:53:40", "url": "https://files.pythonhosted.org/packages/cb/9a/8f8dd6250be1fb09cb7e4e5d3a5d4ee7de80b491699cf29ce7ba5e926d3e/dashmips-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e8bf03211e2baa416c7edc04e2469c3", "sha256": "f3465bddf8fe2f43b80b4db70735823967ac362364a032618da33a760e444bf7" }, "downloads": -1, "filename": "dashmips-0.0.7.tar.gz", "has_sig": false, "md5_digest": "8e8bf03211e2baa416c7edc04e2469c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20860, "upload_time": "2018-11-09T17:53:41", "url": "https://files.pythonhosted.org/packages/dd/26/cbe5045111f243b5d9833db3b4d9553d18bb7e722dc59c930a184c687117/dashmips-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "f6cfa03ade8254d3dbddfe484c9644ab", "sha256": "7460259c9299c6afde16095c773cdeb9a456ec0a665b20d547fbc0a93e674856" }, "downloads": -1, "filename": "dashmips-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "f6cfa03ade8254d3dbddfe484c9644ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30860, "upload_time": "2018-12-27T17:33:54", "url": "https://files.pythonhosted.org/packages/e1/6c/b2b08b8250291cda5f7792364640b1c5a59510a33fefd31d25cc6c9845b8/dashmips-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c3594ab2943e2f736f2e0b24b900d25", "sha256": "af728f589eddf5f72e18b79dbca6bad0dfd3b4eb8013e647d0a7a4e08dd259bb" }, "downloads": -1, "filename": "dashmips-0.0.8.tar.gz", "has_sig": false, "md5_digest": "4c3594ab2943e2f736f2e0b24b900d25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21592, "upload_time": "2018-12-27T17:33:56", "url": "https://files.pythonhosted.org/packages/c0/b2/bf0fb01347c1a09dc770de8835bbffc34b9f953a6519e6f2dd29d565f683/dashmips-0.0.8.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "73558c129097a71afd7710b853235fab", "sha256": "24c32fc202c024f36fac658e4aa9f7f12e3a4e3227bc710eac36d8a4c6c820cb" }, "downloads": -1, "filename": "dashmips-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "73558c129097a71afd7710b853235fab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 31765, "upload_time": "2019-08-21T17:47:17", "url": "https://files.pythonhosted.org/packages/f0/cb/cecebd6cbb9bc6fd71c155f2916278c0e52173e28a7871461bbc3f58952e/dashmips-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80da646c0f19d0ca84d896aafb2d8b14", "sha256": "f00d61ff8df7035c291f21317b7ad086aedda41c5ba82c2d7d46572d6ce8577e" }, "downloads": -1, "filename": "dashmips-0.1.0.tar.gz", "has_sig": false, "md5_digest": "80da646c0f19d0ca84d896aafb2d8b14", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 22852, "upload_time": "2019-08-21T17:47:18", "url": "https://files.pythonhosted.org/packages/c8/e8/925f1a2dbd7d4cd4e7540026722612bd8b9eff8e428525f21ee59acd399e/dashmips-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d911a27f9efb8ec9263d811888806aef", "sha256": "08c4fc53bc093ce070d7e838dc5eef06127787d88daf78af15618769dc831796" }, "downloads": -1, "filename": "dashmips-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d911a27f9efb8ec9263d811888806aef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 34220, "upload_time": "2019-09-06T00:15:30", "url": "https://files.pythonhosted.org/packages/d5/d5/ec4ab7db263f3fe44bb0bf156197d5e3ef44f74bf6dccea310864c8f8e19/dashmips-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "613000c00354b87e10de6e0cacc091d8", "sha256": "f2bbbbd1e9d7479e8a37273c11cd61ecb07c0e1c616e09b9bb6a60f324ee4150" }, "downloads": -1, "filename": "dashmips-0.1.1.tar.gz", "has_sig": false, "md5_digest": "613000c00354b87e10de6e0cacc091d8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 24455, "upload_time": "2019-09-06T00:15:33", "url": "https://files.pythonhosted.org/packages/d1/71/b76712124f8bd6545fb2beb30fcba5b94ac82ab1b7c9b69e5aa7bd22a33f/dashmips-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a85207ce166292ea28de097d7bb795f8", "sha256": "c42b8bb03c47f84240f1d57aaba9f7f8c7ef208d4baa3e81c3d5a4f910223703" }, "downloads": -1, "filename": "dashmips-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a85207ce166292ea28de097d7bb795f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 33895, "upload_time": "2019-09-06T17:13:55", "url": "https://files.pythonhosted.org/packages/f5/10/4499bea660d27807eaf25fc40f5ae606166498bb4bda04bddb5b9b3d62b2/dashmips-0.1.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a85207ce166292ea28de097d7bb795f8", "sha256": "c42b8bb03c47f84240f1d57aaba9f7f8c7ef208d4baa3e81c3d5a4f910223703" }, "downloads": -1, "filename": "dashmips-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a85207ce166292ea28de097d7bb795f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 33895, "upload_time": "2019-09-06T17:13:55", "url": "https://files.pythonhosted.org/packages/f5/10/4499bea660d27807eaf25fc40f5ae606166498bb4bda04bddb5b9b3d62b2/dashmips-0.1.2-py3-none-any.whl" } ] }