Releases: Marco4413/ProcessorEmulator
PEMU-1.12.2-RELEASE
-- Version (v1.12.2-RELEASE)
-- Changes from commit e0e292b
Hopefully fixed all issues with TJMenuItem's disabled color
Removed useless constructors for class TJMenuItem
Fixed an issue that would prevent Icons from loading and raise exceptions in newer Java Versions
PEMU-1.12.1-RELEASE
-- Version (v1.12.1-RELEASE)
-- Changes from commit dc910e9
Changed Consoles' Font to JetBrains Mono (It's also bundled with the Jar, so no issues of not having the Font)
Changed Plugin's Load and Unload order (Now the old Plugin is unloaded before the new one is Loaded)
Made Application#loadPlugin not load the same Plugin twice
PEMU-1.12.0-RELEASE
This is the biggest update to date, this also adds JRuby as a dependency so the jar file size is way bigger
-- Version (v1.12.0-RELEASE)
-- Changes from commit 817a967
Added methods to PEMUJRubyPluginAPI to add a compat layer
Added throw signature to method IPlugin#onLoad
Removed arguments from method IPlugin#onLoad
Translated class ExternalPlugin's console messages
Changed the way Application displays plugin's errors
Changed the way errors are handled by method PluginManager.compilePlugin
Moved all Console-related classes from package pemu.app and pemu.utils to package pemu.console
Renamed methods of interface IConsole:
- getWriter -> toWriter
- getPrintStream -> toPrintStream
Changed static method FileUtils.tryGetCanonicalPath return fallback, it should now be more similar to the real canonical path
Made static method StringUtils.stackTraceAsString trim its result
-- Changes from commit 8d10fc5
Fixed MemoryView adding extra rows on Registers and Flags Table
Added class HTMLTableBuilder
Added static method StringUtils.escapeHTML
-- Changes from commit 35678f9
Added command line arguments: "--plugin", "--language"
Now the last loaded plugin is saved in the config so that it's loaded when the app is opened again
Reworked TranslationManager class:
Added static methods to class TranslationManager: hasTranslation, getTranslation, getAvailableTranslations
Made static method TranslationManager.setCurrentTranslation return a boolean (which says if the specified language loaded)
Made static method TranslationManager.loadTranslation private
Changed the return value of methods Translation#getShortName and Translation#getLongName
Added overload for method Translation#toString
Made class BasePlugin a singleton
-- Changes from commit d61b49c
Improved the compilation error message
Improved Application's Title Program Path
Added static method FileUtils.tryGetCanonicalPath
Renamed static method of FileUtils from getFilePathWithExtension to getFileWithExtension
Hopefully fixed some issues that could've happened with the method FileUtils.createFile
Removed some useless File#exists checks
Removed PEMULangUtil.py (Now that there's a VSCode extension that does the same but better it's kind of useless)
-- Changes from commit 78f817f
Translated most of the Debug Console messages (Compiler errors won't be translated)
Added Ruby Plugins easy access to packages: pemu.localization, pemu.files
Added method Translation#merge
Added static method Translation.mergeTranslations
Added static field TranslationManager.LANGUAGE_EXTENSION
Made static method TranslationManager.parseTranslation public
Made static method FileUtils.getFilePathWithExtension return a File instance instead of a String
-- Changes from commit 304a9ff
Added Dependency: JRuby
Renamed methods of interface IPlugin:
- createProcessor -> onCreateProcessor
- createDummyProcessor -> onCreateDummyProcessor
Added methods to interface IPlugin: onLoad, onUnload
Added static field FileManager.PLUGINS_DIR
Added static method FileManager.getPluginDirectory
Added enum PluginType
Added class ExternalPlugin, which is used when loading an external plugin
Reworked class PluginManager (See JavaDocs, it's been Documented)
Added interface IConsole
Modified interface IPrintable
Added class ConsolePrintStream
Removed class PrintablePrintStream
Now outputs stored by the Console class are stored as IConsole(s)
Added margins to ConsoleComponent
Updated ConsoleComponent to use the new IConsole interface instead of IPrintable
Now if not on the command line, both System.out and System.err are re-routed to Console.Debug
Improved message for when no plugin is loaded by the Application
-- Changes from commit 63f88ca
Added static class PluginManager
Added Plugin Selection in File Menu
Removed method IPlugin.getDescription
Added defaults to all methods from interface IPlugin
Added abstract class Plugin which implements IPlugin and overrides the toString method
Removed some methods related to Plugins from Application class (Now everything is handled by PluginManager)
- Kept methods: loadPlugin, getLoadedPlugin
Added package pemu.files
Added static classes to package pemu.files: FileManager, FileUtils
Moved and renamed File-related methods from class StringUtils to FileUtils
Added constructor overload for class DummyProcessor that accepts Lists instead of Arrays
-- Changes from commit c2f5bea
Added basic Plugin System
Added class BasePlugin
Added interface IPlugin
Added methods to Application: addPlugin, getLoadedPlugin
Removed methods from Application: setProducer, setDummyProducer
Added class InstructionHistory
- Which will now be used by IProcessor#getInstructionHistory
PEMU-1.11.5-RELEASE
-- Version (v1.11.5-RELEASE)
-- Changes from commit 024ef15
Made Open File Dialog start in the directory of the current program
Now Open and Save Dialog Paths aren't the same
-- Changes from commit bfa9631
Added command line argument: "--version"
-- Changes from commit d3d7288
Added command line argument: "--no-config-auto-save"
PEMU-1.11.0-RELEASE
-- Version (v1.11.0-RELEASE)
-- Changes from commit 36df4bb
Changed all Reference Errors thrown by Labels to include the position of the first Label's usage
Renamed all methods in interface ILabel with "Last" in their name to not include it
-- Changes from commit 9ca6094
Now all Reference Errors thrown by Labels should know where that Label was last used at
Added methods to interface ILabel:
hasPointer, setLastInstance, removeLastInstance, getLastInstanceFile, getLastInstanceLine, getLastInstanceChar
-- Changes from commit a2c936e
Added command line argument: "--obfuscate"
-- Changes from commit 573e58e
Now Constants' Circular References Errors always know the file and pos of the error (Might slow down Compile Times)
Added method Constant#isCircularReference
Added static method Constant.formatReferences
Improved method Constant#getValue (Maybe improved speed? At least recursion is gone)
PEMU-1.10.2-RELEASE
-- Version (v1.10.2-RELEASE)
-- Changes from commit 08c72ef
Made arrays and offsets created using constants use the constant's last assigned value at the moment of their creation
-- Changes from commit e443882
Fixed Characters and Strings accepting actual new line characters, multi-line strings is no more
PEMU-1.10.0-RELEASE
-- Version (v1.10.0-RELEASE)
-- Changes from commit 43059b2
Added Standard PEMU Library
Changed the way Constants are handled by the Compiler, now they're value is the last one that was set to them
Added Constant Circular Reference Error
Added class Constant
Changed the return type of Constants.getDefaultConstants
-- Changes from commit cb43857
Added PEMU Lib files to Open File Dialog
-- Changes from commit bd31675
Added INCLUDE Compiler Instruction
- Because of that, half of the Compiler's code was reworked
Changed Compiler's Error Syntax to include the file that generated the Error
-- Changes from commit e980b99
Reworked Tokenizer and Token classes (again)
Now Compiler can tell the difference between an Horizontal and Vertical Space
PEMU-1.9.0-RELEASE
-- Version (v1.9.0-RELEASE)
-- Changes from commit b3a30f5
Added simulation performance at the bottom of the Application
Fixed closing using the Quit button not saving config
Renamed some config keys
Renamed command line argument "--memory" to "--memory-size"
Renamed command line argument "--clock" to "--clock-frequency"
Fixed command line flag "--run" closing the app even when not on the command line
Added icon to Processor Config Panel
Removed methods from class CompiledProgram: getCompileTimeNanos, getCompileTimeMicros, getCompileTimeMillis
Added method CompiledProgram#getCompileTime
Added methods to Clock class: getInterval, getDeltaTime
Renamed method Clock#getClock to getFrequency
Renamed method Clock#setClock to setFrequency
Renamed method ProcessorConfig#getClock to getClockFrequency
Renamed method ProcessorConfig#setClock to setClockFrequency
Renamed all static fields in Clock and ProcessorConfig referring to Clock Rate to include Frequency in the name instead of Clock
Now method StringUtils.format accepts an Object vararg as formats and it will use their toString method to convert them
Removed static methods from StringUtils: getEngNotationInt, getEngNotationLong
Added method StringUtils.getEngNotation
-- Changes from commit 6b3a847
Added a way of allocating an array without specifying elements' value
Now comments can be added mid-array to comment on a certain element
PEMU-1.8.6-RELEASE
-- Version (v1.8.6-RELEASE)
-- Changes from commit 09fc55e
Now JA and JNBE Instructions should work as intended
Added a new line character on BRK Instruction's Debug Log
Made Application check if the current program is still valid before Compiling
PEMU-1.8.5-RELEASE
-- Version (v1.8.5-RELEASE)
-- Changes from commit 4c33099
Added command line arguments: "--verify", "--skip-warning"
Added PEMULangUtil.py, a Python script which helps verifying programs from the command line
Improved layout of Registers and Flags in MemoryView