| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
To sandbox apps robustly, we're going to need to always work with
canonical absolute paths.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I fucking hate feature macros. Egregious discharge of our
division-of-labor-obsessed society. People should be able to introduce
names. People should be able to give up names to lower levels of
abstraction when they encounter conflicts.
Feature macros seem to exist[1] to support more than two levels of
abstraction. You try to build, one of your libraries fails to build
because of a conflict between it and one level down. You don't want to
modify this library. Just fucking https://catern.com/change_code.html
already. But no, I have to litter my code with feature macros even
though I just want the abstraction the original library provides.
[1] https://man7.org/linux/man-pages/man7/feature_test_macros.7.html
https://lwn.net/Articles/590381
|
|
|
|
|
|
| |
https://github.com/keplerproject/luafilesystem
The new commander.tlv app demonstrates it working.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
NetBSD still uses curses by default. One _could_ install ncurses, but I
don't have access to a NetBSD box with permissions to install ncurses,
so I'm experimenting to see how far we can get with just curses. So far
most of the apps seem to work, with the exception of one bug that I'll
commit next.
|
| |
|
|
|
|
| |
We still only have OpenBSD working.
|
| |
|
|
|
|
| |
It should now be easier to diff against the Lua 5.1 sources upstream.
|
|
|
|
|
| |
Accidentally added at some point. It's a useful debugging aide, but I
don't want to require the additional dependencies on a first run.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I really wanted to avoid getting into defining or parsing new file
formats. However, using the entire power of Lua is not ideal, as
described earlier in Konrad Hinsen's bug. In addition to everything
else, it's a vector for arbitrary code execution when someone loads an
untrusted image.
I could use JSON, but it requires ugly string escaping. Seems cleaner to
just use YAML. But YAML is complex and needs its own dependencies. If
I'm going to do my own, might as well make the multi-line string format
really clear.
I can't yet write the new format.
|
|
|
|
|
| |
Also start using 256 colors, under the assumption most people will have
them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Making changes to lcurses directory was causing it to be compiled, but
not causing teliva to be relinked.
Now I'm:
- unconditionally running `make` on subdirectories
- conditionally linking their outputs
Seems reasonable when I put it like that. Hopefully this is working now.
I used to know `make` down cold a decade ago, but it's evaporated from
my brain.
|
|
|
|
|
| |
My Makefiles are an utter mess. Unclear how to reconcile staying close
to upstream with being clean in isolation.
|
| |
|
| |
|
|
|
|
| |
Still emitting a bunch of warnings on OpenBSD, though.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
For starters, put Linux-specific stuff in a Linux-specific target.
By not resetting MYCFLAGS and MYLDFLAGS, I'm unnecessarily passing in
-DLUA_USE_LINUX. But that'll make it easier to get things running on Mac
and BSD.
|
| |
|
|
|
|
|
|
|
|
|
| |
At least in short runs.
Encouraging that the problem was in a recent commit (5a63a5ca40 from
yesterday when I introduced version control).
Disabling Address Sanitizer again.
|
| |
|
|
|
|
|
|
|
|
|
| |
I'm starting to see some heap buffer overruns, which means we have too
much C code.
I noticed this because editing life.tlv no longer works after commit
5a63a5ca4. However, the offending heap overrun has been around long
before that. It's just been a silent bug until now.
|
|
|
|
|
|
|
|
|
|
| |
Since everything is in my control there's no need to parameterize
include paths.
It's a struggle to get make to run when it should. Lying that something
is phony stops working when it's a dependency. Commands get
unnecessarily run. Just fucking run recursive makes directly in the
target that depends on them.
|
|
|
|
|
|
|
|
|
|
| |
I'd like to enable -Wextra as well, but that creates some false
positives.
I've at least made my changes clean w.r.t. -Wextra.
Now we have 4 remaining warnings with gcc 9.3 that seem genuine. Need to
fix those.
|
|
|
|
|
| |
Adding -Wpedantic creates a new warning. Leaving it alone for now:
https://stackoverflow.com/questions/31526876/casting-when-using-dlsym
|
|
|
|
|
|
|
|
| |
Still extremely ugly:
- I've inlined all the namespaces under ssl, so you need to know that
context and config are related to ssl.
- luasec comes with its own copy of luasocket. I haven't deduped that
yet.
|
|
|
|
|
| |
In the process we're starting to load almost all of luasocket by
default. And everything is working as expected, no unpleasant surprises.
|
|
|
|
| |
I still haven't tried actually running it.
|
| |
|
|
|
|
| |
Just builds for now, isn't available yet to Lua code.
|
|
|
|
|
|
|
|
|
| |
Until now we had just the bare minimum bindings needed for the demos
built so far. Now we have all of lcurses building in place with minimal
changes.
The changes in this commit can run hanoi.lua when inlined into Lua 5.1,
but don't work with Teliva.
|
| |
|
| |
|
|
|
|
|
| |
This required me to figure out some unicode-related nuances, but no new
primitives.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First piece of working new vocabulary:
print(curses:cols())
Just pulling in code from lcurses for the most part. But I'm trying to
understand its internals as I gradually add them in, after my more blunt
first approach of packaging up lcurses/ext failed.
Overall plan for Teliva's API:
- start out with a 'curses' library that does what people who are used
to ncurses/lcurses expect.
- over time create a more opinionated library called 'screen' or
'window' or something.
|
|
|
|
| |
We're going to be using full-on ncurses.
|
| |
|
|
https://www.lua.org
|