Skip to content

v1.0.0 - C1 Support and UX Improvement!

Compare
Choose a tag to compare
@MarkChenYutian MarkChenYutian released this 17 Jan 06:58
· 54 commits to main since this release
fc6eb51

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

release

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:

c1_support

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 to Ant-design 5.
  • Add tutorial page for new user to make it easier to use
  • Debug console will display types according to the typedefs in source code. (e.g. if we have typedef T* T_t, debug console will show T_t for T* typed variable).