aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-08-18stage2/wasm: only free types after func overwriteIsaac Freund
Functions which are free'd are not immediately removed from the binary as this would cause a shifting of function indexes. Instead, they hang around until they can be overwritten by a new function. This means that the types associated with these dead functions must also remain until the function is overwritten to avoid a type mismatch.
2020-08-18stage2/wasm: write exports on flush, cleanupIsaac Freund
Exports now have a dirty flag and are rewritten on flush if this flag has been set. A couple other minor changes have been made based on Andrew's review.
2020-08-18stage2/wasm: implement trivial codegenIsaac Freund
We now generate code for returning constants of any of the basic types.
2020-08-18stage2/wasm: implement basic container generationIsaac Freund
Thus far, we only generate the type, function, export, and code sections. These are sufficient to generate and export simple functions. Codegen is currently hardcoded to `i32.const 42`, the main goal of this commit is to create infrastructure for the container format which will work with incremental compilation.
2020-08-17stage2 test harness: at least build all compare output testsAndrew Kelley
This should have been removed with an earlier commit that improved the test harness.
2020-08-18Merge pull request #6060 from Vexu/stage2Veikka Tuominen
Stage2: more optionals stuff
2020-08-17Merge pull request #6046 from heidezomp/std-log-scoped-part2Andrew Kelley
std.log: (breaking) remove scope parameter from logging functions
2020-08-17Merge branch 'jedisct1-xchacha20'Andrew Kelley
closes #6074
2020-08-17Export crypto.aeadFrank Denis
2020-08-17No need for an explicit derefFrank Denis
2020-08-17std/crypto: XChaCha20, detached modes and standard AEAD APIFrank Denis
* Factor redundant code in std/crypto/chacha20 * Add support for XChaCha20, and the XChaCha20-Poly1305 construction. XChaCha20 is a 24-byte version of ChaCha20, is widely implemented and is on the standards track: https://tools.ietf.org/html/draft-irtf-cfrg-xchacha-03 * Add support for encryption/decryption with the authentication tag detached from the ciphertext * Add wrappers with an API similar to the Gimli AEAD type, so that we can use and benchmark AEADs with a common API.
2020-08-17address review feedbackVexu
2020-08-17Move Mach-O to link/MachO.zig submoduleJakub Konka
Remove `ptrWidth` since as of Catalina, all apps are 64bits only. Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>
2020-08-17Add skeleton for MachO support in stage2Jakub Konka
This commit adds an empty skeleton for MachO format support in stage2.
2020-08-17stage2: astgen for if and while with error unionsVexu
2020-08-17stage2: astgen for if and while with optionalsVexu
2020-08-17stage2: fix optimization causing wrong optional child typesVexu
2020-08-17stage2: astgen for ptr types and address ofVexu
2020-08-17Merge pull request #6048 from pixelherodev/cleanupAndrew Kelley
Some minor cleanup and error handling
2020-08-17stage2: fix signed <-> unsigned Value castsIsaac Freund
2020-08-16Merge branch 'jedisct1-25519'Andrew Kelley
closes #6050
2020-08-16deinline edwards25519.{add,dbl}Frank Denis
2020-08-16Inline Fe.{sub,mul,sq} for a performance boost in release-safe modeFrank Denis
2020-08-16Work around sqrtRatioM1() issue in release-safe modeFrank Denis
2020-08-16Benchmark signaturesFrank Denis
2020-08-16Constify the ladderFrank Denis
2020-08-16Add comment, use @truncateFrank Denis
2020-08-16Address more review issuesFrank Denis
2020-08-16Move loop decrements into continuationsFrank Denis
Suggested by @daurnimator
2020-08-16Address @daurnimator feedbackFrank Denis
2020-08-16Rename the field and scalar modulesFrank Denis
Suggested by @kubkon
2020-08-16Update lib/std/crypto/25519/ristretto255.zigFrank Denis
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2020-08-16Update lib/std/crypto/25519/field25519.zigFrank Denis
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2020-08-16Initialize structures directlyFrank Denis
Suggested by @kubkon, thanks!
2020-08-16Remove mem.timingSafeEqual() for nowFrank Denis
This requires assembly implementations, and is not needed for signature verification. Thanks @daurnimator
2020-08-16Improve curve25519-based cryptoFrank Denis
This is a rewrite of the x25519 code, that generalizes support for common primitives based on the same finite field. - Low-level operations can now be performed over the curve25519 and edwards25519 curves, as well as the ristretto255 group. - Ed25519 signatures have been implemented. - X25519 is now about twice as fast. - mem.timingSafeEqual() has been added for constant-time comparison. Domains have been clearly separated, making it easier to later add platform-specific implementations.
2020-08-17std/crypto: gimli.Aead.decrypt()'s ad should be constFrank Denis
2020-08-16Astgen: further cleanupNoam Preil
2020-08-16Module: panic when encountering unimplemented nodeNoam Preil
2020-08-16CBE: minor doc changeNoam Preil
2020-08-16astgen: minor cleanupNoam Preil
2020-08-15stage2: implement zig versionAndrew Kelley
2020-08-15stage2: codegen for labeled blocksAndrew Kelley
2020-08-15stage1: remove buggy "unable to inline function" compile errorAndrew Kelley
We still want this compile error but I'm giving up on implementing it correctly in stage1. It's been buggy and has false positives sometimes. I left the test cases there, but commented out, so that when we go through the stage1 compile error cases and get coverage for them in stage2 we can reactivate the test cases. closes #2154
2020-08-15stage2: astgen for labeled blocks and labeled breaksAndrew Kelley
2020-08-14stage2: populate some of the astgen switch possibilitiesAndrew Kelley
Idea here is simply to entice people to contribute astgen code :)
2020-08-14stage2 astgen for LabeledBlockAndrew Kelley
2020-08-14std.zig.ast: extract out Node.LabeledBlock from Node.BlockAndrew Kelley
This is part of an ongoing effort to reduce size of in-memory AST. This enum flattening pattern is widespread throughout the self-hosted compiler. This is a API breaking change for consumers of the self-hosted parser.
2020-08-14Merge pull request #6051 from mikdusan/qemuMichael Dusan
ci linux: bump qemu-5.1.0
2020-08-14stage2: proper semantic analysis of improper returning of implicit voidAndrew Kelley