ack.git
6 years agoImplement single-line C++-style comments.
David Given [Sun, 2 Sep 2018 10:14:59 +0000 (12:14 +0200)]
Implement single-line C++-style comments.

Fixes: #118

6 years agoRun through clang-format before editing.
David Given [Sun, 2 Sep 2018 10:04:33 +0000 (12:04 +0200)]
Run through clang-format before editing.

6 years agoRun through clang-format before editing.
David Given [Sun, 2 Sep 2018 09:49:40 +0000 (11:49 +0200)]
Run through clang-format before editing.

6 years agoRun files through clang-format before editing.
David Given [Sun, 2 Sep 2018 09:36:15 +0000 (11:36 +0200)]
Run files through clang-format before editing.

6 years agoConvert CRLF into LF on read; this should avoid problems with parsing CRLF files.
David Given [Sun, 2 Sep 2018 09:30:20 +0000 (11:30 +0200)]
Convert CRLF into LF on read; this should avoid problems with parsing CRLF files.

Fixes #117.

6 years agoRun files through clang-format before editing.
David Given [Sun, 2 Sep 2018 09:16:06 +0000 (11:16 +0200)]
Run files through clang-format before editing.

6 years agoMerge.
David Given [Sat, 1 Sep 2018 13:34:36 +0000 (15:34 +0200)]
Merge.

6 years agoThe default installation location should be /usr/local.
David Given [Sat, 1 Sep 2018 13:34:01 +0000 (15:34 +0200)]
The default installation location should be /usr/local.

6 years agoMerge pull request #112 from davidgiven/dtrg-te
David Given [Sat, 1 Sep 2018 09:49:28 +0000 (11:49 +0200)]
Merge pull request #112 from davidgiven/dtrg-te

Add tea-ci CI for Windows builds

6 years agoDisable the msys32 build because it doesn't work (due to brk issues).
David Given [Sat, 1 Sep 2018 09:43:52 +0000 (11:43 +0200)]
Disable the msys32 build because it doesn't work (due to brk issues).

6 years agoAnother typo fix.
David Given [Sat, 1 Sep 2018 09:34:29 +0000 (11:34 +0200)]
Another typo fix.

6 years agoTypo fix.
David Given [Sat, 1 Sep 2018 09:32:26 +0000 (11:32 +0200)]
Typo fix.

6 years agoExperiment with a build matrix and msys32.
David Given [Sat, 1 Sep 2018 09:31:45 +0000 (11:31 +0200)]
Experiment with a build matrix and msys32.

6 years agoAdd bison and flex.
David Given [Sat, 1 Sep 2018 09:25:03 +0000 (11:25 +0200)]
Add bison and flex.

6 years agoNo luck with ninja --- make should work?
David Given [Sat, 1 Sep 2018 09:23:39 +0000 (11:23 +0200)]
No luck with ninja --- make should work?

6 years agoUpdate apt before installing.
David Given [Sat, 1 Sep 2018 09:19:16 +0000 (11:19 +0200)]
Update apt before installing.

6 years agoTypo fix.
David Given [Sat, 1 Sep 2018 09:18:25 +0000 (11:18 +0200)]
Typo fix.

6 years agoCygwin setup is very slow, so put sh-on-windows first for testing.
David Given [Sat, 1 Sep 2018 09:17:50 +0000 (11:17 +0200)]
Cygwin setup is very slow, so put sh-on-windows first for testing.

6 years agoLet's try sh-on-windows as well.
David Given [Sat, 1 Sep 2018 09:12:14 +0000 (11:12 +0200)]
Let's try sh-on-windows as well.

6 years agomsys32 doesn't work; try Cygwin instead.
David Given [Sat, 1 Sep 2018 09:07:28 +0000 (11:07 +0200)]
msys32 doesn't work; try Cygwin instead.

6 years agoInstall ninja before building.
David Given [Sat, 1 Sep 2018 09:04:12 +0000 (11:04 +0200)]
Install ninja before building.

6 years agoLooks like sh-on-windows isn't working.
David Given [Sat, 1 Sep 2018 09:02:48 +0000 (11:02 +0200)]
Looks like sh-on-windows isn't working.

6 years agoAdd a drone.yml for tea-ci.
David Given [Sat, 1 Sep 2018 09:00:08 +0000 (11:00 +0200)]
Add a drone.yml for tea-ci.

