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

The big 1.0 #1456

Open
19 tasks
lerno opened this issue Sep 16, 2024 · 8 comments
Open
19 tasks

The big 1.0 #1456

lerno opened this issue Sep 16, 2024 · 8 comments
Labels
Missing Feature Feature that is required for the language

Comments

@lerno
Copy link
Collaborator

lerno commented Sep 16, 2024

I'm collecting small pieces of things needed for 1.0 that aren't really ready to go into issues yet into this single issue.

  • Full BSD-family support in the standard library
  • C-to-C3 tool available
  • C3docs available
  • Full standard library available on the web
  • No known bugs in the compiler
  • A secondary backend for fast compilations
  • Automatic static / dynamic library .c3l generation
  • A completely fleshed out standard library
  • Support for most common embedded targets (when 1.0 is released!)
  • Full Android / iOS support
  • Downloadable binaries for all Linux distros, MacOS, Windows, all BSD variants.
  • A good experience cross compiling to Linux
  • Cross compiling to MacOS & Windows with automatic download of required supporting libraries
  • High quality LSP
  • Easily available editor plugins
  • High quality IntelliJ plugin

Nice to haves:

  • A C output backend

Stdlib features

  • Zip compression
  • Regex library
@lerno lerno modified the milestones: First release (v1.0), 0.6.3 Sep 16, 2024
@Caleb-o
Copy link
Contributor

Caleb-o commented Sep 17, 2024

Very exciting!

@lerno lerno added the Missing Feature Feature that is required for the language label Sep 17, 2024
@lerno lerno pinned this issue Sep 20, 2024
@lerno
Copy link
Collaborator Author

lerno commented Sep 22, 2024

ZIP compression? yoinks C# ZIP library implementation

If you want to. There are a lot of them out there.

@rodgomesc
Copy link

What is still needed to complete Android support? Is there a to-do list available anywhere?

@lerno
Copy link
Collaborator Author

lerno commented Sep 27, 2024

Something like this @rodgomesc

  1. Make sure linking links the proper libraries
  2. Decide what Android platforms to support (32 bit ARM for example?)
  3. Add CI for Android compilation
  4. Fix whatever special ABI changes Android has compared to Linux
  5. Linking should work off the bat, so there should be a way to pull in the needed libraries for linking, initially perhaps as an external script, but later as something in the compiler itself which downloads needed dependencies.
  6. Add some bindings to essential Android libraries.

@radekm
Copy link
Contributor

radekm commented Nov 16, 2024

Zip compression

This also means ZIP decompression? If that is so, I wonder how to deal with different kinds of ZIP archives produced by different implementations. Recently I watched Josh Wolfe's talk about yauzl library and invalid ZIP archives produced by Mac Archive Utility (you can see the GitHub issue thejoshwolfe/yauzl#69). It seemed that creating a reliable ZIP decompressor which works with most ZIP archives is a really hard task.

@lerno
Copy link
Collaborator Author

lerno commented Nov 16, 2024

I think a best effort thing would be reasonable @radekm. Something on par with Java's built in zip library code.

@rodgomesc
Copy link

Hey! I started to poke around and I start thinking about something - is it possible to use CMake to turn .c3 code into a shared library without the prebuilt c3c compiler? Ideally, I don't want users to need a c3c compiler already installed on their computer. Maybe I could go from .c3 files to LLVM IR, then to object files, and finally into a .so library? Or am I just making this way more complicated than it needs to be?

@lerno
Copy link
Collaborator Author

lerno commented Dec 18, 2024

Well, turning a .c3 file into a IR or a library is exactly what you need a compiler for. So I'm not sure how that could work @rodgomesc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Missing Feature Feature that is required for the language
Projects
None yet
Development

No branches or pull requests

5 participants
@lerno @radekm @rodgomesc @Caleb-o and others