Commit Graph

75 Commits (8b456927be372bfe776e021da273db3227a568a0)

Author SHA1 Message Date
Andrew Kelley a0c564d762 zig fmt 2018-07-09 01:23:47 -04:00
Marc Tiehuis 1eda86e1ad Clean up outstanding compiler_rt todos 2018-07-03 13:22:12 +12:00
Andrew Kelley bd282d6cca
Merge pull request #1176 from bnoordhuis/f16-std
improve std.math f16 support
2018-07-02 16:03:25 -04:00
Marc Tiehuis 887c97742f Alignment fix and allow rudimentary f128 float printing 2018-06-30 21:58:59 +12:00
Marc Tiehuis 9f48b2ab48 compiler_rt: Remove wrapping add/sub operators where unneeded
Closes #495.
2018-06-30 21:58:59 +12:00
Marc Tiehuis 814a34f263 compiler_rt: Add floattitf/floattidf/floattisf 2018-06-30 21:58:59 +12:00
Marc Tiehuis e19fc4a0a3 compiler_rt: Add missing exports 2018-06-30 21:58:59 +12:00
Marc Tiehuis cb7bdc2da1 compiler_rt: Add floatuntitf 2018-06-30 21:58:59 +12:00
Marc Tiehuis 61ebfe6603 compiler_rt: Add floatunditf and floatunsitf 2018-06-30 21:58:59 +12:00
Marc Tiehuis c32b2e45ef compiler_rt: Add floatuntisf 2018-06-30 21:58:59 +12:00
Marc Tiehuis 379950f81d compiler_rt: Add trunc f128 narrowing functions 2018-06-30 21:58:59 +12:00
Ben Noordhuis 27b02413dc add std.math f16 nan support
refs #1122
2018-06-30 01:58:17 +02:00
Ben Noordhuis fd75e73ee9 add f16 type
Add support for half-precision floating point operations.

Introduce `__extendhfsf2` and `__truncsfhf2` in std/special/compiler_rt.

Add `__gnu_h2f_ieee` and `__gnu_f2h_ieee` as aliases that are used in
Windows builds.

The logic in std/special/compiler_rt/extendXfYf2.zig has been reworked
and can now operate on 16 bits floating point types.

`extendXfYf2()` and `truncXfYf2()` are marked `inline` to work around
a not entirely understood stack alignment issue on Windows when calling
the f16 versions of the builtins.

closes #1122
2018-06-27 16:20:04 +02:00
Andrew Kelley 5f38d6e2e9 add casting docs, __extenddftf2, and __extendsftf2 2018-06-21 14:44:35 -04:00
Andrew Kelley c7804277bf `@floatToInt` now has safety-checked undefined behavior
when the integer part does not fit in the destination integer type

 * Also fix incorrect safety triggered for integer casting an
   `i32` to a `u7`. closes #1138
 * adds compiler-rt function: `__floatuntidf`
2018-06-19 16:06:10 -04:00
Andrew Kelley 4210f1f6a0 remove bool to int syntax. add @boolToInt
add missing docs

See #1061
2018-06-18 03:07:16 -04:00
Andrew Kelley 7912061226 remove integer and float casting syntax
* add `@intCast`
 * add `@floatCast`
 * add `@floatToInt`
 * add `@intToFloat`

See #1061
2018-06-17 02:57:07 -04:00
Marc Tiehuis a369d69c51 Add windows x86_64 i128 abi workaround 2018-06-14 21:18:36 +12:00
Marc Tiehuis 9110140514 Add i128 compiler-rt div/mul support 2018-06-13 22:25:04 +12:00
Andrew Kelley d21a1922eb support `zig fmt: off` and `zig fmt: on` between top level decls
closes #1030
closes #1033
2018-06-04 12:15:02 -04:00
Andrew Kelley fcbb7426fa use * for pointer type instead of &
See #770

To help automatically translate code, see the
zig-fmt-pointer-reform-2 branch.

