Giter Site home page Giter Site logo

jams's People

Contributors

gaeqs avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

jams's Issues

Overhaul the manager's API.

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.

Improve the autocompletion popup.

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.

Big projects cannot be opened on Linux.

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.

Registry doesn't load managers.

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.

Project indexing rework.

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.

  • Create a common editor API.
  • Revamp the indexing system.

Improve the configuration window.

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.

Improve registers' tool.

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.

Create a wiki that documents all the aspects of JAMS: editor, assembler, simulator, API...

Add more information to instructions.

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.

Add pane with general information about the simulation.

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.

Themes revamp.

Currently, theme files are big chunks of duplicate code hard to manage. It is required a new theme system and API.

Add more editor hotkeys.

  • Edit RichTextFX, making it able to disable hardcoded actions.
  • Make old actions available for plugin editors.
  • Add a remove line hotkey.
  • Add a move line up and down hotkey.

Add remaining MIPSv6 instructions.

  • class.fmt
  • crc32b
  • crc32h
  • crc32w
  • crc32cb
  • crc32ch
  • crc32cw
  • di
  • ei
  • ext
  • floor.w.fmt
  • floor.l.fmt
  • ins
  • jialc
  • jic
  • lbu
  • ldc1
  • lh
  • lhu
  • lsa
  • lwc1
  • lwl
  • lwpc
  • lwr
  • maddf.fmt
  • msubf.fmt
  • max.fmt
  • min.fmt
  • maxa.fmt
  • mina.fmt
  • nal
  • neg.fmt
  • nor
  • pref
  • rdhwr
  • rdpgpr
  • recip.fmt
  • rint.fmt
  • rotr
  • rotrv
  • round.l.fmt
  • round.w.fmt
  • rsqrt.fmt
  • sdbbp
  • sdc1
  • seb
  • seh
  • sel.fmt
  • seleqz
  • selenez
  • seleqz.fmt
  • selneqz.fmt
  • sh
  • sigrie
  • sqrt.fmt
  • sra
  • srav
  • swc1
  • trunc.l.fmt
  • trunc.w.fmt
  • wrpgpr
  • wsbh

Revamp task system.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.