path: root/6
AgeCommit message (Collapse)Author
2019-04-28Fix float conversions in casts.Ori Bernstein
We were dropping the intness, and didn't registerize the args to comisd.
2019-04-12Rename traits correctly.Ori Bernstein
2019-02-27Remove unused lines from the regmap.Ori Bernstein
These were placeholders for %rpb, %rsp -- but we never use %rsp and %rbp in the colormap, so they were just dead lines that caused confusion.
2019-02-26Accept that `file` isn't a node.Ori Bernstein
Shrink node sizes, simplify code a bit.
2019-02-26Add support for `__fini__` functions.Ori Bernstein
2019-01-28Missed type alignment for slices.Ori Bernstein
Holy crap, how did this work until now.
2019-01-12Fix indexed array initializers.Ori Bernstein
2019-01-07Don't leave asm in /tmp on any system.Ori Bernstein
2018-12-16fix missized copy.Ori Bernstein
2018-11-06Clean up.Ori Bernstein
2018-11-06Create the output directory when assembling.Ori Bernstein
Easier to bootstrap.
2018-10-15Disallow negative array sizes. And do some cleanup.Ori Bernstein
2018-07-22Add zeroed env pointer when a const fn is passed as an argument.iriri
This makes it safe to fndup a global function which makes it safe to spawn a global function.
2018-07-20Fix codegen bug in env capture.Ori Bernstein
We could capture too little in the env, because we didn't account for padding in the captures.
2018-07-19Support direct tuple access operators "tuple.N"Quentin Carbonneaux
This patch adds tuple access expressions. If t is a tuple, its N-th component can be retrieved with the syntax t.N. Of course, the components are zero indexed. I believe the code also works if 't' is a pointer to a tuple (but I have not checked this).
2018-07-03Fix escaping of closing '}' in fmt.Ori Bernstein
2018-06-09Consistently and corretly add Oundef.Ori Bernstein
2018-05-26Initialize the closure before a recursive capture.Ori Bernstein
2018-05-26Fix indentation.Ori Bernstein
2018-05-11Check return value of getcwd.Ori Bernstein
Some systems warn.
2018-05-09Merge remote-tracking branch 'npnth/libmath'Ori Bernstein
2018-05-08Don't specify .comm alignment.Ori Bernstein
It seems to confuse lld.
2018-05-06Start of AES GCM work.Ori Bernstein
2018-04-27Extract slices recursively.Ori Bernstein
This fixes deeply nestedl slices of arrays of slices of arrays.
2018-04-24We don't do PIE yet, let's deal with it later.Ori Bernstein
2018-04-22Add a special exit stack to our thread library.Ori Bernstein
Because OpenBSD wants a valid stack pointer in any code that enters the kernel, unmapping our stack as part of exiting the process is rather unreliable. This change allocates a stack page that we can switch to when a thread is deallocating itself, which keeps the kernel happy.
2018-04-18Merge remote-tracking branch 'ori/master' into HEADS. Gilles
2018-04-08Add support for `-T` option to compile in test mode.Ori Bernstein
Tests can now access hidden declarations.
2018-04-05Ensure that we initialize the environment fully.Ori Bernstein
Initially, the thought was that since the function doesn't access any of the environment data, initializing it was a waste of time. This is true -- if the environment is not heapified. But we do often want to heapify the environment, which means that if we have junk in the environment pointer we will think, incorrectly, that there is an environment to duplicate. This leads to crashes. Crashes are a bad thing. This change zeroes out the environment pointer, so that we don't have crashes. This makes mpu happy(er).
2018-03-20Fix corrupted merge of 'autoexpr'S. Gilles
2018-03-13Merge branch 'autoexpr' into libmathS. Gilles
2018-03-06Add ternary operator.Ori Bernstein
2018-01-29Allow generating function vars.Ori Bernstein
2018-01-27Put data into sections too.Ori Bernstein
2018-01-27Put data into sections too.autoexprOri Bernstein
2018-01-26New auto operator.Quentin Carbonneaux
Summary: -------- During the Myrcon in September Ori suggested an 'auto' operator that would evaluate what it applies to, store the result in a temporary t, and call __dispose__(t) when the current block exits. This patch implements this idea under the form of a unary operator. This, for instance, allows to have: impl disposable regex# = __dispose__ = {r;} ;; regex.exec(auto std.try(regex.compile("")), "foobar") Like before, it is guaranteed that __dispose__ is called in reverse order of auto appearance. Backward compatibility: ----------------------- Nope. Auto variables are now gone. This should not be a problem, simply rewrite: var auto x = foo() into: var x = auto foo() Implementation: --------------- It largely reuses the code I had written for 'auto' variables but needs a little finer grain tracking because we don't always want to call __dispose__ for *all* auto expression results when leaving a block (some might not be evaluated yet). For example: auto 1 if b -> void ;; auto 2 Only __dispose__(1) must be called when '-> void' is executed. If the block falls through, __dispose__(2) and __dispose__(1) will be called in sequence. TODO: ----- - Err when goto jumps in/out of a block that has auto expressions. - Support auto in patterns. match ... | `std.Some (auto x): ... is essentially rewritten to: match ... | `std.Some (auto x): auto x ... - Test edge cases (e.g., auto in loop condition) Actually, test. Cheers,
2018-01-22Bring back old addresses, with a better explanation.Ori Bernstein
2018-01-21Cheap enums.Quentin Carbonneaux
2018-01-17Infer after generating init functions.Ori Bernstein
Pull out the usefile loading, so we can call it separately from inference. Then shuffle the infer() call to after we generate init().
2018-01-11Error out if getcwd fails.Ori Bernstein
2017-12-28Minor cleanup.Ori Bernstein
2017-12-05All extern consts should be global.Ori Bernstein
2017-12-04Handle locally declared extern consts correctly.Ori Bernstein
Ugh. Edge cases.
2017-12-01Allow function in blob initializers.Ori Bernstein
2017-11-30Generate per-function ELF sections to enable --gc-sectionsMura Li
Use diffirent directive syntax for ELF and Mach-O respectively
2017-11-05Accept the globalness of file.Ori Bernstein
2017-11-05Formatting tweaks.Ori Bernstein
2017-11-05Update comment to match reality.Ori Bernstein
2017-10-29Remove obsolete debugging.Ori Bernstein
2017-10-07Correctly pad small alignments.Ori Bernstein
Negative padding shouldn't happen.