6 years agoDon't try to use acct() on cygwin (which doesn't support it). Fixes: #111
David Given [Sat, 1 Sep 2018 08:41:31 +0000 (10:41 +0200)]
Don't try to use acct() on cygwin (which doesn't support it). Fixes: #111

6 years agoMerge pull request #110 from davidgiven/dtrg-warnings
David Given [Mon, 25 Jun 2018 20:29:47 +0000 (22:29 +0200)]
Merge pull request #110 from davidgiven/dtrg-warnings

Fix warnings and convert the Modula-2 library to ANSI C.

6 years agoWarning-fixed and ansified the Modula-2 library. dtrg-warnings
David Given [Mon, 25 Jun 2018 20:22:37 +0000 (22:22 +0200)]
Warning-fixed and ansified the Modula-2 library.

6 years agoMove the Modula-2 library includes into a directory in lang/m2 where they belong.
David Given [Sun, 24 Jun 2018 18:32:59 +0000 (20:32 +0200)]
Move the Modula-2 library includes into a directory in lang/m2 where they belong.

6 years agoMerge pull request #109 from davidgiven/dtrg-warnings
David Given [Sun, 24 Jun 2018 18:03:21 +0000 (20:03 +0200)]
Merge pull request #109 from davidgiven/dtrg-warnings

Rework the Linux include directories.

6 years agoAll the Linux include directories are the same, so common them all out into a
David Given [Sun, 24 Jun 2018 17:57:43 +0000 (19:57 +0200)]
All the Linux include directories are the same, so common them all out into a
single one, like OSX.

6 years agoMerge pull request #108 from davidgiven/dtrg-warnings
David Given [Sat, 23 Jun 2018 23:00:30 +0000 (01:00 +0200)]
Merge pull request #108 from davidgiven/dtrg-warnings

Warning-fix and protoise the basic library.

6 years agoWarning-fix and protoise the basic library.
David Given [Sat, 23 Jun 2018 22:35:51 +0000 (00:35 +0200)]
Warning-fix and protoise the basic library.

6 years agoMerge pull request #107 from davidgiven/dtrg-libc
David Given [Sat, 23 Jun 2018 22:21:29 +0000 (00:21 +0200)]
Merge pull request #107 from davidgiven/dtrg-libc

OpenBSD fixes

6 years agoMerge from trunk.
David Given [Sat, 23 Jun 2018 22:08:39 +0000 (00:08 +0200)]
Merge from trunk.

6 years agoRemove the dependency on the glibc-only byteswap.h.
David Given [Sat, 23 Jun 2018 22:01:06 +0000 (00:01 +0200)]
Remove the dependency on the glibc-only byteswap.h.

6 years agoRemove c99-isms.
David Given [Sat, 23 Jun 2018 21:56:34 +0000 (23:56 +0200)]
Remove c99-isms.

6 years agoRun through clang-format.
David Given [Sat, 23 Jun 2018 21:46:44 +0000 (23:46 +0200)]
Run through clang-format.

6 years agoMerge pull request #106 from davidgiven/dtrg-libc
David Given [Sat, 23 Jun 2018 21:28:21 +0000 (23:28 +0200)]
Merge pull request #106 from davidgiven/dtrg-libc

Refactor the libc

6 years agoRemove the attic.
David Given [Sat, 23 Jun 2018 21:16:22 +0000 (23:16 +0200)]
Remove the attic.

6 years agoMove mktemp to sys; attic getgrent as noone will ever use this.
David Given [Sat, 23 Jun 2018 21:15:42 +0000 (23:15 +0200)]
Move mktemp to sys; attic getgrent as noone will ever use this.

