Skip to content

Releases: abandoft/f2c

1.10.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 04:06
  • Added a record-based transfer layer for sequential and direct formatted and unformatted files, including checked REC/RECL addressing and fixed record boundaries.
  • Added portable little-endian sequential-unformatted framing, corrupt-record detection, partial-record cleanup, and record-aware BACKSPACE.
  • Added binary transfers for supported scalar kinds, complex and character values, fixed arrays, implied DO loops, and default or defined I/O for derived values.
  • Unified IOSTAT, IOMSG, ERR, END, and EOR handling while enforcing connected-unit action, form, access, and record constraints without generated abort placeholders.
  • Corrected direct formatted padding, slash editing, format reversion, missing-record handling, and NEXTREC advancement across fixed-length records.
  • Added pre-emission validation for invalid record controls and derived values whose dynamic components require defined I/O.
  • Added strict C17 execution, corrupt-file regression, sanitizer coverage, and generated-C/native-Fortran record-I/O differentials to CI.

1.9.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 01:58
  • Added a unified, seekable generated-code I/O stream abstraction that retains libc for external files and uses memory records for internal files.
  • Removed internal-file tmpfile() simulation and copy-back, with character scalar and array records, multiple records, PAD, positioning, and overflow status handling.
  • Migrated explicit formatting, list-directed I/O, NAMELIST, and defined I/O to the same stream interface while retaining bulk external-file transfers.
  • Added internal-file format constraints that reject standard-prohibited nonadvancing controls and unformatted transfers.
  • Split list-directed and memory-stream generation support out of the core transpiler into dedicated modules.
  • Added native Fortran semantic differentials, strict C17, sanitizer, and filesystem-free WebAssembly execution coverage.

1.8.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 00:50
  • Migrated constant, labeled, and assigned FORMATs to the unified token, AST, typed IR, and static C17 instruction pipeline.
  • Added dynamically sized parsing state for true runtime character formats, removing fixed nesting, literal, DT iotype, and v-list capacities.
  • Completed execution paths for nested and unlimited groups, positioning, scaling, sign and decimal controls, and defined-I/O format metadata.
  • Corrected E, D, and G mantissas, exponents, significant digits, extreme values, and positioned records to match native Fortran output.
  • Fixed temporary AST ownership cleanup after invalid FORMAT descriptors, eliminating a sanitizer-detected parser leak.
  • Fixed (/ being misclassified as an array-constructor delimiter inside FORMAT, restoring official BLAS labeled formats.
  • Added byte-exact native FORMAT differentials, deep and long resource boundaries, strict C17, and sanitizer regression coverage.
  • Revalidated all 3,535 Reference LAPACK sources and all 52,512 RFP numerical differentials on the new format pipeline.

1.7.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 22:27
  • Migrated PRINT to the unified token, AST, and typed I/O pipeline, removing text splitting and expression reparsing.
  • Unified formatted transfer and format-semantic diagnostics across PRINT, READ, and WRITE.
  • Added list-directed, character, runtime character, labeled, empty-list, and nested implied-DO PRINT forms.
  • Added F77 assigned FORMAT variables with dynamic, unbounded format-label selection.
  • Corrected trailing positioning descriptors so generated output records match native Fortran without extra spaces.
  • Expanded strict C17, ASan/UBSan, native Fortran output differential, and pinned Reference BLAS/LAPACK regression coverage.

1.6.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 21:16
  • Split macro-definition management into a dedicated, bounded preprocessing module and added in-source function-like macros.
  • Added zero-argument, nested, and variadic macros together with stringizing, token pasting, and macro-redefinition checks.
  • Added backslash-continued preprocessing directive lines and macro-expanded include operands.
  • Completed deterministic 64-bit signed and unsigned #if values, character constants, overflow checks, and invalid-operation diagnostics.
  • Added macro-argument resource limits and expanded strict C17, sanitizer, and pinned Reference BLAS/LAPACK regression coverage.

1.5.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 19:47
  • Migrated external file control statements to the unified token, AST, typed IR, and structured code generation pipeline.
  • Completed OPEN and CLOSE handling for file status, access, action, form, position, character controls, and file disposition.
  • Added sequential-file BACKSPACE and physical ENDFILE truncation using only portable C17 facilities.
  • Added INQUIRE by unit or file name with connection state, capability, and file-property results.
  • Unified IOSTAT, IOMSG, and ERR handling for file control statements and added pre-emission semantic validation.
  • Expanded strict C17, sanitizer, execution, gfortran differential, and numerical-validation CI coverage.

1.4.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 16:10
  • Migrated DATA statements to the unified token, AST, and typed IR pipeline, including multiple groups, repetition factors, and arbitrarily nested implied DO loops.
  • Added pre-emission semantic validation for initialization constants, types and kinds, element counts, array bounds, duplicate initialization, and resource limits.
  • Corrected one-time initialization and SAVE lifetime semantics for scalars, arrays, characters, complex values, and EQUIVALENCE storage roots.
  • Lowered portable scalar, whole-array, partial-array, and implied-DO initialization to efficient, readable C17 static initializers.
  • Expanded strict C17, repeated-call, negative-diagnostic, and pinned Reference BLAS/LAPACK official numerical differential coverage.

1.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 05:47
  • Added a dedicated, bounded conditional preprocessor with dynamic nesting, complete integer expression evaluation, and recursive object-macro expansion.
  • Added #include, Fortran INCLUDE, #line, and numeric line markers while keeping the core library file-system independent through callbacks.
  • Added API preprocessor definitions and CLI -D, -U, and -I options with explicit project and source-local macro scopes.
  • Unified source mapping across preprocessing, source normalization, and tokens so structured diagnostics report both macro expansion and definition locations.
  • Added request-level budgets and negative tests for preprocessed bytes, macro count and depth, and include count and depth.
  • Expanded dedicated preprocessor, CLI include, cross-compiler, sanitizer, and full pinned Reference LAPACK regression coverage.
  • Fixed the preprocessor test's SIZE_MAX declaration portability under strict LLVM/Linux builds.

1.2.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 14:07
  • Unified and improved the token, AST, typed IR, semantic analysis, and code generation pipelines, with clearer responsibilities across core modules.
  • Improved type and semantic handling for array inquiries, array expressions, array constructors, vector subscripts, and transformational intrinsics.
  • Expanded TRANSPOSE, MATMUL, and related transformations for dynamic arrays, mixed kinds, characters, complex values, and derived types.
  • Improved assumed-shape array descriptors, noncontiguous array sections, procedure argument temporaries, and ownership management for characters and derived types.
  • Expanded C17, native Fortran differential, sanitizer, negative semantic, and numerical validation pipeline coverage.

1.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 07:00
  • Refactored the frontend, semantic analysis, AST, typed IR, and code generation pipelines.
  • Improved parsing and semantic validation for declarations, implicit typing, storage association, expressions, and statements.
  • Added per-request resource limits, structured diagnostic callbacks, and strict configuration validation.
  • Improved command-line streaming I/O and atomic file writes to prevent incomplete artifacts after failures.
  • Expanded regression tests for architectural boundaries, the command-line interface, semantic analysis, and generated code.