Commit graph

1880 commits

Author SHA1 Message Date
David Given 4546dd5f22 Massive grammar overhaul and refactor. Hacked in support for predicates, where
instructions can be turned on and off based on their parameters. New lexer
using a lexer. Now quite a lot of the way towards being a real instruction
selector.
2016-09-21 00:43:10 +02:00
David Given 2183c6c622 Run through clang-format. 2016-09-20 21:00:16 +02:00
David Given 03b7202e54 Strip out surplus files. Rewrite README. 2016-09-20 20:46:45 +02:00
David Given 5cb3fbb3d3 Import iburg. 2016-09-20 20:44:51 +02:00
David Given 13c117d15d Import iburg. 2016-09-20 20:37:16 +02:00
George Koehler 9db305b338 Enable the Hall check again, and get powerpc to pass it.
Upon enabling the check, mach/powerpc/ncg/table fails to build as ncgg
gives many errors of "Previous rule impossible on empty stack".  David
Given reported this problem in 2013:
  https://sourceforge.net/p/tack/mailman/message/30814694/

Commit c93cb69 commented out the error in util/ncgg/cgg.y to disable
the Hall check.  This commit enables it again.  In ncgg, the Hall
check is checking that a rule is possible with an empty fake stack.
It would be possible if ncg can coerce the values from the real stack
to the fake stack.  The powerpc table defined coercions from STACK to
{FS, %a} and {FD, %a}, but the Hall check didn't understand the
coercions and rejected each rule "with FS" or "with FD".

This commit removes the FS and FD tokens and adds a new group of FSREG
registers for single-precision floats, while keeping FREG registers
for double precision.  The registers overlap, with each FSREG
containing one FREG, because it is the same register in PowerPC
hardware.  FS tokens become FSREG registers and FD tokens become FREG
registers.  The Hall check understands the coercions from STACK to
FSREG and FREG.  The idea to define separate but overlapping registers
comes from the PDP-11 table (mach/pdp/ncg/table).

This commit also removes F0 from the FREG group.  This is my attempt
to keep F0 off the fake stack, because one of the stacking rules uses
F0 as a scratch register (FSCRATCH).
2016-09-18 15:08:55 -04:00
George Koehler 9ec2918e14 In ncgg, increase MAXREGS from 80 to 200.
I need this to add more registers to powerpc.
2016-09-18 14:37:42 -04:00
George Koehler ff4a7e3d2a Merge branch 'default' into kernigh-linuxppc 2016-09-17 18:15:54 -04:00
David Given 80cb6ba927 Eliminate the RELOH2 relocation, as it never worked --- the address would be
calculated incorrectly because of overflow errors.

Replace it with an extended RELOPPC relocation which understands addis/ori
pairs; add an la pseudoop to the assembler which generates these and the
appropriate relocation. Make good.

--HG--
branch : dtrg-experimental-powerpc-branch
2016-09-17 12:43:15 +02:00
David Given 4703db0fff Merge from default.
--HG--
branch : dtrg-experimental-powerpc-branch
2016-09-15 22:59:01 +02:00
George Koehler b1d1b5e1f8 Fix bugs with memory allocation in ego.
cf/cf_loop.c and share/put.c tried to read the next pointer in an
element of a linked list after freeing the element.  ud/ud_copy.c
tried to read beyond the end of the _defs_ array: it only has
_nrexpldefs_ elements, not _nrdefs_ elements.

These bugs caused core dumps on OpenBSD.  Its malloc() put _defs_ near
the end of a page, so reading beyond the end crossed into an unmapped
page.  Its free() wrote junk bytes and changed the next pointer to
0xdfdfdfdfdfdfdfdf.
2016-09-09 23:37:43 -04: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 2b6d251dec Fix a fun bug where, every now again, ego would get its temporary files mangled
and generate invalid calls to the optimisers.

Previously ego would generate a temporary file template that looked like
/tmp/ego.A.BB.XXXXXX, call mktemp() on it to randomise the XXXXXX, and then
replace A and BB with data.

However, it used strrchr to find the A and B. Which would fine, except when
mktemp produced an A or a B in the randomised part...

This code was written on 4 March 1991. I was 16.
2016-08-22 23:53:01 +02:00
David Given 2a95b1c5e3 Forgot to check a file in. 2016-08-22 22:45:32 +02:00
David Given 5bae29a00c ego now builds and is used.
This needed lots of refactoring to ego --- not all platforms have ego descr
files, and ego will just crash if you invoke it without one. I think originally
it was never intended that these platforms would be used at -O2 or above.

