Skip to content

fe build#1157

Merged
sbillig merged 1 commit intoargotorg:masterfrom
g-r-a-n-t:fe-build
Feb 22, 2026
Merged

fe build#1157
sbillig merged 1 commit intoargotorg:masterfrom
g-r-a-n-t:fe-build

Conversation

@g-r-a-n-t
Copy link
Collaborator

@g-r-a-n-t g-r-a-n-t commented Nov 17, 2025

This change introduces a fe build command for compiling Fe contracts to EVM bytecode. It supports two backends: Sonatina (default, no solc needed) and a Yul backend that invokes solc. You can target a standalone .fe file, an ingot directory, a workspace root, or a workspace member by name; optionally filter to a single contract; choose optimization level; and control the output directory.

Here is a comprehensive writeup on the current CLI behavior: https://github.com/g-r-a-n-t/fe/blob/73e58ee102a18d25bd2d65aca25e4ce31ed7435a/CLI.md

@sbillig sbillig mentioned this pull request Jan 8, 2026
25 tasks
@g-r-a-n-t g-r-a-n-t force-pushed the fe-build branch 3 times, most recently from eaeed88 to 90a83e7 Compare February 10, 2026 00:22
@g-r-a-n-t g-r-a-n-t force-pushed the fe-build branch 5 times, most recently from 4f72b76 to 67711a7 Compare February 19, 2026 17:29
@g-r-a-n-t g-r-a-n-t force-pushed the fe-build branch 4 times, most recently from 4b9588c to 6a07ec6 Compare February 22, 2026 00:47
@sbillig
Copy link
Collaborator

sbillig commented Feb 22, 2026

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 73e58ee102

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +980 to +983
let base = sanitize_filename(contract_name);
let deploy_path = out_dir.join(format!("{base}.bin"));
let runtime_path = out_dir.join(format!("{base}.runtime.bin"));
fs::write(deploy_path.as_std_path(), format!("{bytecode}\n"))

Choose a reason for hiding this comment

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

P2 Badge Detect local artifact filename collisions before writing

write_artifacts derives output filenames from sanitize_filename(contract_name) and writes immediately, but non-workspace builds never preflight for collisions. This can silently overwrite artifacts when two contracts map to the same filename (for example Foo vs foo on case-insensitive filesystems like default macOS, or different names that sanitize identically), while still printing successful Wrote ... lines, leaving users with incomplete/corrupted build outputs.

Useful? React with 👍 / 👎.

@sbillig sbillig merged commit 78e0223 into argotorg:master Feb 22, 2026
5 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