Skip to content

bazel: Switch to tcl9, don't use runfiles anymore.#10094

Draft
hzeller wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
hzeller:feature-20260409-tcl9
Draft

bazel: Switch to tcl9, don't use runfiles anymore.#10094
hzeller wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
hzeller:feature-20260409-tcl9

Conversation

@hzeller
Copy link
Copy Markdown
Collaborator

@hzeller hzeller commented Apr 9, 2026

We now can store a zipped set of tcl files for init.tcl and readline, so we don't need runfiles anymore.

Also advantage: the bazel-bin/openroad binary is now self-complete, so it can be copied anywhere as it does not need to find the tcl files relative to the binary anymore.

While at it, also update openmp: the previous version had some runfile that is actually not needed. So that helps us entirely not needing any runfiles anymore.

@github-actions github-actions bot added the size/S label Apr 9, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the openmp and tcl_lang dependencies to newer versions and enables the use_zipfs flag by default in bazel/BUILD. Feedback was provided to remove an outdated inline comment that is no longer accurate following the Tcl 9 migration.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

clang-tidy review says "All clean, LGTM! 👍"

@hzeller hzeller force-pushed the feature-20260409-tcl9 branch from 7a747da to 74fc11a Compare April 9, 2026 15:38
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

clang-tidy review says "All clean, LGTM! 👍"

Copy link
Copy Markdown
Member

@maliberty maliberty left a comment

Choose a reason for hiding this comment

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

Does this help reduced the symlinking done when running tests?

@maliberty maliberty enabled auto-merge April 9, 2026 15:42
@hzeller
Copy link
Copy Markdown
Collaborator Author

hzeller commented Apr 9, 2026

Yes. It reduces the symlinks to zero.

@hzeller
Copy link
Copy Markdown
Collaborator Author

hzeller commented Apr 9, 2026

(at least for openroad and opensta ussage. I have not looked if the tests do other symlinks)

@hzeller
Copy link
Copy Markdown
Collaborator Author

hzeller commented Apr 9, 2026

mmh, testing locally
//src/rsz/test:buffer_varying_lengths-tcl_test fails with
Error: buffer_varying_lengths.tcl, 105 can't read "sta::float_inf": no such variable

Maybe there is an issue mapping

https://github.com/The-OpenROAD-Project/OpenSTA/blob/6599d47d27d532f0662dbf8dab63577e5e7b93b5/util/Util.i#L52

with swig under Tcl 9 ?

@hzeller
Copy link
Copy Markdown
Collaborator Author

hzeller commented Apr 9, 2026

This happens when calling report_check_types defined in src/sta/search/Search.tcl

https://github.com/The-OpenROAD-Project/OpenSTA/blob/6599d47d27d532f0662dbf8dab63577e5e7b93b5/search/Search.tcl#L486-L494

Is there something special that we need to do to hage Searcch.tcl see the definition in Util.i ?

@hzeller
Copy link
Copy Markdown
Collaborator Author

hzeller commented Apr 9, 2026

Looks like CI also fails with this as well.
Do you have an idea what is amiss @maliberty ?

@maliberty
Copy link
Copy Markdown
Member

I see it in ./sta/util/Util.i

float float_inf = INF;

I don't know why it isn't found.

@hzeller hzeller marked this pull request as draft April 9, 2026 19:33
@hzeller hzeller marked this pull request as draft April 9, 2026 19:33
auto-merge was automatically disabled April 9, 2026 19:33

Pull request was converted to draft

auto-merge was automatically disabled April 9, 2026 19:33

Pull request was converted to draft

@hzeller
Copy link
Copy Markdown
Collaborator Author

hzeller commented Apr 9, 2026

Will convert to draft for now and have a look separately when I find some time.

@hzeller
Copy link
Copy Markdown
Collaborator Author

hzeller commented Apr 9, 2026

Tried with latest swig 4.4.1 (which I am about to push to BCR), but that does not make a difference.

We now can store a zipped set of tcl files for init.tcl and
readline, so we don't need runfiles anymore.

Also advantage: the bazel-bin/openroad binary is now self-complete,
so it can be copied anywhere as it does not need to find the tcl files
relative to the binary anymore.

Signed-off-by: Henner Zeller <h.zeller@acm.org>
@hzeller hzeller force-pushed the feature-20260409-tcl9 branch from 74fc11a to 8710f38 Compare April 10, 2026 09:02
@github-actions
Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants