Commit Graph

2026 Commits

Author SHA1 Message Date
Tadeo Kondrak
f83b02a581 translate-c: use @intToPtr to cast away qualifiers 2020-01-06 19:09:49 -05:00
Andrew Kelley
be2483c576
fix test suite regressions 2020-01-06 18:20:31 -05:00
Andrew Kelley
5ada610e09
update translate-c and tests for new extern/callconv syntax 2020-01-06 17:54:16 -05:00
Andrew Kelley
3b5c71d2a5
fix regression with @TypeInfo 2020-01-06 17:13:45 -05:00
Andrew Kelley
53913acaf7
zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
Andrew Kelley
0a9daeb37e
Merge branch 'cc-work' of https://github.com/LemonBoy/zig into LemonBoy-cc-work 2020-01-06 14:07:56 -05:00
Andrew Kelley
c30106c906
add test case to cover already-solved bug
closes #2401
2020-01-05 17:42:03 -05:00
LemonBoy
6ff70d3c31 Better InitListExpr translation 2020-01-05 17:39:29 -05:00
Andrew Kelley
d7bff05098
Merge pull request #4064 from ziglang/fix-4054
use @intCast instead of @as for shift rhs
2020-01-05 15:01:21 -05:00
Andrew Kelley
a0ca34979e
Merge pull request #4053 from ziglang/test-run-translated-c
add test harness for "run translated C" tests
2020-01-05 14:50:02 -05:00
Andrew Kelley
242f5d10d5
fix test-gen-h and test-compile-errors regression 2020-01-05 13:08:18 -05:00
Andrew Kelley
157b8e6889
fix test-stack-traces regression 2020-01-05 02:35:52 -05:00
Andrew Kelley
a690a5085d
rework and improve some of the zig build steps
* `RunStep` moved to lib/std/build/run.zig and gains ability to compare
   output and exit code against expected values. Multiple redundant
   locations in the test harness code are replaced to use `RunStep`.
 * `WriteFileStep` moved to lib/std/build/write_file.zig and gains
   ability to write more than one file into the cache directory, for
   when the files need to be relative to each other. This makes
   usage of `WriteFileStep` no longer problematic when parallelizing
   zig build.
 * Added `CheckFileStep`, which can be used to validate that the output
   of another step produced a valid file. Multiple redundant locations
   in the test harness code are replaced to use `CheckFileStep`.
 * Added `TranslateCStep`. This exposes `zig translate-c` to the build
   system, which is likely to be rarely useful by most Zig users;
   however Zig's own test suite uses it both for translate-c tests and
   for run-translated-c tests.
 * Refactored ad-hoc code to handle source files coming from multiple
   kinds of sources, into `std.build.FileSource`.
 * Added `std.build.Builder.addExecutableFromWriteFileStep`.
 * Added `std.build.Builder.addExecutableSource`.
 * Added `std.build.Builder.addWriteFiles`.
 * Added `std.build.Builder.addTranslateC`.
 * Added `std.build.LibExeObjStep.addCSourceFileSource`.
 * Added `std.build.LibExeObjStep.addAssemblyFileFromWriteFileStep`.
 * Added `std.build.LibExeObjStep.addAssemblyFileSource`.
 * Exposed `std.fs.base64_encoder`.
2020-01-05 02:19:22 -05:00
LemonBoy
a712ea333b Fix translation of for loop init
Closes #4067
2020-01-04 11:49:43 +01:00
LemonBoy
51e430fac0 Fix edge case in hex-literal translation 2020-01-04 11:06:28 +01:00
Josh Wolfe
ac867cc45f fix tests 2020-01-03 20:55:47 -07:00
Andrew Kelley
14fcfe2981
translate-c supports --cache on
this will be used to provide a zig build step
2020-01-03 22:11:19 -05:00
LemonBoy
b91eaba38c Correct evaluation of optional type alignment
The lazy logic was too oversimplified and produced a different result
than the one computed later causing all kinds of problems.

