Commit Graph

111 Commits

Author SHA1 Message Date
6caf6f9131 Add -I flag for installing 2024-09-22 14:59:40 -04:00
7f5af625e5 Support useing .c files and .S files (assembly) 2024-09-18 15:39:22 -04:00
fe3d45c37a Handle subdirectories within libraries 2024-09-17 16:23:55 -04:00
03a7d5f44d Overhaul of header logic so it now uses topological ordering and
deduplication for libraries with multiple files.
2024-09-17 16:20:30 -04:00
2d5c8c3124 Only rename public symbols 2024-09-16 19:59:20 -04:00
32c139e1f4 Make compilation steps exit instead of returning exit statuses 2024-09-16 16:56:29 -04:00
a9a21c40d9 Bugfix for arg passing 2024-09-16 14:29:23 -04:00
68c4731ae6 Show more error info 2024-09-16 14:27:18 -04:00
1f23a4f0e3 Handle installing libraries that were downloaded directly to
~/.local/share/tomo/installed
2024-09-16 13:32:27 -04:00
6595bdd04a Use 'install' to preserve file modification times 2024-09-15 21:23:02 -04:00
6b5a9d65e3 Overhaul of how libraries are installed 2024-09-15 21:18:42 -04:00
c455e7b67d Rename builtins/ -> stdlib/ 2024-09-13 20:18:08 -04:00
4380039acc Rename builtins to use plurals when appropriate 2024-09-13 20:08:20 -04:00
0ead266477 Compiled programs don't need to be linked against -lcord anymore 2024-09-13 14:25:57 -04:00
34c562e88e Move cord helper functions into their own file 2024-09-13 14:23:24 -04:00
aeed1992e9 Fix nearly every GCC warning and add __attribute__((pure/const)) where
appropriate
2024-09-08 17:17:15 -04:00
fba8c90687 Fix partial edit 2024-09-06 14:50:48 -04:00
4291b36e2c Fix header compilation 2024-09-06 14:50:00 -04:00
817235cfbc Check for .tm file extension 2024-09-06 14:27:49 -04:00
79d08c809a Ensure HELP and USAGE are initialized when running CLI program 2024-09-06 12:18:28 -04:00
e0356e07c6 Uhhhh, apparently clang treats ??? as a trigraph unless you specify some
compiler flags.
2024-09-06 00:28:03 -04:00
df61a0805f Correctly resolve '../' paths 2024-09-05 15:47:00 -04:00
391c1b6bde Rename table_t -> Table_t 2024-09-05 14:57:31 -04:00
a8be9efcd3 Rework CLI compilation so that all of the argument parsing is written to
the .tm.c file and the runner program is *just* a single function call
to the function that parses args and runs the main function. Also
improved some CLI usage error code
2024-09-05 14:38:37 -04:00
443af763f4 Trim excess blank lines before feeding to indent 2024-09-05 12:51:53 -04:00
d1b2e9f598 Disallow 'use' statements that aren't top level 2024-09-04 13:48:26 -04:00
61e482f6f3 Initial WIP first past 2024-09-02 18:47:39 -04:00
ad51b208b4 Overhaul of import syntax. Now everything uses use: use foo, `use
./foo.tm`, `use <foo.h>`, `use libfoo.so`
2024-08-22 14:02:48 -04:00
d08f795794 Partially working first draft of bigints 2024-08-13 01:30:25 -04:00
b2e752ee32 Replace heap_str with GC_strdup 2024-07-26 13:30:24 -04:00
cfe46ee393 Replace heap_strn() with GC_strndup() 2024-07-26 13:28:18 -04:00
87785555ec Fix for order of operations issues with enum and function typedef code 2024-07-23 19:46:42 -04:00
df765200c4 Switch to parallel compilation 2024-07-06 17:23:32 -04:00
a86dc05d36 Cache AST parsings so we don't have to re-parse files 2024-07-05 15:51:23 -04:00
c24a53174e Clean up symbol_renames.txt 2024-06-16 20:07:33 -04:00
28de9aeb84 Deprecate '-l' as a command line flag but instead support 'use -lblah' 2024-06-16 18:40:34 -04:00
4724d40e41 Support running with tomo -lfoo file.tm 2024-06-16 18:12:32 -04:00
32e82fdbe3 Remove some dead code and support -l as a tomo flag 2024-06-16 18:09:54 -04:00
9f8be0c502 Support library name as a separate environment field from namespace 2024-06-16 16:08:35 -04:00
7a53e10826 Fix issue with type namespaces not getting properly prefixed by library
namespace
2024-06-16 15:12:00 -04:00
6f11f5cbb4 Replace non-identifier characters with '_' when generating prefixes 2024-06-13 22:56:45 -04:00
ce66358d06 Add tomo -u foo to uninstall foo 2024-06-13 21:24:22 -04:00
81d55cacb7 Do dynamic library symbol prefixing using 'patchelf' 2024-06-13 21:20:50 -04:00
dab2c399f1 Split import/use into separate concepts 2024-06-13 13:17:51 -04:00
5757a5023c Support loading shared libraries 2024-06-13 12:59:19 -04:00
e9ba4411c9 Change default optimization level to whatever the C compiler's default
is
2024-06-11 13:37:33 -04:00
56b9684362 Make library name specifiable by a command line arg 2024-06-10 11:20:14 -04:00
77aa022df0 Change how tomo command line behavior works and how shared libraries are
built/installed.
2024-06-09 16:16:22 -04:00
39ac885125 Change c/header transpilation order and fix some issues 2024-06-08 14:39:52 -04:00
8c7d530080 Split header compilation into a separate function 2024-06-06 16:28:53 -04:00