Skip to content

Dev - #5

Merged
sergiorandria merged 9 commits into
mainfrom
dev
Sep 1, 2026
Merged

Dev#5
sergiorandria merged 9 commits into
mainfrom
dev

Conversation

@sergiorandria

@sergiorandria sergiorandria commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Description

Type of change

  • Bug fix
  • New feature
  • Performance / Refactor
  • Documentation
  • CI / Build

How Has This Been Tested?

Checklist

  • cmake -B build && cmake --build build -j passes
  • Tested with clang-format
  • Updated README.md / docs if needed
  • Added example or test if applicable

- ci.yml: add release job that triggers on push to main (needs build,
  downloads Release artifact, creates tarball and publishes GitHub Release
  with tag auto-${{ github.sha }} via softprops/action-gh-release)
- release.yml: extend on.push to include branches: [main] and make
  build-release create dynamic TAG (auto-${{ github.sha }} for main,
  ref_name for tags) and publish automatic release on main pushes
- repl/session.cpp: robust cross-platform :clear handling (isatty check,
  readline rl_clear_screen, Win32 Console API with cls/ANSI fallback,
  POSIX terminfo clear with dumb-terminal newlines fallback)
Replace clang's truncated %6g/%8g printing in ValueDataToString with
high-precision formatting (9 for float, 17 for double, 21 for long double).
Add helpers formatFloatHighPrec, formatDoubleHighPrec, formatLongDoubleHighPrec
and highPrecisionDump() to keep input precision and ensure round-trip.
Fixes f(234.2342394893489384203948) truncated to 0.98282814.
Add capture.png hero at title, badges, why-table, 30s demo, features grid,
architecture, quick-start and streamlined CLI/REPL docs to boost project
visibility.
Add @file, @brief, @PARAM, @return Doxygen blocks to all public headers
and src files (vm, interpreter, cli, version_detector, bigint, session,
main, legacy vm/repl). Use simple /// and /** */ style, avoid ----- and
===== separators.
Add Testing/ to .gitignore to avoid committing CTest generated
CTestCostData.txt and LastTest.log (ephemeral test output).
Add prompt helpers (shouldUseColor, formatDuration, buildPrimaryPrompt,
buildContinuationPrompt, printTimingLine) to Session, timing in exec(),
colored help and prompt with version and execution time, --no-color flag
and NO_COLOR/FORCE_COLOR env handling. Use simple Doxygen comments.
…words, strings, numbers)

- highlight utility colors C++ keywords (magenta), types (bold cyan), strings (green), numbers (yellow), comments/preprocessor (grey/yellow)
- echo executed input with highlight (▸) after each execution when tty+color
- colorize result type (cyan) and value (green/yellow) in highPrecisionDump
- respects NO_COLOR/CPP_REPL_NO_COLOR/--no-color/TERM=dumb, only when isatty
Extend Session::isIncomplete to buffer incomplete definitions:
- template headers (template <typename T> without ; or body)
- requires/concept trailing clauses
- struct/class/enum headers
- if/for/while/switch without body
- trailing : , =
- uses trim + regex heuristics and rfind checks for template
Ensures 'template <typename T>' + next line declaration are evaluated together
Tested with template functions, Box struct, concepts and requires clauses
Comment thread src/repl/session.cpp
}
}
}
// Struct/class/enum header without ; or {
Comment thread src/repl/session.cpp
if (t.size() >= 8 && t.compare(t.size()-8, 8, "requires")==0) return true;
static const std::regex reRequires(R"(.*\brequires\b[^;]*$)");
if (std::regex_match(t, reRequires)) {
// if requires clause without trailing ; or {
- by default include <bits/stdc++.h> (fallback to common headers) on init, ensuring std::exp/std::vector/std::sort etc work without explicit include
- proactive ensureStdLib() when code contains std:: and on-demand retry when error mentions undeclared std:: member
- tryIncludeStdLib() with fallback bundle
- stdLibIncluded_ flag reset on reinit/reset/ensureVersion
- JIT poison handling: on Symbols not found / Failed to materialize symbols, auto Undo(1) and hint about :undo/:reset and forward<T> misuse
- hint for template forward error now actionable
@sergiorandria
sergiorandria merged commit af186f1 into main Sep 1, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants