gaeqs / jams Goto Github PK
View Code? Open in Web Editor NEWJust Another MIPS Simulator.
License: MIT License
Just Another MIPS Simulator.
License: MIT License
The counter in the lab tool is very clumsy. Let's rework it.
Make the language system behave like the theme system, adding new features along the way.
Currently, instructions are hard and slow to implement. We have to create a new way to implement new instructions.
The .eqv directive doesn't work when the replaced and replacement parameters are separated by a comma.
The manager API right now has little consistency and its hard to use:
It requires from 4 up to 8 new event classes per manager for it to work.
Managers are located inside the manager package. They should be located next to the managed element's class. This would allow managers to access protected fields and methods.
There's no load events: plugins cannot add their default elements before the default and selected elements are picked.
JAMS's main class is full of manager definitions. Maybe a manager of managers would be required.
Add generic support to the Event API.
Remove all specific events from all managers.
Make a Manager Register.
Right now the autocompletion popup is just a list with a bunch of bugs.
It needs to be reworker, bringing with it a new API for plugins to use.
The ExplorerFolder class creates a new FileWatcher for every instance instead of using the FolderEventBroadcast. This makes Linux users to be unable to open projects with more than 128 folders.
The registry should load the managers if it is posible. Right now managers are not loaded when the manager is registered after the managers of its group are loaded.
The JAMS indexing system works on the JavaFX thread. This causes a frozen screen when the files to index are big. A new async indexing system is required.
Currently, the configuration window is a singleton that fails to refresh plugin's additions and removals. Let's make it a non-singleton class that listens to the configuration's changes.
The registers' tool can only represent values in decimal and hexadecimal. The COP1 registers can only represent values in float point.
Let's rewrite the registers' too, adding support for all representations found in the memory tool.
Create a wiki that documents all the aspects of JAMS: editor, assembler, simulator, API...
The Configuration class only reads and writes JSON files. Let's add more flexibility to it, allowing it to read and write in other formats.
Instructions contains basic information inside they classes, such as name, language node or documentation.
It would be required for future updates to have some aditional data, such as the type of the operation or the type of ALU they use.
The async editor removed the option to format the code. This function should be reimplemented.
Currently, there's no way to see basic information about a simulation, such as the cycle number, the executed instructions or the amount of data hazards.
A new pane with a bar button should be implemented so users can see this information.
"lif" and "lid" doesn't follow the MIPS floating point convention. Let's change that.
Currently, the execution step of all operations cost one cycle in the pipelined architecture.
This behaviour is too simple, as real life pipelined architectures must use more than one cycle to execute these operations.
This issue depends on issue #33.
The plugin load/unload system fails in some parts of the application.
Currently, plugins can't modify the config's metadata. We have to add an option to allow this!
The editor doesn't style the code when the first line is empty.
The new task system uses the Java monitor API instead of the JavaFX task API.
it would be an improvement to use the JavaFX task API instead because it provides more general information about tasks and there's more support for it than the JAMS Task API.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.