52ad82f8b9Merge pull request #3 from kernigh/ego-fix
default
David Given
2016-09-10 11:25:21 +02:00
b1d1b5e1f8Fix bugs with memory allocation in ego.
George Koehler
2016-09-09 23:37:43 -04:00
8c94b1316cAdd unlink system call.
David Given
2016-09-04 19:23:02 +02:00
56e13e24e0Cleanup some stray files.
David Given
2016-09-03 19:22:38 +02:00
1b8df04e58Add modeline, fix formatting.
David Given
2016-09-03 19:17:09 +02:00
95ad06849bUpdated.
David Given
2016-09-03 19:07:12 +02:00
de2f99dc1aMore documentation.
David Given
2016-09-03 19:01:47 +02:00
ea4142daeeFirst half of the ackbuilder documentation.
David Given
2016-09-03 01:04:16 +02:00
ff9bf5b08aMakefiles are now slightly less inaccurate. Does actually seem to do sensible incremental builds now. I loathe make.
David Given
2016-09-03 00:20:11 +02:00
de7023dd61Add an install target.
David Given
2016-09-02 23:03:57 +02:00
f67c98e239Distributions are a pain --- let's not bother any more. Instead, we just tag the repository and download a complete snapshot, old and ancient stuff and all.
David Given
2016-09-02 23:00:38 +02:00
612e38f1c6Remove the old make-based build system, plus some big chunks of horribly obsolete protomake build system.
David Given
2016-09-02 22:17:51 +02:00
96e7447bfaClean up the top level makefile.
David Given
2016-09-01 23:36:39 +02:00
2b6d251decFix a fun bug where, every now again, ego would get its temporary files mangled and generate invalid calls to the optimisers.
David Given
2016-08-22 23:53:01 +02:00
2a95b1c5e3Forgot to check a file in.
David Given
2016-08-22 22:45:32 +02:00
5bae29a00cego now builds and is used.
David Given
2016-08-21 22:01:19 +02:00
08823a172cfilenamesof() an installable now returns all installed files, not just the ones at the top level (necessary to make a lot of the dependency stuff work when using tools which depend on installables).
David Given
2016-08-21 21:55:21 +02:00
84ee7c9cc4Fix linking bug where em_decode would generate binary data instead of text.
David Given
2016-08-21 20:27:52 +02:00
2b2bd93e44Run through clang-format.
David Given
2016-08-21 20:08:05 +02:00
44b6421519Run through clang-format.
David Given
2016-08-21 19:53:14 +02:00
671bf250f5Run through clang-format.
David Given
2016-08-21 19:46:19 +02:00
918f300513Run through clang-format.
David Given
2016-08-21 19:38:54 +02:00
1b66b63eaeRun through clang-format.
David Given
2016-08-21 19:38:02 +02:00
3584ddb6e9Push through clang-format.
David Given
2016-08-21 19:34:54 +02:00
a4f136f999Run through clang-format.
David Given
2016-08-21 18:51:36 +02:00
03a0b182c4Push em_ego.c through clang-format before working on it.
David Given
2016-08-21 18:45:25 +02:00
1a7b4f8729Build the examples when doing a normal build; this exercises the compiler as a whole and is one step further towards a proper test suite.
David Given
2016-08-20 14:05:24 +02:00
53c9731036aal doesn't build the ranlib table if you don't set -DAAL.
David Given
2016-08-20 14:04:46 +02:00
856eb120b3Add files which got missed in the initial build pass.
David Given
2016-08-20 14:04:17 +02:00
edee22510bliblinux is no more; its files are now in libsys.
David Given
2016-08-20 14:03:49 +02:00
52eaf753b6rpi has a time() function; don't try to call gettimeofday().
David Given
2016-08-20 14:03:19 +02:00
f561b94b49Print hex numbers actually properly this time.
David Given
2016-08-20 14:02:12 +02:00
204f932ed2Raspberry Pi backend now builds.
David Given
2016-08-20 12:40:13 +02:00
23e8d5af5aWildcards are allowed to match no files now.
David Given
2016-08-20 12:40:00 +02:00
46bd70380cFilename variables now get passed into ackbuilder on the command line.
David Given
2016-08-15 00:47:08 +02:00
420c47c386Fix dependency error (only shows up with make, not ninja. Odd).
David Given
2016-08-15 00:46:43 +02:00
7b8d9e2d0eFix compiler warnings and 64bitisms.
David Given
2016-08-14 23:01:12 +02:00
870489c8b0Er, oops; the ninja build system is in a package called ninja-build.
David Given
2016-08-14 22:55:10 +02:00
53f043ff40Backport to Lua 5.1 (because 5.2 on Travis doesn't have luaposix...).
David Given
2016-08-14 22:52:57 +02:00
38c6a87ed5Add another Travis library.
David Given
2016-08-14 22:41:54 +02:00
8b24b0247bUpdate Travis metadata.
David Given
2016-08-14 14:44:00 +02:00
a42939df50LED builds now.
David Given
2016-08-14 14:40:01 +02:00
2dab95ecedMove the em_code headers into the em_code module.
David Given
2016-08-14 14:17:35 +02:00
4d24666432Move util/data into modules/src/em_data, for consistency with the other modules.
David Given
2016-08-14 14:09:38 +02:00
38fa6941d5linux68k builds now.
David Given
2016-08-14 11:34:18 +02:00
fb2a42a2dbinstallables need to depend on their source files...
David Given
2016-08-14 11:25:47 +02:00
3df4906d52Turns out I wasn't building the syscall libraries. Do so.
David Given
2016-08-14 11:23:57 +02:00
b549980af2Wasn't exporting the plat headers; refactor to make this a little cleaner.
David Given
2016-08-14 11:01:36 +02:00
f253b6a169linux386 builds. Also, forgot to turn back on the language runtimes.
David Given
2016-08-14 10:37:55 +02:00
262c5fedcfBiggish refactor to break cycles; my build rules were full of them. cpm builds, which requires top and topgen.
David Given
2016-08-14 01:39:40 +02:00
10746f8b97Add cycle detection, because it was ruining my day. Allow targets to be stored in a file called build-<target>.lua to allow better dividing up of build rules (to break cycles).
David Given
2016-08-14 01:38:36 +02:00
e0b8bd221dPascal runtime library now builds.
David Given
2016-08-13 13:07:19 +02:00
e770d09dc8Pascal compiler builds.
David Given
2016-08-13 13:03:06 +02:00
00c67fcc0eModula-2 runtime library now builds.
David Given
2016-08-13 12:43:44 +02:00
dbf8332bf0Fixed a small bug where two line number directives next to each other wouldn't be parsed properly (the second one would be treated as Modula-2 syntax).
David Given
2016-08-13 12:21:16 +02:00
8e869b56e7The Modula-2 compiler now builds.
David Given
2016-08-13 00:02:21 +02:00
08b7c4aaaeThe Basic runtime builds now.
David Given
2016-08-12 00:24:40 +02:00
7c60c27302The Basic compiler works now.
David Given
2016-08-12 00:19:51 +02:00
b592c88bdfreplace() gets confused if you give it a singleton list as its parameter.
David Given
2016-08-12 00:19:30 +02:00
a200a2fb53Replaced the funky and hard-to-compile ACK malloc with a much smaller and simpler one stolen from K&R. libc builds now.
David Given
2016-08-11 00:30:32 +02:00
3ce4e53aa9Most of libc builds now (missing malloc).
David Given
2016-08-08 23:55:47 +02:00
c213602a02Target lists can now have keyed items ({["foo"] = "+target"); this is used by both installable and by clibrary{} to allow headers to be installed into subdirectories.
David Given
2016-08-08 23:55:23 +02:00
0d77cb8279We can build our first C file.
David Given
2016-08-07 21:56:53 +02:00
b50dc4214aAdd check for undefined variables. Find undefined variables. Fix undefined variables.
David Given
2016-08-05 00:01:55 +02:00
5e84be70fdMassive ackbuilder refactor --- cleaner and more expressive. Lists are automatically flattened (leading to better build files), and the list and filename functions are vastly more orthogonal.
David Given
2016-08-04 23:51:19 +02:00
b2bb4ce3b2Builds libend (the simplest library). Becoming obvious I need to rework the way ackbuilder deals with lists.
David Given
2016-07-30 00:39:22 +02:00
363d13cc2fC preprocessor; tabgen; now the pc86 boot.s builds using the ack toolchain.
David Given
2016-07-29 00:22:49 +02:00
c6292642c6Fix a nasty dependency bug where filenamesof() on installables wouldn't return any of the installable files (which meant installables were never considered as dependencies).
David Given
2016-07-29 00:22:22 +02:00
f9c77fca03Replace the hacky cflags variable with an equally hacky but vastly more useful magic vars variable.
David Given
2016-07-27 00:10:15 +02:00
cdeea836f2Replaced the fairly complex environment code with a much simpler emitter object.
David Given
2016-07-26 23:43:31 +02:00
a8a9d1bbfayacc, ncgg; platform ncg builds now.
David Given
2016-07-26 23:35:30 +02:00
bff5c4019cBaby steps towards building a platform --- make the assembler work. Add ackbuilder support for C preprocessor files and yacc.
David Given
2016-07-24 00:50:02 +02:00
2770a83837More programs, more libraries. src/modules build files are now saner.
David Given
2016-07-23 00:30:31 +02:00
1fdc69fb97cemcom.ansi now builds.
David Given
2016-07-19 23:43:14 +02:00
05e3cf286fSaner clibrary dependency and header handling.
David Given
2016-07-19 23:42:56 +02:00
b7720c298bError out if a template expansion returns nil (as it's normally an error).
David Given
2016-07-19 23:42:42 +02:00
2d2497c318ackbuilder rules files now require absolute paths in external variables (otherwise commands which change directory don't work).
David Given
2016-07-18 23:16:27 +02:00
523374c36bBuilt a make bootstrap that runs either make or ninja depending on which is installed.
David Given
2016-07-16 14:58:29 +02:00
bcf3408e36More stuff builds; almost the C compiler now.
David Given
2016-07-14 23:54:13 +02:00
cdbd605803concat, targetnamesof. deps is now handled more consistently (treated the same as ins but not passed in as inputs).
David Given
2016-07-14 23:53:34 +02:00
f70c12fad5Allow headers which aren't .h files.
David Given
2016-06-30 13:27:47 +02:00
60edd08390Make work with make.
David Given
2016-06-30 13:19:10 +02:00
90764320bbBetter cwd handling.
David Given
2016-06-29 13:58:38 +02:00
c8711628abclibrary can now export headers.
David Given
2016-06-29 13:28:45 +02:00
7f7005bac5Local rules; include() and replace().
David Given
2016-06-29 13:28:22 +02:00
d805052205All the amisc binaries now build.
David Given
2016-06-19 09:32:45 +02:00
1978867fd2Add ninja support. It works so much better than make.
David Given
2016-06-19 08:55:02 +02:00
2af8568cc3First draft at installables; not very satisfactory. make bugs with multiple output targets and parallelism?
David Given
2016-06-16 05:26:44 +02:00
09554cb324installable works, although it's a bit kludgy. Change the : separator to + because : is special in make and non of the others I could think of would work.
David Given
2016-06-14 07:34:14 +02:00
605651776eWe can build a real program now!
David Given
2016-06-12 20:59:43 +02:00
a04dbf33f3Add hgignore file.
David Given
2016-06-12 20:59:16 +02:00
015804afcecprogram works.
David Given
2016-06-09 07:14:41 +02:00
f47bb49c1fMultiple build files work. Use deps intelligently. clibraries.
David Given
2016-06-09 06:55:44 +02:00
fcc5a878aeRather cleaner cfile implementation where you just give it a .c and a pile of .h files.
David Given
2016-06-08 03:21:53 +02:00
8082ef16a7cfile with dynamically generated headers sort of works.
David Given
2016-06-07 05:00:26 +02:00
f4449e3f97Multioutput rules work!
David Given
2016-06-07 04:20:08 +02:00
79f7c0ad23Leaf rules work!
David Given
2016-06-07 04:13:56 +02:00
b7d2b9c3cfDependent rules work!
David Given
2016-06-07 00:10:22 +02:00
14ccf7151eMost of simplerule now looks like it's working.
David Given
2016-06-06 22:13:30 +02:00
cb0111b290Skeleton of the rule engine and type system.
David Given
2016-06-06 20:50:48 +02:00