feepingcreature / fcc Goto Github PK
View Code? Open in Web Editor NEWfcc is the compiler for Neat, my D-lite language.
fcc is the compiler for Neat, my D-lite language.
Seriously. Also link to the pre-built fcc binary in it and warn them not to try and build it themselves.
mkdir examples
git mv *.nt examples/
cat > Makefile
dmd --blah
^Z
Currently, attempting to coerce a struct into a string with $foo
throws an error message (which is good) containing the text Matching rule 'tree.scope': Can't format 5359 (*({struct __vtable<void*>@0, classinfo, saddr<sockaddr_in:sockaddr_in>@1}*: t)).saddr of sockaddr_in:sockaddr_in
(which is bad).
The error message should be more friendly and only mention the friendly name of the struct, in this case sockaddr_in
int[] intTest = [0,0,0]; intTest[0] = 3; writeln "$(intTest[0])";
Crashes when it attempts to set intTest[0].
If you use a long[](or string[]) instead of int[], it works perfectly fine.
long[] longTest = [long:0,0,0]; longTest[0] = long:3; writeln "$(longTest[0])";
size-of, string-of, mangle-of, type-of, ReturnType, ParamTypes, types-equal (T,U), type-is, is-defined, implicitly-converts-to
all need to be documented somewhere OTHER then then ast/obscure_file.d source. Including documentation about what arguments they take (I'm looking at you type-is tuple T
)
Also include the stack guard constructs set-handler, define-exit, onExit, onFailure, onSuccess, etc.
since they are pretty important, seeing how they are the entire error-handling system. Consider this a merge of #7.
Neat has different exception/error syntax than D, and needs documentation:
Explain how instead of "throw new Exception str" it uses "raise new Error str", how set-handler/define-exit/all those other weird labels work, and then feel bad for not using try {} catch {} instead.
Since testcases are de facto documentation, add a testcase for the new __tuple function to show how it's used.
Possibly also have a section on the wiki about static unspooling of loops?
Importing std.time fails at compile-time. Log is:
opt -o - .obj/std/time.ll |opt -mattr=-avx,-avx2 -march=x86 - -mcpu=nocona |llc -O1 -mattr=-avx,-avx2 -march=x86 -mcpu=nocona - -filetype=obj -o .obj/std/time.o
opt: .obj/std/time.ll:24:17: error: invalid cast opcode for cast from 'i32*' to 'i32 addrspace(1)*'
%var9 = bitcast i32* %var8 to i32 addrspace(1)*
^
ERROR: Compilation failed with 256 25
LLVM version:
LLVM (http://llvm.org/):
LLVM version 3.4
Optimized build.
Built Jan 6 2014 (22:53:34).
Default target: x86_64-unknown-linux-gnu
Host CPU: corei7
I assume that this is a error with how FCC generates LLVM bytecode.
When attempting to read socket.accept() in an iterator, I tried for Socket client <- tcpServer.accept().loop()
, which segfaults FCC.
If this isn't the correct function to use for it, it should throw an error message instead of crashing. I don't see any other good way to loop over socket.accept() since while
need a bool if condition and Neat doesn't support while(client = tcpServer.accept())
[todo: chc4 needs patching to not be dumb]
When using "using ", mvalue being an expression that supports assignment but not referencing, which of those should be done?
I'll go with option two for now, but would appreciate feedback.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.