Code Monkey home page Code Monkey logo

jupiter's Introduction

Jupiter

License: GPL v3 Azure Pipelines Coverage Version issues

Jupiter is an open source and education-oriented RISC-V assembler and runtime simulator. It is written in Java and capable of simulate all the instructions of the base integer ISA (I extension) plus the M and F extensions (RV32IMF), including all the pseudo-instructions described in the user-level instruction set manual1. It was developed taking into account that it could be used in various courses such as: Computer Architecture, Compilers and Assembly Programming.

Features

  • User Friendly: Jupiter was designed focused on education and for all the people that are getting to know the RISC-V architecture. It places for priority the user experience. Jupiter has two modes of operation (Command Line Interface and Graphical User Interface) and both of these were developed to be intuitive and easy to use.

  • Modularity: Jupiter can assemble and simulate several files at once, not everything has to be one file of 1,000 lines of code. Simply indicate by a global label what is the main starting point of the program. This permits modularity and enables the creation of projects and laboratories more easily.

  • Feedback: People using Jupiter gets feedback on what they are doing wrong 💯. The simulator shows different types of errors like: syntax errors, when trying to access reserved memory or when trying to write to a read-only memory.

  • Cross-platform: Jupiter is available for Linux (Ubuntu), macOS and Windows.

Documentation

Please visit the following link for more info and documentation.

Screenshots

Jupiter GUI mode GUI Mode

Jupiter CLI mode CLI Mode

Installation

Download the app image for your operating system and unzip the file:

Running Jupiter on Linux or macOS

./image/bin/jupiter # for GUI mode
./image/bin/jupiter [options] <files> # for CLI mode

Running Jupiter on Windows

image\bin\jupiter # for GUI mode
image\bin\jupiter [options] <files> # for CLI mode

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Other great simulators

  • Venus: Berkeley's Web-based simulator originally developed by @kvakil and then updated and improved by @ThaumicMekanism.

  • RARS: RISC-V Assembler and Runtime Simulator (RARS), based on the originally MARS simulator, but refactored for the RISC-V architecture by @TheThirdOne.

  • Ripes: A graphical 5-stage RISC-V pipeline simulator & assembly editor developed by @mortbopet.

  • Spike: The original RISC-V ISA simulator that implements a functional model of one or more RISC-V harts.

Acknowledgments

A big thank you to all the people working on the RISC-V project.

References

  1. https://github.com/riscv/riscv-isa-manual
  2. http://courses.missouristate.edu/KenVollmar/mars/index.htm
  3. https://github.com/kvakil/venus
  4. https://en.wikipedia.org/wiki/Jupiter
  5. https://en.wikipedia.org/wiki/DLX

jupiter's People

Contributors

andrescv avatar codacy-badger avatar diegocdl avatar gitter-badger avatar inesrs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jupiter's Issues

Questions about building project

Jupiter has been great. It is very intuitive and powerful.

Is there a way you can add build instructions for this project? I am new to using Gradle and I have had issues trying to run the application. I wanted to try experiment making scripts.

Either way, I appreciate the work you put in. I am new to RISC V and this has let me obtain a better understanding.

Zicsr extension is left unimplemented

I have been working on making sure the Zicsr extension is fully implemented in RARS and so I tried out Jupiter confirm my expectations from my reading of the specification.

I was very surprised when i tried to use FRCSR x5, saw that it compiled to csrrs x5, 11, x0 and when executed didn't change t0. I expected it to use csrrs x5, 3, x0.

When I looked into the code I found https://github.com/andrescv/Jupiter/blob/00041f32017a010077397640c673dbc541406962/src/main/java/jupiter/riscv/instructions/itype/CSRRC.java#L39-L42

