Skip to content

gen.c: implement floats#342

Merged
serkonda7 merged 7 commits intobait-lang:mainfrom
serkonda7:c-float
May 7, 2026
Merged

gen.c: implement floats#342
serkonda7 merged 7 commits intobait-lang:mainfrom
serkonda7:c-float

Conversation

@serkonda7
Copy link
Copy Markdown
Member

No description provided.

serkonda7 and others added 4 commits May 3, 2026 21:27
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds float support to the C backend by wiring floats through the type system, checker, code generator, builtins, tests, and CI. It fits into the compiler/runtime codebase by extending existing numeric handling so float literals and mixed numeric expressions can compile and run under the C backend.

Changes:

  • Add f32/f64 builtin/runtime support and register them as numeric types.
  • Implement C code generation for float literals and allow numeric promotion from ints/f32 to float targets.
  • Add float tests, enable C float tests in CI, and update docs/changelog to describe float support.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/float/promotion_test.bt Adds coverage for mixed float/int promotion and += behavior.
tests/float/float_test.bt Keeps basic float literal test file aligned with current header format.
lib/builtin/number.js.bt Adds JS-side f32/f64 conversion helpers for numeric consistency.
lib/builtin/number.c.bt Introduces C float type aliases and float str() implementations.
lib/bait/gen/c/expr.bt Replaces the float-literal panic with actual C emission support.
lib/bait/checker/type.bt Expands implicit promotion rules to include float targets.
lib/bait/ast/types.bt Marks f32/f64 as numeric builtins and adds signed/unsigned helpers.
docs/docs.md Updates language docs to describe float types and promotion rules.
CHANGELOG.md Records float implementation under C backend changes.
.github/workflows/ci.yml Enables the C backend float test suite in CI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/builtin/number.c.bt
Comment thread lib/builtin/number.c.bt Outdated
Comment thread lib/builtin/number.c.bt Outdated
@serkonda7 serkonda7 merged commit 7e6cc12 into bait-lang:main May 7, 2026
3 checks passed
@serkonda7 serkonda7 deleted the c-float branch May 7, 2026 18:08
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