Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

work in progress #4

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ INSTALL_FILES = ./include ./lib/*.lib ./lib/*.spc ./lib/short.help \
./code/cmp/ccdbg.cmd* ./code/cmp/ccopt.cmd* \
./clu.order ./doc/pclu.pdf ./doc/mini-pclu.pdf \
${EXEDIR}/pclu ${EXEDIR}/plink ${EXEDIR}/cludent \
./example ./elisp
# ./code/libpclu_debug.a ./driver
./example ./elisp \
./code/libpclu_debug.a \
# ./driver

INSTALL_TAR_FILE = ../pclu-install.tar.Z
INSTALL_TARGZ_FILE = ../pclu-install.tar.gz
Expand Down Expand Up @@ -86,8 +87,12 @@ libpclu:
cd code; make optlib

compiler:
echo Building and installing the pclu compiler
echo Assumes that CLUHOME is set properly
@echo Building and installing the pclu compiler
@if /bin/echo -n "CLUHOME = "; printenv CLUHOME; then \
echo "Assumes that CLUHOME is set properly"; \
else \
echo "Error: Environment variable CLUHOME is not set. Should be set to the top directory."; exit 1;\
fi
cd code/cmp; make
mv code/cmp/pclu $(EXEDIR)/pclu

Expand Down
82 changes: 81 additions & 1 deletion README.sjg
Original file line number Diff line number Diff line change
@@ -1 +1,81 @@
Status of PCLU update (November 29, 2016)Done----Finished work started by Dorothy Curtis on making pclu work with glibc on 64-bitarchitectures. See ~CLU/CHANGES for a list of changes.Fixed LP compilation problems by * disabling LP's command-line options related to garbage collection and heap size, and * changing the output of LP's "version" command to omit information about garbage collection and the heap.These changes eliminated undefined references (detected when linking LP) in* _get_max_heap.c to GC_get_max_heap_size in* _get_min_gc.c and _set_min_gc.c to blks_min_gc Work still to be done---------------------Fix problems (definition of CFLAGS?) in debug/call_clu.c that cause "makedebugger" to fail.Fix makefiles to work for Mac OS X (look at earlier Mac port).Fix the line-editing behavior of the DEL key. This key works in the version offactorial.clu compiled for Mac OS X (using the earlier Mac port of PCLU), butnot in the version compiled for Debian Linux (at least when run in a virtualmachine under Mac OS X).Other potential clean-up------------------------Consider resolving, rather than eliminating, the undefined gc-related referencesthat caused problems for LP. This may not be worth the effort. Formerly, itwas useful to have some control over how the garbage collector worked, but itmay work well enough now on machines with lots of memory so that we don�t haveto worry about things like excessively large heaps causing page faults.Discard pclu/code/libasm/Opt/_job.c, which fails to compile Is it needed?Eliminate _wordvecOPget_byte in pclu/code/libasm/Opt. It's never used. Dittofor set_byte. If these routines are still needed, it may be necessary to change32 to 64 in them.Re-institute check for "insufficient room" in cludent/_buffered_read.clu. Thischeck failed because _free_space() always returns zero.Improve/eliminate PCLU. * Make it recognize .spc files.* Enhance it so that it can be invoked just once, not three separate times with the -create, -compile, and -link options.* Is PCLU still needed in addition to pclu/plink (which also requires three invocations to build an executable)?Remove references to athena in ~CLU/Makefile, ~CLU/code/Makefile,~CLU/include/pclu_sys.h (which has #define athena, even though ~CLU/Makefilesuggests that be done only if you want "smaller executables at the cost of somespeed"), and ~CLU/lib/clu/_resolve.clu).Questions---------Is it worth investing more effort in PCLU? What would be the goals?Do we still need config_G0 and config_G4 in ~CLU/Makefile? Are symbolic links to two .o files needed in ~CLU/debug?How is building the compiler bootstrapped? The Makefile in ~CLU/cmpclu said touse "make new" when changing architectures or on initial installation, but thereis no target for "new" in the Makefile.What is the difference between pclu/code/lib*/Debug and pclu/code/lib*/Debugger?Are both needed?What's the purpose of grindc and grindp in gcd_tab? Are they needed? Ditto forthe internal pgrind.What is gcdprt in ~CLU/util?
-i used with no filenames on the command line, reading from STDIN.
Status of PCLU update (November 29, 2016)