It would be nice if there was some indication that CSR instructions were not expected to work. A warning when assembled or a note in the documentation would be enough (I guess this issue now serves that purpose).

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$48(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Assembler directives errors

Hi!

I’m using pure RV32I Toolchain instaleld as described here: link.

I wrote a simple C program:

image

Using mentioned RV32I Toolchain I generated .s file. I wanted to simulate this assembler code in Jupiter but I have some errors (errors that occured are commented in the line they are related to):

image

Following the RISC-V Assembly Programmer's Manual: link
directives that are used in my code should be fine.

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$48(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Typo in Linker.java

vsim: (error) linker: global start label ' ' wast not found in text segment

it should be "was not found in text segment" or "wasn't found in text segment"

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$25

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$25(SimulatorController.java:579)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

system call interfaces ?

What are Jupiter's calling conventions, supported system calls, and system call interfaces? If there is a specific document introduction, I would appreciate it most.

.equ directive

Hi, thank you for jupiter! I intend to use it in my computer architecture class. One question: Is it possible to define a constant? The standard .equ does not seem to be implemented. Thanks! Matthias.

a0 vs a7 for system calls

Jupiter uses a0 for the system call number. Most other simulators/kernels use a7 for the system call number. Notably, spike with pk, rv8, qemu for userspace, RARS, and RIPES all use a7. Venus would be the notable simulator that uses a0.

Would you be interested in changing to use a7 instead of a0? I would be willing to make a PR, but wanted to get a "go ahead"
before I start.

Unexpected Exception in sun.nio.fs.UnixException/translateToIOException

Stacktrace:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
	at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
	at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1405)
	at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.lambda$createChildren$599(ContextMenuContent.java:1358)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
	at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$345(GlassViewEventHandler.java:432)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
	at com.sun.glass.ui.View.notifyMouse(View.java:937)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
	... 43 more
Caused by: java.io.UncheckedIOException: java.nio.file.AccessDeniedException: /home/seifert/.dbus
	at java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:88)
	at java.nio.file.FileTreeIterator.hasNext(FileTreeIterator.java:104)
	at java.util.Iterator.forEachRemaining(Iterator.java:115)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at vsim.utils.Cmd.getFilesInDir(Cmd.java:214)
	at vsim.gui.controllers.SimulatorController.assemble(SimulatorController.java:212)
	at vsim.gui.controllers.MenuBarController.assemble(MenuBarController.java:265)
	... 53 more
Caused by: java.nio.file.AccessDeniedException: /home/seifert/.dbus
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
	at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:427)
	at java.nio.file.Files.newDirectoryStream(Files.java:457)
	at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:300)
	at java.nio.file.FileTreeWalker.next(FileTreeWalker.java:372)
	at java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:95)
	... 65 more

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$25

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$25(SimulatorController.java:579)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Simulator assembly view - option to show Hex values?

Jupiter is great - thanks!

I'm puzzled by the choice to show immediate values in the Asseembly view in the Simulator tab as decimal values.

For example, I'm loading a symbol into A1 in order to call print_string, and see the following:

  lui x11, 16
  addi x11, x11, 36

When I look at the simulator's register value for a1/x11, the value I see is 0x00010024, which is the important information I need in order to check the Memory tab. It seems that it would make more sense to at least have the option of seeing the two instructions disassembled like this:

  lui x11, 0x10
  addi x11, x11, 0x24

If nothing else, so that it makes more sense to students when they're seeing things going on.

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Question: How to run Jupiter?

Hello!

I am new in the RISC V community and I want to create some project with the RISC V Core. I was trying to run Jupiter on Ubuntu 18.04.3 LTS but it did not work. I would like to use Jupiter to learn more about RISC V but I do not know how to run it correctly. I was wondering if there is a possibility to create a little guide/tutorial how to run Jupiter correctly? Of course if it wouldn't be a problem for you.

Run V-Sim-1.0.3 on Window 10

Hello Andrés!
I'm very happy when you're developing RISC-V simulation. It's a good notification for human, who researches RISC-V architecture. I downloaded version V-Sim-1.0.3. I had installed Java Runtime Environment (version Java SE 8u192) on Window 10 64-bit before downloading V-Sim-1.0.3, but I haven't still executed the V-Sim-1.0.3. I set up "JRE_HOME" or "JAVA_HOME" variable on "Environment Variable", which not to result my problem. When I compile on Command Prompt window by command "java V-Sim-1.0.3.jar ". It appears an error: "Could not find / or load main class V-Sim-1.0.3.jar ". So you can help me to resolve this problem.
Best regards!
Nhan Le

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Questions about the name change

I have been watching this project for a bit and was surprised to see a name change. Is there a specific reason for the change?

Is this project inspired by MARS? You mention SPIM as an inspiration, but with the name change to a planet it seems like MARS may also have been considered.

