Andrew Kelley
d8295c1889
add @popCount intrinsic
2018-07-07 00:25:32 -04:00
Andrew Kelley
4ad4cd2654
fix iterating over a void slice
...
closes #1203
2018-07-06 17:27:44 -04:00
Andrew Kelley
6e1425e312
Merge remote-tracking branch 'origin/master' into llvm7
2018-07-02 20:00:13 -04:00
Andrew Kelley
35463526cc
add runtime safety for @intToEnum
; add docs for runtime safety
...
See #367
2018-07-02 15:50:28 -04: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
Ben Noordhuis
1f45075a0e
dry floating-point type definitions
2018-06-27 16:20:04 +02:00
Andrew Kelley
55193cb13b
fix runtime fn ptr equality codegen
...
closes #1140
2018-06-20 06:46:53 -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
85422d7aea
Merge pull request #1136 from alexnask/typeinfo_improvements
...
@typeInfo now uses optional types instead of @typeOf(undefined)
2018-06-19 11:46:32 -04:00
Alexandros Naskos
1392313236
@typeInfo now uses optional types instead of @typeOf(undefined)
2018-06-19 17:45:19 +03:00
Andrew Kelley
a3ddd0826b
remove enum to/from int casting syntax; add @enumToInt
/@intToEnum
...
see #1061
2018-06-19 03:50:38 -04:00
Andrew Kelley
626b73e8be
remove error to/from int casting syntax; add @errorToInt
/@intToError
...
See #1061
2018-06-18 18:48:29 -04:00
Andrew Kelley
1aafbae5be
remove []u8 casting syntax. add @bytesToSlice
and @sliceToBytes
...
See #1061
2018-06-18 17:25:29 -04:00
Andrew Kelley
5d705fc6e3
remove error set casting syntax. add @errSetCast
...
See #1061
2018-06-18 15:01:42 -04:00
Andrew Kelley
c757984879
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-18 14:51:23 -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
Andrew Kelley
472b7ef7e6
disable byval
2018-06-16 19:37:00 -04:00
Andrew Kelley
48de57d824
add basic std lib code for loading dynamic libraries
...
this is going to only work for very basic libraries;
I plan to slowly add more features over time to support more
complicated libraries
2018-06-16 17:01:23 -04:00
Andrew Kelley
32dd98b19f
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-14 18:27:59 -04:00
Andrew Kelley
03c16c6c54
implement @tagName as a switch instead of table lookup
...
closes #976
closes #1080
2018-06-11 14:58:42 -04:00
Andrew Kelley
ec1b6f6673
breaking syntax change: ??x to x.? ( #1095 )
...
See #1023
This also renames Nullable/Maybe to Optional
2018-06-09 23:42:14 -04:00
Andrew Kelley
6edd81109d
nullable pointers follow const-casting rules
...
any *T -> ?*T cast is allowed implicitly, even
when it occurs deep inside the type, and the cast
is a no-op at runtime.
in order to add this I had to make the comptime value
representation of nullable pointers the same as the
comptime value representation of normal pointers,
so that we don't have to do any recursive transformation
of values when doing this kind of cast.
2018-06-09 00:26:26 -04:00
Andrew Kelley
f0b6dac1f2
add implicit casts from *[N]T
...
* to `[]T`
* to `[*]T`
See #770
2018-06-07 22:41:58 -04:00
Andrew Kelley
b65203f573
remove @canImplicitCast builtin
...
nobody will miss it
2018-06-07 19:50:25 -04:00
Andrew Kelley
688ff2830d
langref: automatic update of builtin.zig
...
now the docs can't get out of date for this
See #367
2018-06-07 19:10:45 -04:00
Andrew Kelley
d3693dca73
Pointer Reform: update @typeInfo
...
* add assertion for trying to do @typeInfo on global error set
* remove TypeInfo.Slice
* add TypeInfo.Pointer.Size with possible values
- One
- Many
- Slice
See #770
2018-06-06 00:39:39 -04:00
Andrew Kelley
7dd18294b7
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-05 10:29:54 -04:00
Jimmi HC
a8146ade2a
Renamed UndefinedLiteral to Undefined
2018-06-05 11:54:11 +02:00
Jimmi HC
236c680f6b
Removed NullLiteral to Null
2018-06-05 11:30:01 +02:00
Jimmi HC
02cb220faf
Renamed "(int/float literal)" to "comptime_int/float"
2018-06-05 11:14:43 +02:00
Andrew Kelley
e53b683bd3
Pointer Reform: proper slicing and indexing ( #1053 )
...
* enable slicing for single-item ptr to arrays
* disable slicing for other single-item pointers
* enable indexing for single-item ptr to arrays
* disable indexing for other single-item pointers
see #770
closes #386
2018-06-04 22:11:14 -04:00
Andrew Kelley
58ce79f935
Merge remote-tracking branch 'origin/master' into llvm7
2018-06-04 02:58:55 -04:00
Andrew Kelley
96164ce613
disallow single-item pointer indexing
...
add pointer arithmetic for unknown length pointer
2018-06-04 01:39:57 -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
1f96a86676
Merge remote-tracking branch 'origin/master' into llvm7
2018-05-26 12:06:08 -04:00
Andrew Kelley
43085417be
update github.com/zig-lang to github.com/ziglang
2018-05-24 21:27:44 -04:00
Andrew Kelley
a6ae45145f
add @newStackCall builtin function
...
See #1006
2018-05-12 17:35:15 -04:00
Andrew Kelley
284ab109c4
Merge remote-tracking branch 'origin/master' into llvm7
2018-05-10 11:37:25 -04:00
Jimmi HC
9b29c872ce
Added Slice as it's own type info in userland
2018-05-09 09:34:04 +02:00
Andrew Kelley
7e37d268c8
Merge remote-tracking branch 'origin/master' into llvm7
2018-05-04 13:39:27 -04:00
Alexandros Naskos
013f548202
Finished FnDef TypeInfo generation (warning: may be buggy).
2018-04-29 15:40:26 +03:00
Alexandros Naskos
66aa760f83
More FnDef TypeInfo generation.
2018-04-29 14:03:55 +03:00
Alexandros Naskos
af73462da4
Started work on function definition TypeInfo generation.
2018-04-28 19:57:59 +03:00
Alexandros Naskos
61b0180596
Added definition TypeInfo generation, except for function definitions.
2018-04-28 17:01:19 +03:00
Alexandros Naskos
ea2596280f
Added BoundFn TypeInfo generation.
2018-04-27 05:10:20 +03:00
Alexandros Naskos
8f703f919f
Added Fn TypeInfo generation.
2018-04-27 04:29:50 +03:00
Alexandros Naskos
a2dadbc206
Added struct TypeInfo generation.
2018-04-27 02:52:09 +03:00
Alexandros Naskos
9041d0d37e
Fixed enum tag type detection in TypeInfo generation.
2018-04-27 02:05:24 +03:00
Alexandros Naskos
884e32d5c3
Added ErrorUnion, Union TypeInfo generation
2018-04-26 19:56:34 +03:00