aboutsummaryrefslogtreecommitdiff
path: root/src/ast_render.cpp
AgeCommit message (Collapse)Author
2017-09-21parse-c: field access expressionsAndrew Kelley
2017-09-20logical and, logical orJosh Wolfe
2017-09-05fix parseh bugsAndrew Kelley
2017-09-02rewrite parseh to use AST instead of direct typesAndrew Kelley
some tests still failing
2017-08-30align syntax: align(4) instead of align 4Andrew Kelley
closes #37
2017-08-29more alignment improvementsAndrew Kelley
* 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-29introduce align keywordAndrew Kelley
* 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 e726925e802eddab53cbfd9aacbc5eefe95c356f. See #37
2017-08-20compile-time f32, f64 operations are now correctly lossyAndrew Kelley
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-09more intuitive left shift and right shift operatorsAndrew Kelley
Before: * << is left shift, not allowed to shift 1 bits out * <<% is left shift, allowed to shift 1 bits out * >> is right shift, allowed to shift 1 bits out After: * << is left shift, allowed to shift 1 bits out * >> is right shift, allowed to shift 1 bits out * @shlExact is left shift, not allowed to shift 1 bits out * @shrExact is right shift, not allowed to shift 1 bits out Closes #413
2017-07-08better bigint/bigfloat implementationAndrew Kelley
2017-06-14progress toward windows hello world workingAndrew Kelley
2017-05-23building with mingw for windowsAndrew Kelley
2017-05-09inline function call with builtin function instead...Andrew Kelley
...of special syntax. partially reverts 41144a8566a6fbd779403f6b69424bb640c94a7f closes #306
2017-05-04implement else on loops and break can give an expressionAndrew Kelley
closes #357
2017-05-04implement while for nullables and error unionsAndrew Kelley
See #357
2017-05-03remove test and try expressions in favor of if expressionsAndrew Kelley
See #357
2017-04-23make undefined as a constant value lazyAndrew Kelley
closes #268
2017-04-22slicing now returns correct const-nessAndrew Kelley
also remove the ability to override constness when slicing closes #334
2017-04-21update syntax for try and nullable unwrappingAndrew Kelley
closes #285
2017-04-21remove `?return` and `?defer`Andrew Kelley
closes #309
2017-04-14comptime ({}) should not get an implicit semicolonJosh Wolfe
closes #292.
2017-04-13Merge remote-tracking branch 'origin/parser'Andrew Kelley
2017-04-13typedefpocalypseAndrew Kelley
closes #314
2017-04-12block statement lists never get fake expressionsJosh Wolfe
instead blocks have a field that encodes whether the last statement ended with a semicolon.
2017-04-13ability to inline at function callsiteAndrew Kelley
closes #306
2017-04-10fix some -Wconversion errorsAndrew Kelley
2017-03-26new unreachable syntaxAndrew Kelley
* `noreturn` is the primitive type. * `unreachable` is a control flow keyword. * `@unreachable()` builtin function is deleted. closes #214
2017-03-26add comptime top level declarationAndrew Kelley
closes #255
2017-03-16introduce new test syntaxAndrew Kelley
* remove setFnTest builtin * add test "name" { ... } syntax * remove --check-unused argument. functions are always lazy now.
2017-02-27fix inability to write to global in some casesAndrew Kelley
before, when we initialized a variable by copying the initialization value, it made the internal const value references point to a duplicate value, resulting in a phony duplicate global value being updated instead of the real on. now the behavior is as expected. thanks to hoppetosse for pointing out this bug on IRC.
2017-02-05fix assigning to const ptr through struct or indexAndrew Kelley
2017-02-04remove volatileStore builtin; add volatile pointersAndrew Kelley
closes #238
2017-02-04ability to set global variable alignment and ...Andrew Kelley
..section in the initialization expression
2017-02-03exported global variables get emitted as external in LLVMAndrew Kelley
2017-02-03implement packed structsAndrew Kelley
closes #183
2017-02-02add try expressionAndrew Kelley
See #83
2017-02-02remove ability to mark if and switch as inlineAndrew Kelley
if and switch are implicitly inline if the condition/target expression is known at compile time. instead of: ``` inline if (condition) ... inline switch (target) ... ``` one can use: ``` if (comptime condition) ... switch (comptime target) ... ```
2017-01-23various fixesAndrew Kelley
* comptime expression is a block expression as it should be * fix var args when number of args passed is 0 * implement const value equality for structs * fix indent when rendering container decl AST * IR: prevent duplicate generation of code when it is partially compile-time evaluated * implement compile time struct field pointer evaluation * fix compile time evaluation of slicing
2017-01-23basic support for functions with variable length argumentsAndrew Kelley
See #77
2017-01-22introduce comptime expressionAndrew Kelley
closes #221
2017-01-16get rid of zeroes literalAndrew Kelley
closes #222
2017-01-12IR: implement macro for function aliasing function pointerAndrew Kelley
2017-01-11pass some parseh testsAndrew Kelley
2017-01-11pass more testsAndrew Kelley
2017-01-10partially fix parseh commandAndrew Kelley
2016-12-18remove duplicate definition of container_stringAndrew Kelley
2016-12-18IR: all structs anonymousAndrew Kelley
2016-12-17IR: add more instructionsAndrew Kelley
* MaybeWrap * TestErr * UnwrapErrCode * UnwrapErrPayload * ErrUnionTypeChild * ErrWrapCode * ErrWrapPayload
2016-12-13IR: implement maybe return expressionAndrew Kelley
2016-12-12IR: implement memcpy, memset, and slice expressionAndrew Kelley