6 years agoMove the portable time code into core. clock() goes into sys (as it calls
David Given [Sat, 23 Jun 2018 17:49:29 +0000 (19:49 +0200)]
Move the portable time code into core. clock() goes into sys (as it calls
times()).

6 years agoMove time() into sys; change the name of the variable which controls it.
David Given [Sat, 23 Jun 2018 17:40:50 +0000 (19:40 +0200)]
Move time() into sys; change the name of the variable which controls it.

6 years agoMove the big gnarly functions like system() and popen() into sys, and make them
David Given [Sat, 23 Jun 2018 17:18:16 +0000 (19:18 +0200)]
Move the big gnarly functions like system() and popen() into sys, and make them
build.

6 years agoMove stdio into (mostly) sys.
David Given [Sat, 23 Jun 2018 16:54:40 +0000 (18:54 +0200)]
Move stdio into (mostly) sys.

6 years agoChange stdio to use atexit() rather than the internal __clean variable; this
David Given [Sat, 23 Jun 2018 16:35:45 +0000 (18:35 +0200)]
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.

6 years agoAll the opendir()/readdir() stuff is obsolete because it's all implemented in
David Given [Sat, 23 Jun 2018 16:25:26 +0000 (18:25 +0200)]
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.

6 years agoAdd the sys directory for libc functions which use system calls; move the
David Given [Sat, 23 Jun 2018 16:08:03 +0000 (18:08 +0200)]
Add the sys directory for libc functions which use system calls; move the
malloc functions in there.

6 years agoMove the errno functions into core.
David Given [Sat, 23 Jun 2018 15:52:15 +0000 (17:52 +0200)]
Move the errno functions into core.

6 years agoGet em22 working. Remove the leading-underscore system calls from its libsys.
David Given [Sat, 23 Jun 2018 13:57:57 +0000 (15:57 +0200)]
Get em22 working. Remove the leading-underscore system calls from its libsys.

6 years agoGet the pdp7 plat working; remove the leading-underscore syscalls.
David Given [Sat, 23 Jun 2018 13:18:26 +0000 (15:18 +0200)]
Get the pdp7 plat working; remove the leading-underscore syscalls.

6 years agoMade the rpi platform work with the new libc layout.
David Given [Sat, 23 Jun 2018 11:05:27 +0000 (13:05 +0200)]
Made the rpi platform work with the new libc layout.

6 years agoMade pc86 work with the new libc.
David Given [Sat, 23 Jun 2018 10:59:40 +0000 (12:59 +0200)]
Made pc86 work with the new libc.

6 years agoMade the two OSX platforms work with the new libc layout.
David Given [Sat, 23 Jun 2018 10:55:59 +0000 (12:55 +0200)]
Made the two OSX platforms work with the new libc layout.

6 years agoMake linuxppc work.
David Given [Sat, 23 Jun 2018 10:41:54 +0000 (12:41 +0200)]
Make linuxppc work.

6 years agoMade linux68k work; commoned up all the generic linux includes.
David Given [Sat, 23 Jun 2018 10:35:17 +0000 (12:35 +0200)]
Made linux68k work; commoned up all the generic linux includes.

6 years agoMake linux386 work with the new libc layout.
David Given [Sat, 23 Jun 2018 10:13:33 +0000 (12:13 +0200)]
Make linux386 work with the new libc layout.

6 years agoCreate a basic and probably wrong common unistd.h, which replaces the plat one.
David Given [Sat, 23 Jun 2018 09:46:55 +0000 (11:46 +0200)]
Create a basic and probably wrong common unistd.h, which replaces the plat one.
Made this work with cpm (but nothing else yet).

6 years agoMove assert into core.
David Given [Sat, 23 Jun 2018 09:16:06 +0000 (11:16 +0200)]
Move assert into core.

6 years agoWarning fix.
David Given [Sat, 23 Jun 2018 09:14:49 +0000 (11:14 +0200)]
Warning fix.

6 years agoDon't crash and burn if there are no tests to run.
David Given [Sat, 23 Jun 2018 09:14:40 +0000 (11:14 +0200)]
Don't crash and burn if there are no tests to run.

6 years agoMove the string-to-float functions into core, after marking them as
David Given [Sat, 23 Jun 2018 09:14:24 +0000 (11:14 +0200)]
Move the string-to-float functions into core, after marking them as
ACKCONF_WANT_FLOAT.

6 years agolibc floating point and stdio floating point can now be turned on and off using
David Given [Fri, 22 Jun 2018 22:04:14 +0000 (00:04 +0200)]
libc floating point and stdio floating point can now be turned on and off using
ACKCONF variables.

6 years agoRearrange the libc config files, ready for adding new options.
David Given [Fri, 22 Jun 2018 21:43:15 +0000 (23:43 +0200)]
Rearrange the libc config files, ready for adding new options.

6 years agoGet the em libc working again: remove the modula-2 termcap library, as it's a
David Given [Fri, 22 Jun 2018 21:17:14 +0000 (23:17 +0200)]
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.

6 years agoMerge from default.
David Given [Fri, 22 Jun 2018 20:43:02 +0000 (22:43 +0200)]
Merge from default.

6 years agoMerge pull request #105 from davidgiven/dtrg-ass
David Given [Fri, 22 Jun 2018 20:42:11 +0000 (22:42 +0200)]
Merge pull request #105 from davidgiven/dtrg-ass

Prevent ass crashing on error on 64-bit machines.

6 years agoReplace fake-varargs, which doesn't work on 64-bit machines, with real varargs.
David Given [Fri, 22 Jun 2018 20:29:52 +0000 (22:29 +0200)]
Replace fake-varargs, which doesn't work on 64-bit machines, with real varargs.

6 years agoReplace fake-varargs, which doesn't work on 64-bit machines, with real varargs.
David Given [Fri, 22 Jun 2018 20:29:52 +0000 (22:29 +0200)]
Replace fake-varargs, which doesn't work on 64-bit machines, with real varargs.

6 years agoMove some more libc functions into core.
David Given [Fri, 22 Jun 2018 20:20:02 +0000 (22:20 +0200)]
Move some more libc functions into core.

6 years agoRealise that the libc core can safely call other libc core functions, even if
David Given [Thu, 21 Jun 2018 21:24:23 +0000 (23:24 +0200)]
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.

6 years agoThe ctype functions are pure.
David Given [Thu, 21 Jun 2018 21:06:29 +0000 (23:06 +0200)]
The ctype functions are pure.

6 years agoThe maths library is pure.
David Given [Thu, 21 Jun 2018 21:00:33 +0000 (23:00 +0200)]
The maths library is pure.

6 years agoMoved the setjmp functions into the new pure directoy.
David Given [Thu, 21 Jun 2018 20:55:42 +0000 (22:55 +0200)]
Moved the setjmp functions into the new pure directoy.

6 years agoMove the pure locale functions into the new pure directory.
David Given [Thu, 21 Jun 2018 20:54:25 +0000 (22:54 +0200)]
Move the pure locale functions into the new pure directory.

6 years agoMove the pure stdlib functions into the new pure directory.
David Given [Thu, 21 Jun 2018 20:52:31 +0000 (22:52 +0200)]
Move the pure stdlib functions into the new pure directory.

6 years agoRethink the libc layout.
David Given [Thu, 21 Jun 2018 20:47:02 +0000 (22:47 +0200)]
Rethink the libc layout.

6 years agoMove the str and mem functions into the new src/core.
David Given [Thu, 21 Jun 2018 20:39:08 +0000 (22:39 +0200)]
Move the str and mem functions into the new src/core.

6 years agoRun libcc.ansi through clang-format.
David Given [Thu, 21 Jun 2018 20:33:47 +0000 (22:33 +0200)]
Run libcc.ansi through clang-format.

6 years agoMerge pull request #96 from kernigh/kernigh-emu-1
David Given [Wed, 20 Jun 2018 20:30:01 +0000 (22:30 +0200)]
Merge pull request #96 from kernigh/kernigh-emu-1

Fixes to build emulators, ass, int on OpenBSD

6 years agoMerge pull request #103 from davidgiven/dtrg-warnings
David Given [Mon, 18 Jun 2018 20:31:35 +0000 (22:31 +0200)]
Merge pull request #103 from davidgiven/dtrg-warnings

Fix a lot of warnings.

6 years agoTurns out that the compiler needs access to the libpc headers too; refactor
David Given [Mon, 18 Jun 2018 20:17:38 +0000 (22:17 +0200)]
Turns out that the compiler needs access to the libpc headers too; refactor
into a separate target to avoid build loops and make it work.

6 years agoAnsify and warning fix.
David Given [Sun, 17 Jun 2018 20:30:27 +0000 (22:30 +0200)]
Ansify and warning fix.

6 years agoRun C files through clang-format.
David Given [Sun, 17 Jun 2018 14:11:29 +0000 (16:11 +0200)]
Run C files through clang-format.

6 years agoUse cproto to extract all the prototypes.
David Given [Sun, 17 Jun 2018 14:10:57 +0000 (16:10 +0200)]
Use cproto to extract all the prototypes.

6 years agoAdded a pc.h to contain libpc prototypes; some ansification.
David Given [Sun, 17 Jun 2018 13:54:18 +0000 (15:54 +0200)]
Added a pc.h to contain libpc prototypes; some ansification.

6 years agoMove the private Pascal headers into libpc where they belong.
David Given [Sun, 17 Jun 2018 13:44:33 +0000 (15:44 +0200)]
Move the private Pascal headers into libpc where they belong.

6 years agoWarning fixes.
David Given [Sun, 17 Jun 2018 13:42:26 +0000 (15:42 +0200)]
Warning fixes.

6 years agoWarning fix.
David Given [Sun, 17 Jun 2018 13:34:29 +0000 (15:34 +0200)]
Warning fix.

6 years agoMerge pull request #102 from davidgiven/dtrg-powerpc
David Given [Sun, 17 Jun 2018 09:45:26 +0000 (11:45 +0200)]
Merge pull request #102 from davidgiven/dtrg-powerpc

Add a PowerPC simulator for running the tests.

6 years agoFix edge case in rlwnm when the mask is 32 bits wide. All tests now pass.
David Given [Sun, 17 Jun 2018 09:00:01 +0000 (11:00 +0200)]
Fix edge case in rlwnm when the mask is 32 bits wide. All tests now pass.

6 years agoTurns out that andi and andis only have . forms. Fixed; another test passes.
David Given [Sun, 17 Jun 2018 08:43:39 +0000 (10:43 +0200)]
Turns out that andi and andis only have . forms. Fixed; another test passes.

6 years agoTurns out I was returning values from syscalls in the wrong register; fixed.
David Given [Sun, 17 Jun 2018 08:22:20 +0000 (10:22 +0200)]
Turns out I was returning values from syscalls in the wrong register; fixed.
More tests pass.

6 years agoLots of floating point, bugfixes, and system calls. Most of the tests pass now.
David Given [Sun, 17 Jun 2018 07:24:01 +0000 (09:24 +0200)]
Lots of floating point, bugfixes, and system calls. Most of the tests pass now.

6 years agoDo a bit of floating point stuff; added brk(); fixed a horrible bug where
David Given [Sat, 16 Jun 2018 20:55:23 +0000 (22:55 +0200)]
Do a bit of floating point stuff; added brk(); fixed a horrible bug where
stores with 16-bit displacements were storing the register number and not the
contents of the register.

6 years agoFix a setcr0 bug which was trashing the condition register; some system
David Given [Sat, 16 Jun 2018 06:35:36 +0000 (08:35 +0200)]
Fix a setcr0 bug which was trashing the condition register; some system
calls are now implemented. A few tests more-or-less pass (but crash on
exit).

6 years agoMerge pull request #100 from kernigh/kernigh-pdp
David Given [Fri, 15 Jun 2018 06:40:24 +0000 (15:40 +0900)]
Merge pull request #100 from kernigh/kernigh-pdp

Two fixes for ack -mpdpv7

6 years agoPrevent crash in isatty()
George Koehler [Fri, 15 Jun 2018 04:48:29 +0000 (00:48 -0400)]
Prevent crash in isatty()

The existing code allocated 2 bytes (char*), but gtty() needs 6 bytes
(struct sgttyb), so isatty() smashed the stack and corrupted its
return address, probably causing SIGBUS or SIGSEGV.

Fix by switching to TIOCGETD, which needs 2 bytes.  TIOCGETD isn't in
the manual for tty(4), but does appear in
https://minnie.tuhs.org//cgi-bin/utree.pl?file=V7/usr/sys/dev/tty.c

This fixes hilo_c.pdpv7 and hilo_mod.pdpv7 in simh-pdp11.

6 years agoUse 2-byte alignment in pdpv7 to prevent SIGBUS.
George Koehler [Fri, 15 Jun 2018 04:17:12 +0000 (00:17 -0400)]
Use 2-byte alignment in pdpv7 to prevent SIGBUS.

Change the alignment in C structs (wa, pa, sa, and so on) from 1 to 2
bytes.  This prevents the SIGBUS when PDP-11 Unix V7 catches the
misalignment.  This fixes hilo_p.pdpv7 in simh-pdp11.

Change ALIGN to document that sections have 2-byte alignment.  This
change should have no effect, because the sections only contain 2-byte
values.

6 years agoGot the emulator to the point where we're hitting the first major emulation bug
David Given [Thu, 14 Jun 2018 12:53:39 +0000 (05:53 -0700)]
Got the emulator to the point where we're hitting the first major emulation bug
(the calloc test hangs).

6 years agoSome code runs (up to needing setcr0).
David Given [Thu, 14 Jun 2018 11:41:21 +0000 (04:41 -0700)]
Some code runs (up to needing setcr0).

6 years agoImplement a non-functional skeleton of the PowerPC emulator (with, hopefully,
David Given [Thu, 14 Jun 2018 10:07:36 +0000 (03:07 -0700)]
Implement a non-functional skeleton of the PowerPC emulator (with, hopefully,
most of the instruction decode done).