Comments (3)
This is a bit tricky, and what you really need is a macro pre-processor, which we don't have. SIZE
here is an identifier and is not substituted with 100
. Imagine you had const SIZE = getSize()
, you can't figure out statically how much space to allocate on the stack. Maybe we can do something to track const declarations that can be evaluated at compile time.
from lljs.
C++ has constexpr. Perhaps LLJS could implement a similar mechanism?
Alternatively, C99 has variable length arrays. So it should be possible.
from lljs.
Sorry, it shouldn't have thrown. I was missing an error message. Trying to use a const (or any other expression) now at least prints a nice error.
As far as implementing const sizes, yes, it might be possible, but at the moment the structure of the compiler and when array size calculation happens is not conducive to checking expressions to make sure they are really const literals (we don't have scoping or variable information at the point where size calculation happens).
from lljs.
Related Issues (20)
- importing types HOT 3
- suggestions for performance? HOT 12
- casting requires extra set of parentheses HOT 4
- Downcasting of Signed Types Not Working
- Compile C to LLJS via LLVM?
- Double literals are treated as integers
- Cannot increment struct field in member function
- more bastard children! coffeescript + c
- lljs.org is down HOT 9
- bug in order of operations parsing C casts
- Support for asm.js HOT 7
- Support for ES6-style Classes HOT 4
- Compiling LLJS to C HOT 2
- Support for memory allocator with GC HOT 2
- Support for function types
- Add support for u64 and i64 types HOT 2
- lljs.org is down
- "memory.reset is not a function" when running examples on page. HOT 3
- lljs.org hijacked HOT 2
- React native casting error HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lljs.