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
04e54d6cb1
Run lang/basic/lib through clang-format.
2016-12-12 21:16:32 +01:00
David Given
a53b51001b
Ansify function definitions.
2016-12-12 21:15:25 +01: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
3e69d1185a
Fix a whole lot more stray prototypes.
2016-11-24 21:47:40 +01:00
David Given
b8a2935f2b
Fix more invalid prototypes of stdlib functions; build dependency fix.
2016-11-24 21:26:05 +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
David Given
3ce4e53aa9
Most of libc builds now (missing malloc).
2016-08-08 23:55:47 +02:00
David Given
0d77cb8279
We can build our first C file.
2016-08-07 21:56:53 +02:00
David Given
b50dc4214a
Add check for undefined variables. Find undefined variables. Fix undefined
...
variables.
2016-08-05 00:01:55 +02:00
David Given
5e84be70fd
Massive 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.
2016-08-04 23:51:19 +02:00
David Given
b2bb4ce3b2
Builds libend (the simplest library). Becoming obvious I need to rework the way
...
ackbuilder deals with lists.
2016-07-30 00:39:22 +02:00
David Given
363d13cc2f
C preprocessor; tabgen; now the pc86 boot.s builds using the ack
...
toolchain.
2016-07-29 00:22:49 +02:00
David Given
2770a83837
More programs, more libraries. src/modules build files are now saner.
2016-07-23 00:30:31 +02:00
David Given
1fdc69fb97
cemcom.ansi now builds.
2016-07-19 23:43:14 +02:00
David Given
2d2497c318
ackbuilder rules files now require absolute paths in external variables
...
(otherwise commands which change directory don't work).
2016-07-18 23:16:27 +02:00
David Given
bcf3408e36
More stuff builds; almost the C compiler now.
2016-07-14 23:54:13 +02:00
David Given
88bd7ce126
Remove defunct pmfiles.
...
--HG--
branch : default-branch
2016-06-03 13:56:50 +02:00
David Given
391cb0f2cd
Fix checkin into wrong hg branch.
...
--HG--
branch : default-branch
2016-03-17 20:53:45 +01:00
David Given
863b610144
Fix use-after-free.
2016-03-17 20:52:27 +01:00
David Given
ff0c78cc78
Merge from default.
...
--HG--
branch : dtrg-videocore-branch-branch
2016-03-13 21:13:09 +01:00
David Given
3d5e72e20b
Newer versions of GNU Make have a new function which collides with a
...
variable we're using; change the name of the variable.
2015-03-22 12:09:46 +01:00
David Given
d94c1c8150
Updated distr files.
...
--HG--
branch : dtrg-videocore
rename : mach/i80/.distr => mach/vc4/.distr
rename : plat/cpm/.distr => plat/rpi/.distr
2013-06-21 23:38:21 +01:00
David Given
55be35a68a
Add a stub malloc.h.
...
--HG--
branch : dtrg-videocore
rename : lang/cem/libcc.ansi/headers/stdlib.h => lang/cem/libcc.ansi/headers/malloc.h
2013-06-20 00:15:14 +01:00
David Given
d273497077
Add some missing libc functions: setenv, unsetenv, strdup.
...
--HG--
rename : lang/cem/libcc.ansi/stdlib/getenv.c => lang/cem/libcc.ansi/stdlib/setenv.c
rename : lang/cem/libcc.ansi/string/strlen.c => lang/cem/libcc.ansi/string/strdup.c
extra : source : 64d6e6eec18d76bf8f3947ec5d171db94acdb282
2013-05-29 21:41:58 +01:00
David Given
074b42aa97
Add some missing libc functions: setenv, unsetenv, strdup.
...
--HG--
branch : dtrg-videocore
rename : lang/cem/libcc.ansi/stdlib/getenv.c => lang/cem/libcc.ansi/stdlib/setenv.c
rename : lang/cem/libcc.ansi/string/strlen.c => lang/cem/libcc.ansi/string/strdup.c
2013-05-29 21:41:58 +01:00
David Given
f522aba4af
Add support for snprintf and vsnprintf. Try and make the return value a bit
...
more standards-compliant.
--HG--
extra : source : a19eb606871f918e3d9e195b487b5276855edc8e
2013-05-29 17:10:58 +01:00
David Given
69953d016c
Add support for snprintf and vsnprintf. Try and make the return value a bit
...
more standards-compliant.
--HG--
branch : dtrg-videocore
2013-05-29 17:10:58 +01:00
David Given
d3e3e72860
Update from trunk.
...
--HG--
branch : dtrg-videocore
2013-05-29 15:03:48 +01:00
David Given
98e745d04c
Fix awful bug where uint32_t was sometimes defined as a short.
...
--HG--
branch : dtrg-videocore
2013-05-25 00:33:01 +01:00
David Given
c18a82ec40
Apply build system fixes for OpenBSD contributed by George Koehler.
2013-05-18 12:15:53 +01:00
David Given
9a513e8ef3
Fix warning.
2013-05-17 00:04:54 +01:00
David Given
11377070fd
Update distribution files.
...
--HG--
branch : dtrg-buildsystem
2013-05-15 23:46:15 +01:00
David Given
f6c43b95ef
Modula-2 now works.
...
--HG--
branch : dtrg-buildsystem
rename : lang/pc/build.mk => lang/m2/build.mk
rename : lang/pc/libpc/build.mk => lang/m2/comp/build.mk
rename : lang/pc/libpc/build.mk => lang/m2/libm2/build.mk
2013-05-14 22:24:38 +01:00
David Given
66aebcdd91
Pascal compiler now runs.
...
--HG--
branch : dtrg-buildsystem
rename : lang/basic/build.mk => lang/pc/build.mk
rename : lang/cem/cemcom.ansi/build.mk => lang/pc/comp/build.mk
rename : lang/basic/lib/build.mk => lang/pc/libpc/build.mk
2013-05-14 20:47:04 +01:00
David Given
a6ebaeabd0
Basic compiler now runs.
...
--HG--
branch : dtrg-buildsystem
2013-05-14 18:01:38 +01:00
David Given
d5f0107746
Build the Basic run-time library (after some modernisation).
...
--HG--
branch : dtrg-buildsystem
2013-05-14 16:11:29 +01:00
David Given
07453d184a
Top, topgen, aelflod. Moved the libraries back into the platform-specific
...
directories --- wrangling descr files was too hard. C programs can be built
for cpm, pc86, linux386, linux68k!
--HG--
branch : dtrg-buildsystem
rename : util/ack/build.mk => util/led/build.mk
rename : util/LLgen/build.mk => util/topgen/build.mk
2013-05-13 23:26:15 +01:00
David Given
af0dedeb6e
Fix typo.
...
--HG--
branch : dtrg-buildsystem
2013-05-13 11:14:10 +01:00
David Given
b0c238eb5d
Made a start on building the runtimes for each platform and language; the
...
Linuxes all build.
--HG--
branch : dtrg-buildsystem
rename : modules/src/em_mes/build.mk => modules/src/read_em/build.mk
rename : plat/pc86/build.mk => plat/linux386/build.mk
rename : plat/pc86/build.mk => plat/linux68k/build.mk
rename : plat/pc86/build.mk => plat/linuxppc/build.mk
rename : util/ack/build.mk => util/misc/build.mk
2013-05-12 23:51:55 +01:00
David Given
c1aca7dae5
First milestone of replacing the build system.
...
--HG--
branch : dtrg-buildsystem
rename : lang/cem/cpp.ansi/Parameters => lang/cem/cpp.ansi/parameters.h
2013-05-12 20:45:55 +01:00
George Koehler
7ef9b79c11
Merge deletion of many undead files.
2012-09-23 15:31:16 -04:00
George Koehler
0131ca4d46
Delete 689 undead files.
...
These files "magically reappeared" after the conversion from CVS to
Mercurial. The old CVS repository deleted these files but did not
record *when* it deleted these files. The conversion resurrected these
files because they have no history of deletion. These files were
probably deleted before year 1995. The CVS repository begins to record
deletions around 1995.
These files may still appear in older revisions of this Mercurial
repository, when they should already be deleted. There is no way to fix
this, because the CVS repository provides no dates of deletion.
See http://sourceforge.net/mailarchive/message.php?msg_id=29823032
2012-09-20 22:26:32 -04:00
George Koehler
800d4ae032
Fix cemcom.ansi for 64-bit hosts.
...
Hosts with sizeof(arith) == sizeof(long) == 8 need to set full_mask[1]
through full_mask[8]. Because MAXSIZE == 8, we only had full_mask[0]
through full_mask[7]. This fix declares arith full_mask[MAXSIZE + 1]
and prevents a fatal error: "array full_mask too small for this machine"
2012-09-07 15:53:13 -04:00
dtrg
45ee287136
Replaced dis and new with modern implementations donated by erik@backerud.se.
2010-10-02 21:52:29 +00:00
dtrg
075cb488a3
Call the correct kill() and getpid() syscalls rather than _kill() and _getpid().
2010-10-02 21:51:40 +00:00
dtrg
a33473e0a5
Now call creat() and open() instead of _creat() and _open().
2010-09-27 20:47:32 +00:00
dtrg
a8ecb11013
Fixed very old bug where Streams.GetStreamPosition would return the wrong position --- thanks to Jan Verhoeven for finding this.
2010-09-01 19:55:15 +00:00
dtrg
51b41f72f8
Invoke genfiles explicitly with sh --- CVS doesn't store executable bits.
2010-08-01 10:35:33 +00:00
dtrg
54ce3f451b
Configured distr system for the 6.0pre3 release.
2007-04-29 23:09:24 +00:00
dtrg
9d0f0a8fdd
Disabled the code to throw signals on EM traps; this is the platform's job (and requires working signal support, which we may not have).
2007-04-29 20:46:48 +00:00
dtrg
013f58f94e
Added the stdint.h header file.
2007-04-27 22:42:02 +00:00
dtrg
0d8578410c
Cleaned up and enabled the support for conditionally emitting the floating-point stdio code.
2007-04-27 22:41:39 +00:00
dtrg
7f266d6b4e
Removed a completely pointless 128-byte buffer.
2007-04-27 22:41:05 +00:00
dtrg
24ea8aee3d
Updated for the 6.0pre2 release.
2007-04-24 20:45:58 +00:00
dtrg
bfeb736c35
Stripped down the library to something approaching the ANSI C minimum and replaced most of the header files, to provide a reasonably consistent base to work up from.
2007-04-24 19:42:24 +00:00
dtrg
1c83baa702
Adapted for ANSI C and our pseudo-Posix syscall interface.
2007-04-21 23:18:14 +00:00