Releases: techy4shri/CppLabEngine
Releases · techy4shri/CppLabEngine
Patch Release - Performance and Stability Improvement
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
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
- Download
CppLabEngine-1.0.0-windows-x64.zipfrom this release. - Extract it to a directory such as
C:\CppLabEngine\. - Run
CppLabEngine.exe.
No additional compiler setup is required; all toolchains are included in the compilers directory.