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

Experimental C backend with reference counting #739

Merged
merged 10 commits into from
Oct 21, 2020

Conversation

edwinb
Copy link
Collaborator

@edwinb edwinb commented Oct 11, 2020

Thanks to @vfrinken for putting this together - all I've done is merge it in and get it to invoke the C compiler.

There's still plenty to do here, particularly performance where there's a lot of low hanging fruit but the basics work. The main goal of this is portability - especially, being able to run Idris programs on unusual or constrained platforms. Generated code also has much better startup time than the scheme back ends!

Written by Volkmar Frinken (@vfrinken). This is intended as a
lightweight (i.e. minimal dependencies) code generator that can be
ported to multiple platforms, especially those with memory constraints.

It shouldn't be expected to be anywhere near as fast as the Scheme back
end, for lots of reasons. The main goal is portability.
This builds a .o from the generated C, and statically links with the
libidris2_support library. It doesn't yet dynamically link with any
additional libraries.
@gallais gallais added the backend: refc C with reference counting backend label Oct 11, 2020
@melted
Copy link
Collaborator

melted commented Oct 11, 2020

I pushed a PR for Windows to @edwinb branch. It will show up here automatically if he merges it.

@edwinb edwinb merged commit ccdfc36 into idris-lang:master Oct 21, 2020
@edwinb edwinb deleted the refcount-c branch July 25, 2021 13:07
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.

None yet

4 participants