Done
----

Finished work started by Dorothy Curtis on making pclu work with glibc on 64-bit
architectures. See ~CLU/CHANGES for a list of changes.

Fixed LP compilation problems by
* disabling LP's command-line options related to garbage collection and
heap size, and
* changing the output of LP's "version" command to omit information about
garbage collection and the heap.
These changes eliminated undefined references (detected when linking LP) in
* _get_max_heap.c to GC_get_max_heap_size in
* _get_min_gc.c and _set_min_gc.c to blks_min_gc

Work still to be done
---------------------

Fix problems (definition of CFLAGS?) in debug/call_clu.c that cause "make
debugger" to fail.

Fix makefiles to work for Mac OS X (look at earlier Mac port).

Fix the line-editing behavior of the DEL key. This key works in the version of
factorial.clu compiled for Mac OS X (using the earlier Mac port of PCLU), but
not in the version compiled for Debian Linux (at least when run in a virtual
machine under Mac OS X).

Other potential clean-up
------------------------

Consider resolving, rather than eliminating, the undefined gc-related references
that caused problems for LP. This may not be worth the effort. Formerly, it
was useful to have some control over how the garbage collector worked, but it
may work well enough now on machines with lots of memory so that we don�t have
to worry about things like excessively large heaps causing page faults.

Discard pclu/code/libasm/Opt/_job.c, which fails to compile Is it needed?

Eliminate _wordvecOPget_byte in pclu/code/libasm/Opt. It's never used. Ditto
for set_byte. If these routines are still needed, it may be necessary to change
32 to 64 in them.

Re-institute check for "insufficient room" in cludent/_buffered_read.clu. This
check failed because _free_space() always returns zero.

Improve/eliminate PCLU.
* Make it recognize .spc files.
* Enhance it so that it can be invoked just once, not three separate times with
the -create, -compile, and -link options.
* Is PCLU still needed in addition to pclu/plink (which also requires three
invocations to build an executable)?

Remove references to athena in ~CLU/Makefile, ~CLU/code/Makefile,
~CLU/include/pclu_sys.h (which has #define athena, even though ~CLU/Makefile
suggests that be done only if you want "smaller executables at the cost of some
speed"), and ~CLU/lib/clu/_resolve.clu).

Questions
---------

Is it worth investing more effort in PCLU? What would be the goals?

Do we still need config_G0 and config_G4 in ~CLU/Makefile?

Are symbolic links to two .o files needed in ~CLU/debug?

How is building the compiler bootstrapped? The Makefile in ~CLU/cmpclu said to
use "make new" when changing architectures or on initial installation, but there
is no target for "new" in the Makefile.

What is the difference between pclu/code/lib*/Debug and pclu/code/lib*/Debugger?
Are both needed?

What's the purpose of grindc and grindp in gcd_tab? Are they needed? Ditto for
the internal pgrind.

What is gcdprt in ~CLU/util?
4 changes: 2 additions & 2 deletions code/cmp/Makefile.linux
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ CC = gcc

FLUFF = *~ *.old *.bak .*~ .*.old .*.bak

CFLAGS = -c -O -w -I../include
#CFLAGS = -c -g -I../include
#CFLAGS = -c -O -w -I../include
CFLAGS = -c -Wno-parentheses-equality -g -I../include
LFLAGS = -L${CLUHOME}/code -lpclu_opt -lgc -lm -lc -lpthread -g

O_FILES = build.o cconst.o cdchan.o cdefn1.o cdefn2.o ce.o cenv.o \
Expand Down
236 changes: 0 additions & 236 deletions code/gc-7.2/.deps/allchblk.Plo

This file was deleted.

Loading