Skip to content
This repository has been archived by the owner on Jun 13, 2020. It is now read-only.

LLVM Port to-do list #345

Closed
11 of 40 tasks
felixangell opened this issue May 17, 2015 · 7 comments
Closed
11 of 40 tasks

LLVM Port to-do list #345

felixangell opened this issue May 17, 2015 · 7 comments

Comments

@felixangell
Copy link
Member

We're porting Alloy to LLVM, here's the to-do list:

  • Functions
    • Function prototypes
    • Function declarations
    • Function body
    • Function pointers
    • Function Return Types
  • Statements
    • Leave Statements
    • Function Calls
  • Expressions
    • Unary Expressions
    • Binary Expressions
    • Function Calls
  • If Statements
  • Type Inference
  • Match Statements
  • For Loops
    • Indexed
    • Infinite
    • Condition
  • Implementations
  • Modules & Visibility
  • Structures
    • Default structure values
    • Static structure initialization
    • Packing and unpacking structures
  • Enumeration
  • Variables
    • Global Variables
    • Local Variables kind of done, needs some work
    • Mutable Variables
    • Pointers
  • Default Structure Values
  • Memory Allocation/Free
  • File Inclusion (??)
  • C Bindings
  • Option Types
  • Tuples
  • Arrays
  • Extern functions/variables/...
@MovingtoMars
Copy link
Member

I added an llvm mode to test.py (119ae96)
Just run ./test.py --llvm

@MovingtoMars
Copy link
Member

Can you push your fork? I'd like to work on it.

@raoulvdberge
Copy link
Contributor

Nice work so far @MovingtoMars @felixangell 👍

@felixangell
Copy link
Member Author

@MovingtoMars Sure thing

@ghost
Copy link

ghost commented May 21, 2015

Gj m8s 👍

@MovingtoMars
Copy link
Member

So do you think the C bindings are working out, or would it be beneficial to switch to C++?

@felixangell
Copy link
Member Author

@MovingtoMars I think C bindings aren't too bad. I think I'd rather steer clear from C++ for now because it's shit. Rust uses the LLVM c bindings for their codegen, so I'm checking out their code every now and then as a reference. Though they seem to have written a layer of abstraction over the bindings so its compatible, and a little cleaner.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants