Commit Graph

2812 Commits (78ba3b84850c1e1494797f76d147bc8c87f749e1)

Author SHA1 Message Date
Andrew Kelley 0d22a00f6f *WIP* async/await TCP server 2018-04-08 18:26:24 -04:00
Andrew Kelley 292d0cbdad add docs for union methods 2018-04-08 18:03:09 -04:00
Andrew Kelley eae355d771 add docs for packed enum 2018-04-08 18:03:09 -04:00
Andrew Kelley fef06f2142 Merge branch 'async-err-ret-traces'
closes #821
2018-04-08 17:57:29 -04:00
Andrew Kelley ee1a4f4c1d error return traces work with async return case 2018-04-08 17:44:29 -04:00
Andrew Kelley 9e98ea552d fix calling convention at callsite of zig-generated fns 2018-04-08 16:40:59 -04:00
Andrew Kelley ada441157f put the error return addresses in the coro frame 2018-04-08 16:04:48 -04:00
Andrew Kelley e4083b7391 codegen: fix not putting llvm allocas together 2018-04-08 16:04:48 -04:00
Andrew Kelley d26905c102 error return traces for the early return case
it would work but LLVM is not correctly spilling the addresses.

See #821
2018-04-08 16:04:48 -04:00
Jimmi Holst Christensen e4d0b46c0c std.zig.parser WIP generalizing parsing of payloads
* Note, it doesn't work :)
2018-04-08 17:05:08 +02:00
Jimmi Holst Christensen bdff5bfa3e std.zig.parser now parses switch 2018-04-07 01:38:38 +02:00
Andrew Kelley 7186e92c86
Merge pull request #900 from zig-lang/hash-and-checksums
Add common hash/checksum functions
2018-04-06 09:44:25 -04:00
Jimmi Holst Christensen 820de1716b std.zig.parser now parses labeled blocks.
* There is also some code for switch range parsing
2018-04-06 15:37:49 +02:00
Marc Tiehuis c34ce2cbc6 Add common hash/checksum functions
- SipHash64, SipHash128
 - Crc32 (fast + small variants)
 - Adler32
 - Fnv1a (32, 64 and 128 bit variants)
2018-04-06 23:10:54 +12:00
Jimmi Holst Christensen f667744d44 std.zig.parser Fixed:
* Parsing of the optional expression in contrl flow expr
* Rendering of catch expressions
2018-04-06 09:36:11 +02:00
Jimmi Holst Christensen e45de607d6 std.zig.parser: Initializers are now parsed and fmt correctly 2018-04-06 08:56:28 +02:00
Andrew Kelley 873641c123
Merge pull request #899 from bnoordhuis/fix898
fix llvm assert on version string with git sha
2018-04-05 18:55:09 -04:00
Ben Noordhuis 8980281184 fix llvm assert on version string with git sha
LLVM's CodeViewDebug pass misparses the version string when it contains
a git revision so stop doing that.  This only affected Windows builds.

closes #898
2018-04-06 00:31:55 +02:00
Ben Noordhuis 9e8519b7a2 fix use-after-free in BufMap.set()
closes #879
2018-04-05 23:32:49 +02:00
Jimmi Holst Christensen 779247ba11 std.zig Major Refactor
* parser now parses expression like the C++ compiler does
* This makes initializers work
* Added control flow expression (only return is parsed)
* Added catch parsing (It doesn't quite work)
* The parse can now specify states as optional.
  * The parse will roll back on error if states are optional
  * This can be overriden by State.Required
2018-04-04 23:36:55 +02:00
Marc Tiehuis 8938429ea1 Add Hmac function (#890) 2018-04-04 10:31:10 -04:00
Jimmi Holst Christensen 744416ce0c std.zig.parser should now parse operators with precedence.
* This haven't been tested yet
2018-04-04 14:58:51 +02:00
Marc Tiehuis f68c2e0a14 Fix off-by-one error in all crypto functions 2018-04-04 21:32:23 +12:00
Jimmi Holst Christensen ca0085c46d std.zig.parser now parses error set declarations 2018-04-04 10:54:48 +02:00
Jimmi Holst Christensen 020724cfa0 std.zig.tokenizer Tokens now don't contain a line and column field.
* Instead, this information is optained by asking the tokenizer.
* getTokenLocation takes a start_index, so relative loc can be optained
2018-04-04 10:27:38 +02:00
Jimmi Holst Christensen 09cf823619 std.zig.parser now parses container decls 2018-04-04 09:57:37 +02:00
Andrew Kelley 3d8541121b Merge branch 'hellerve-wip-macos-dirent' 2018-04-04 00:08:48 -04:00
Andrew Kelley abd389209b fix up logic for macos std.os.deleteTree 2018-04-04 00:08:10 -04:00
Andrew Kelley e1e536e03d Merge branch 'wip-macos-dirent' of https://github.com/hellerve/zig into hellerve-wip-macos-dirent 2018-04-03 23:33:18 -04:00
Andrew Kelley 6050b9d835 travis: don't skip tests
fix broken previous commit
2018-04-03 21:40:36 -04:00
Andrew Kelley 2676da61a6 travis: better s3 artifacts 2018-04-03 21:39:03 -04:00
Andrew Kelley 9dfd1a7c8a remove more signal handling stuff from std.os.ChildProcess
439621e44a failed to remove
everything. this finishes the job
2018-04-03 18:26:49 -04:00
Andrew Kelley d1f8e722b5 travis: don't upload other files as artifacts 2018-04-03 14:23:56 -04:00
Jimmi Holst Christensen ec611bf8b4 std.zig.parser now parses regular enums, unions and struct
* Still missing packed, and extern
2018-04-03 20:00:02 +02:00
Andrew Kelley 21b47b34d8 travis: don't upload build/ folder as artifacts 2018-04-03 12:59:28 -04:00
Andrew Kelley 65e4bb149e travis artifacts: don't upload extra stuff 2018-04-03 12:04:06 -04:00
Andrew Kelley aadc14fd78 upload static linux artifacts on successful travis build 2018-04-03 11:22:18 -04:00
Jimmi Holst Christensen d602f12df8 std.zig.ast Added ContainerDecl 2018-04-03 15:59:14 +02:00
Jimmi Holst Christensen 4fae452684 std.zig.parser Refactored top level decl parsing
* Now, the arraylist from the root node is passed through the states.
* This allows us to reuse the code for enums, unions and structs
2018-04-03 15:33:22 +02:00
Jimmi Holst Christensen 40f35e997a std.zig.parser moved container initializer tests down 2018-04-03 15:17:26 +02:00
Jimmi Holst Christensen 9d69e94bba std.zig.parser now parses grouped expressions
* I also moved some tests down, as they fail in ways I can't fix yet
2018-04-03 15:16:32 +02:00
Jimmi Holst Christensen 5c82ed2ea9 std.zig.parser now parses initializers... Or, it would, if it worked 2018-04-03 14:53:27 +02:00
Jimmi Holst Christensen 0b9247fb63 std.zig.parser Refactor:
* Slice/Array access is now not parsed in the expr contruction loop
* State.ExprListItemOrEnd now takes a token id for the end token
2018-04-03 14:20:34 +02:00
Jimmi Holst Christensen b424cd75ab std.zig.parser refactored call, slice and array access to be suffix op 2018-04-03 12:33:06 +02:00
Jimmi Holst Christensen 22e38ffb54 std.zig.tokenizer fixed tokens having wrong column and line 2018-04-03 11:18:18 +02:00
Jimmi Holst Christensen a2330d0ea3 std.zig.parser now parses slice and array types 2018-04-03 10:54:19 +02:00
Andrew Kelley 4eb68987d8 std.io.readLine function
this provides a better input for guess number example.

see #882
2018-04-02 11:34:31 -04:00
Jimmi Holst Christensen b9093185f7 std.zig.parser now parses slicing and array access 2018-04-01 22:02:51 +02:00
Marc Tiehuis 2e5115b068 Add run compiler command
'zig run file.zig' builds a file and stores the artifacts in the global
cache. On successful compilation the binary is executed.

'zig run file.zig -- a b c' does the same, but passes the arguments a,
b and c as runtime arguments to the program. Everything after an '--' are
treated as runtime arguments.

On a posix system, a shebang can be used to run a zig file directly. An
example shebang would be '#!/usr/bin/zig run'. You may not be able pass
extra compile arguments currently as part of the shebang. Linux for example
treats all arguments after the first as a single argument which will result
in an 'invalid command'.

Currently there is no customisability for the cache path as a compile
argument. For a posix system you can use `TMPDIR=. zig run file.zig` to
override, in this case using the current directory for the run cache.

The input file is always recompiled, even if it has changed. This is
intended to be cached but further discussion/thought needs to go into
this.

Closes #466.
2018-04-01 17:03:06 +12:00
Jimmi Holst Christensen df09c01f7f std.zig.parser now parses error, this and unreachable 2018-03-31 22:48:12 +02:00