Plats now only specify the ego descr file if they have one.
2016-08-21 22:01:19 +02:00
David Given 84ee7c9cc4 Fix linking bug where em_decode would generate binary data instead of text. 2016-08-21 20:27:52 +02:00
David Given 2b2bd93e44 Run through clang-format. 2016-08-21 20:08:05 +02:00
David Given 44b6421519 Run through clang-format. 2016-08-21 19:53:14 +02:00
David Given 671bf250f5 Run through clang-format. 2016-08-21 19:46:19 +02:00
David Given 918f300513 Run through clang-format. 2016-08-21 19:38:54 +02:00
David Given 1b66b63eae Run through clang-format. 2016-08-21 19:38:02 +02:00
David Given 3584ddb6e9 Push through clang-format. 2016-08-21 19:34:54 +02:00
David Given a4f136f999 Run through clang-format. 2016-08-21 18:51:36 +02:00
David Given 03a0b182c4 Push em_ego.c through clang-format before working on it. 2016-08-21 18:45:25 +02:00
David Given 53c9731036 aal doesn't build the ranlib table if you don't set -DAAL. 2016-08-20 14:04:46 +02:00
David Given f561b94b49 Print hex numbers actually properly this time. 2016-08-20 14:02:12 +02:00
David Given 7b8d9e2d0e Fix compiler warnings and 64bitisms. 2016-08-14 23:01:12 +02:00
David Given a42939df50 LED builds now. 2016-08-14 14:40:01 +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 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 0d77cb8279 We can build our first C file. 2016-08-07 21:56:53 +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 f9c77fca03 Replace the hacky cflags variable with an equally hacky but vastly
more useful magic vars variable.
2016-07-27 00:10:15 +02:00
David Given cdeea836f2 Replaced the fairly complex environment code with a much simpler
emitter object.
2016-07-26 23:43:31 +02:00
David Given a8a9d1bbfa yacc, ncgg; platform ncg builds now. 2016-07-26 23:35:30 +02:00
David Given bff5c4019c Baby steps towards building a platform --- make the assembler work.
Add ackbuilder support for C preprocessor files and yacc.
2016-07-24 00:50:02 +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 d805052205 All the amisc binaries now build. 2016-06-19 09:32:45 +02:00
David Given 2af8568cc3 First draft at installables; not very satisfactory. make bugs with multiple
output targets and parallelism?
2016-06-16 05:26:44 +02:00
David Given 09554cb324 installable 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.
2016-06-14 07:34:14 +02:00
David Given 605651776e We can build a real program now! 2016-06-12 20:59:43 +02:00
David Given 88bd7ce126 Remove defunct pmfiles.
--HG--
branch : default-branch
2016-06-03 13:56:50 +02:00
David Given ef8e6e25e0 Fix a whole pile of issues related to the failed attempt to increase
the number of types of relocation possible in the object file. (Now,
hopefully, working.)

Also change the object serialiser/deserialiser to never try to read or
write raw structures; it's way safer this way and we don't need the
performance boost any more.

--HG--
branch : default-branch
2016-03-18 21:46:55 +01:00
David Given fd7e9f9046 Fix an insidious 64-bitness bug which was causing incorrectly optimised code.
--HG--
branch : default-branch
2016-03-17 22:30:24 +01:00
David Given 7e964dd25e Raise the limit on ack.out relocation types by making the size of a
relocation structure bigger. Bump ack.out magic number.

--HG--
branch : default-branch
2016-03-14 21:08:55 +01:00
David Given ff0c78cc78 Merge from default.
--HG--
branch : dtrg-videocore-branch-branch
2016-03-13 21:13:09 +01:00
David Given 44b5d01525 Merge.
--HG--
rename : util/ncgg/build.mk => util/cgg/build.mk
2015-03-23 00:14:10 +01:00
David Given b146d2641c Fix a slightly mysterious dependency issue. 2015-03-23 00:09:41 +01:00
David Given 98ea849d03 Improve flex correctness. 2015-03-23 00:09:27 +01:00
David Given 9f23fbbe6a Allow machines to use cg if they wish.
--HG--
rename : mach/proto/ncg/build.mk => mach/proto/cg/build.mk
rename : util/ncgg/build.mk => util/cgg/build.mk
2015-03-23 00:08:51 +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 2271bcd0a7 Fixed a parallel build race condition (forgot to declare a dependency to
the makefile).
2014-11-09 18:47:51 +01:00
David Given 6a340ea1bd Remove regrettable comment. 2014-08-31 13:40:39 +02:00
David Given d3e3e72860 Update from trunk.
--HG--
branch : dtrg-videocore
2013-05-29 15:03:48 +01:00
David Given 6fff2d45fe Attempt to fix 64-bitness error in ashow. Deprecate the structure format macros in h/out.h because they make no sense on 64-bit platforms. 2013-05-29 14:48:51 +01:00
David Given 5e9102955c Reworked VC4 relocations and some of the instruction encoding to be actually correct. Now generating what could be real code!
--HG--
branch : dtrg-videocore
2013-05-21 23:17:30 +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 5378e3fe53 Add special relocation type for VC4 jump instructions.
--HG--
branch : dtrg-videocore
2013-05-17 22:40:50 +01:00
David Given 11377070fd Update distribution files.
--HG--
branch : dtrg-buildsystem
2013-05-15 23:46:15 +01:00
David Given aaa3f14a79 Fix build error in opt which was causing all code, everywhere, to be broken.
Remember to build opt2 too.

--HG--
branch : dtrg-buildsystem
2013-05-15 22:09:28 +01:00
David Given e9233b4712 Build ego.
--HG--
branch : dtrg-buildsystem
rename : util/arch/build.mk => util/ego/build.mk
2013-05-15 21:14:06 +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 81778b603f Merge updates from trunk.
--HG--
branch : dtrg-buildsystem
2013-05-13 12:37:27 +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
David Given d89f172841 Change fatal() and error() to use varargs. 2013-05-10 12:04:21 +01:00
David Given d91a1dc1a6 Merge changes from branch: linux68k platform, linuxppc platform (partially
working), and miscellaneous changes to support these.
2013-05-09 18:14:16 +01:00
David Given b9b808e01a Apply George Koehler's aelflod fix for generating non-EM_386 binaries.
Adjust platforms to use it. Fix some bugs in the linux386 platform.

--HG--
branch : dtrg-experimental-powerpc
2013-05-09 15:54:23 +01:00
David Given 99d7f513f2 Properly error out if something goes wrong rather than ploughing ahead
anyway.