This will convert all & into *. Due to the syntax
ambiguity (which is why we are making this change),
even address-of & will turn into *, so you'll have
to manually fix thes instances. You will be guaranteed
to get compile errors for them - expected 'type', found 'foo'
2018-05-31 17:28:07 -04:00
Andrew Kelley 0c16cd2d0e run zig fmt on the codebase
See #1003
2018-05-29 04:23:38 -04:00
Andrew Kelley 43085417be update github.com/zig-lang to github.com/ziglang 2018-05-24 21:27:44 -04:00
Andrew Kelley 6928badd85 Merge branch 'master' into pointer-reform 2018-05-09 23:43:07 -04:00
Andrew Kelley 02c1b9df3b fix compiler-rt tests accidentally running std tests
also reduce the aggressiveness of std.atomic.stack
and std.atomic.queue fuzz testing. appveyor has 1 core
and 10,000 iterations is too much for 6 threads to
thrash over
2018-05-02 21:34:34 -04:00
Andrew Kelley ac4d55dec1 behavior tests passing with new pointer deref syntax 2018-05-01 01:53:04 -04:00
Andrew Kelley ec2a81a081 fix compiler-rt ABI for x86_64 windows 2018-04-28 22:03:07 -04:00
Andrew Kelley b57cb04afc Merge remote-tracking branch 'origin/master' into llvm6 2018-03-08 10:59:24 -05:00
Andrew Kelley 07e47c058c ptrCast builtin now gives an error for removing const qualifier
closes #384
2018-03-06 16:37:03 -05:00
Andrew Kelley 47be64af5a Merge remote-tracking branch 'origin/master' into llvm6 2018-01-25 11:51:41 -05:00
Andrew Kelley 3671582c15 syntax: functions require return type. remove `->`
The purpose of this is:

 * Only one way to do things
 * Changing a function with void return type to return a possible
   error becomes a 1 character change, subtly encouraging
   people to use errors.

See #632

Here are some imperfect sed commands for performing this update:

remove arrow:

```
sed -i 's/\(\bfn\b.*\)-> /\1/g' $(find . -name "*.zig")
```

add void:

```
sed -i 's/\(\bfn\b.*\))\s*{/\1) void {/g' $(find ../ -name "*.zig")
```

Some cleanup may be necessary, but this should do the bulk of the work.
2018-01-25 04:10:11 -05:00
Andrew Kelley e5bc5873d7 rename "debug safety" to "runtime safety"
closes #437
2018-01-25 01:46:12 -05:00
Andrew Kelley cf39819478 add new kind of test: generating .h files. and more
* docgen supports obj_err code kind for demonstrating
   errors without explicit test cases
 * add documentation for `extern enum`. See #367
 * remove coldcc keyword and add @setIsCold. See #661
 * add compile errors for non-extern struct, enum, unions
   in function signatures
 * add .h file generation for extern struct, enum, unions
2018-01-22 22:24:07 -05:00
Andrew Kelley b897e98d30 Merge remote-tracking branch 'origin/master' into llvm6 2018-01-16 12:26:04 -05:00
Andrew Kelley 32ea6f54e5 *WIP* proof of concept error return traces 2018-01-12 02:12:11 -05:00
Andrew Kelley 6bfaf262d5 Merge branch 'master' into llvm6 2017-12-26 21:44:08 -05:00
Andrew Kelley 4183c6f1a5 move std/debug.zig to a subdirectory
self hosted compiler parser tests do some fuzz testing
2017-12-23 22:15:48 -05:00
Andrew Kelley fe66046283 Merge remote-tracking branch 'origin/master' into llvm6 2017-12-23 12:00:25 -05:00
Andrew Kelley d917815d81 explicitly return from blocks
instead of last statement being expression value

closes #629
2017-12-22 00:50:30 -05:00
Andrew Kelley 9d9201c3b4 bring back code that uses export and fix tests
partial revert of 1fdebc1dc4
2017-12-19 02:39:43 -05:00
Andrew Kelley 1fdebc1dc4 wip export rewrite 2017-12-18 09:59:57 -05:00
Andrew Kelley 42004f9013 Merge branch 'master' into llvm6 2017-12-04 15:28:17 -05:00
Andrew Kelley a966275e50 rename builtin.is_big_endian to builtin.endian
See #307
2017-12-04 10:36:31 -05:00
Andrew Kelley 94ec2190f8 update to llvm master 2017-11-02 21:54:24 -04:00
Andrew Kelley 1828f8eb8e fix missing compiler_rt in release modes
the optimizer was deleting compiler_rt symbols, so I changed
the linkage type from LinkOnce to Weak

also changed LinkOnce to mean linkonce_odr in llvm and
Weak to mean weak_odr in llvm.

See #563
2017-10-24 21:31:47 -04:00
Andrew Kelley f86684f410 fix duplicated symbols in compiler-rt tests 2017-10-03 01:26:07 -04:00
Andrew Kelley 6a0c428997 use __chkstk_ms compiler-rt functions for __chkstk
I had to revert the target native features thing because there
is still some incorrect behavior with f128.

Reopens #508
partially reverts b505462509

See #302
2017-10-03 00:57:02 -04:00
Andrew Kelley b505462509 replace __chkstk function with a stub that does not crash
Closes #508
See #302
2017-10-03 00:29:41 -04:00
Andrew Kelley b3f3db46be compiler-rt: strong linkage for __chkstk
otherwise we get undefined symbol errors
2017-10-02 00:22:24 -04:00
Andrew Kelley 25ea8f7dbb fix typo in compiler-rt 2017-10-02 00:13:56 -04:00