| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
They uncovered one bug: in edit/003-shortcuts.mu
<scroll-down> was returning 0 for an address in one place where I
thought it was returning 0 for a boolean.
Now we've eliminated this bad interaction between tangling and punning
literals.
|
|
|
|
|
| |
'deaddress' is a terrible name. Hopefully I'll come up with something
better.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|