Commit Graph

6993 Commits (3bca02509163b1c77776762d371fd802073ff7dd)

Author SHA1 Message Date
daurnimator 6037f89212
std: fifo rename from FixedSizeFifo to LinearFifo 2019-11-25 09:26:33 +11:00
daurnimator cd749e0416
std: fifo now has 3 modes: Static, Slice and Dynamic 2019-11-25 09:26:32 +11:00
daurnimator c0e47cb645
std: fix fifo for non-u8 types 2019-11-25 09:26:32 +11:00
daurnimator e810f485ab
std: add optimization to fifo if size is power of two 2019-11-25 09:26:32 +11:00
daurnimator 01b2a56225
std: move auto_align constant to top of comptime function
At a later point in time this might be made into a parameter
2019-11-25 09:26:32 +11:00
daurnimator 52645d06e1
std: fix unfinished doc-comment in fifo 2019-11-25 09:26:32 +11:00
Andrew Kelley c96d565166
add compile error for incompatible pointer sentinels 2019-11-24 17:02:56 -05:00
Andrew Kelley 4018034708
add test cases for arbitrary pointer sentinels 2019-11-24 16:52:32 -05:00
Andrew Kelley 09ec720dab
fix comptime `@ptrCast` of pointers to arrays 2019-11-24 16:25:26 -05:00
Sahnvour 6ebd26f3db removed unnecessary backslashes in windows' libc paths 2019-11-24 21:33:58 +01:00
Sahnvour 696567d9d7 export: check variable type
also fixed existing occurrences
2019-11-24 21:33:58 +01:00
Sahnvour 912c1c24c3 simple test for exporting variables in static libs 2019-11-24 21:33:58 +01:00
Sahnvour 1bde3b6821 gen-h: register the need for stdbool.h and stdint.h when exploring types recursively
otherwise they wouldn't be included when only a struct contains them
2019-11-24 21:33:58 +01:00
Sahnvour 49156e3980 gen-h: add a pass for exported variables 2019-11-24 21:33:58 +01:00
Sahnvour 104b6f1629 refactored gen_h_file to improve maintainability and output
- extracted functions
- factorised extern "C" into a block containing all function prototypes instead of writing macros all over the place
- using intermediate buffers instead of writing directly to the output file
2019-11-24 21:33:58 +01:00
Andrew Kelley f7574f44c1
add test for struct with var field 2019-11-24 15:20:15 -05:00
Andrew Kelley 44b1dc6db8
add type coercion: [:x]T to [*:x]T 2019-11-24 15:17:55 -05:00
syscall0 eea8b10463 Call DllMain entry point if declared 2019-11-24 14:46:22 -05:00
schroffl 6109e49c5b Fix FixedSizeFifo buffer type
Update the `.buf` property to be a slice of the type that is given as a parameter.
2019-11-24 14:42:56 -05:00
Andrew Kelley 2b1faa1f20
Merge pull request #3748 from Vexu/modernize-stage2
Updates and cleanup in self hosted compiler
2019-11-24 14:40:16 -05:00
Vexu 20f5f56986
uncomment event.fs.watch 2019-11-24 17:42:20 +02:00
Vexu ab534cc9f1
update event.fs to use global event loop 2019-11-24 17:39:08 +02:00
Vexu 0cbf00a3ec
self hosted compiler: final small fixes to get it compiling 2019-11-24 10:24:47 +02:00
Andrew Kelley 4c7b52503b
all tests passing 2019-11-24 02:14:21 -05:00
MCRusher 17abb7ef7f
Adds initCapacity() to buffer and arraylist
array_list.zig:
- adds ArrayList.initCapacity(*Allocator,usize) to allow preallocation of a block at initialization to reduce future allocations.
- adds a test for ArrayList.initCapacity() that ensures ArrayList.len() is unchanged and that at least the requested amount is allocated for.
buffer.zig:
- adds Buffer.initCapacity(*Allocator,usize), based off of ArrayList.initCapacity(), to preallocate a buffer before use.
note: contrary to Buffer.initSize(0) and then Buffer.list.ensureCapacity(200) (the presumed current method), this only allocates once instead of twice.
- adds Buffer.capacity to check usable allocated space, not including the null byte.
note: returns 0 when Buffer has only a null byte or when initNull() was used before without resize()/replaceContents().
- adds a test "Buffer.initCapacity" which ensures that Buffer.append()'s with [added size <= Buffer.capacity()-Buffer.len()] do not cause a reallocation to occur.
- adds a test "Buffer.initSize" which ensures that Buffer.initSize() behaves as expected, also combined with Buffer.append().
- adds a doc comment to Buffer.initSize() that makes its function and distinction from Buffer.initCapacity() clearer.
2019-11-23 23:49:55 -05:00
MCRusher d49e0a7b90
Added initCapacity, capacity, and 2 tests.
Added Buffer.initCapcity() to buffer to allow preallocation of a block of memory to reduce future allocations. Uses the added ArrayList.initCapacity() function to achieve this.