Also, in case you are not aware there are two other risc-v simulators that were directly inspired from MARS, venus and rars (my project).

open error (win 7)

C:\Users\Administrator>jupiter
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError:
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getS
creens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Unknown Sou
rce)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native M
ethod)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(
Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at javafx.graphics/com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(Unkno
wn Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.assignScreen
sAdapters(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(U
nknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$start
up$10(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Unknown Sou
rce)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native M
ethod)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(
Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

[Feature Request]

Is your feature request related to a problem? Please describe.
When you have a breakpoint set in the simulate window, and then switch back to the editor to quickly browse the code, you are unable to return back to simulate

Describe the solution you'd like
Do not exit simulate when switching to editor window. Permit back and forth switching between editor and simulate

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered (if apply).

Additional context
Add any other context or screenshots about the feature request here (if apply).

Questions about how to use Jupiter on windows ?

Hi...
I have recently started working on risc v. I was searching for various kind of simulators and then got to know about the jupiter . I have lots of doubts like how to run the programs and how to use it. Is there any chance that i can get a user manual for the Jupiter Riscv simulator.

Couldn't execute "jupiter.bat" on x64 windows10

Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError:
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at javafx.graphics/com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$25

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$25(SimulatorController.java:579)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Exception when try to close tab with an unsaved file

An Exception is throwed when you try to close a tab that have an edited file but is not saved

image

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(Unknown Source)
	at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
	at javafx.controls/javafx.scene.control.MenuItem.fire(Unknown Source)
	at javafx.controls/com.sun.javafx.scene.control.ControlAcceleratorSupport.lambda$doAcceleratorInstall$1(Unknown Source)
	at javafx.graphics/com.sun.javafx.scene.KeyboardShortcutsHandler.processAccelerators(Unknown Source)
	at javafx.graphics/com.sun.javafx.scene.KeyboardShortcutsHandler.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
	at javafx.graphics/javafx.scene.Scene$KeyHandler.process(Unknown Source)
	at javafx.graphics/javafx.scene.Scene.processKeyEvent(Unknown Source)
	at javafx.graphics/javafx.scene.Scene$ScenePeerListener.keyEvent(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.View.handleKeyEvent(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.View.notifyKey(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javafx.reflect.Trampoline.invoke(Unknown Source)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(Unknown Source)
	at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(Unknown Source)
	... 33 more
Caused by: java.lang.IllegalAccessError: class com.jfoenix.controls.JFXAlert (in module com.jfoenix) cannot access class com.sun.javafx.event.EventHandlerManager (in module javafx.base) because module javafx.base does not export com.sun.javafx.event to module com.jfoenix
	at com.jfoenix/com.jfoenix.controls.JFXAlert.<init>(Unknown Source)
	at jupiter/jupiter.gui.dialogs.CloseDialog.<init>(Unknown Source)
	at jupiter/jupiter.gui.dialogs.SaveDialog.<init>(Unknown Source)
	at jupiter/jupiter.gui.controllers.Main.saveDialog(Unknown Source)
	at jupiter/jupiter.gui.controllers.Editor.closeTabSafetly(Unknown Source)
	at jupiter/jupiter.gui.controllers.Editor.close(Unknown Source)
	at jupiter/jupiter.gui.controllers.Main.close(Unknown Source)
	... 43 more

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$25

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$25(SimulatorController.java:579)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

[BUG]

Describe the bug
Jupiter does not seem to be able to read binary files
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.
It does not appear like an attach a binary file here.

Screenshots
If applicable, add screenshots to help explain your problem.

Jupiter (please complete the following information):

  • OS: [e.g. OS X]
  • Version [e.g. v3.1]
  • Mode GUI]

Additional context
When you fread from a binary file,
e.g., txt file (convert to binary before trying to fread).
5 3
1 -3 4
46 -2 -5
2 -62 0
1 3 13
26 -7 34

The first fread returns 5, but subsequent fread returns 0.

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$25

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$25(SimulatorController.java:579)
	at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Unexpected Exception in vsim.gui.controllers.SimulatorController/lambda$null$24

Stacktrace:

java.lang.NullPointerException
	at vsim.gui.controllers.SimulatorController.lambda$null$24(SimulatorController.java:572)
	at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$48(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

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.