Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RefC] Suppress arglist wrapper #3177

Merged
merged 67 commits into from
Apr 17, 2024

Conversation

seagull-kamome
Copy link
Contributor

@seagull-kamome seagull-kamome commented Dec 29, 2023

Description

  • Suppress code generation of _arglist wrappers to reduce code size and compilation time.
  • Removed Value_Arglist to reduce Closure's allocation overhead and make code simple.
  • Cleanup RefC code generator and support codes to keep code simple.

Should this change go in the CHANGELOG?

  • If this is a fix, user-facing change, a compiler change, or a new paper
    implementation, I have updated CHANGELOG.md (and potentially also
    CONTRIBUTORS.md).

@seagull-kamome seagull-kamome changed the title Suppress arglist wrapper [RefC] Suppress arglist wrapper Dec 29, 2023
… humanity and make them slaves. Under 2024, a only leaved job for every humans is adjusting spaces of source code, or just type gg0vG$== in vim.
@mattpolzin mattpolzin added the backend: refc C with reference counting backend label Jan 1, 2024
Copy link
Collaborator

@madman-bob madman-bob left a comment

Choose a reason for hiding this comment

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

If I understand correctly, this inlines the notion of ArgList into Closures. For the most part, this seems reasonable, except for the limit on the number of arguments.

A constructor for a particularly complicated data-type could easily overcome any finite limit on the number of arguments.

support/refc/runtime.c Show resolved Hide resolved
@seagull-kamome
Copy link
Contributor Author

The previous commit changed the large argument list to be passed as an array. This may be overkill, but I think it avoids the limitation on the number of arguments.

Copy link
Collaborator

@mattpolzin mattpolzin left a comment

Choose a reason for hiding this comment

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

Finished my read-through; with that, and prior feedback and requests addressed, I approve!

@gallais gallais self-assigned this Apr 3, 2024
gallais added a commit to gallais/Idris2 that referenced this pull request Apr 3, 2024
support/refc/stringOps.c Outdated Show resolved Hide resolved
@gallais gallais merged commit 1dc7b74 into idris-lang:main Apr 17, 2024
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend: refc C with reference counting backend
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants