warp
cgame
warp | cgame | |
---|---|---|
1 | 1 | |
511 | 110 | |
- | - | |
0.0 | 0.0 | |
over 2 years ago | over 5 years ago | |
D | C | |
Boost Software License 1.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
warp
-
Adding ANSI C11 C compiler to D so it can import and compile C files directly
But dlang has a long problem of change constantly without backward compatibility and a lot of projects just die because of it, for example the mentioned https://github.com/facebookarchive/warp :
====
make
dmd -c -O -inline -release -ofwarp.o cmdline.d constexpr.d context.d directive.d expanded.d file.d id.d lexer.d loc.d macros.d main.d number.d outdeps.d ranges.d skip.d sources.d stringlit.d textbuf.d charclass.d
context.d(222): Error: Implicit string concatenation is error-prone and disallowed in D
context.d(222): Use the explicit syntax instead (concatenating literals is @nogc): "# 1 \"%2$s//\"\x0a" ~ "# 1 \"\"\x0a"
context.d(223): Error: Implicit string concatenation is error-prone and disallowed in D
context.d(223): Use the explicit syntax instead (concatenating literals is @nogc): "# 1 \"\"\x0a" ~ "# 1 \"%1$s\"\x0a"
macros.d(329): Error: Built-in hex string literals are obsolete, use std.conv.hexString!"FD 61 FD" instead.
macros.d(333): Error: Built-in hex string literals are obsolete, use std.conv.hexString!"FD" instead.
macros.d(338): Error: Built-in hex string literals are obsolete, use std.conv.hexString!"FD 61 62 FD FD" instead.
ranges.d(71): Error: Implicit string concatenation is error-prone and disallowed in D
ranges.d(71): Use the explicit syntax instead (concatenating literals is @nogc): "Buffer overflowed. Possibly caused by forgetting to " ~ "complete a git merge in your code."
Makefile:44: recipe for target 'warp.o' failed
make: ** [warp.o] Error 1
====
cgame
-
Adding ANSI C11 C compiler to D so it can import and compile C files directly
LuaJIT was "good enough" at this that it worked pretty well for me -- mostly for automatically binding to headers from my own code where I was careful to avoid some of the potential gotchas. With a macro the header was stringified and sent to LuaJIT; could've also had a build step. eg: https://github.com/nikki93/cgame/blob/master/src/sprite.h#L9
An added benefit is you get ffi-reflect -- https://github.com/corsix/ffi-reflect -- over the resulting types / functions...
What are some alternatives?
ffi-reflect - LuaJIT FFI reflection library
arocc - A C compiler written in Zig.
bzflag - 3D multi-player tank battle game