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).