Skip to content

Releases: techy4shri/CppLabEngine

Patch Release - Performance and Stability Improvement

01 Dec 18:56
76f6b2b

Choose a tag to compare

Maintenance release addressing file modification tracking issues and improving application stability.
This release is a culmination of multiple commits related to performance, stability and overall app experience after getting feedback.

Fixed

  • Critical: File modification indicator (asterisk) now correctly reflects document state after save operations
  • Critical: Spurious textChanged signals during file load no longer trigger false modification state
  • Critical: Document modification state properly synchronized between Qt's internal tracking and application UI
  • File save operations no longer cause immediate re-marking of files as modified
  • New file creation no longer incorrectly marks files as modified before any edits
  • Editor tab titles now accurately reflect saved/unsaved state without manual intervention

Added

Documentation:

  • TROUBLESHOOTING.md with Wine compatibility guidance and common issue resolution
  • Wine/Linux limitations documented with source installation instructions
  • README.md updated with platform compatibility warnings

Changed

  • Problems table now read-only to prevent accidental edits while preserving copy functionality
  • All program types now execute in external terminal windows for consistent I/O behavior
  • File modification tracking migrated to Qt's QTextDocument.isModified() for reliable state management
  • Signal-based architecture for modification state changes using custom pyqtSignal

Performance Improvements

  • Trie-based syntax highlighting for O(n) keyword matching instead of O(n*m) regex operations
  • LRU cache on toolchain detection for faster repeated lookups
  • Debounced syntax highlighting with 200ms delay to reduce CPU usage during rapid typing
  • Precompiled regex patterns for string and comment matching
  • Optimized highlightBlock() implementation reducing editor lag on large files

Technical Improvements

  • Implemented proper signal blocking during file load operations to prevent false positives
  • Added _loading flag to distinguish between programmatic and user-initiated text changes
  • Modified save_file() to explicitly set document modification state via setModified(False)
  • Refactored _on_text_changed() to check document.isModified() as source of truth
  • Disconnection and reconnection of textChanged signal during file loading for clean state initialization
  • FastSyntaxHighlighter class with TrieNode data structure for efficient keyword lookup

Known Issues

  • Windows-only distribution (Wine compatibility not supported for PyInstaller builds)
  • Large size of the app folder

CppLabEngine v1.0.0 - Initial Release

25 Nov 18:50
v1.0.0
b6f6e0f

Choose a tag to compare

CppLabEngine v1.0.0

AND IT'S OUT NOW!!!! This is the first stable release of CppLabEngine, a lightweight offline C/C++ IDE for Windows intended for day-to-day use in college labs and on personal machines, with everything bundled in a single download.

Highlights

  • Fully offline toolchain

    • Bundled 32-bit and 64-bit MinGW toolchains; no separate compiler install needed.
    • 32-bit toolchain is preconfigured for legacy graphics.h / BGI programs.
    • 64-bit toolchain is used for modern console and OpenMP projects.
  • Two workflows

    • Project mode: Console, Graphics, and Console+OpenMP project templates.
    • Single-file mode: open a .c / .cpp, select toolchain and standard, and Compile & Run.
  • Build and diagnostics

    • Asynchronous builds so the UI remains responsive.
    • Incremental builds when outputs are up to date.
    • GCC output parsed into a Problems table (file, line, column, message).
    • Double-click a problem to jump to the exact line; error lines are highlighted in the editor.
    • Status bar summary such as Compilation failed in 1386 ms (2 errors, 1 warning).
  • UI and settings

    • Simple light UI with an optional light + sky-blue theme.
    • Settings dialog for theme, build-output font, and build timing options.
    • Bottom panel with tabbed Build / Problems view, similar to Dev-C++.

Changes since v0.1.0

  • Real Settings dialog with persisted options.
  • Problems view fully wired (error/warning parsing, navigation, highlighting).
  • Build moves to a background worker to avoid freezes.
  • Incremental build support and capped build log to reduce unnecessary work and memory use.
  • Packaging cleaned up for end-user use; earlier release is now marked as a pre-release.

Download and install

  1. Download CppLabEngine-1.0.0-windows-x64.zip from this release.
  2. Extract it to a directory such as C:\CppLabEngine\.
  3. Run CppLabEngine.exe.

No additional compiler setup is required; all toolchains are included in the compilers directory.