--HG--
branch : dtrg-experimental-powerpc
2013-05-09 11:20:36 +01:00
David Given c93cb69959 Check in incomplete Linux PowerPC and M68K work.
--HG--
branch : dtrg-experimental-powerpc
2013-05-08 00:48:48 +01:00
George Koehler c8fdcff960 Some fixes for aelflod and aslod.
Copy rhead() and rsect() from aslod to aelflod, so aelflod can work
for machine with 64-bit long.

In aelflod, fix ELF header so file(1) no longer reports "corrupted
section header size".
2013-04-24 19:57:23 -04:00
George Koehler 0fc7fd5d33 Prevent segfault when trying to print an error message.
Use <stdarg.h> to pass arguments correctly, as ack/util/util.c
already uses <stdarg.h> the same way.
2012-10-24 13:44:50 -04:00
David Given 4349d702fa Change from using platform-specific types to stdint platform-independent types
when reading the structure header.
2012-09-27 11:32:40 +01:00
George Koehler 7ef9b79c11 Merge deletion of many undead files. 2012-09-23 15:31:16 -04:00
George Koehler e7c79415b5 Prevent division by zero in aslod.
rhead() and rsect() had assumed sizeof(long) == 4, but OpenBSD/amd64
has sizeof(long) == 8.  The problem revealed itself when sect->os_lign
became zero, and align() divided by zero.
2012-09-21 22:51:12 -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 96ea0a5903 Fix more functions in util/ack for 64-bit hosts.
This continues the fix from changeset aabde0589450.  We must use
va_list to forward the arguments, because some of the arguments might
be 64-bit pointers.  A pointer does not fit in an int.
2012-09-07 16:28:10 -04:00
David Given 6ea172d0d9 Fix a 64-bitness issue (removed some untyped K&R C code that assumed ints
and pointers were the same size).
2012-02-27 22:36:36 +00:00
Ceriel Jacobs 1072a8797e Added atol() that ignores overflow, so that unsigned long constants are dealt with properly 2011-06-15 11:13:48 +02:00
Ceriel Jacobs 2483e5723d Fixed CFU 2011-06-15 10:56:58 +02:00
cjhjacobs 58613009f8 Fixed bug reported on tack-devel mailing list on 20-3-2011 2011-05-18 19:19:19 +02:00
David Given b6dfaefeff Removed file that the CVS conversion procedure left in (when it shouldn't have). 2011-03-20 20:47:10 +00:00
dtrg c326f3c6a3 Remove references to using-machine-name-for-compiler, as we don't do that any more. 2010-08-09 22:47:33 +00:00
dtrg 5a872eed38 Prevent build failure on modern Bisons (which are more picky than the old yacc this was written for). 2010-08-01 10:36:01 +00:00
dtrg ee72886e54 Renamed 'switch' variable to avoid conflict with a keyword in modern awks. 2010-08-01 10:35:04 +00:00
dtrg 2c54f8c742 Renamed getline() to getln() to avoid conflict with glibc's version. 2010-08-01 10:34:27 +00:00
dtrg 494d9a3e4a Now runs descr files through the ANSI C preprocessor, rather than the K&R one (which no longer exists). 2007-04-29 21:23:55 +00:00
dtrg 24ea8aee3d Updated for the 6.0pre2 release. 2007-04-24 20:45:58 +00:00
dtrg f6085fb234 Updated use of headers to compile cleanly. 2007-04-24 19:33:53 +00:00
dtrg ae9ac25f45 Modified to run ncgg input files through the ANSI preprocessor rather than the K&R one. 2007-04-23 23:40:59 +00:00
dtrg f471d2e618 Added the aelflod tool for generating ELF executables. Added documentation for aelflod and ashow. Now installs the documentation when built. 2007-04-23 23:40:10 +00:00
dtrg 6a0dd9377d Removed a dynamically generated file from the distribution. 2007-02-25 22:49:22 +00:00
dtrg 040151dd76 Removed some explicit (and wrong) redeclarations of system
functions.
2007-02-25 20:58:16 +00:00
dtrg b611731ec3 Updated .distr files for the new release. 2007-02-25 12:51:55 +00:00
dtrg 6d58210806 em_table is now in /h, not /etc. 2007-02-25 12:51:21 +00:00
dtrg 0f16e7540d new_table is now in /util/data, not /etc. 2007-02-25 12:49:04 +00:00
dtrg 903796a817 Now installs the man page. 2007-02-25 12:48:06 +00:00
dtrg 0974fa0e28 Remove non-standard .SB tags. 2007-02-25 12:47:50 +00:00
dtrg 26a9b76507 Added pregenerated versions of the LLgen source files (to ease
bootstrapping issues).
2007-02-24 02:01:57 +00:00
dtrg 478d0b1d8a Fixed a compilation error that was causing opt to not have its
peephole optimisation tables, which would make it generate
duff code.
2007-02-20 00:27:01 +00:00
dtrg 1c7bb87041 Fixed a bug in the maximum segment calculation. 2006-11-11 23:00:55 +00:00
dtrg 30b980bf7e Added a pmfile to allow LLgen to be built as part of the ACK again. 2006-11-11 22:58:30 +00:00
dtrg c0ecde554a Added support for anm, asize, ashow, astrip and the new aslod tool. 2006-10-16 23:25:56 +00:00
dtrg 47e1c27c05 Added new aslod tool for making memory dumps. 2006-10-16 23:25:27 +00:00
dtrg 12683dd8c6 Sanitised the use of #include files to more properly conform to the standards. 2006-10-16 23:20:11 +00:00
dtrg dbe10d2c19 Updated to the version 0.1 of Prime Mover (which involves some syntax changes). 2006-10-15 00:28:12 +00:00
dtrg 1e4ca91a8b Modified to install aal's manpage. 2006-07-30 23:45:35 +00:00
dtrg 45b4fef7d6 Rationalised use of #includes to be more standards-compliant. 2006-07-30 23:40:35 +00:00
dtrg 30e34f493f Rationalised use of #includes to be more standards-compliant. 2006-07-26 18:22:02 +00:00
dtrg 8558656665 Now avoids piping shell scripts into a new instance of sh, instead
using a subshell.
2006-07-26 12:29:47 +00:00
dtrg dc5d08b2a3 Modified to include the appropriate header file rather than (badly)
prototyping syscalls itself.
2006-07-26 12:28:56 +00:00
dtrg 3435e8d6ed Modified to not try to unlink directories when installing. 2006-07-25 23:29:12 +00:00
dtrg b3b2ec567f Updated version number. 2006-07-25 23:24:39 +00:00
dtrg 7068d0d301 Modified to use rename() instead of link()/unlink() to rename files. 2006-07-25 23:24:20 +00:00
dtrg f756747414 Updated to the latest version of pm which installs files with symlinks. 2006-07-25 23:22:58 +00:00
dtrg b24e1f5aae Updated to the latest version of pm. 2006-07-25 13:28:35 +00:00
dtrg 1799cb0706 Added a workaround for an OSX compiler bug. 2006-07-23 20:33:26 +00:00
dtrg f39d595f98 Updated to the latest version of pm. 2006-07-23 20:07:19 +00:00
dtrg 014be56fb0 Replaced calls to the custom strindex() and strrindex() functions with the
exactly equivalent and standard strchr() and strrchr() functions instead.
2006-07-23 20:01:02 +00:00
dtrg 05d3be79cd Removed a really unpleasant test for whether a pointer points at a string
constant or not by comparing it with 'end', which presumably points at
the top of the BSS. In fact, on Linux it evaluates to NULL, and on OSX it
doesn't exist at all, so it appears to be unnecessary.
2006-07-23 19:38:13 +00:00
dtrg 345f4c8978 Modified to avoid creating a zero-length iargs array, which some compilers
(OSX) do not create a symbol for.
2006-07-23 18:29:38 +00:00
dtrg eed5d461e4 cpp now gets installed in the right place. 2006-07-23 17:52:23 +00:00
dtrg 7af0c5696d cpp now gets installed in the right place. 2006-07-22 20:58:27 +00:00
dtrg 558a1ef405 led now gets installed into the right place. 2006-07-22 20:52:44 +00:00
dtrg 8499270aef Added support for the esize object inspection tool. 2006-07-22 20:10:41 +00:00
dtrg aa2dab31cf Rationalised use of #includes to be more standards-compliant. 2006-07-22 20:08:08 +00:00
dtrg 113383e31c Added support for the led link editor. 2006-07-22 20:04:41 +00:00
dtrg f232b4dc29 Rationalised use of #includes to be more standards-compliant. 2006-07-22 17:58:49 +00:00
dtrg 304c0e21a0 Added support for the top target peephole optimiser. 2006-07-22 12:31:19 +00:00
dtrg fdcdaadcb8 Rationalised use of #includes to be more standards-compliant. 2006-07-22 12:28:20 +00:00
dtrg 744d0ca7be Removed a huge, ancient comment dating from the genmake days. 2006-07-22 12:27:31 +00:00
dtrg 1a037b9685 Added support for the ego global optimisation suite. 2006-07-22 00:52:01 +00:00
dtrg f371b251d2 Rationalised use of #includes to be more standards-compliant. 2006-07-22 00:46:16 +00:00
dtrg d220081198 Changed to declare symbols as extern rather than just mentioning
them without qualification.
2006-07-22 00:45:51 +00:00
dtrg 86e20aa483 Added a concrete definition of nrglobals, because this was not always happening
otherwise.
2006-07-22 00:44:52 +00:00
dtrg 3afd3e4cb4 Updated version number. 2006-07-21 11:25:05 +00:00
dtrg c0c8695ea4 Now resolves symlinks when creating releases (which avoids including a symlink to pm in the distribution, and not pm itself). 2006-07-21 11:24:46 +00:00
dtrg 154b23cd39 Updated version number. Corrected some typos. 2006-07-21 11:19:42 +00:00
dtrg 34ae7c4634 Removed duplicate (and incorrect) system function declarations. 2006-07-21 11:17:18 +00:00
dtrg 70218cfeed Updated to the latest version of pm. 2006-07-21 11:15:14 +00:00
dtrg 685e85002e Rearranged the algorithm in get_text() to fix a memory overrun. 2006-07-21 09:28:36 +00:00
dtrg 097c640a6c First version in CVS. 2006-07-20 23:24:28 +00:00
dtrg 22db34a460 Fixed revision history. 2006-07-20 23:10:07 +00:00
dtrg cf461cd82f First version in CVS. 2006-07-20 23:04:28 +00:00
dtrg 35f2f8b043 Rationalised use of #includes to be more standards-compliant. 2006-07-20 23:04:15 +00:00
dtrg cf4417431f Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-20 23:02:37 +00:00
dtrg 6717b9e700 Changed configuration to now use malloc()/free() rather than sbrk(). 2006-07-20 22:59:25 +00:00
dtrg db11db0cac Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-19 14:09:25 +00:00
dtrg 6073ee934e Rationalised use of #includes to be more standards-compliant. 2006-07-19 14:09:05 +00:00
dtrg 57084134e5 Modified to no longer build LLgen, as it is now distributed seperately. 2006-07-18 17:34:30 +00:00
dtrg d722986e66 Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-18 17:20:46 +00:00
dtrg 1ed24cab9b No longer generates zero bytes in the script's output file. 2006-07-18 17:20:05 +00:00
dtrg 9ca41cf4b6 Worked around unput() not being strictly legal in the tail code section of a yacc input file. 2006-07-18 17:19:20 +00:00
dtrg cd09c29949 Rationalised use of #includes to be more standards-compliant. 2006-07-18 17:18:42 +00:00
dtrg f5bbc20093 Removed unnecessary commas seperating yacc tokens, to prevent warnings. 2006-07-18 17:17:14 +00:00
dtrg 4c0a0e6119 Rationalised use of #includes to be more standards-compliant. 2006-07-18 17:10:29 +00:00
dtrg 8ea67498ed Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-18 17:10:18 +00:00
dtrg e864bf235e Split LLgen off to be self-contained, and not necessarily part of the ACK. Replaced its build system with one based on pm. Rewrote the README. Updated the license text to match the overriding license common to all the ACK. 2006-02-04 00:57:04 +00:00
dtrg 953a565a10 Moved LLgen documentation from the main ACK documentation directory into LLgen's own documentation directory. 2006-02-04 00:43:32 +00:00
dtrg dd57d79b1b Modernised usage of system header files. 2006-02-04 00:37:19 +00:00
dtrg 71a92846dd Modernised usage of system header files. 2006-02-03 22:23:37 +00:00
dtrg c39e85da63 Modernised usage of system header files. Changed the patch buffer (which allowed the library path to be modified with a hex editor) to an environment variable instead. 2006-02-03 22:23:11 +00:00
dtrg 4c0b3bb40f Modernised usage of system header files. 2006-01-24 22:29:19 +00:00
cjhjacobs 26889d3762 Fix: did not deal with quotes in macro definitions properly 2005-06-30 16:54:15 +00:00
dtrg 4ed4d8423f Added some prototyping to stop a compile error with gcc 4. 2005-06-25 13:49:06 +00:00
dtrg f2046954e6 Cleaned up the struct sgtty workaround and made it more generic. 2005-06-24 22:11:27 +00:00
dtrg 779fe568fc Removed an assumption that 'stdin' is a constant, which it's not on Linux. (You can't use it as an initialiser when declaring a global variable.) 2005-06-24 22:10:24 +00:00
dtrg 9bc8c07deb Replaced references to /usr/tmp with references to /tmp. 2005-06-24 22:08:47 +00:00
dtrg 70ef6fe52e Applied interim patches to make the interpreter compile on Linux. (Linux doesn't support struct sgtty; all this code should probably be rewritten to use termios instead, if I've understood it correctly.) 2005-06-24 21:42:11 +00:00
ceriel 8f69a0ca44 Fix 2002-09-11 13:32:57 +00:00
ceriel 1e32788ad1 Added missing files to .distr 2002-09-11 13:17:00 +00:00
ceriel 053ba2d164 ... 2002-09-10 13:40:14 +00:00
ceriel ee2c7069e4 Prevent double fclose 2002-08-26 14:27:15 +00:00
ceriel 4556d261d8 ??? 2002-04-04 12:33:15 +00:00
ceriel 55dbc99000 Updated copyright 1999-04-23 14:15:43 +00:00
ceriel 6ca98e7102 Adapted copyright notice 1999-03-18 15:34:27 +00:00
ceriel f0a7a313fc Fix: did not always produce error message 1998-11-10 14:26:06 +00:00
ceriel d6e0e461f7 Corrected Makefile 1997-09-04 15:49:46 +00:00
ceriel f8fd2aa273 Removed superfluous ; 1997-06-16 13:07:37 +00:00
ceriel e38b178317 Many modifications, mostly in comment 1997-05-15 12:03:05 +00:00
ceriel cebde164bb Prevent warning about unused labels 1997-04-02 10:42:06 +00:00
ceriel 8ea5d257c4 improved error reporting, added -DNON_CORRECTING 1997-02-21 15:44:44 +00:00
ceriel 664d3fc8d3 some minor fixes 1997-02-21 15:44:10 +00:00
ceriel 13fea7102b Updated 1997-02-21 12:23:04 +00:00
ceriel c2607fdf0f Added non-correcting error recovery stuff 1997-02-21 11:27:57 +00:00
ceriel a44875cf00 bug fix: code referred to token attribute of wrong token! 1997-02-17 15:14:55 +00:00
ceriel 56033dc0c1 Added -n flag 1996-11-21 10:14:26 +00:00
ceriel a44bbb3977 Fixed a couple of minor bugs 1996-11-19 13:27:56 +00:00
ceriel 150db958da Fixed typo 1996-10-22 14:34:16 +00:00
ceriel 4baa1312a8 removed 1995-12-06 14:15:11 +00:00
ceriel cdb362b628 removed 1995-12-06 14:04:51 +00:00
ceriel 550095a5d0 Removed Version.c 1995-12-06 09:52:54 +00:00
ceriel 2985469116 Fix: wrong offsets for locals when < -32768, installation error for 'show' 1995-11-08 11:09:14 +00:00
ceriel c1738933d7 Fix: wrong offsets for locals when < -32768 1995-11-08 11:08:09 +00:00
ceriel a8b1f8e347 Header file was included twice 1995-11-01 15:59:33 +00:00
ceriel b9a67e72ca use stdarg when compiling with ANSI C compiler 1995-08-18 07:26:18 +00:00
ceriel 1aa9149ff9 Changed for sparc_solarisdescr 1995-08-18 07:24:18 +00:00
ceriel c3855160fb use stdarg when compiling with ANSI C compiler 1995-08-17 14:36:05 +00:00
ceriel acdb874527 use stdarg when compiling with ANSI C compiler, and some other minor changes 1995-08-17 13:33:55 +00:00
ceriel 32bcf11ab9 Re-ordered for incompatible Linux shell 1995-08-15 14:59:28 +00:00
ceriel f8cbcf1b4f Don't use SIGEMT; it is not portable 1995-08-15 09:10:39 +00:00
ceriel f8d6337862 'ed -' is no longer supported by some systems. Use 'ed -s' 1995-08-14 15:09:59 +00:00
ceriel f34bf4b487 removed dependency on /usr/include/varargs.h 1995-08-14 15:08:46 +00:00
ceriel 525eb1f1a4 Fixed typo 1995-07-31 09:17:14 +00:00
ceriel 7b6d8fbe56 Added copyright notice 1995-07-31 09:10:42 +00:00
ceriel c9153e6b9b Set B_busy 1995-07-25 16:49:15 +00:00
ceriel 3883860106 Added Posix names 1995-06-28 09:46:39 +00:00
ceriel 32c692d93b Use TARGETHOME for manual page 1995-03-17 14:11:47 +00:00
ceriel 911b0a43d8 Fix: never replace LAR/SAR by AAR LOI/STI if descriptor is not in ROM 1995-03-17 12:32:47 +00:00
ceriel d5505f2f02 Also create sparc_solarisdescr 1995-03-17 11:00:29 +00:00
ceriel d1435f4fc6 Added an option to strip the grammar from its actions 1995-02-24 12:10:44 +00:00
ceriel 68cebfb733 do not allow ',' as separator in parameter declarations; this results in bad C-code 1994-12-20 12:47:48 +00:00
ceriel 7393f8923c Many changes:
- added some data flow stuff
- many cosmetic changes
1994-12-06 09:12:21 +00:00
ceriel ef0ecb31b2 Fix: sometimes produced branch to non-existing label 1994-11-29 14:53:02 +00:00
ceriel 33da68f7e2 made statbuf static, so that is is zero when not initialized 1994-11-14 12:34:50 +00:00
ceriel a1a816ddc2 Avoid some empty if- and else- parts. gcc -Wall does not like it 1994-10-20 12:43:35 +00:00
ceriel 4851c0c9f3 Fine tuning of some patterns 1994-10-19 14:09:26 +00:00
ceriel f54d79e41a removed un-used variable 1994-07-06 08:34:27 +00:00
ceriel 5c83e7dbb5 Header --> Id 1994-06-24 11:31:16 +00:00
ceriel 11f3094b51 Fix: forgot to initialize malloced mem 1994-06-23 10:00:01 +00:00
ceriel 2b54fa3a19 Fix: also redefine LLsafeerror 1994-06-23 09:58:30 +00:00
ceriel 656fb00e9b Fix: error recovery sometimes skipped tokens it needed later on 1994-04-19 09:38:00 +00:00
ceriel 958aced01b Generate octal char constants instead of ints for LLsets 1994-04-12 13:53:38 +00:00
ceriel 8a670148e4 changed Header to Id 1994-03-11 10:37:39 +00:00
ceriel 805a0a4b66 Added -DNDEBUG to compilation flags 1994-02-25 14:14:55 +00:00
ceriel af0e9371e9 call abort() only when NDEBUG is not defined 1994-02-25 14:01:54 +00:00
ceriel 67c750a70c Improved CSA some more 1993-11-24 12:39:19 +00:00
ceriel 862f5da86d use 0xFFFF mask for printing shorts, and work around gcc 2.4.5 bug 1993-11-18 15:35:03 +00:00
ceriel 90134a3bea Some minor changes 1993-11-17 10:25:17 +00:00
ceriel cc61337a9f signal, second arg is void function 1993-11-16 12:03:22 +00:00
ceriel 0c60f4c22f Fixed several lint complaints 1993-11-16 11:35:23 +00:00
ceriel 9fbd4783a7 Fixed bug with "/*" 1993-11-15 09:29:39 +00:00
ceriel 49f8a5a61b Fixed some minor problems 1993-11-12 16:59:06 +00:00
ceriel a4a2ae8f96 catch is a signal arg, and should be void catch() 1993-11-12 16:57:15 +00:00
ceriel 03405742a3 noodstop is a signal arg, and should be void noodstop() 1993-11-12 16:53:24 +00:00
ceriel 332b6cb337 Minor changes: gave double def of __ctype with gcc on solaris 2 1993-11-12 15:16:08 +00:00
ceriel 990bf1ac74 onintr must be void 1993-11-12 12:53:28 +00:00
ceriel b95ae2fa70 Many changes, mostly for Solaris 2 1993-11-10 15:11:28 +00:00
ceriel 4539174f47 Added -DNDEBUG to compile flags 1993-11-10 15:07:55 +00:00
ceriel 9dae71ae08 Updated for C_ prototypes 1993-11-10 15:07:12 +00:00
ceriel 854597cd2d Updated for C_ prototypes 1993-11-10 14:40:27 +00:00
ceriel 7c473ca0ed Added -DNDEBUG to compile flags 1993-11-10 14:38:32 +00:00
ceriel 528112d9bd Bug fix for dlb routines and C_ are now void 1993-11-10 14:22:26 +00:00
ceriel 4f3e07061e Added -DNDEBUG to compile flags 1993-11-10 14:21:21 +00:00
ceriel 8c849f20f7 Fix: CSA was not quite right 1993-11-10 13:00:01 +00:00
ceriel f33df43f9a Fix: had array bound error 1993-11-10 12:58:26 +00:00
ceriel c9ec055176 Define NDEBUG if you don't want assertions 1993-10-22 14:30:43 +00:00
ceriel 4f2c705501 Some more space for file names 1993-10-12 09:45:59 +00:00
ceriel 549dfcc99d Fixed: functions were implicitly declared extern and later static 1993-10-07 17:47:26 +00:00
ceriel 38a269fc37 Added sparc_solaris 1993-10-07 17:41:19 +00:00
ceriel 2233b6973b Several fixes; ported to Solaris 2 1993-10-06 11:45:13 +00:00
ceriel 18967fad9a Fixed make.hfiles; some "shells" did not accept it 1993-08-05 13:00:40 +00:00
ceriel 042d7b2275 Improved 'stop in' mechanism, and prevent core dump ir currlang is not set 1993-06-09 14:18:43 +00:00
ceriel 40569c479e Mention filename for some error messages 1993-06-08 13:02:01 +00:00
ceriel 7e30c7d648 Fixed for empty parameter lists 1993-05-10 14:02:52 +00:00
ceriel 04d3c7152c Changed order of declarations 1993-02-05 18:21:46 +00:00
ceriel 256151c7e4 Added some patterns and fixed error in constant multiplication 1993-02-03 10:10:07 +00:00
ceriel fd0bc5d531 Fix in tes mechanism: CAL and CAI 1993-01-12 15:48:39 +00:00
ceriel 2361e37811 Fix: used data from freed memory 1992-12-08 17:44:01 +00:00
ceriel ca4461dc4c Added LL_MAXTOKNO 1992-11-19 15:37:52 +00:00
ceriel 6896679afd Added some patterns involving DUPs 1992-09-01 11:16:20 +00:00
ceriel af5ad235c9 Small change in register allocation criteria 1992-09-01 11:13:42 +00:00
ceriel ee6d91a1d4 Fix for sparc description 1992-09-01 10:41:37 +00:00
ceriel 0eb2e0dc80 Fix previous 'fix' 1992-07-23 11:51:39 +00:00
ceriel a56e1f25ff Was wrong when compiled with ANSI compiler 1992-07-22 13:49:15 +00:00
ceriel 016273ba99 And some more ... 1992-07-22 13:45:08 +00:00
ceriel 4adaf3165f Added some patterns 1992-07-22 13:37:27 +00:00
ceriel 7c7475bb3a fixed lint complaint 1992-07-21 14:40:23 +00:00
ceriel 938bbb9ce8 Fix evaluation order problem 1992-07-21 11:23:24 +00:00
ceriel 8ab530baef Fixed bug in UCFLAGS 1992-07-13 10:28:08 +00:00
ceriel d58d691472 Fixed V7 and SYS_V utime problem 1992-07-10 15:22:01 +00:00
ceriel 80f5ecf637 strip did not truncate file 1992-07-09 14:02:43 +00:00
ceriel 0b063462ef Improved N_SOL handling 1992-07-02 11:15:18 +00:00
ceriel 45d0d9f68f Removed # in commands 1992-06-26 12:54:57 +00:00
ceriel 44a1c5620c Removed # in commands, changed mechanism for computing mem used 1992-06-26 12:47:07 +00:00
ceriel 50e8baa624 Removed # in commands, removed call to _cleanup() 1992-06-26 12:42:31 +00:00
ceriel 06e487359b Changed mechanism for coputing amount of memory used 1992-06-26 12:38:10 +00:00
ceriel aba0ed2f52 Made a declaration a little less suspicious, and removed # from proto.make 1992-06-25 17:41:51 +00:00
ceriel 2cb19d3a30 Corrected problem in reading symbol table: t14=15, t15=16 did not work properly 1992-05-20 10:57:42 +00:00
ceriel bc42e31518 Fixed problem with repl_mul(); it was called far too often 1992-04-24 12:39:58 +00:00
ceriel fe0a904894 Corrected manual pages 1992-04-23 12:53:03 +00:00
ceriel b4f6c3fa00 Documented -gdb flag 1992-04-15 10:24:15 +00:00
ceriel a0aa85fa4e fixed linting 1992-03-02 16:47:03 +00:00
ceriel a6a1b1d3d0 initialize inctable better 1992-02-26 13:38:34 +00:00
ceriel 0bfa4970c5 Added i386 description 1992-02-11 16:59:43 +00:00
ceriel 646bd0e51f small fix for compatibility with different make's 1992-01-22 11:25:52 +00:00
ceriel 56ab70f21f Added dbsym.c 1991-12-19 09:30:53 +00:00
ceriel 47a6b4b526 Ported to 80386 (problem: different read() semantics) 1991-12-18 14:36:26 +00:00
ceriel 12149f5858 Added pop_push.h 1991-12-18 09:47:19 +00:00
ceriel 70b535c368 No longer use ushort 1991-12-18 09:45:26 +00:00
ceriel de758867f8 Fixed typo in previous fix 1991-12-18 09:14:25 +00:00
ceriel 168634cd0b Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:49:18 +00:00
ceriel df1ed9426d Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:28:58 +00:00
ceriel f30ffd415c Changed order in ceg/list 1991-12-16 16:06:29 +00:00
ceriel c6f6df87ae Improved installation of make_ files 1991-12-16 15:35:14 +00:00
ceriel 80b250950e Do not use '#undef aap xxx'; it is not allowed for ANSI C 1991-12-16 14:34:06 +00:00
ceriel d20534521e be consistent in naming of itemtab.h 1991-12-12 16:02:59 +00:00
ceriel 8394d5a4e1 Added 'extern' 1991-12-12 16:01:46 +00:00
ceriel b0e631d402 Fixed comment 1991-12-12 13:01:00 +00:00
ceriel a93813c1f6 Made acceptable for our ANSI C compiler 1991-12-03 11:03:58 +00:00
ceriel 9e2361fc8f bug fix in generating prototypes 1991-12-03 10:56:40 +00:00
ceriel c36ae7020f Fixed for ANSI-C part 1991-12-02 15:25:01 +00:00
ceriel 7ec968fb03 Always also produce ANSI-C, depending on __STDC__ and __cplusplus 1991-12-02 09:15:04 +00:00
ceriel ec47c06ad7 bug fix in repl_mul and moved call to it so that it is done after pattern matching 1991-11-28 16:59:25 +00:00
ceriel 505494c560 Improved for lint 1991-11-27 13:38:51 +00:00
ceriel 35260bae58 produce ANSI C under -a option 1991-11-26 15:38:41 +00:00
ceriel ca89734a36 Another minor change in manual page 1991-11-25 09:41:30 +00:00
ceriel e0956f63db Minor change in manual page 1991-11-25 09:39:31 +00:00
ceriel 698130c4e2 removed makedepend 1991-11-23 12:43:11 +00:00
ceriel 3a2211512d Removed makedepend 1991-11-23 12:26:02 +00:00
ceriel aa702fa855 Bug fix in multiplication optimization 1991-11-23 12:17:18 +00:00
ceriel 6fa0e5bfb0 Changed copyright notice, made installation less dependent on ACK 1991-11-23 10:41:43 +00:00
ceriel 2b6f5b9b8d Avoid use of 'you' 1991-11-22 13:18:57 +00:00
ceriel 2291dff954 updated manual page 1991-11-20 16:45:25 +00:00
ceriel 17352b8b8d Added code to optimize multiplies with constants 1991-11-20 15:53:11 +00:00
ceriel e9a6af1a42 anm also works on aal archives now 1991-11-18 09:46:53 +00:00
ceriel 839165633b Fixed manual page 1991-11-15 14:41:41 +00:00
ceriel 9c507cc10a Updated ack manual page 1991-11-15 13:37:36 +00:00
ceriel 1af5c80b1b Also preprocess when user explicitly askes for it through -c.i 1991-11-15 12:50:13 +00:00
ceriel eac501941f '\v' is not a K&R character 1991-11-07 09:45:09 +00:00
ceriel 650a132457 Fixed typo 1991-11-07 09:39:30 +00:00
ceriel 17014578be Also remove scan.c on cleanup 1991-11-07 09:35:35 +00:00
ceriel 791246001f '\v' is not a K&R character 1991-11-07 09:34:02 +00:00
ceriel 2e58c2438f '\v' is not K&R C 1991-11-06 14:36:25 +00:00
ceriel 4e99d889ff Changed manual page installation mechanism 1991-11-05 15:31:14 +00:00
ceriel 3da953fa85 Added grind support 1991-11-01 11:53:42 +00:00
ceriel 03e1bea097 Added some tests and changed ordering mechanism 1991-11-01 10:37:26 +00:00
ceriel 0633c900a8 Some fixes to ashow, and also install it 1991-10-31 11:04:02 +00:00
ceriel 0b32f6d32f prevent null reference 1991-10-31 10:01:34 +00:00
ceriel 35dc8e74d0 Improved lint entry 1991-10-29 09:26:01 +00:00
ceriel d747702ae9 Corrected lintlib entry 1991-10-29 09:24:48 +00:00
ceriel 7213f2527b Pass COPTIONS, not CFLAGS 1991-10-25 15:23:01 +00:00
ceriel 69026d6c17 Bug fix: used field of freed struct 1991-10-25 14:27:59 +00:00
ceriel 49a64df069 do not depend on sys/wait.h, it does not always exist 1991-10-25 11:18:29 +00:00
ceriel 4daf59e3d2 Made more portable by not depending on a.out.h file 1991-10-22 13:31:36 +00:00
ceriel 0c8514a9ed NSIG is not always defined 1991-10-22 09:07:31 +00:00
ceriel 1bde03203a Fixed typo 1991-10-21 14:17:32 +00:00
ceriel 615e30bdd4 Added compilation rule for scan.c 1991-10-21 14:13:29 +00:00
ceriel 51f8a3b798 cleanup better 1991-10-21 13:59:48 +00:00
ceriel e8d165a4a6 cleanup better 1991-10-21 13:26:50 +00:00
ceriel 80293fbc82 Make target writable 1991-10-18 10:07:38 +00:00
ceriel 96893d0092 Make targets writable 1991-10-18 09:58:52 +00:00
ceriel 147bb196b2 generate Version.c 1991-10-16 13:07:28 +00:00