aboutsummaryrefslogtreecommitdiff
path: root/doc/cpsc.1.md
AgeCommit message (Collapse)Author
2026-10-27docs(preprocessor): document switches and library regions_ov4
Add manuals and aliases for all five PP directives, replace the retired #LIB page, and update compiler and shared-editor architecture notes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27docs(memory): describe standard-library allocation and explicit imports_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24docs(overload): document return-type selection across keyword pages_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22fix(driver): cache the embedded standard library per user_ov4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21feat(driver): color diagnostics like gcc with -fdiagnostics-color_ov4
Add -fdiagnostics-color[=auto|always|never] and -fno-diagnostics-color. The default auto mode colors only a terminal stderr (TERM set and not dumb on Unix; a console that accepts VT sequences on Windows), so test harnesses, the desktop bundle and other pipes stay plain. Every diagnostic label now comes from cps::diagnosticPrefix, which emits gcc's default GCC_COLORS bytes: bold locus, bold red error/fatal error, bold magenta warning, bold cyan note. compilation terminated., runtime messages of the compiled program and lld output are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21feat(diagnostics): print source diagnostics in gcc file:line: layout_ov4
Lexer, parser, driver and codegen diagnostics now read "<path>:<line>: error: <message>" instead of "error: <message> at line N in <path>". The path is always printed as given on the command line. Call sites pass the bare message to cps::sourceError/sourceWarning, which carry printf format checking; reportError routes through the same helper. The suite iii harness parses the new layout and matches the reason against the message only. iii/template-class-pack-field passed only because its reason regex matched the case path, so it is now case-insensitive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20docs(strings): document the embedded standard library and STRING values_ov4
Describe -no-std, C_STRING literals, library function semantics and owning string lifetimes in the manuals and contributor guidance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20docs(man): correct class lifetime and allocation support_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17fix(driver): default native output to .exe on Windows_ov4
Without -o, cpsc saved test.out on every OS, which Windows cannot run directly. Use .exe under _WIN32 and keep .out elsewhere; update the manual and architecture notes accordingly. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17docs: runtime diagnostics go to standard error_ov4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17feat(runtime): write runtime diagnostics to stderr_ov4
Runtime check messages and the unhandled-exception message were printed to stdout by the generated program, so `cpsc x.cps -r >out.txt` captured them. They are now formatted with snprintf and written with write(2). Test expectations and docs are updated accordingly. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17docs: multi-file builds_ov4
Document INCLUDE visibility, primitive GLOBAL variables and MAIN entry rules, and highlight the new keywords in the editor grammar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16feat(driver)!: select LLVM IR output with -S_ov4
Save native executables by default and LLVM IR with -S, using source-adjacent .out and .ll names. Keep -r independent of output selection and update the manuals and three-platform nightly smoke checks. BREAKING CHANGE: plain compilation and -o now save native executables. Use -S to save textual LLVM IR. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-15fix(codegen): restore runtime diagnostics before throwing_ov4
Reuse historical runtime messages and source-line reporting for arithmetic, array, enum, pointer and file checks while preserving anonymous exceptions. Update the manuals and subsystem guidance to describe diagnostic output. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14docs(toolchain): clarify MINGW64 LLVM and Clang 23 setup_ov4
Select the MINGW64 compiler executables with explicit Windows paths and add version checks for installed Clang and downloaded LLVM packages. Document Windows PATH requirements and platform-specific C++ driver names. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14docs(toolchain): document LLVM and Clang 23 requirements_ov4
Update build and native-link examples, PATH version-check rules and LLVM API guidance. Record Linux verification and retain the Windows/macOS verification limits. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13docs(language): document exception handling and runtime behavior_ov4
Add the TRY manual for CATCH, ENDTRY, and anonymous THROW. Update runtime error descriptions, language links, and native linking examples; document catch cleanup and embedded runtime integration in the architecture notes. Verify manual generation, rendered output, relative links, and the TRY example. Record Linux LLVM 18 validation and unverified Windows/macOS support. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13Document supported pseudocode with section 7 language manuals_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>