| Commit message (Expand) | Author | Age | Files | Lines |
| * | Makefile: Add switch for picking number of parallel fuzz workersHEADmain | EuAndreh | 2025-05-27 | 1 | -1/+2 |
| * | Revamp setup of i18n, now with gotext(0) | EuAndreh | 2025-05-15 | 1 | -17/+23 |
| * | Finish branches.html and setup i18n of manpages and HTML strings | EuAndreh | 2025-05-11 | 1 | -8/+35 |
| * | Make: Use $< over $? | EuAndreh | 2025-05-04 | 1 | -1/+1 |
| * | Switch from POSIX sh to Go | EuAndreh | 2025-05-02 | 1 | -24/+87 |
| * | WIP: Commit sh code as-is | EuAndreh | 2025-05-02 | 1 | -0/+18 |
| * | Makefile: Clean-up old stuff | EuAndreh | 2025-05-02 | 1 | -94/+53 |
| * | m | EuAndreh | 2025-01-06 | 1 | -8/+8 |
| * | m | EuAndreh | 2025-01-06 | 1 | -2/+19 |
| * | Cleanup repo, reinit in sh | EuAndreh | 2023-04-14 | 1 | -41/+3 |
| * | src/gistatic.in: Initial sh version•••I got a bit frustrated that libgit2 didn't offer an API
or "git archive" commands. I started implementing generating tarballs
from scratch in src/tar.c and I'm quite liking it: the specification is
very small, and the code can be very simple, since all I'm doing is
writing fresh tarballs, and not reading or updating them.
However I felt a bit locked-in to libgit2 itself, and what a detour from
my original goal that is, and the question "what should libgit2 provide"
came up to my mind. This made me realize that libgit2 is playing
catch-up with Git itself, for as long as Git doesn't explicit has an
explicit API, a standard, a public version of its internal libgit.a, or
something like that. In fact, I'm locked in to Git, even.
So even though a C version would probably be much faster, it wouldn't
really have less dependencies, and that's what I'm actually optimising
for: having the software be as portable as possible. On that front, C
is unbeatable with sh as a close second. But the extreme portability
of C aren't being fully exploited here: libgit2 does depend on non-POSIX
things like CMake (and quick grep even shows
references to -D_GNU_SOURCE!!), and Git's Makefile itself isn't POSIX
at all. The point is: by depending on either Git or libgit2, I'm
already loosing many selling points of writing the software in C, and
sh becomes much more attractive. Had existed a common DVCS interface
that could make me decouple gistatic from Git somehow I would insist a
bit more in C, but now I'm switching to sh.
The fact that I was able to get further with sh in one sitting than I
did with C shows that a) I'm a bit less fluent in C than I would like
(at least for now ^^) and b) that it is actually much simpler to do.
I am quite satisfied with the quality of C code that I got so far. The
error handling and propagation is pretty robust, and the implementation
is very disciplined. I did most of the development with Valgrind, and
other sanitizers would help even further, with some fuzzers on top.
| EuAndreh | 2021-09-08 | 1 | -2/+3 |
| * | Makefile: Indent target dependencies | EuAndreh | 2021-09-07 | 1 | -3/+3 |
| * | Makefile: Generate src/config.h from src/config.h.in | EuAndreh | 2021-09-05 | 1 | -14/+7 |
| * | Makefile: Add better .c.o inference rule | EuAndreh | 2021-09-02 | 1 | -0/+3 |
| * | Makefile: Make objects no depend on headers but on other objects | EuAndreh | 2021-08-31 | 1 | -6/+6 |
| * | Makefile: Change order of built artifact to reflect actual build order | EuAndreh | 2021-08-31 | 1 | -1/+3 |
| * | Makefile: Use libgistatic.a to build gistatic instead of the underlying objects•••This way I can make sure at least that all the objects that are required
to exist on the library file are being included.
However, this has no influence on what should and shouldn't be exposed
in src/gistatic.h, and which functions ought to be public. This
verification will remain unimplemented, at least for now.
| EuAndreh | 2021-08-28 | 1 | -3/+3 |
| * | Makefile: Run integration (expensive) tests after unit and linter tests | EuAndreh | 2021-08-28 | 1 | -1/+1 |
| * | Makefile: Use macros over globs on "clean" target | EuAndreh | 2021-08-28 | 1 | -1/+1 |
| * | Makefile: Remove bin, lib and include artifacts in "uninstall" target | EuAndreh | 2021-08-28 | 1 | -0/+4 |
| * | Makefile: Be more explicit about empty lines on the generated src/config.h | EuAndreh | 2021-08-28 | 1 | -1/+2 |
| * | Makefile: Move libgistatic.a to the beginning, following the natural progress... | EuAndreh | 2021-08-28 | 1 | -3/+3 |
| * | Makefile: Remove duplicate usage of $(CFLAGS), $(LDFLAGS) and $(LDLIBS) | EuAndreh | 2021-08-28 | 1 | -3/+3 |
| * | aux/workflow/dist.sh: Be stricter with release pre-requisites | EuAndreh | 2021-08-28 | 1 | -2/+3 |
| * | Makefile: Add single quote around paths and names | EuAndreh | 2021-08-24 | 1 | -16/+16 |
| * | public/makefile.svg: Start generating it with makefile2graph and graphviz | EuAndreh | 2021-08-23 | 1 | -1/+5 |
| * | src/: Move logerr* functions to src/logerr.{c,h}; forward tarballs_fd to src/... | EuAndreh | 2021-08-23 | 1 | -8/+13 |
| * | Rename src/gistatic.* src/lib.* | EuAndreh | 2021-08-22 | 1 | -7/+7 |
| * | Have a single top-level main for running unit-tests•••Instead of each .c file becoming a self-standing .t executable file,
and being run for executing the unit tests local to the file, now each
.c becomes a .to object (akin to a .o object, but one where the -DTEST
flag is given to the compiler). After that, all the .to objects are
linked together in a gistatic-tests executable, in a equivalent way
that all .o files get linked together in a gistatic executable.
This change was necessary in order to allow dependencies between
objects. The next task will be making a tar of a repository tree
checkout, and src/gistatic.{o,to} will start depending on
src/tar.{o,to}. If each file has its own main function when -DTEST is
given, then I wont be able to link them together.
I took the opportunity that I had to change the Makefile, and I
improved the dependency between targets and dependencies greatly. From
what I can tell now, it is correct.
| EuAndreh | 2021-08-22 | 1 | -27/+37 |
| * | Makefile: Run assert-catgets.sh for all C files | EuAndreh | 2021-08-21 | 1 | -1/+1 |
| * | src/tests-lib.c: Move testing helper function and share it with other files | EuAndreh | 2021-08-21 | 1 | -3/+3 |
| * | Makefile: Generate build samples before running the tests•••This way even with failing tests one can see the interactive evolution
of the generated HTML files.
| EuAndreh | 2021-08-20 | 1 | -1/+1 |
| * | Makefile: Copy libgistatic.a and gistatic.h on "install" target | EuAndreh | 2021-08-20 | 1 | -3/+8 |
| * | Makefile: Adapt to multiple C sources, generate src/config.h and libgistatic.a | EuAndreh | 2021-08-19 | 1 | -16/+40 |
| * | aux/workflow/installcheck.sh: Remove in favor of repocheck.sh•••Adjust Makefile accordingly, alre removing "installcheck" and
"uninstallcheck" targets.
| EuAndreh | 2021-08-19 | 1 | -8/+1 |
| * | Makefile: rm src/tar.t in "clean" target | EuAndreh | 2021-08-17 | 1 | -1/+1 |
| * | Makefile: Use CFLAGS_FINAL and LDLIBS_FINAL•••This allows the caller to not only provide $(CFLAGS), but also override
$(FINAL_CFLAGS).
This accomplishes a similar behaviour to "CFLAGS += ...", but now
allowing the caller to discard the appended flags too.
| EuAndreh | 2021-08-17 | 1 | -6/+4 |
| * | Makefile: Fix $(MANPREFIX) path | EuAndreh | 2021-08-17 | 1 | -1/+1 |
| * | Add stub src/tar.c | EuAndreh | 2021-08-07 | 1 | -1/+2 |
| * | mv aux/assert-catgets.sh tests/assert-catgets.sh | EuAndreh | 2021-08-06 | 1 | -1/+1 |
| * | mv aux/workflow/manpages.sh doc/manpages.sh | EuAndreh | 2021-08-06 | 1 | -3/+3 |
| * | tests/: Add integration tests, also test with Valgrind | EuAndreh | 2021-08-05 | 1 | -12/+3 |
| * | Move tests/resources{ => /repositories}/repo* | EuAndreh | 2021-08-05 | 1 | -5/+6 |
| * | Makefile: Add "c-dev-check" target with Valgrind | EuAndreh | 2021-08-05 | 1 | -1/+12 |
| * | Use .git symlink to simplify testing of embedded repositories | EuAndreh | 2021-08-05 | 1 | -1/+6 |
| * | aux/assert-catgets.sh: Add, include in "check" target on Makefile; update gis... | EuAndreh | 2021-08-02 | 1 | -0/+1 |
| * | Makefile: Add -lgit2 flag | EuAndreh | 2021-07-31 | 1 | -4/+6 |
| * | Re-setup repository using C over Rust | EuAndreh | 2021-07-27 | 1 | -35/+78 |
| * | Makefile: Stop using gzip | EuAndreh | 2021-06-12 | 1 | -1/+1 |
| * | Makefile: Use $(NAME) | EuAndreh | 2021-06-04 | 1 | -7/+7 |