9 Commits
Author SHA1 Message Date
Clifford Yapp 6e18e57380 Implemented the first major API v2 scalability feature
Opt in with either:

exp2cxx --api-version 2 schema.exp

or:

cmake -DSC_EXP2CXX_API_VERSION=2 ...

Version 1 remains the default, and the regression test verifies default
output is byte-identical to explicit v1
output.

API v2 now provides:

- Compact SELECT classes backed by shared descriptor-driven runtime code
  instead of repeated generated parsing, assignment, and serialization
  bodies.

- Generic Set* and typed getter APIs in
  include/clstepcore/sdaiSelect.h:109.
- Dependency-bounded entity headers and source-owned dependencies in
  src/exp2cxx/classes_entity.c:968.
- Out-of-line entity creators.
- Unity chunks that no longer include the all-entity header.
- C++11 output; C++17 did not offer enough additional benefit for this
  tranche.

The command-line handling is in src/exp2cxx/fedex_main.c:85, while
compact SELECT generation begins in src/exp2cxx/selects.c:702.

Measured using the BRL-CAD ap242e4.exp, Release builds, eight parallel
jobs, and 64:8 unity chunks:

 Metric                           API v1    Final API v2    Reduction
━━━━━━━━━━━━━━━━━━━━━━━━  ━━━━━━━━━━━━━━━  ━━━━━━━━━━━━━━  ━━━━━━━━━━━
 Generated C++ lines           1,210,640         522,445        56.8%
────────────────────────  ───────────────  ──────────────  ───────────
 Generated bytes              57,566,051      27,202,644        52.7%
────────────────────────  ───────────────  ──────────────  ───────────
 Schema build wall time         183.22 s         88.31 s        51.8%
────────────────────────  ───────────────  ──────────────  ───────────
 Compiler CPU time              641.53 s        378.49 s        41.0%
────────────────────────  ───────────────  ──────────────  ───────────
 Peak RSS                  1,035,112 KiB     916,412 KiB        11.5%
────────────────────────  ───────────────  ──────────────  ───────────
 Object-file bytes            70,472,952      40,031,088        43.2%
────────────────────────  ───────────────  ──────────────  ───────────
 Shared-library text          34,361,400      19,420,467        43.5%
────────────────────────  ───────────────  ──────────────  ───────────
 Generation wall time             1.52 s          0.69 s        54.6%
2026-08-02 06:15:25 -04:00
Copilot aa595c9c91 Complete CMake variable migration, fix schema library installation
Clean up stray SC_BUILD_STATIC_LIBS and SC_BUILD_TYPE variables.
Install schema libs
Fix linking when doing static builds
2026-02-06 18:08:10 -05:00
Mark Pictor c269cd82e4 v0.7: Update changelog, INSTALL, NEWS, README, version string 2013-04-15 20:07:01 -04:00
Mark Pictor 698b9e0371 Update text files for v0.6
Add v0.6 info, and change urls in those files
2012-05-25 22:12:37 -04:00
Mark Pictor 69e0813cf7 improve installation instructions 2012-02-23 17:41:11 -05:00
Mark Pictor 96f5f28058 update docs for v0.5 2012-02-22 19:34:30 -05:00
Mark Pictor e23b344824 update files for v0.3 release 2011-10-29 06:43:31 -04:00
Mark Pictor df87e02127 Update text files for v0.1 release - ChangeLog, INSTALL, NEWS, README, TODO 2011-09-02 20:02:15 -04:00
Mark cde495dd6f Initial import of NIST code for SCL. 2009-03-12 15:53:52 +00:00