Skip to content

Conversation

@mernst
Copy link
Member

@mernst mernst commented Jan 7, 2026

No description provided.

@coderabbitai
Copy link

coderabbitai bot commented Jan 7, 2026

📝 Walkthrough

Walkthrough

The PR updates java/Makefile, converting many deferred-evaluation (=) variable assignments to immediate expansion (:=) and re-scoping several variables. Key build commands (JAVADOC_COMMAND, JAVAC_COMMAND, JAVA_COMMAND) and numerous Checker Framework and ErrorProne argument variables are defined after DAIKON_CLASSPATH is constructed. File-list and doclet-related variables are reworked to use immediate assignments and to stabilize wildcard/globbing semantics; SORT_DIRECTORY_ORDER and various Java file/class lists are also adjusted.

Possibly related PRs

  • Update Makefile #736: Modifies java/Makefile with similar conversions from deferred (=) to immediate (:=) assignments and reorders classpath/variable definitions.

Suggested reviewers

  • markro49
🚥 Pre-merge checks | ✅ 1
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fa3af9a and ebf2cc0.

📒 Files selected for processing (1)
  • java/Makefile
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (11)
  • GitHub Check: codespecs.daikon (typecheck_latest_part1_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_latest_part3_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_latest_part2_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_bundled_part3_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_bundled_part2_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_bundled_part1_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (kvasir_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (nontxt_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (nonquick_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (quick_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (misc_ubuntu_jdk25)
🔇 Additional comments (4)
java/Makefile (4)

142-144: LGTM: Correct use of immediate expansion for build commands.

These command variables are properly defined after DAIKON_CLASSPATH is established and all referenced variables are available. Using := avoids re-expanding the classpath and arguments on every use, improving build performance.


162-166: LGTM: Conditional assignment with immediate expansion works correctly.

The initial assignment uses := to immediately evaluate ${PLUMESCRIPTS}/sort-directory-order, then the conditional checks if the file exists and reassigns if needed. This correctly handles the case where plume-scripts hasn't been installed yet.


885-913: LGTM: Variable ordering issue from previous review has been resolved.

The critical ordering problem identified in the past review has been fixed. The *_SKIPDEFS variables (lines 886-888) are now properly defined before the JAVAC_*_ARGS variables (lines 892-912) that reference them. With immediate expansion (:=), this ensures that -AskipDefs='${ALLSYSTEMS_SKIPDEFS}' and similar arguments receive the correct values at definition time.

This correct ordering prevents the typechecking failures that would have occurred if the -AskipDefs arguments received empty values.


662-662: LGTM: Appropriate conversions to immediate expansion.

All these variable conversions from = to := are correct:

  • Line 662: Simple substitution of JAVA_FILES
  • Lines 759-760: Error Prone version constants
  • Lines 917-921: File lists derived from DAIKON_JAVA_FILES
  • Lines 1084-1085: Wildcard evaluation for typequals files
  • Line 1141: Checker arguments constant
  • Lines 1211, 1216-1222: Javadoc configuration

All referenced variables are defined before use, and immediate expansion is semantically correct for these use cases. The change improves build performance by avoiding repeated re-expansion.

Also applies to: 759-760, 917-921, 1084-1085, 1141-1141, 1211-1211, 1216-1222


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @java/Makefile:
- Around line 887-911: The JAVAC_*_ARGS variables (e.g.,
JAVAC_RESOURCELEAK_ARGS, JAVAC_INDEX_ARGS, JAVAC_INTERNING_ARGS) were defined
with immediate expansion (:=) while referencing INDEX_SKIPDEFS,
INTERNING_SKIPDEFS, and ALLSYSTEMS_SKIPDEFS which are defined later, causing
empty -AskipDefs values; fix by moving the definitions of INDEX_SKIPDEFS,
INTERNING_SKIPDEFS, and ALLSYSTEMS_SKIPDEFS so they appear before any
JAVAC_*_ARGS that reference them (or alternatively change those JAVAC_*_ARGS to
recursive expansion with =), ensuring the -AskipDefs substitutions are evaluated
correctly for the checkers.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6594936 and fa3af9a.

📒 Files selected for processing (1)
  • java/Makefile
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (11)
  • GitHub Check: codespecs.daikon (typecheck_latest_part3_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_latest_part2_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (kvasir_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_bundled_part3_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_bundled_part1_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_latest_part1_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (typecheck_bundled_part2_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (nontxt_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (misc_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (nonquick_ubuntu_jdk25)
  • GitHub Check: codespecs.daikon (quick_ubuntu_jdk25)
🔇 Additional comments (5)
java/Makefile (5)

142-145: LGTM! Proper conversion to immediate expansion.

The variables JAVADOC_COMMAND, JAVAC_COMMAND, and JAVA_COMMAND correctly use := since DAIKON_CLASSPATH is fully constructed beforehand (lines 118-140). This eliminates unnecessary re-expansion.


162-166: LGTM! Correct use of immediate expansion.

The conversion of SORT_DIRECTORY_ORDER to := is appropriate here. The conditional logic executes once to determine the correct value, avoiding redundant wildcard checks.


759-760: LGTM! Simple constants benefit from immediate expansion.

These variables contain static string values and don't require re-evaluation, making := the correct choice.


912-920: LGTM! Correct ordering for immediate expansion.

These file list variables correctly use := since they depend on DAIKON_JAVA_FILES which is already defined at line 168. This avoids re-evaluating file lists multiple times.


662-662: LGTM! All remaining conversions have correct dependency ordering.

These conversions to := are safe:

  • Line 662: JAVA_FILES_EXCEPT_DAIKON depends on JAVA_FILES (already defined)
  • Lines 1083-1084: TYPEQUALS_* variables use wildcards evaluated once
  • Line 1140: JAVAC_COUNT_ARGS is a static string
  • Lines 1210-1222: Javadoc variables correctly reference previously defined DAIKON_CLASSPATH and other stable values

The immediate expansion eliminates unnecessary re-evaluation while maintaining correctness.

Also applies to: 1083-1084, 1140-1140, 1210-1222

@mernst mernst requested a review from markro49 January 8, 2026 07:18
@markro49 markro49 assigned mernst and unassigned markro49 Jan 8, 2026
@mernst mernst merged commit fa30094 into codespecs:master Jan 8, 2026
53 checks passed
@mernst mernst deleted the makefile2 branch January 8, 2026 17:59
@coderabbitai coderabbitai bot mentioned this pull request Jan 11, 2026
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