Commit graph

7590 commits

Author SHA1 Message Date
David Given
1d6ecddcf4 The MIPS backend is still full of holes, and cut-and-pasted PowerPC code, but
is beginning to look like an actual code generator.
2018-09-02 18:57:25 +02:00
David Given
a023fd8591 Better error reporting for unterminated strings. 2018-09-02 18:55:44 +02:00
David Given
4741ed8e14 Add a completely non-tested table-based MIPS assembler. 2018-09-01 19:35:31 +02:00
David Given
8d321900b4
Merge pull request #110 from davidgiven/dtrg-warnings
Fix warnings and convert the Modula-2 library to ANSI C.
2018-06-25 22:29:47 +02:00
David Given
7971bdba5a Warning-fixed and ansified the Modula-2 library. 2018-06-25 22:22:37 +02:00
David Given
f8ba7ef962 Move the Modula-2 library includes into a directory in lang/m2 where they belong. 2018-06-24 20:32:59 +02:00
David Given
aa19c08512
Merge pull request #109 from davidgiven/dtrg-warnings
Rework the Linux include directories.
2018-06-24 20:03:21 +02:00
David Given
ab7002c0ee All the Linux include directories are the same, so common them all out into a
single one, like OSX.
2018-06-24 19:57:43 +02:00
David Given
47bdd9cc49
Merge pull request #108 from davidgiven/dtrg-warnings
Warning-fix and protoise the basic library.
2018-06-24 01:00:30 +02:00
David Given
1702d873ea Warning-fix and protoise the basic library. 2018-06-24 00:35:51 +02:00
David Given
a6742a7d55
Merge pull request #107 from davidgiven/dtrg-libc
OpenBSD fixes
2018-06-24 00:21:29 +02:00
David Given
bbb98240fe Merge from trunk. 2018-06-24 00:08:39 +02:00
David Given
f45b357740 Remove the dependency on the glibc-only byteswap.h. 2018-06-24 00:01:06 +02:00
David Given
1fc20e90c0 Remove c99-isms. 2018-06-23 23:56:34 +02:00
David Given
205c8d0a35 Run through clang-format. 2018-06-23 23:46:44 +02:00
David Given
91a978fa95
Merge pull request #106 from davidgiven/dtrg-libc
Refactor the libc
2018-06-23 23:28:21 +02:00
David Given
fd94e219d4 Remove the attic. 2018-06-23 23:16:22 +02:00
David Given
59dbdea48a Move mktemp to sys; attic getgrent as noone will ever use this. 2018-06-23 23:15:42 +02:00
David Given
3f10299f43 Move the portable time code into core. clock() goes into sys (as it calls
times()).
2018-06-23 19:49:29 +02:00
David Given
64ae1d7583 Move time() into sys; change the name of the variable which controls it. 2018-06-23 19:40:50 +02:00
David Given
bb78fd158c Move the big gnarly functions like system() and popen() into sys, and make them
build.
2018-06-23 19:18:16 +02:00
David Given
6a729b846a Move stdio into (mostly) sys. 2018-06-23 18:54:40 +02:00
David Given
af22b7ea85 Change stdio to use atexit() rather than the internal __clean variable; this
breaks the dependency between exit/atexit and stdio. Buffers are no longer
flushed on abort() (because it's pretty risky). Move the relevant functions
into sys/core.
2018-06-23 18:35:45 +02:00
David Given
f744a21699 All the opendir()/readdir() stuff is obsolete because it's all implemented in
terms of open() and read(), which isn't how it's done any more; move the
functions into an attic.
2018-06-23 18:25:26 +02:00
David Given
df1cdf7762 Add the sys directory for libc functions which use system calls; move the
malloc functions in there.
2018-06-23 18:08:03 +02:00
David Given
c4e4505a73 Move the errno functions into core. 2018-06-23 17:52:15 +02:00
David Given
538eefb573 Get em22 working. Remove the leading-underscore system calls from its libsys. 2018-06-23 15:57:57 +02:00
David Given
74d166ef9a Get the pdp7 plat working; remove the leading-underscore syscalls. 2018-06-23 15:18:26 +02:00
David Given
3e40374297 Made the rpi platform work with the new libc layout. 2018-06-23 13:05:27 +02:00
David Given
dbb2062d03 Made pc86 work with the new libc. 2018-06-23 12:59:40 +02:00
David Given
680b4071b7 Made the two OSX platforms work with the new libc layout. 2018-06-23 12:55:59 +02:00
David Given
b727b7affd Make linuxppc work. 2018-06-23 12:41:54 +02:00
David Given
b267b56ad9 Made linux68k work; commoned up all the generic linux includes. 2018-06-23 12:35:17 +02:00
David Given
66815ff987 Make linux386 work with the new libc layout. 2018-06-23 12:13:33 +02:00
David Given
32c881474e Create a basic and probably wrong common unistd.h, which replaces the plat one.
Made this work with cpm (but nothing else yet).
2018-06-23 11:46:55 +02:00
David Given
dd0f959245 Move assert into core. 2018-06-23 11:16:06 +02:00
David Given
fe3951d4ae Warning fix. 2018-06-23 11:14:49 +02:00
David Given
fac0764621 Don't crash and burn if there are no tests to run. 2018-06-23 11:14:40 +02:00
David Given
5fd8d772fd Move the string-to-float functions into core, after marking them as
ACKCONF_WANT_FLOAT.
2018-06-23 11:14:24 +02:00
David Given
94ffa3ba88 libc floating point and stdio floating point can now be turned on and off using
ACKCONF variables.
2018-06-23 00:04:14 +02:00
David Given
9bf1d548fc Rearrange the libc config files, ready for adding new options. 2018-06-22 23:43:15 +02:00
David Given
b21c099a57 Get the em libc working again: remove the modula-2 termcap library, as it's a
straight copy of the libc one and having two symbols defined at once gets ass
upset.
2018-06-22 23:17:14 +02:00
David Given
035c9558e8 Merge from default. 2018-06-22 22:43:02 +02:00
David Given
4cf3188fd1
Merge pull request #105 from davidgiven/dtrg-ass
Prevent ass crashing on error on 64-bit machines.
2018-06-22 22:42:11 +02:00
David Given
a0c6fea32c Replace fake-varargs, which doesn't work on 64-bit machines, with real varargs. 2018-06-22 22:29:52 +02:00
David Given
c5fd338300 Replace fake-varargs, which doesn't work on 64-bit machines, with real varargs. 2018-06-22 22:29:52 +02:00
David Given
c0276416d8 Move some more libc functions into core. 2018-06-22 22:20:02 +02:00
David Given
d1cdb07719 Realise that the libc core can safely call other libc core functions, even if
they're not defined in the core: so putw() can call stdio stuff, for example.
So the earlier concept of pureness isn't necessary. Rename accordingly.
2018-06-21 23:24:23 +02:00
David Given
62025c92bd The ctype functions are pure. 2018-06-21 23:06:29 +02:00
David Given
d9d7ffe0d7 The maths library is pure. 2018-06-21 23:00:33 +02:00