Commit Graph

493 Commits (5895204c99f498aa8ec523a311f12d13c945b077)

Author SHA1 Message Date
Andrew Kelley 1c28631738 use allocator.shrink instead of realloc in os.path.real 2017-10-10 11:31:53 -04:00
Andrew Kelley e6334fe46d implement std.io.InStream for windows
See #302
2017-10-09 15:59:10 -04:00
Andrew Kelley 055b856f13 fix build on non-windows
broken by previous commit
2017-10-09 14:27:14 -04:00
Andrew Kelley c4262da8de implement os.path.real for windows and update allocator interface 2017-10-09 14:21:35 -04:00
Andrew Kelley a4310cf8b4 implement std.os.deleteFile for windows 2017-10-08 23:06:56 -04:00
Andrew Kelley 7f56744320 fix os.path.resolveWindows on non-windows 2017-10-08 21:52:26 -04:00
Andrew Kelley 9d5f15fe3d implement os.getCwd for windows 2017-10-08 21:44:24 -04:00
Andrew Kelley 7cfab2fb5f implement std.os.relative for windows 2017-10-08 21:44:24 -04:00
Andrew Kelley e15e1e09f0 os.path.basename implementation for windows 2017-10-08 21:44:17 -04:00
Andrew Kelley dcf5c9074e more std.os.path work for windows 2017-10-08 21:43:58 -04:00
Andrew Kelley 08ee69dac3 implement os.path.dirname for windows 2017-10-08 21:43:43 -04:00
Snorre 522b431057 fix isatty for macOS and libc (#523) 2017-10-03 09:33:30 -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 f1bd02e6f4 add @setAlignStack builtin 2017-10-03 00:29:27 -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
Andrew Kelley 5cbae7b671 better compiler-rt linkage logic
now the compiler-rt tests are passing on windows. See #302
2017-10-02 00:11:45 -04:00
Andrew Kelley e3ea0b652c still build compiler-rt when linking msvc CRT
because it's missing some things
2017-10-01 21:19:58 -04:00
Andrew Kelley 6ae631d1a7 add windows 32 bit to test matrix
See #302
2017-10-01 11:11:38 -04:00
Andrew Kelley 844e05f619 improve bit shift API in std.math
* `shl` moved to `shlExact`
 * added `shl` and `shr` which are truncating like `<<` and `>>`.

closes #403
2017-09-30 21:09:58 -04:00
Andrew Kelley c6295fe9ab remove zigrt
adds test case for #394

partially reverts a32b5929cc
2017-09-30 20:21:57 -04:00
Andrew Kelley 9c6e12ac29 compiler-rt: add _aulldiv and _aullrem for i386 windows 2017-09-30 13:58:05 -04:00
Andrew Kelley b7a4f16cc4 fix previous commit 2017-09-30 13:40:55 -04:00
Andrew Kelley 53aa72b58a add ___chkstk_ms compiler-rt function 2017-09-30 13:39:37 -04:00
Marc Tiehuis 9dfe217be3 Allow 128-bit hex float literals
Closes #499.
2017-09-28 23:33:36 +13:00
Andrew Kelley fd5a5db400 implement IncrementingAllocator for Windows 2017-09-27 22:59:58 -04:00
Andrew Kelley 9ae66b4c67 add test for std.mem.IncrementingAllocator
See #501
2017-09-27 22:04:38 -04:00
Josh Wolfe 583ca36e62 add reset() method to IncrementingAllocator (#501) 2017-09-27 21:54:43 -04:00
Andrew Kelley 224cd8a01e add fmt.parseInt 2017-09-26 19:40:51 -04:00
Andrew Kelley 768af66977 implement setreuid, setregid for darwin 2017-09-26 03:35:33 -04:00
Andrew Kelley 4f0f3a7d45 std.os.ChildProcess: setgid before setuid
otherwise we thwart our permissions to setuid
2017-09-26 03:17:58 -04:00
Andrew Kelley 5c2db5a942 add std.fmt.trim 2017-09-26 03:03:12 -04:00
Andrew Kelley fd2d502e41 std.os.ChildProcess: ability to set both uid and gid 2017-09-26 02:42:06 -04:00
Andrew Kelley cba4a9ad4a update std.os.ChildProcess API
* add std.os.ChildProcess.setUserName
 * add std.os.getUserId
2017-09-26 01:01:49 -04:00
Andrew Kelley 8f0dfcbcfb Revert "windows API functions are not stdcalls"
This reverts commit 59410a2f13.

yes they are
2017-09-24 04:18:13 -04:00
Andrew Kelley 59410a2f13 windows API functions are not stdcalls 2017-09-24 04:09:13 -04:00
Andrew Kelley ba41be67f0 windows gui hello world 2017-09-24 03:55:45 -04:00
Andrew Kelley 7fd164f196 zig build: add linkFramework API 2017-09-23 17:59:30 -04:00
Andrew Kelley 2f98676bbe std.build: fix -install_name for darwin dynamic C linking 2017-09-23 13:32:17 -04:00
Andrew Kelley eb0867d3f0 std.build: fix building C dynamic libraries on darwin 2017-09-23 13:27:36 -04:00
Andrea Orru e7a01c24a3 LinkedList helper functions (#493)
* Restore LinkedList helper functions

* mem.Allocator
2017-09-21 10:28:44 -04:00
Marc Tiehuis c4a54377e3 Stop debug allocator ever panicking (#492) 2017-09-19 09:47:41 -04:00
Andrew Kelley 751ab72a82 std: fix os.sleep on darwin and windows 2017-09-19 09:46:41 -04:00
Andrew Kelley 10ad3253de std.build: catch mistake of setting output path to build dir
closes #464
2017-09-18 18:01:58 -04:00
Andrew Kelley 24b6dcc507 std.build: explicitly disable stack protector when nostdlib 2017-09-18 15:30:07 -04:00
Andrew Kelley 385da95eb4 std.build: simpler API
merge LibExeObj and CLibExeObj

also make it so that you can disable libc when compiling C
2017-09-18 02:51:09 -04:00
Andrew Kelley c5ca8b51f9 zig build: use stack protector for C code in debug mode 2017-09-17 19:20:48 -04:00
Andrew Kelley 7ee00730ac add option to run tests in LLDB and turn it on for macos travis 2017-09-17 14:43:51 -04:00
Andrew Kelley a9ecb26c34 std.os.ChildProcess: fix fd leak 2017-09-16 21:07:02 -04:00
Marc Tiehuis 71342f8249 Add dash arguments for cli 2017-09-17 12:26:13 +12:00
Andrew Kelley 766547dbfe bump incrementing allocator memory in build system to 20MB
See #467
2017-09-14 20:28:38 -04:00
Andrew Kelley 14cda27b64 depend on embedded SoftFloat-3d instead of __float128
See #302
See #467
2017-09-14 01:46:47 -04:00
Andrew Kelley d9eabde319 add Child property of slice type
also rename child field to Child for pointer and array
2017-09-13 14:30:57 -04:00
Jonathan Marler 3f8b26c06a Allow INVALID_HANDLE_VALUE for windows to work on 32-bit and 64-bit. (#457) 2017-09-10 11:16:27 -04:00
jean-dao 0f7544cfca std.io.InStream: add readLine function (#458) 2017-09-10 11:10:55 -04:00
Andrew Kelley 5fdf3fa195 std.fmt knows how to format &[N]u8 2017-09-09 19:42:31 -04:00
Marc Tiehuis f725b20de6 Add appendSlice function (#448) 2017-09-09 13:49:40 -04:00
Marc Tiehuis 67a31befa6 Add exit function (#450) 2017-09-09 13:48:44 -04:00
Andrew Kelley d244deb59e fix std.Buffer.endsWith
thanks for the report by jean-dao

closes #443
2017-09-08 09:19:02 -04:00
Andrew Kelley 2c8ff1d47b std.ChildProcess.spawn: handle 0 from waitpid correctly 2017-09-08 01:23:48 -04:00
Andrew Kelley 838d52a8be std.os.ChildProcess: don't expect all SIGCHLD to come from spawn 2017-09-08 00:45:45 -04:00
Andrew Kelley a81e516174 fix ChildProcess.spawn on darwin 2017-09-08 00:04:43 -04:00
Andrew Kelley 9fb4d1fd6c std: os.ChildProcess knows when its child died
using signal handlers
2017-09-07 23:10:51 -04:00
Andrew Kelley 9f7e62b95b std: add ChildProcess.kill 2017-09-06 18:30:45 -04:00
Andrew Kelley 7e59f4ff69 std: add os.sleep 2017-09-06 16:59:22 -04:00
Andrew Kelley 1f2548ec5f better build.zig template 2017-09-06 14:18:14 -04:00
Andrew Kelley ee9d1d0414 c-to-zig: return statement 2017-09-01 03:16:35 -04:00
Josh Wolfe 848504117f Revert "fix return types of min amd max"
This reverts commit 180fe8d506.
2017-08-31 17:56:06 -07:00
Josh Wolfe 180fe8d506 fix return types of min amd max 2017-08-31 17:45:34 -07:00
Andrew Kelley 06b64d82bf only export __chkstk for windows
it's a windows only function anyway
2017-08-31 20:10:24 -04:00
Andrew Kelley eb0979189b add windows to test targets
cross-compiling hello world with no libc for windows is working
2017-08-31 11:41:58 -04:00
Andrew Kelley 156a84e80f compiler-rt: add __aeabi_uldivmod 2017-08-31 01:39:20 -04:00
Andrew Kelley 021155db5b successfully cross-building behavior tests for windows 2017-08-30 17:01:14 -04:00
Andrew Kelley 0e9bdb44a6 test suite cross-compile builds tests for other targets 2017-08-30 14:55:26 -04:00
Andrew Kelley 052b4ae941 align syntax: align(4) instead of align 4
closes #37
2017-08-30 04:54:33 -04:00
Andrew Kelley 3f5dd08ca8 codegen: all stores specify align value
See #37
2017-08-30 04:23:52 -04:00
Andrew Kelley 898d65baa9 more alignment improvements
* add alignment capability for fn protos
 * add @alignCast
 * fix some ast rendering code
 * fix some ir rendering code
 * add error for pointer cast increasing alignment
 * update allocators in std to correctly align

See #37
2017-08-29 23:33:25 -04:00
Andrew Kelley 816689a3b1 ptrCast gives compile error for increasing alignment
See #37
2017-08-29 16:52:31 -04:00
Andrew Kelley c5c9d98065 introduce align keyword
* remove `@setGlobalAlign`
 * add align keyword for setting alignment on functions and
   variables.
 * loads and stores use alignment from pointer
 * memcpy, memset use alignment from pointer
 * add syntax for pointer alignment
 * slices can have volatile
 * add u2, i2 primitives
 * ignore preferred align and use abi align everywhere
 * back to only having alignOf builtin.
   preferredAlignOf is too tricky to be useful.
   See #432. Partial revert of
   e726925e80.

See #37
2017-08-29 07:51:34 -04:00
Andrew Kelley b8ed0cb374 remove workaround for LLVM not respecting "nobuiltin"
now that we depend on LLVM 5.0.0 we can remove the
workaround.

closes #393
2017-08-28 04:28:42 -04:00
Andrew Kelley ebdc6b594d all tests passing in MacOS
depends on LLD 5.0.0 with 3 patches

See #273
2017-08-27 17:16:42 -04:00
Andrew Kelley 5fd579a51c macos passing all tests except for building a shared library
see #273
2017-08-27 05:44:03 -04:00
Andrew Kelley ff2c794612 all behavior tests passing for macos
See #273
2017-08-27 05:15:24 -04:00
Andrew Kelley 91536813ec macos updates
* try some macos travis stuff
 * put c in the link libs for macos since we always link with libSystem
 * for non-native targets on macos, allow runtime symbol resolution
   - it's causing an infinite loop in LLD.
 * for macos, always build compiler_rt and turn on LinkOnce because
   compiler_rt on darwin is missing some stuff.
2017-08-27 02:51:25 -04:00
Andrew Kelley b59aa7b906 fixups to linux build 2017-08-27 00:28:17 -04:00
Andrew Kelley 29a418c9d5 progress toward tests passing on MacOS 2017-08-27 00:11:09 -04:00
Andrew Kelley 2bd6c60752 update for llvm 5.0.0rc1 2017-08-26 00:34:40 -04:00
Andrew Kelley 629aa10c56 unreachable still codegens to unreachable in ReleaseFast test mode
closes #430
2017-08-25 10:20:06 -04:00
Andrew Kelley be16034275 std.math: remove constants that can be derived
from others at compile time
2017-08-20 05:43:40 -04:00
Andrew Kelley d9dd50d74c fix not propagating parseh aliases through pub use decls 2017-08-20 04:03:36 -04:00
Andrew Kelley 09bd4a9a86 compile-time f32, f64 operations are now correctly lossy
previously we used the bigfloat abstraction to do all
compile-time float math. but runtime code and comptime code
are supposed to get the same result. so now if you add a
f32 to a f32 at compile time it does it with f32 math
instead of the bigfloat. float literals still get the
bigfloat math.

closes #424
2017-08-20 01:04:51 -04:00
Andrew Kelley c73a0c92d0 fix floating point printing 2017-08-19 19:11:43 -04:00
Andrew Kelley eb26aeb1e5 std: better int log2 implementation for number literals 2017-08-19 02:29:18 -04:00
Andrew Kelley 987768778a bit shifting safety
* add u3, u4, u5, u6, u7 and i3, i4, i5, i6, i7
 * shift operations shift amount parameter type is
   integer with log2 bit width of other param
   - This enforces not violating undefined behavior on
     shift amount >= bit width with the type system
 * clean up math.log, math.ln, math.log2, math.log10

closes #403
2017-08-19 01:43:43 -04:00
Andrew Kelley 558ece8f6f slightly nicer floating point printing 2017-08-18 18:05:28 -04:00
Andrew Kelley 33c592e981 make udivmod generic and add tests 2017-08-18 17:20:03 -04:00
Andrew Kelley 51bde26842 add compiler-rt fns: udivmodti4, udivti3, umodti3 2017-08-18 16:26:09 -04:00
Andrew Kelley ea9e1639ca include compiler-rt tests in main testing suite 2017-08-18 13:51:16 -04:00