Commit graph

1980 commits

Author SHA1 Message Date
David Given c59eae1429 Don't buffer overflow when trying to process source bytes with the high bit
set.
2019-03-11 13:50:30 +00:00
carl 8f6073d446 + Better type checking in function tables. 2019-03-02 01:44:16 +08:00
carl 3867cfdaca + M2 Compiler ISO C90 compatibility
* Fixing of potential crash issue with function tables in compiler.
+ SYSTEM.h is now renamed to SYSTEMM2.h to avoid conflicts on non case sensitive filesystems.
2019-03-02 01:44:16 +08:00
carl 5f9a199257 CPP ISO C90 compatibility and conversion. 2019-03-02 01:44:16 +08:00
carl f371f452b5 Basic compiler is now ISO C90 compliant. 2019-03-02 01:44:16 +08:00
carl 9fab867333 Fix issue again with wrong macro on error. 2019-02-26 00:46:10 +08:00
carl bd52b1f8f5 * Fix more tabs. 2019-02-26 00:44:52 +08:00
carl e233db6dc0 * Convert spaces -> tabs to keep consistency with existing code. 2019-02-24 01:15:23 +08:00
carl f74b29d303 * Remove some more compiler warnings. 2019-02-24 00:46:05 +08:00
carl 9622898131 Bugfix of fprint using correct output redirection (fix from last commit). 2019-02-24 00:45:35 +08:00
carl 41cb541e7e Pascal compiler better type checking and function declarations (Better ISO C compatibility) 2019-02-24 00:44:50 +08:00
carl f7ba3eec50 Remove CMake changes and generic sed scripts so they are move to a separate branch. 2019-02-21 00:43:04 +08:00
carl 9ca8f42930 + Add missing files. 2019-02-20 00:32:19 +08:00
carl 750a6bc684 Better ANSI C compatibility and portability:
+ Addition of function prototypes and include files.
+ Change function definitions to ANSI C style.
+ Initial support for CMake
+ Scripts to generate compiler header is now sed based.
2019-02-19 00:54:23 +08:00
carl fdf5da62d7 Better ANSI C compatibility and portability - part 1:
* Adapt to new sys_filesize prototype.
2019-02-19 00:54:23 +08:00
carl 796317e0e3 Better ANSI C compatibility and portability - part 1:
* Adapt to new sys_filesize prototype.
2019-02-19 00:54:23 +08:00
David Given 58698bed19 Removed a whole bunch of old strcpy() prototypes in favour of <string.h>. 2019-02-10 13:20:04 +01:00
David Given 24ffbe086a Install the cpp.ansi man page. #82. 2018-12-22 23:47:49 +01:00
David Given 436d50b54c Create correctly sized csa descriptors in the Basic compiler. 2018-09-20 00:49:31 +02:00
David Given 79fd34dac6 Call atexit handlers properly, avoiding a NPE and seg fault every time a
program exits.
2018-09-09 18:51:00 +02:00
David Given b76352de99 Remove stray #include. 2018-09-02 12:54:53 +02:00
David Given cb983fac44 Rip out the built-in preprocessor from cemcom.ansi, now it's no longer used. 2018-09-02 12:50:50 +02:00
David Given 6931ffa5a4 Disable the built-in preprocessor in cemcom.ansi; the external preprocessor is
always run. Fix a bug in block skipping in the preprocessor.
2018-09-02 12:39:00 +02:00
David Given f8fc5bc3d8 Implement single-line C++-style comments.
Fixes: #118
2018-09-02 12:14:59 +02:00
David Given 0e9736fdca Run through clang-format before editing. 2018-09-02 12:04:33 +02:00
David Given 274ed3cb6a Run through clang-format before editing. 2018-09-02 11:49:40 +02:00
David Given dd00b81080 Run files through clang-format before editing. 2018-09-02 11:36:15 +02:00
David Given 788f439a48 Run files through clang-format before editing. 2018-09-02 11:16:06 +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 1702d873ea Warning-fix and protoise the basic library. 2018-06-24 00:35:51 +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 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 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