Releases: MarkChenYutian/C0VM-ts
v1.2.1 - Object File Support, 15-122 Project Import Guide, and more
What's Changed
- Support to
o0
ando1
object file - Support to retrieve and display interface of object file in code editor when possible
- Import 122 project automatically by @MarkChenYutian in #44
- Improve exception message from the program (now showing traceback and detailed position of exception)
- Auto-compile on directory import
- Fix graphical debug console render error by force re-rendering
- Fix display error when out-of-scope variable is reused by cc0 by @MarkChenYutian in #38
- Clean up codebase for folder upload
- Hide internal variables generated by cc0 compiler when using
-d
dynamic contract check flag - Show compile command and result in standard output.
- Bump webpack from 5.74.0 to 5.76.0 by @dependabot in #40
- Bump react-flow to v11
Full Changelog: v1.0.0...v1.2.1
Screenshots
v1.0.0 - C1 Support and UX Improvement!
After a long development in winter break, the C0VM.ts project is reaching a new stage and we are happy to announce the C0VM.ts - version 1.0.0
! Feel free to play with it on https://visualc0.tk
Support C1 Language Standard
The C0VM.ts now supports C1 Language Standard including Generic Pointer void*
(tagged pointer) and Function Pointer! Here's a Demo:
Improvements Comparing to Previous Version
Editor User Experience Improvement @chaosarium
- #16 - Thanks for @chaosarium 's work on editor tab, we can now rename editor tab by double-clicking on tab name instead of pressing
alt
and click tab - an operation that is much more intuitive. - #22 - @chaosarium added the feature of "Import Folder" and therefore we won't need to do import all files one by one.
AutoStep and Shortcut Keys for Execution @Helen0721
- #20 - With @Helen0721 's work on
AutoStep
and short cut key for C0VM actions, students won't need to press the "Step" button repetitively anymore.
Maintenance & Debugging @MarkChenYutian
- #9 - By parsing C0 source code and generate the memory layout for each
struct
directly on frontend, we can now display all struct fields before they are accessed by bytecode instruction. - #11 - By remove
StructuredClone
dependency, the compatibility of project is improved. For instance, we now support WeChat browser! - #21 - The relationship between CodeMirror state and React state is finally cleaned up and all breakpoints are working perfectly now even when the editor is re-rendered.
- #24 - Breakpoints, finally are rendered in CSS instead of a 🔴 emoji, which means their appearance will be unified across platforms.
Other Small Improvements
- Improved UI to give more space for code editor.
- Add tooltips to disabled buttons that explains why action is disabled.
- Fix dependency problem (no more
--legacy-peer-deps
) and bump toAnt-design 5
. - Add tutorial page for new user to make it easier to use
- Debug console will display types according to the
typedef
s in source code. (e.g. if we havetypedef T* T_t
, debug console will showT_t
forT*
typed variable).
v0.3.1-beta
🎉 Thanks for Testing and Feedback!
Thanks everyone for playing and testing with our C0 visualizer!
According to the web statistics, more than 250 students have used this website for 120+ hours in the past two weeks!
With all 15122 staffs and students actually using this project, we fixed many bugs & receives lots of feature requests in this beta version including:
#5 - Type inference problem when executing recursive function
#6 - Support WeChat browser
#7 - Enforce recompile when source code is changed
#8 - Parse native library not working as expected
#11 - Improve compatibility of project by removing dependency to StructuredClone
API.
...
🔧 Major Improvement in this version
- Deploy on internet - visit https://visualc0.tk
- Option to hide bytecode implementation
- Set breakpoints on C0 source code
- "Details" mode in debug console
- Abort C0 program & async C0 program execution
- Stability improvement
- Compatibility improvement
🚀 Next Step for this Project
The next stage of this project is to continuously improve user experience and expand the appliable field of this visualizer.
Specifically, we will focus on these aspects of the project in the upcoming winter development:
- Support uncommon C0 language features (nested struct)
- Support C1 language
- Support C0/C1 object file
- Improve user experience - import folder as C0 project, restore progress from
LocalStorage
, etc. - Improve user interface - dark mode, tutorial to breakpoint, etc.
v0.2.5-alpha
🎉 Debug Console, both Tabular and Graphical
👀 Multi-tab C0 Code Editor
🐞 Core Improvement & Bug Fix
- 7b50909 Complete support for String native function group
- Better Type Inference during runtime
- fbaccee Reconstruct the frontend on React framework
- Bug fix and UX improvement:
dce4972 OnDEBUG
mode, dump the application state
3949aa6 Add error boundary on components - Application Root and Debug Console
7071d9b Fix breakpoint behavior, Improve UI robust on unexpected user input
v0.1.0-alpha
The C0VM-ts is now fully functional C0 Virtual Machine in typescript and provides following features:
- Basic Debugger features like: Breakpoints, Step and Run
- Basic Debug Console features: Showing function call stack, Showing local variables in each stack frame
- Remote-compile features: By sending
fetch
request to remote server, user can compile C0 code at front-end browser
Some other (not so cool, but important) things are
- Responsive UI: Adaptive to mobile, pad and laptop
- Syntax Highlighting for BC0 code editor
- Highlighting the position of C0VM execution