nala: Rework PRIMITIVE_TYPES check#9
Merged
eerimoq merged 1 commit intoeerimoq:masterfrom Oct 23, 2025
Merged
Conversation
The old check wasn't appropriate as the order of qualifiers isn't enforced by pycparser nor C compilers, yet Nala enforced the order. This is a problem with stdatomic.h which contains instances of "short unsigned int", a type not recognized by Nala. Instead just check that all qualifiers and the core types are common, leaving the qualifier validation to pycarser and the compiler. Utilize a set for this. Encapsulate the PRIMITIVE_TYPES list in a method and call that instead of implementing the set check everywhere. This results in some changes to is_primitive_type_pointer and is_primitive_type_pointer_type to no longer take a types argument, instead they call the new is_primitive_type method as necessary.
Owner
|
Seems some tests fail. Not sure if it's due to the changes in the PR though. Do you? =)
|
Contributor
Author
|
It does seem very weird and somehow more related to the CI environment than the actual code. I tested to run locally with python 3.9 (3.9.21, latest provided by uv and almost same as CI), 3.10.12, 3.11.11 and 3.14.0a4, and all of them passes. I'm not really familiar with the github actions environment so cannot really say what the problem might be. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The old check wasn't appropriate as the order of qualifiers isn't enforced by pycparser nor C compilers, yet Nala enforced the order.
This is a problem with stdatomic.h which contains instances of "short unsigned int", a type not recognized by Nala.
Instead just check that all qualifiers and the core types are common, leaving the qualifier validation to pycarser and the compiler. Utilize a set for this.
Encapsulate the PRIMITIVE_TYPES list in a method and call that instead of implementing the set check everywhere.
This results in some changes to is_primitive_type_pointer and is_primitive_type_pointer_type to no longer take a types argument, instead they call the new is_primitive_type method as necessary.