Added Buffer.capacity() to track current usable allocation size, not counting null byte, and returning 0 if empty or created with Buffer.initNull()

Added a test for initCapacity() that shows that no further allocation is performed for an append of size smaller than or equal to capacity when initCapacity is used.

Added a test for initSize(), since it did not exist already.

Also added a comment to better explain the difference between initSize() and initCapacity()

note: forgot in the first commit but thanks to mikdusan for helping me brainstorm, through the process, and for drawing up a draft diff which I tweaked.
2019-11-23 23:08:33 -05:00
MCRusher 10e6cde083
Added initCapacity and relevant test
Added ArrayList.initCapcity() as a way to preallocate a block of memory to reduce future allocations.

Added a test "std.ArrayList.initCapacity" that ensures initCapacity adds no elements and increases capacity by at least the requested amount
2019-11-23 22:54:33 -05:00
Andrew Kelley 2dd20aa04a
langref: update for sentinel-terminated types 2019-11-23 22:29:12 -05:00
Andrew Kelley 00878a15d7
zig fmt: support sentinel-terminated pointer syntax 2019-11-23 22:21:25 -05:00
Andrew Kelley f25182f46d
structs can have fields with type `var`
behavior tests passing now
2019-11-23 17:51:37 -05:00
Vexu 010494d8af
only test stage2 on linux 2019-11-23 23:45:54 +02:00
Vexu 89310dad56
Merge branch 'master' into modernize-stage2 2019-11-23 23:01:28 +02:00
Vexu b9ef36094c
re-enable stage2 tests 2019-11-23 22:57:34 +02:00
Vexu 6c64f079fa
add workaround to child_process.zig 2019-11-23 22:06:51 +02:00
Vexu d40f204ec0
self hosted compiler: small miscellaneous fixes 2019-11-23 21:57:24 +02:00
Michael Dusan 29d7b5a80c remove UTF BOM 2019-11-23 14:17:55 -05:00
Vexu 7fa59565d3 fix small regressions in std.event 2019-11-23 14:01:00 -05:00
Vexu 133579d7c0
fix casts 2019-11-23 19:36:26 +02:00
Vexu 03cc81665b
Merge branch 'master' into modernize-stage2 2019-11-23 19:13:48 +02:00
Andrew Kelley 7597735bad
update the stage1 implementation to the new proposal
See #3731
2019-11-23 04:45:35 -05:00
Andrew Kelley ad0871ea4b
Merge branch 'Vexu-missing-cast'
Closes #3336
Closes #3718
2019-11-21 23:25:02 -05:00
Vexu 4e6c1b676b
add cast to not hit #2561 2019-11-21 23:21:51 -05:00
Vexu 4d9318cee0
fix missing implicit cast in return instruction 2019-11-21 23:21:51 -05:00
Vexu 0b63573674
improve broken llvm module error message 2019-11-21 23:21:14 -05:00
Vexu 0e8a53514e
add missing error set to ChildProsess.SpawnError 2019-11-21 23:21:14 -05:00
Timon Kruiper 94299d16d1 Stage1: Add compile error for an empty switch on a integer 2019-11-22 04:00:47 +00:00
Andrew Kelley 6b623b5ea2
update docs for null terminated stuff 2019-11-21 20:43:42 -05:00
Andrew Kelley fd6020c4e2
update tests, better error messages, update self-hosted tokenizer 2019-11-21 20:43:41 -05:00
Andrew Kelley cf2fe2536e
better error message when null termination does not match 2019-11-21 20:43:41 -05:00
Andrew Kelley 47f06be369
string literals are now null terminated
this also deletes C string literals from the language, and then makes
the std lib changes and compiler changes necessary to get the behavior
tests and std lib tests passing again.
2019-11-21 20:43:41 -05:00