| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've been working on this slowly over several weeks, but it's too hard
to support 0 as the null value for addresses. I constantly have to add
exceptions for scalar value corresponding to an address type (now
occupying 2 locations). The final straw is the test for 'reload':
x:num <- reload text
'reload' returns an address. But there's no way to know that for
arbitrary instructions.
New plan: let's put this off for a bit and first create support for
literals. Then use 'null' instead of '0' for addresses everywhere. Then
it'll be easy to just change what 'null' means.
|
|
|
|
|
| |
We have some ugly duplication in computing size_of on containers between
layers 30/33 and 55.
|
| |
|
| |
|
|
|
|
| |
We've had this ability for Mu scenarios forever.
|
| |
|
|
|
|
| |
Also allow running a single test, to speed things up still further.
|
|
|
|
| |
Avoid modifying memory *before* the null check.
|
|
|
|
| |
Why do we have this silent null check? All tests pass without it.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Thanks mahmudov on freenode IRC for the feedback! This was an
embarrassing oversight right at the top of my Readme.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
We're going to lean back into the experiment of commit 4179 back in Jan.
If we delete memory it's up to us to ensure no pointers into it survive.
Since deep-copy depends on our refcounting infrastructure, it's gone as
well. So we're going to have to start watching out for pointers shared
over channels.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Comparing types by value rather than name seems a bit cleaner.
It isn't noticeably faster, though.
4178 - refcount-based memory management
3:27 3:18 3:15 3:15 3:15
4179 - no more abandon
2:13 2:13 2:12 2:11 2:09 2:10
4239
1:42 1:41 1:51 1:43 1:43 1:41
4241 (this commit)
1:53 1:45 1:43 1:43 1:42 1:42
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
https://www.reddit.com/r/oilshell/comments/8bg9t1/the_problem_of_make_inside_shell_scripts/dxroayn
|
|
|
|
|
|
|
| |
The trouble with rewriting 'unused' to '__attribute__(unused)' is that
if we happen to deliberately introduce '__attribute__(unused)' somehow,
say in the standard headers, then it gets expanded twice to '__attribute__(__attribute__(unused))'.
So we switch to a synonym.
|
| |
|
|
|
|
|
|
| |
Neither in compile time, nor in the performance of the generated code.
(Triggered by https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc)
|
| |
|
| |
|
| |
|
|
|
|
| |
Another bugfix, another improved error message.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
I think I like this better. It doesn't violate the type system. Still two
sources of klunkiness:
a) We need to add dead code because we don't consider exceptions when we
add implicit 'return' statements to functions. Should be easy to fix.
b) Still no way to create a generic 'try' function. This will be hard to
fix.
|
|
|
|
|
|
| |
Pretty klunky; we're violating the type system by prepending an extra result,
so functions we want to catch exceptions around have to be header-less
and check input types at run-time.
|
| |
|
|
|
|
| |
Resolve ambiguous calls when copying (overloaded) recipe literals to variables.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This gives us the equivalent of make targets.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Just ran into first issue from using the portable /bin/sh rather than a
modern shell:
https://stackoverflow.com/questions/15744421/read-command-doesnt-wait-for-input
Turn on errexit everywhere.
|
|
|
|
| |
Thanks Ella Couch.
|