Closes #4013
2020-01-03 17:41:55 -05:00
Andrew Kelley
695c8f756b
add test harness for "run translated C" tests 2020-01-03 00:26:12 -05:00
Andrew Kelley
a90fa45ae1
Merge pull request #4027 from ziglang/fix-float-ops
fix float ops with respect to vectors
2020-01-02 16:10:41 -05:00
Andrew Kelley
fe21d84c94
Merge pull request #4040 from Vexu/translate-c-cast-fixes
Translate c cast fixes
2020-01-02 14:57:48 -05:00
LemonBoy
b0fa2ff853
Translate struct/union initializer expressions 2020-01-02 14:16:39 -05:00
Andrew Kelley
213ff939f1
fix comptime vector float ops and add test coverage
also rename `@ln` to `@log` to match libc convention.
2020-01-02 14:01:48 -05:00
LemonBoy
d09bd3d86c Fix more tests 2020-01-02 19:01:38 +01:00
LemonBoy
0ccac79c8e Implement Thiscall CC 2020-01-02 18:57:08 +01:00
LemonBoy
08a26fea09 translate-c tests 2020-01-02 18:57:07 +01:00
LemonBoy
563d9ebfe5 Implement the callconv() annotation 2020-01-02 18:53:16 +01:00
LemonBoy
d908ca4823
Translate align attribute 2020-01-02 12:33:19 -05:00
LemonBoy
8e89bdfe99
Translate linksection attribute 2020-01-02 12:32:51 -05:00
Vexu
0f1595e72c
translate-c use @enumToInt for global enum values 2020-01-02 18:38:20 +02:00
Andrew Kelley
7bd80f2071
translate-c tests: print clang compile errors on nonzero exit code 2020-01-02 11:12:21 -05:00
Vexu
3dd067fa2b translate-c fix increment rendering issues 2020-01-02 10:47:14 -05:00
LemonBoy
de894f2bde Prefer simple ptrCast between opaque types
Closes #4031
2020-01-02 10:42:26 -05:00
LemonBoy
1e61e5f404 Don't ptrCast a result-location assignment to _
After #4010 doing `_ = @bitCast(...)` triggered a nonsensical compiler
error.
2020-01-02 10:41:11 -05:00
Vexu
f35a963ac5 translate-c properly handle unused var-args 2020-01-02 10:39:52 -05:00
Andrew Kelley
cb56b26900
fix float ops with respect to vectors
also remove the redundant type parameter
2020-01-01 23:27:43 -05:00
Andrew Kelley
576320e6d5
Merge pull request #4025 from ziglang/Vexu-stage-2-cimport
Use self hosted translate-c for cImport
2020-01-01 22:46:46 -05:00
Andrew Kelley
88c5e2a96e
translate-c: don't export inline functions 2020-01-01 20:54:17 -05:00
Andrew Kelley
5ba143e7e3
avoid trying to translate microsoft's stdio.h inline functions
...for now. See #515
2020-01-01 20:33:07 -05:00
Andrew Kelley
ec09b9e5f0
translate-c: prevent name clashing of macros declared after locals 2020-01-01 19:23:46 -05:00
Andrew Kelley
9298b9a4aa
translate-c: prevent name clashing of globals declared after locals 2020-01-01 18:53:08 -05:00
Andrew Kelley
dc28526c6c
translate-c: improve support of integer casting
Widening and truncating integer casting to different signedness
works better now. For example `(unsigned long)-1` is now translated
to zig code that compiles correctly.
2020-01-01 18:10:43 -05:00
Vexu
1b64a5f5f0 fix segfault in bit shift safety check 2020-01-01 13:11:42 -05:00
Andrew Kelley
7b62d5dfd8
translate-c: propagate scope properly in nested assignment 2019-12-31 21:01:49 -05:00
Andrew Kelley
42945a269a
translate-c: better mangling strategy
Block-local identifiers have block-local mangling numbers, and more
consistent mangling is applied within blocks. Parameters, for example,
are treated the same as other block-local variables, and are not mangled
unless they conflict with another name in scope.
2019-12-31 20:39:33 -05:00
Andrew Kelley
5749f706ef
translate-c: non-wrapping operator for pointer arithmetic
According to C11 6.5.6.8, pointer arithmetic may not overflow. In fact,
it may not even go more than 1 past the end of an object, or UB occurs.

This is the same as Zig pointer arithmetic semantics, and so the
`+` and `+=` operators rather than `+%` and `+%=` are appropriate for
C-translated pointer arithmetic.
2019-12-31 17:33:55 -05:00
Andrew Kelley
39ee3bc0ec
Merge branch 'stage-2-cimport' of https://github.com/Vexu/zig into Vexu-stage-2-cimport 2019-12-31 16:55:41 -05:00
Andrew Kelley
73e535e112
Merge pull request #3683 from Vexu/atomic-float
Support floats with some atomic operations
2019-12-30 19:19:05 -05:00
Andrew Kelley
a05150e92d
fix comparing comptime_int against undefined literal
closes #4004
2019-12-30 19:08:57 -05:00
LemonBoy
28a8ded95a Resolve more types as needed
Closes #3994
2019-12-30 17:45:09 -05:00