David Given
612e14b4b4
Improve confusing error message when calling function procedures from a
...
top-level statement.
Fixes : #30
2017-01-08 11:25:57 +01:00
David Given
ee5ef73dfb
Run through clang-format.
2017-01-08 11:23:56 +01:00
David Given
893471a42e
No longer truncate module names at 10 characters when constructing paths;
...
rename some library modules to their full names.
2017-01-07 23:00:52 +01:00
David Given
d50a6f99de
Run through clang-format.
2017-01-07 22:56:00 +01:00
David Given
9945b019d2
Add a B man page.
2017-01-07 22:35:02 +01:00
David Given
5a38ce2a69
Pre-and-post-modification operators now work substantially better (i.e.,
...
working).
2017-01-07 18:46:03 +01:00
David Given
77fc62285d
Extern variables can now be written to.
2017-01-06 23:24:05 +01:00
David Given
62bc2ab97a
Jump tables for switch now go in ROM (required by the EM spec). Forward gotos
...
now work.
2017-01-01 23:28:41 +00:00
David Given
8b8910595a
Add proper support for negative constants in external initialisers.
2017-01-01 17:56:53 +00:00
David Given
049aff9f33
Remove the negative-constant code from the compiler; I think it's going to
...
break a=-1 (with no spaces). Backed out changeset dead3363ac7d.
2017-01-01 17:44:55 +00:00
David Given
374e7a1c57
Add support for the ~ operator.
2017-01-01 17:40:06 +00:00
David Given
b1576e2c77
Add support for negative constants in external initialisers.
2016-12-31 19:43:03 +00:00
David Given
a01523a893
Allow programs to override binit() (so they can register their own modules).
2016-12-31 17:39:51 +00:00
David Given
803b81e3f4
Add support for the xor operator.
2016-12-31 17:36:12 +00:00
David Given
c3e1ef1064
B patch table names shouldn't be in the B symbol namespace.
2016-12-31 00:14:28 +00:00
David Given
fa02a855e8
Fix issue where !x was actually calculating !!x.
2016-12-31 00:14:04 +00:00
David Given
ebd424e7f1
First draft of the B module code; a module name can now be specified as a
...
compiler flag, which is used to set the name of the patch table. The compiler
now understands C preprocessor line directives. Extend the standard library
somewhat.
2016-12-29 17:10:21 +00:00
David Given
e50f4be710
Merge from default.
2016-12-26 19:44:48 +00:00
David Given
c569ca15d8
Clean up how the language libraries refer to plat headers; they should be using
...
the +pkg forms of the rules and getting the headers via the paths in descr,
rather than depending on the +headers version.
2016-12-05 21:05:24 +01:00
David Given
bbcc08a6b6
Fix putchar() return value.
2016-11-28 21:38:46 +01:00
David Given
9f34262f95
Implement enough libb to make 'Hello, world!' work.
2016-11-27 22:05:15 +01:00
David Given
b9665c7c99
Fix some basic showstopping bugs; compilation now works up to failing to find
...
the libb standard library.
2016-11-27 21:08:14 +01:00
David Given
4485d89b23
Hook the B compiler up to the compiler driver.
2016-11-27 20:48:07 +01:00
David Given
5bce5fc4da
Change the extension used by Basic files for .b to .bas, to avoid conflicts
...
with B.
2016-11-27 20:38:33 +01:00
David Given
707585b67d
Perform initial (i.e. feature complete and compiling, but not necessarily
...
working) port of the B compiler to EM.
2016-11-27 20:28:19 +01:00
David Given
cfc723250f
Initial EM-ification; start threading word size stuff through the code.
2016-11-27 11:58:59 +01:00
David Given
a69045c0e4
Import aap@github's B compiler.
2016-11-27 11:37:25 +01:00
David Given
c084f9f224
Remove the Mark() and Release() procedures from the Pascal compiler and
...
standard library, because they never worked and come from an achingly old
version of the Pascal specification. Fix the implementations of New() and
Dispose() to use the standard C memory allocator rather than rolling their own
(also in C). Write test!
2016-11-24 20:35:26 +01:00
David Given
9481487e3d
Implement calloc() (accidentally got dropped with the malloc rewrite).
2016-11-23 22:16:25 +01:00
David Given
745eb8f17b
Now _errsym and _erlsym are defined in the standard library, don't define them
...
in the program.
2016-11-16 21:13:00 +01:00
David Given
e9fe1d70a6
Fix (or at least, work around) an issue with library order. Make sure the Basic
...
error symbols are actually defined.
2016-11-13 13:28:09 +01:00
David Given
4d7c27391f
Merge.
2016-11-10 22:06:08 +01:00
David Given
fd91851005
Add enough return types to the K&R C that the ACK builds (on Linux) using clang
...
now.
2016-11-10 22:04:18 +01:00
David Given
57cb99ade1
Remove sys_time in favour of directly calling time().
2016-11-09 21:52:04 +01:00
George Koehler
08f9869a63
Remove unused defines from lang/cem/libcc.ansi/math/localmath.h
...
This undoes part of bfeb736
, and returns to using DBL_MAX_EXP and
DBL_MIN_EXP from float.h.
Add a dependency on math/localmath.h and other local header files so
libc is rebuilt when those headers change.
2016-11-06 15:49:47 -05:00
George Koehler
19ca28e22f
Undo commit bfeb736
for lang/cem/libcc.ansi/headers/float.h
...
This restores the correct values of DBL_MAX, DBL_MIN_EXP, and related
constants. This fixes some range checks within libc, causing
atof("-36e90") and atof("1.44e-288") to return the correct values.
2016-11-06 15:01:25 -05:00
David Given
f67c98e239
Distributions 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.
2016-09-02 23:00:38 +02:00
David Given
612e38f1c6
Remove the old make-based build system, plus some big chunks of horribly
...
obsolete protomake build system.
2016-09-02 22:17:51 +02:00
David Given
856eb120b3
Add files which got missed in the initial build pass.
2016-08-20 14:04:17 +02:00
David Given
4d24666432
Move util/data into modules/src/em_data, for consistency with the other
...
modules.
2016-08-14 14:09:38 +02:00
David Given
b549980af2
Wasn't exporting the plat headers; refactor to make this a little cleaner.
2016-08-14 11:01:36 +02:00
David Given
262c5fedcf
Biggish refactor to break cycles; my build rules were full of them. cpm builds,
...
which requires top and topgen.
2016-08-14 01:39:40 +02:00
David Given
e0b8bd221d
Pascal runtime library now builds.
2016-08-13 13:07:19 +02:00
David Given
e770d09dc8
Pascal compiler builds.
2016-08-13 13:03:06 +02:00
David Given
00c67fcc0e
Modula-2 runtime library now builds.
2016-08-13 12:43:44 +02:00
David Given
dbf8332bf0
Fixed 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).
2016-08-13 12:21:16 +02:00
David Given
8e869b56e7
The Modula-2 compiler now builds.
2016-08-13 00:02:21 +02:00
David Given
08b7c4aaae
The Basic runtime builds now.
2016-08-12 00:24:40 +02:00
David Given
7c60c27302
The Basic compiler works now.
2016-08-12 00:19:51 +02:00
David Given
a200a2fb53
Replaced the funky and hard-to-compile ACK malloc with a much smaller
...
and simpler one stolen from K&R. libc builds now.
2016-08-11 00:30:32 +02:00