home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-08-15 | 78.2 KB | 2,452 lines |
- Only in amiga/: affi.txt
- diff -rc2 dh0:source/clisptmp/amiga/BMakefile amiga/BMakefile
- *** dh0:source/clisptmp/amiga/BMakefile Mon Apr 15 16:24:12 1996
- --- amiga/BMakefile Wed Aug 14 22:08:54 1996
- ***************
- *** 1,8 ****
- # BMakefile für CLISP mit GNU-ANSI-C-Compiler
- ! # Jörg Höhle 6.10.94
- ! # Optionen: GCC26, C20, WIDE, HIGH, KI, KA, LMEM
- ! # HIGH => C20
- ! # WIDE => C20
- ! # keeping intermediate files means keeping assembly files
- if def(KI)
- KA=1
- --- 1,13 ----
- # BMakefile für CLISP mit GNU-ANSI-C-Compiler
- ! # Jörg Höhle 14.8.96
- ! # Optionen: ADE, C00, C20, WIDE, HIGH, FFI, KI, KA, LMEM
- ! # Versionsauswahl
- ! # HIGH => C20 -high version
- ! # WIDE => C20 -wide: 64 bits for use within VMM
- ! # C00 -00 for 68000 only
- ! # --- -low with 24 address bits
- ! # Optional: FFI KI KA LMEM
- ! # Compiler: ADE
- ! # keeping intermediate files implies keeping assembly files
- if def(KI)
- KA=1
- ***************
- *** 33,46 ****
- WPFLAGS=-DAMIGA3000
- endif
-
- ! IXCFLAGS= >NIL: -a -.
-
- ! if def(GCC26)
- ! # Use GCC259/GCC26
- ! # Path GNU:bin/ GNU:lib/gcc-lib/mc68000-cbm-amigados/2.5.90/
- ! IXCONFIG=GNU:ixem/bin/ixconfig
- CC = gcc
- ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- ! CC1 = cc1 -version
- AS = as
-
- --- 38,56 ----
- WPFLAGS=-DAMIGA3000
- endif
- + ifdef(C00)
- + WPFLAGS=-DMC68000
- + endif
-
- ! #IXCFLAGS= >NIL: -a -.
- ! IXCFLAGS= >NIL: -a1 -/0
-
- ! if def(ADE)
- ! # Use GCC272
- ! # Path ADE:bin/ ADE:lib/gcc-lib/m68k-cbm-amigados/2.7.2/
- ! #IXCONFIG=GNU:ixem/bin/ixconfig
- ! IXCONFIG=GCC258:bin/ixprefs
- CC = gcc
- ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -lang-c -v
- ! CC1 = T:cc1 -version
- AS = as
-
- ***************
- *** 49,62 ****
- LDSTACK = 180000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
- ! LIBS =-lclisp
- ! CRT0 =Ben:p/gccsmalllib/lib/crt0.o
-
- else
- ! # Use GCC25x
- # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
- ! IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
- CC = gcc
- CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- --- 59,74 ----
- LDSTACK = 180000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
- ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
- ! LIBS =-lcclisp -lgcc
- ! CRT0 =LISP:amiga/jchlib/lib/crt0.o
-
- else
- ! # Use GCC258
- # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
- ! #IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
- ! IXCONFIG=GCC258:bin/ixprefs
- CC = gcc
- CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- ***************
- *** 65,80 ****
-
- CPPSTACK = 20000
- ! CC1STACK = 380000
- ! LDSTACK = 180000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
- ! LIBS =-lclisp
- ! CRT0 =Ben:p/gccsmalllib/lib/crt0.o
- endif
-
-
- ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H $(MPFLAGS) $(WPFLAGS)
- CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
- -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
- --- 77,94 ----
-
- CPPSTACK = 20000
- ! CC1STACK = 450000
- ! LDSTACK = 200000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! #LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
- ! LIBGCCPATH=
- ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
- ! LIBS =-lcclisp -ltinygcc
- ! CRT0 =LISP:amiga/jchlib/lib/crt0.o
- endif
-
-
- ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H -DHAVE_AFFI $(MPFLAGS) $(WPFLAGS)
- CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
- -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
- ***************
- *** 86,91 ****
- FSTMPDIR = RAM:
-
- ! COMMENT = /utils/comment5
- ! ANSIDECL = /utils/ansidecl
- PRESTACK = 20000
-
- --- 100,110 ----
- FSTMPDIR = RAM:
-
- ! MV=mv
- ! RM=delete
- ! AR=ar
- ! RANLIB=ranlib
- ! COMMENT = lisp:utils/comment5
- ! CVTMSGS = lisp:utils/cvtmsgs
- ! ANSIDECL = lisp:utils/ansidecl
- PRESTACK = 20000
-
- ***************
- *** 95,100 ****
- D_INC_MACHINE = amiga.d
- D_INC_SPECIAL = amiga2.d
- ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d
- ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d pseudofun.d constsym.d \
- constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
- D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
- --- 114,119 ----
- D_INC_MACHINE = amiga.d
- D_INC_SPECIAL = amiga2.d
- ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d bytecode.d
- ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d subrkw.d pseudofun.d constsym.d \
- constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
- D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
- ***************
- *** 105,114 ****
- D_AMODULES = ari68000.d
- endif
- ! D_EMODULES = # affi.d
- D_CMODULES_SPECIAL = rexx.d
- ! D_CMODULES = spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
- ! eval.d control.d pathname.d stream.d io.d error.d \
- array.d hashtabl.d list.d package.d record.d sequence.d \
- ! charstrg.d debug.d misc.d predtype.d symbol.d dbxtypes.d \
- lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
- #D_MODULES = $(D_CMODULES) $(D_AMODULES)
- --- 124,137 ----
- D_AMODULES = ari68000.d
- endif
- ! if ndef(FFI)
- ! D_EMODULES = affi.d
- ! else
- ! D_EMODULES = affi.d foreign.d
- ! endif
- D_CMODULES_SPECIAL = rexx.d
- ! D_CMODULES = misc.d spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
- ! eval.d control.d pathname.d stream.d io.d error.d time.d \
- array.d hashtabl.d list.d package.d record.d sequence.d \
- ! charstrg.d debug.d predtype.d symbol.d dbxtypes.d \
- lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
- #D_MODULES = $(D_CMODULES) $(D_AMODULES)
- ***************
- *** 124,127 ****
- --- 147,151 ----
- C_INC_NORMAL = $(subst .d,.c,$(D_INC_NORMAL))
- C_INC_ALL = $(subst .d,.c,$(D_INC_ALL))
- + C_DIST = modules.c genclisph.c
-
- OBJECTS_SPECIAL = $(subst .d,.o,$(D_CMODULES_SPECIAL))
- ***************
- *** 129,133 ****
- --- 153,162 ----
- OBJECTS_A = $(subst .d,.o,$(D_AMODULES))
- OBJECTS = $(OBJECTS_C) $(OBJECTS_A)
- + LIBOBJECTS = $(filter-out modules.o,$(OBJECTS))
-
- + E_LSPFILES =
- + if def(FFI)
- + E_LSPFILES =foreign1.lsp
- + endif
- LSPFILES = \
- init.lsp defseq.lsp backquot.lsp defmacro.lsp macros1.lsp macros2.lsp \
- ***************
- *** 135,139 ****
- user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
- timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
- ! loop.lsp rexx.lsp
- FASFILES = $(subst .lsp,.fas,$(LSPFILES))
- RFASFILES = $(addprefix $(R),$(FASFILES))
- --- 164,168 ----
- user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
- timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
- ! screen.lsp loop.lsp rexx1.lsp affi1.lsp $(E_LSPFILES)
- FASFILES = $(subst .lsp,.fas,$(LSPFILES))
- RFASFILES = $(addprefix $(R),$(FASFILES))
- ***************
- *** 140,146 ****
-
- IMEMFILE = interpreted.mem
- CMEMFILE = lispinit.mem
- CLISPEXE = lisp.run
- ! DMEMFILE = lispinit.mem_
-
- %.h:
- --- 169,177 ----
-
- IMEMFILE = interpreted.mem
- + HMEMFILE = halfinterp.mem
- CMEMFILE = lispinit.mem
- CLISPEXE = lisp.run
- ! DMEMFILE = compiler.mem
- ! SMEMFILE = small.mem
-
- %.h:
- ***************
- *** 170,173 ****
- --- 201,206 ----
- nope spvw.o: avl.c sort.c
-
- + nope eval.o: bytecode.c
- +
- nope modules.o: $(R)modules.h
-
- ***************
- *** 186,190 ****
-
- # Make all include files
- ! $(C_INC_ALL): $(R)$*.d
- stack $(PRESTACK)
- # Named pipes make it slower!
- --- 219,223 ----
-
- # Make all include files
- ! $(C_INC_ALL) $(C_DIST): $(R)$*.d
- stack $(PRESTACK)
- # Named pipes make it slower!
- ***************
- *** 193,199 ****
- # run $(COMMENT) $(R)$*.d >PIPE:prepclisp
- # $(ANSIDECL) <PIPE:prepclisp/r >$@
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
- ! delete $(FSTMPDIR)$*.dc
-
- # Make all assembly objects
- --- 226,234 ----
- # run $(COMMENT) $(R)$*.d >PIPE:prepclisp
- # $(ANSIDECL) <PIPE:prepclisp/r >$@
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
- ! $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
- ! $(RM) $(FSTMPDIR)$*.cd
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
- ! $(RM) $(FSTMPDIR)$*.dc
-
- # Make all assembly objects
- ***************
- *** 204,208 ****
- stack $(CC1STACK)
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- ! delete $(TMPDIR)$*.s
-
- # Make all C objects
- --- 239,243 ----
- stack $(CC1STACK)
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- ! $(RM) $(TMPDIR)$*.s
-
- # Make all C objects
- ***************
- *** 210,216 ****
- @date
- stack $(PRESTACK)
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
- ! delete $(FSTMPDIR)$*.dc
- if def(LMEM)
- @avail >nil: flush
- --- 245,253 ----
- @date
- stack $(PRESTACK)
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
- ! $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
- ! $(RM) $(FSTMPDIR)$*.cd
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
- ! $(RM) $(FSTMPDIR)$*.dc
- if def(LMEM)
- @avail >nil: flush
- ***************
- *** 220,224 ****
- $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
- if ndef(KI)
- ! delete $(TMPDIR)$*.c
- endif
- if def(LMEM)
- --- 257,261 ----
- $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
- if ndef(KI)
- ! $(RM) $(TMPDIR)$*.c
- endif
- if def(LMEM)
- ***************
- *** 229,233 ****
- -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
- if ndef(KI)
- ! delete $(TMPDIR)$*.i
- endif
- if def(YES_HIGH)
- --- 266,270 ----
- -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
- if ndef(KI)
- ! $(RM) $(TMPDIR)$*.i
- endif
- if def(YES_HIGH)
- ***************
- *** 235,243 ****
- # Some lines are too long for Edit
- sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
- ! delete $(FSTMPDIR)$*.es
- endif
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- if ndef(KA)
- ! delete $(TMPDIR)$*.s
- endif
-
- --- 272,280 ----
- # Some lines are too long for Edit
- sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
- ! $(RM) $(FSTMPDIR)$*.es
- endif
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- if ndef(KA)
- ! $(RM) $(TMPDIR)$*.s
- endif
-
- ***************
- *** 257,269 ****
- # make an interpreted world
- $(IMEMFILE):
- @avail >nil: flush
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(sys::%saveinitmem)(exit)
- @date
- ! mv $(R)lispimag.mem $@
-
- # compile LISP files
- $(RFASFILES): $*.lsp
- @avail >nil: flush
- @date
- $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
- --- 294,310 ----
- # make an interpreted world
- $(IMEMFILE):
- + if def(LMEM)
- @avail >nil: flush
- + endif
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
- @date
- ! $(MV) $(R)lispinit.mem $@
-
- # compile LISP files
- $(RFASFILES): $*.lsp
- + if def(LMEM)
- @avail >nil: flush
- + endif
- @date
- $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
- ***************
- *** 270,282 ****
- @date
-
- ! # make a compiled world
- $(CMEMFILE): $(RFASFILES)
- @avail >nil: flush
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.fas")(sys::%saveinitmem)(exit)
- @date
- ! mv $(R)lispimag.mem $@
-
- clean:
- ! delete $(C_INC_ALL) $(OBJECTS)
- force:
- --- 311,360 ----
- @date
-
- ! # make a useful bootstrap world, set DMEMFILE=interpreted.mem
- ! $(HMEMFILE): $(addprefix $(R),compiler.fas)
- ! if def(LMEM)
- ! @avail >nil: flush
- ! endif
- ! @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
- ! @date
- ! $(MV) $(R)lispinit.mem $@
- !
- ! # make a compiled world, set DMEMFILE=halfinterp.mem when bootstrapping
- $(CMEMFILE): $(RFASFILES)
- + if def(LMEM)
- + @avail >nil: flush
- + endif
- + @date
- + $(CLISPEXE) -x (cd"/src/")(load"init.fas")(saveinitmem)(exit)
- + @date
- + $(MV) $(R)lispinit.mem $@
- +
- + # small image without compiler, disassem, loop, clos, conditio, defs3, gstream, screen
- + # init-small.fas is init-small.fas with these lines commented out (near end of file)
- + $(SMEMFILE): $(RFASFILES)
- + if def(LMEM)
- @avail >nil: flush
- + endif
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init-small.fas")(saveinitmem)(exit)
- @date
- ! $(MV) $(R)lispinit.mem $@
-
- clean:
- ! $(RM) $(C_INC_ALL) $(OBJECTS)
- force:
- +
- + libclisp.a: $(LIBOBJECTS)
- + -$(RM) $@
- + $(AR) qv $@ $(LIBOBJECTS)
- + $(RANLIB) $@
- +
- + # generate it using the normal libnix/ixemul environment
- + #gcc -v -O2 -m68020 -DAMIGA3000 -DHAVE_FFI -I. -c genclisph.c
- + genclisph.o: genclisph.c
- + $(CC) $(WPFLAGS) $(MCFLAGS) -I. -o $@ $*.c
- +
- + #gcc -v -m68020 -Wl,-defsym,asciz_out=printf
- + genclisp: genclisp.o
- + $(CC) $(MCFLAGS) -o $@ $<
- diff -rc2 dh0:source/clisptmp/amiga/clisp.man amiga/clisp.man
- *** dh0:source/clisptmp/amiga/clisp.man Mon Apr 15 16:24:16 1996
- --- amiga/clisp.man Tue Aug 13 19:49:22 1996
- ***************
- *** 6,10 ****
- SYNOPSIS
- clisp [ -h ] [ -m memsize ] [ -s stacksize ] [ -M memfile ]
- ! [ -q ] [ -i initfile ... ] [ -c [ -l ] lispfile ... ] [ -x
- expression ]
-
- --- 6,11 ----
- SYNOPSIS
- clisp [ -h ] [ -m memsize ] [ -s stacksize ] [ -M memfile ]
- ! [ -L language ] [ -q ] [ -I ] [ -i initfile ... ] [ -c [ -l
- ! ] lispfile [ -o outputfile ] ... ] [ -p packagename ] [ -x
- expression ]
-
- ***************
- *** 40,46 ****
- --- 41,56 ----
- memory dump produced by the saveinitmem function.
-
- + -L language
- + Specifies the language clisp uses to communicate with
- + the user. This may be english, deutsch, francais.
- +
- -q Quiet: clisp displays no banner at startup and no
- good-bye message when quitting.
-
- + -I ILISP friendly: clisp interacts in a way that ILISP (a
- + popular Emacs LISP interface) can deal with. Currently
- + the only effect of this is that unnecessary prompts are
- + not suppressed.
- +
- -i initfile ...
- Specifies initialization files to be loaded at startup.
- ***************
- *** 52,58 ****
- --- 62,76 ----
- to gain efficiency.
-
- + -o outputfile
- + Specifies the output file or directory for the compila-
- + tion of the last specified lispfile.
- +
- -l A bytecode listing of the files being compiled will be
- produced. Useful only for debugging purposes.
-
- + -p packagename
- + At startup the value of the variable *package* will be
- + set to the package named packagename.
- +
- -x expressions
- Executes a series of arbitrary expressions instead of a
- ***************
- *** 119,122 ****
- --- 137,158 ----
-
- ENVIRONMENT
- + CLISP_LANGUAGE
- + specifies the language clisp uses to communicate with
- + the user. The value may be english, deutsch, francais
- + and defaults to english. The -L option can be used to
- + override this environment variable.
- +
- + Language
- + specifies the language clisp uses to communicate with
- + the user, unless it is already specified through the
- + environment variable CLISP_LANGUAGE or the -L option.
- + The value may be as above.
- +
- + LANG specifies the language clisp uses to communicate with
- + the user, unless it is already specified through the
- + environment variable CLISP_LANGUAGE or the -L option.
- + The value may begin with a two-letter ISO 639 language
- + code, for example en, de, fr.
- +
- SEE ALSO
- cmulisp(1), emacs(1).
- ***************
- *** 125,129 ****
- The function inspect is not implemented.
-
- ! Only very few extensions from CLtL2 are supported.
-
- No on-line documentation beyond apropos and describe is
- --- 161,165 ----
- The function inspect is not implemented.
-
- ! Not all extensions from CLtL2 are supported.
-
- No on-line documentation beyond apropos and describe is
- ***************
- *** 132,138 ****
- PROJECTS
- Writing on-line documentation.
- -
- - Building a foreign function interface (ability to call C
- - code directly).
-
- Write inspect.
- --- 168,171 ----
- Only in dh0:source/clisptmp/amiga/: CVS
- diff -rc2 dh0:source/clisptmp/amiga/GMakefile amiga/GMakefile
- *** dh0:source/clisptmp/amiga/GMakefile Mon Apr 15 16:24:14 1996
- --- amiga/GMakefile Wed Aug 14 22:08:55 1996
- ***************
- *** 1,8 ****
- # GNU-Makefile für CLISP mit GNU-ANSI-C-Compiler
- ! # Jörg Höhle 6.10.94
- ! # Optionen: GCC26, C20, WIDE, HIGH, KI, KA, LMEM
- ! # HIGH => C20
- ! # WIDE => C20
- ! # keeping intermediate files means keeping assembly files
- ifdef KI
- KA=1
- --- 1,13 ----
- # GNU-Makefile für CLISP mit GNU-ANSI-C-Compiler
- ! # Jörg Höhle 14.8.96
- ! # Optionen: ADE, C00, C20, WIDE, HIGH, FFI, KI, KA, LMEM
- ! # Versionsauswahl
- ! # HIGH => C20 -high version
- ! # WIDE => C20 -wide: 64 bits for use within VMM
- ! # C00 -00 for 68000 only
- ! # --- -low with 24 address bits
- ! # Optional: FFI KI KA LMEM
- ! # Compiler: ADE
- ! # keeping intermediate files implies keeping assembly files
- ifdef KI
- KA=1
- ***************
- *** 33,46 ****
- WPFLAGS=-DAMIGA3000
- endif
-
- ! IXCFLAGS= >NIL: -a -.
-
- ! ifdef GCC26
- ! # Use GCC259/GCC26
- ! # Path GNU:bin/ GNU:lib/gcc-lib/mc68000-cbm-amigados/2.5.90/
- ! IXCONFIG=GNU:ixem/bin/ixconfig
- CC = gcc
- ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- ! CC1 = cc1 -version
- AS = as
-
- --- 38,56 ----
- WPFLAGS=-DAMIGA3000
- endif
- + ifdef(C00)
- + WPFLAGS=-DMC68000
- + endif
-
- ! #IXCFLAGS= >NIL: -a -.
- ! IXCFLAGS= >NIL: -a1 -/0
-
- ! if def(ADE)
- ! # Use GCC272
- ! # Path ADE:bin/ ADE:lib/gcc-lib/m68k-cbm-amigados/2.7.2/
- ! #IXCONFIG=GNU:ixem/bin/ixconfig
- ! IXCONFIG=GCC258:bin/ixprefs
- CC = gcc
- ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -lang-c -v
- ! CC1 = T:cc1 -version
- AS = as
-
- ***************
- *** 49,63 ****
- LDSTACK = 180000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
- ! LIBS =-lclisp
- ! CRT0 =Ben:p/gccsmalllib/lib/crt0.o
-
- else
- ! # Use GCC25x
- # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
- # PATH=/GCC258/bin:/GCC258/lib/gcc-lib/amigados/2.5.8:/C
- ! IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
- CC = gcc
- CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- --- 59,75 ----
- LDSTACK = 180000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
- ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
- ! LIBS =-lcclisp -lgcc
- ! CRT0 =LISP:amiga/jchlib/lib/crt0.o
-
- else
- ! # Use GCC258
- # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
- # PATH=/GCC258/bin:/GCC258/lib/gcc-lib/amigados/2.5.8:/C
- ! #IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
- ! IXCONFIG=GCC258:bin/ixprefs
- CC = gcc
- CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- ***************
- *** 66,81 ****
-
- CPPSTACK = 20000
- ! CC1STACK = 380000
- ! LDSTACK = 180000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
- ! LIBS =-lclisp
- ! CRT0 =Ben:p/gccsmalllib/lib/crt0.o
- endif
-
-
- ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H $(MPFLAGS) $(WPFLAGS)
- CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
- -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
- --- 78,95 ----
-
- CPPSTACK = 20000
- ! CC1STACK = 450000
- ! LDSTACK = 200000
-
- ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- ! #LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
- ! LIBGCCPATH=
- ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
- ! LIBS =-lcclisp -ltinygcc
- ! CRT0 =LISP:amiga/jchlib/lib/crt0.o
- endif
-
-
- ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H -DHAVE_AFFI $(MPFLAGS) $(WPFLAGS)
- CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
- -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
- ***************
- *** 87,92 ****
- FSTMPDIR = RAM:
-
- ! COMMENT = /utils/comment5
- ! ANSIDECL = /utils/ansidecl
- PRESTACK = 20000
-
- --- 101,111 ----
- FSTMPDIR = RAM:
-
- ! MV=mv
- ! RM=delete
- ! AR=ar
- ! RANLIB=ranlib
- ! COMMENT = lisp:utils/comment5
- ! CVTMSGS = lisp:utils/cvtmsgs
- ! ANSIDECL = lisp:utils/ansidecl
- PRESTACK = 20000
-
- ***************
- *** 96,101 ****
- D_INC_MACHINE = amiga.d
- D_INC_SPECIAL = amiga2.d
- ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d
- ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d pseudofun.d constsym.d \
- constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
- D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
- --- 115,120 ----
- D_INC_MACHINE = amiga.d
- D_INC_SPECIAL = amiga2.d
- ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d bytecode.d
- ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d subrkw.d pseudofun.d constsym.d \
- constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
- D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
- ***************
- *** 106,115 ****
- D_AMODULES = ari68000.d
- endif
- ! D_EMODULES = # affi.d
- D_CMODULES_SPECIAL = rexx.d
- ! D_CMODULES = spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
- ! eval.d control.d pathname.d stream.d io.d error.d \
- array.d hashtabl.d list.d package.d record.d sequence.d \
- ! charstrg.d debug.d misc.d predtype.d symbol.d dbxtypes.d \
- lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
- #D_MODULES = $(D_CMODULES) $(D_AMODULES)
- --- 125,138 ----
- D_AMODULES = ari68000.d
- endif
- ! ifndef FFI
- ! D_EMODULES = affi.d
- ! else
- ! D_EMODULES = affi.d foreign.d
- ! endif
- D_CMODULES_SPECIAL = rexx.d
- ! D_CMODULES = misc.d spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
- ! eval.d control.d pathname.d stream.d io.d error.d time.d \
- array.d hashtabl.d list.d package.d record.d sequence.d \
- ! charstrg.d debug.d predtype.d symbol.d dbxtypes.d \
- lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
- #D_MODULES = $(D_CMODULES) $(D_AMODULES)
- ***************
- *** 125,128 ****
- --- 148,152 ----
- C_INC_NORMAL = $(subst .d,.c,$(D_INC_NORMAL))
- C_INC_ALL = $(subst .d,.c,$(D_INC_ALL))
- + C_DIST = modules.c genclisph.c
-
- OBJECTS_SPECIAL = $(subst .d,.o,$(D_CMODULES_SPECIAL))
- ***************
- *** 130,134 ****
- --- 154,163 ----
- OBJECTS_A = $(subst .d,.o,$(D_AMODULES))
- OBJECTS = $(OBJECTS_C) $(OBJECTS_A)
- + LIBOBJECTS = $(filter-out modules.o,$(OBJECTS))
-
- + E_LSPFILES =
- + ifdef FFI
- + E_LSPFILES =foreign1.lsp
- + endif
- LSPFILES = \
- init.lsp defseq.lsp backquot.lsp defmacro.lsp macros1.lsp macros2.lsp \
- ***************
- *** 136,140 ****
- user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
- timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
- ! loop.lsp rexx.lsp
- FASFILES = $(subst .lsp,.fas,$(LSPFILES))
- RFASFILES = $(addprefix $(R),$(FASFILES))
- --- 165,169 ----
- user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
- timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
- ! screen.lsp loop.lsp rexx1.lsp affi1.lsp $(E_LSPFILES)
- FASFILES = $(subst .lsp,.fas,$(LSPFILES))
- RFASFILES = $(addprefix $(R),$(FASFILES))
- ***************
- *** 141,147 ****
-
- IMEMFILE = interpreted.mem
- CMEMFILE = lispinit.mem
- CLISPEXE = lisp.run
- ! DMEMFILE = lispinit.mem_
-
- .SUFFIXES: .d .lsp
- --- 170,178 ----
-
- IMEMFILE = interpreted.mem
- + HMEMFILE = halfinterp.mem
- CMEMFILE = lispinit.mem
- CLISPEXE = lisp.run
- ! DMEMFILE = compiler.mem
- ! SMEMFILE = small.mem
-
- .SUFFIXES: .d .lsp
- ***************
- *** 169,172 ****
- --- 200,205 ----
- spvw.o: avl.c sort.c
-
- + eval.o: bytecode.c
- +
- modules.o: $(R)modules.h
-
- ***************
- *** 185,189 ****
-
- # Make all include files
- ! $(C_INC_ALL): %.c: $(R)%.d
- stack $(PRESTACK)
- # Named pipes make it slower!
- --- 218,222 ----
-
- # Make all include files
- ! $(C_INC_ALL) $(C_DIST): %.c: $(R)%.d
- stack $(PRESTACK)
- # Named pipes make it slower!
- ***************
- *** 192,198 ****
- # run $(COMMENT) $(R)$*.d >PIPE:prepclisp
- # $(ANSIDECL) <PIPE:prepclisp/r >$@
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
- ! delete $(FSTMPDIR)$*.dc
-
- # Make all assembly objects
- --- 225,233 ----
- # run $(COMMENT) $(R)$*.d >PIPE:prepclisp
- # $(ANSIDECL) <PIPE:prepclisp/r >$@
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
- ! $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
- ! $(RM) $(FSTMPDIR)$*.cd
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
- ! $(RM) $(FSTMPDIR)$*.dc
-
- # Make all assembly objects
- ***************
- *** 203,207 ****
- stack $(CC1STACK)
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- ! delete $(TMPDIR)$*.s
-
- # Make all C objects
- --- 238,242 ----
- stack $(CC1STACK)
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- ! $(RM) $(TMPDIR)$*.s
-
- # Make all C objects
- ***************
- *** 209,215 ****
- @date
- stack $(PRESTACK)
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
- ! delete $(FSTMPDIR)$*.dc
- ifdef LMEM
- @avail >nil: flush
- --- 244,252 ----
- @date
- stack $(PRESTACK)
- ! $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
- ! $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
- ! $(RM) $(FSTMPDIR)$*.cd
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
- ! $(RM) $(FSTMPDIR)$*.dc
- ifdef LMEM
- @avail >nil: flush
- ***************
- *** 219,223 ****
- $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
- ifndef KI
- ! delete $(TMPDIR)$*.c
- endif
- ifdef LMEM
- --- 256,260 ----
- $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
- ifndef KI
- ! $(RM) $(TMPDIR)$*.c
- endif
- ifdef LMEM
- ***************
- *** 228,232 ****
- -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
- ifndef KI
- ! delete $(TMPDIR)$*.i
- endif
- ifdef YES_HIGH
- --- 265,269 ----
- -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
- ifndef KI
- ! $(RM) $(TMPDIR)$*.i
- endif
- ifdef YES_HIGH
- ***************
- *** 234,242 ****
- # Some lines are too long for Edit
- sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
- ! delete $(FSTMPDIR)$*.es
- endif
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- ifndef KA
- ! delete $(TMPDIR)$*.s
- endif
-
- --- 271,279 ----
- # Some lines are too long for Edit
- sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
- ! $(RM) $(FSTMPDIR)$*.es
- endif
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- ifndef KA
- ! $(RM) $(TMPDIR)$*.s
- endif
-
- ***************
- *** 256,268 ****
- # make an interpreted world
- $(IMEMFILE):
- @avail >nil: flush
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(sys::%saveinitmem)(exit)
- @date
- ! mv $(R)lispimag.mem $@
-
- # compile LISP files
- $(RFASFILES): %.fas: %.lsp
- @avail >nil: flush
- @date
- $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
- --- 293,309 ----
- # make an interpreted world
- $(IMEMFILE):
- + ifdef LMEM
- @avail >nil: flush
- + endif
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
- @date
- ! $(MV) $(R)lispinit.mem $@
-
- # compile LISP files
- $(RFASFILES): %.fas: %.lsp
- + ifdef LMEM
- @avail >nil: flush
- + endif
- @date
- $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
- ***************
- *** 269,281 ****
- @date
-
- ! # make a compiled world
- $(CMEMFILE): $(RFASFILES)
- @avail >nil: flush
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.fas")(sys::%saveinitmem)(exit)
- @date
- ! mv $(R)lispimag.mem $@
-
- clean:
- ! delete $(C_INC_ALL) $(OBJECTS)
- force:
- --- 310,359 ----
- @date
-
- ! # make a useful bootstrap world, set DMEMFILE=interpreted.mem
- ! $(HMEMFILE): $(addprefix $(R),compiler.fas)
- ! ifdef LMEM
- ! @avail >nil: flush
- ! endif
- ! @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
- ! @date
- ! $(MV) $(R)lispinit.mem $@
- !
- ! # make a compiled world, set DMEMFILE=halfinterp.mem when bootstrapping
- $(CMEMFILE): $(RFASFILES)
- + ifdef LMEM
- + @avail >nil: flush
- + endif
- + @date
- + $(CLISPEXE) -x (cd"/src/")(load"init.fas")(saveinitmem)(exit)
- + @date
- + $(MV) $(R)lispinit.mem $@
- +
- + # small image without compiler, disassem, loop, clos, conditio, defs3, gstream, screen
- + # init-small.fas is init-small.fas with these lines commented out (near end of file)
- + $(SMEMFILE): $(RFASFILES)
- + ifdef LMEM
- @avail >nil: flush
- + endif
- @date
- ! $(CLISPEXE) -x (cd"/src/")(load"init-small.fas")(saveinitmem)(exit)
- @date
- ! $(MV) $(R)lispinit.mem $@
-
- clean:
- ! $(RM) $(C_INC_ALL) $(OBJECTS)
- force:
- +
- + libclisp.a: $(LIBOBJECTS)
- + -$(RM) $@
- + $(AR) qv $@ $(LIBOBJECTS)
- + $(RANLIB) $@
- +
- + # generate it using the normal libnix/ixemul environment
- + #gcc -v -O2 -m68020 -DAMIGA3000 -DHAVE_FFI -I. -c genclisph.c
- + genclisph.o: genclisph.c
- + $(CC) $(WPFLAGS) $(MCFLAGS) -I. -o $@ $*.c
- +
- + #gcc -v -m68020 -Wl,-defsym,asciz_out=printf
- + genclisp: genclisp.o
- + $(CC) $(MCFLAGS) -o $@ $<
- diff -rc2 dh0:source/clisptmp/amiga/INSTALL amiga/INSTALL
- *** dh0:source/clisptmp/amiga/INSTALL Mon Apr 15 16:24:14 1996
- --- amiga/INSTALL Wed Aug 14 22:50:08 1996
- ***************
- *** 4,38 ****
- 1. Install a GNU GCC development platform
-
- ! In 1992, both DICE-2.06.37 and Lattice-5.04 were tested for
- ! suitability. Because of various bugs, they were not able to compile the
- ! CLISP source.
-
- I managed to compile early versions of CLISP on my stock B2000 with 5MB
- ! of RAM and gcc-1.40, throwing every program out of the machine
- ! (including RAM: and LoadWB) and running each compiler stage
- ! separately. Luckily, when I hit GCC bugs, newer bug-freed versions were
- ! available. Now I have 10MB of RAM which is just enough with GCC >=
- ! 2.3. GCC-2.3.3 contains some bugs that required me to hand-patch the
- ! files stream.s and pathname.s. I use GCC-2.5.8 now.
-
- 2. Install Amiga includes
-
- ! They are copyrighted by Commodore-Amiga and can be obtained by CATS
- ! (Commodore-Amiga Technical Support) or on Fred Fish CDs. See your Amiga FAQ.
-
- 3. Make directory trees
-
- ! I recommend clisp/make.low/ for the *-low version, clisp/make.high/ for
- ! the *-high version and clisp/make.wide for the *-wide version (see file
- ! README.Amiga for what these are). Source should be in clisp/src/ (all you
- ! need are the files *.d, *.h and *.lsp), and utilities (only comment5 and
- ! ansidecl are needed) in clisp/utils/.
-
- ! 4. Ixconfig
-
- In order to find include files located in /src/ relatively to the make.*
- ! directory, ixemul.library shouldn't translate /. As sh (called by make)
- ! doesn't seem to be able to handle this situation, a workaround is to
- ! assign src: and utils: to the src and utils directories respectively.
-
- 5. Check your stack sizes
- --- 4,36 ----
- 1. Install a GNU GCC development platform
-
- ! I don't believe CLISP can be compiled with anything else than GCC
- ! on the Amiga. CLISP source heavily stresses any C compiler.
-
- I managed to compile early versions of CLISP on my stock B2000 with 5MB
- ! of RAM and gcc-1.40, throwing every program out of the machine (including
- ! RAM: and LoadWB) and running each compiler stage separately. Luckily,
- ! when I hit GCC bugs, newer bug-freed versions were available. Compilation
- ! of CLISP has lead to several bug-reports in gnu.gcc.bugs.
-
- 2. Install Amiga includes
-
- ! They are copyrighted by Commodore-Amiga and can be obtained on the Amiga
- ! Developer CD or on Fred Fish CDs. See your Amiga FAQ.
-
- 3. Make directory trees
-
- ! Leave source in src/ (only *.d, *.h and *.lsp files are needed) and
- ! utilities in utils/ (only comment5, ansidecl and cvtmsgs are needed).
- ! Choose the version you want to build (see README.Amiga or README) and
- ! create directories like make.high/, make.low/ and make.wide/ at the same
- ! level as src/.
-
- ! 4. IxPrefs and ixemul.library `/' pathname translation
-
- In order to find include files located in /src/ relatively to the make.*
- ! directory, ixemul.library shouldn't translate /. As sh (which is called
- ! by GNU-make) doesn't seem to be able to handle this situation, a
- ! workaround is to assign src: and utils: to the src/ and utils/ directories
- ! respectively.
-
- 5. Check your stack sizes
- ***************
- *** 42,49 ****
- gcc-ld requires 180000 bytes.
-
- ! This is current stack usage and can increase when adding new features to
- ! CLISP. If your make program can't set stack sizes, you'll have to run
- ! everything with the maximum stack. This is why I have a private make
- ! program that recognizes and honours the stack command.
-
- 6. Make the clisp support library found in amiga/jchlib/
- --- 40,47 ----
- gcc-ld requires 180000 bytes.
-
- ! This is my observed stack usage relative to GCC-2.5.8 and can increase
- ! when adding new features to CLISP. If your make program cannot set stack
- ! sizes, you'll have to run everything with the maximum stack. I have my
- ! own make program which recognizes and honours the stack command.
-
- 6. Make the clisp support library found in amiga/jchlib/
- ***************
- *** 50,63 ****
-
- This is a micro C startup library containing the bare minimum to start a
- ! program from CLI or WorkBench and setjmp() and strlen(). It's used by
- ! CLISP but could be by other programs too. It doesn't require
- ! ixemul.library. From WorkBench, it opens the window specified by the
- ! WINDOW tooltype and supports project icons (currently all in the same
- ! directory only).
- !
- ! Compiling CLISP without using my library has never been
- ! tested. Furthermore, CLISP now uses the setmode() function from this
- ! library which is not found in a standard C library.
-
- 7. Makefile
-
- --- 48,59 ----
-
- This is a micro C startup library containing the bare minimum to start a
- ! program from CLI or WorkBench, setjmp() and strlen(). It's used by CLISP
- ! but could be by other programs too. It doesn't require ixemul.library.
- ! From WorkBench, it opens the window specified by the WINDOW tooltype,
- ! initializes argv[] with ARGS if present and supports project icons
- ! (currently all in the same directory only).
-
- + Compiling CLISP without using my library has never been tested.
- +
- 7. Makefile
-
- ***************
- *** 69,86 ****
- space for the gcc driver.
-
- ! Now, with the normal make, I nevertheless managed to build CLISP by
- ! running VMM, a virtual memory manager and setting the stack before
- ! starting make. It's a huge waste and won't run in a 10MB system without
- ! virtual memory, but you could also use this. Link or copy the /bin/true
- ! command to make.*/stack so that /bin/sh will find a stack command (it's
- ! called by the Makefile). If /bin/sh can't find cc1, cpp etc. because they
- ! are deep inside the gcc-lib hierarchy, set a local variable PATH to all
- ! the paths. Make and thus sh will inherit this variable:
-
- ! set PATH /gnu/bin:/gnu/lib/gcc-lib/mc680x0-cbm-amigados/2.x.x:/C:/utils/:.
-
- 8. Edit
-
- ! make.*/Makefile
-
- according to your choices and tastes. By default, you'll make the
- --- 65,83 ----
- space for the gcc driver.
-
- ! Now, with a normal (GNU-)make, I nevertheless managed to build CLISP by
- ! running VMM, a virtual memory manager and setting the maximal stack
- ! before starting make. It's a huge waste of resources and won't run in a
- ! 10MB system without virtual memory, but you could also try this. Link or
- ! copy the /bin/true command to make.*/stack so that /bin/sh will find a
- ! stack command (it's called by the Makefile). If /bin/sh can't find cc1,
- ! cpp etc. because they are deep inside the gcc-lib hierarchy, set a local
- ! variable PATH to all the paths. Make and thus sh will inherit this
- ! variable:
-
- ! set PATH /gnu/bin:/gnu/lib/gcc-lib/m68k-cbm-amigados/2.x.x:/C:/utils/:.
-
- 8. Edit
-
- ! make.*/Makefile
-
- according to your choices and tastes. By default, you'll make the
- ***************
- *** 87,101 ****
- international (well, english, french and german) version of CLISP, which
- requires more space than a single language one that can be built by
- ! adding -DENGLISH, -DFRANCAIS or -DDEUTSCH flags to the compiler. See
- ! src/lispbibl.d for everything that can be defined. The amiga or AMIGA
- define serves to recognize the Amiga (don't set them for now under
- Amiga-UNIX). Interesting preprocessor flags include AMIGA3000, MC680Y0
- ! for 68020 or better (implied by AMIGA3000), MC68000 for 68000 only, WIDE
- ! for 64 bit ints (for 32 bit clean pointers).
-
- 9. Edit
-
- ! src/config.lsp
- ! src/timezone.lsp
-
- See README for the one line to modify in timezone.lsp. In config.lsp,
- --- 84,104 ----
- international (well, english, french and german) version of CLISP, which
- requires more space than a single language one that can be built by
- ! adding one of -DENGLISH, -DFRANCAIS or -DDEUTSCH flags to the compiler.
- ! See src/lispbibl.d for everything that can be defined. The amiga or AMIGA
- define serves to recognize the Amiga (don't set them for now under
- Amiga-UNIX). Interesting preprocessor flags include AMIGA3000, MC680Y0
- ! for 68020 or better (implied by AMIGA3000), MC68000 for 68000 only, and
- ! WIDE for 64 bit ints (for 32 bit clean pointers).
- !
- ! Extensions like gettext and readline cannot currently be added as they
- ! use stdio and malloc whereas CLISP uses the low-level and unbuffered
- ! dos.library routines for i/o and AllocMem() etc. for all memory. Don't
- ! mess with it. Using UNIX-like (open) or ANSI (fopen) stdio would require
- ! a large rewrite of several source files.
-
- 9. Edit
-
- ! src/config.lsp
- ! src/timezone.lsp
-
- See README for the one line to modify in timezone.lsp. In config.lsp,
- ***************
- *** 104,109 ****
- 10. Remove
-
- ! Every $ from the file src/ari68020.mit.d and rename it src/ari68020.d
- ! sed > ari68020.d -e "s/$//" ari68020.mit.d
- Quote $ according to your shell conventions and sed version.
-
- --- 107,112 ----
- 10. Remove
-
- ! every $ from the file src/ari68020.mit.d and rename it src/ari68020.d
- ! sed > ari68020.d -e "s/$//" ari68020.mit.d
- Quote $ according to your shell conventions and sed version.
-
- ***************
- *** 114,120 ****
- 12. Type
-
- ! make (while in a make.* directory) (-low)
- ! make HIGH=1 (-high)
- ! make WIDE=1 (-wide)
-
- and wait for things to happen. One night on a B2000, more than one hour
- --- 117,123 ----
- 12. Type
-
- ! make (while in a make.* directory) (-low)
- ! make HIGH=1 (-high)
- ! make WIDE=1 (-wide)
-
- and wait for things to happen. One night on a B2000, more than one hour
- ***************
- *** 122,142 ****
-
- Hint: use FIFO: (by Matt Dillon) in order to get a logfile.
- ! NewShell FIFO:shell/rwkecs
- ! Run >nil: remcli shell
- ! Run >nil: cat FIFO:shell/rmt >>compile.log
- ! echo "Log going into compile.log."
- Or use KingCon, ConsoleBuffer or else the Recorder program from the
- hacks204 archive by Andy Finkel (doesn't seem to work with 3.0).
-
- ! 13. Type
-
- ! make interpreted.mem a memory image with everything
- ! uncompiled (size 1.7MB)
- ! make lispinit.mem makes all *.fas files and
- ! a memory image with everything
- ! compiled (size 500KB, 1MB for wide version)
- The second step is the most time consuming.
-
- ! 14. A test-suite
-
- The directory clisp/tests/ contains a large number of test files. While in
- --- 125,183 ----
-
- Hint: use FIFO: (by Matt Dillon) in order to get a logfile.
- ! NewShell FIFO:shell/rwkecs
- ! Run >nil: remcli shell
- ! Run >nil: cat FIFO:shell/rmt >>compile.log
- ! echo "Log going into compile.log."
- Or use KingCon, ConsoleBuffer or else the Recorder program from the
- hacks204 archive by Andy Finkel (doesn't seem to work with 3.0).
-
- ! 13. Patches
-
- ! Gcc-2.3.3 -O2 -fomit-frame-pointer put several bugs in the compiler
- ! output. I previously corrected two of them by hand-patching the assembly
- ! files. Gcc-2.5.7 produced correct output but for 68020 and above machines
- ! only. Gcc-2.5.8 produces few bugs and only in the -DWIDE version. Beta
- ! versions of gcc-2.6.0 were not stable enough for compilation of the
- ! -DWIDE version. I'm using Gcc-2.5.8.
- !
- ! Here's what to patch in control.s:_C_go (before the second eql):
- ! movel a5@(-12),sp@-
- ! movel a5@(-16),sp@-
- ! #APP
- ! | Should only be incremented once!
- ! | movel d1,a2
- ! | addql #8,d1
- ! #NO_APP
- ! movel d1,a2
- ! addql #8,d1
- ! movel a2@(4),sp@-
- ! movel a2@,sp@-
- ! movel d1,a5@(-28)
- ! jbsr _eql
- !
- ! Here's a patch for predtype.s:_equalp (case_string dotimespL loop):
- ! movel a5@(-32),d1
- ! movel d1,a1
- ! addql #1,d1
- ! moveb a1@,d0
- ! #APP
- ! | Save incremented address!
- ! movel d1,a5@(-32)
- ! #NO_APP
- ! movel d0,sp@-
- ! jbsr a6@
- !
- ! Nobody gurantees there aren't more bugs not uncovered by the tests.
- !
- ! 14. Type
- !
- ! make interpreted.mem a memory image with everything
- ! uncompiled (size 1.7MB)
- ! make lispinit.mem makes all *.fas files and
- ! a memory image with everything
- ! compiled (size 500KB, 1MB for wide version)
- The second step is the most time consuming.
-
- ! 15. A test-suite
-
- The directory clisp/tests/ contains a large number of test files. While in
- ***************
- *** 150,154 ****
- array.erg should remain and report some limit or fixnum differences.
-
- ! 15. Documentation
-
- Unluckily for an Amiga-only site, I generated the .man file on a UNIX
- --- 191,195 ----
- array.erg should remain and report some limit or fixnum differences.
-
- ! 16. Documentation
-
- Unluckily for an Amiga-only site, I generated the .man file on a UNIX
- ***************
- *** 157,165 ****
-
-
- Authors:
- --------
-
- ! Bruno Haible
- ! Michael Stoll
-
- Email: haible@ma2s2.mathematik.uni-karlsruhe.de
- --- 198,301 ----
-
-
- + 17. Known compiler warnings
- +
- + This gives you an idea of what not to look at. Some warnings, especially
- + in LISPARIT.D vary among the versions.
- +
- + /src/array.d: In function `C_make_array':
- + /src/array.d:2445: warning: `fillpointer' may be used uninitialized in this function
- + /src/array.d: In function `C_adjust_array':
- + /src/array.d:2742: warning: `fillpointer' may be used uninitialized in this function
- + /src/charstrg.d: In function `test_index_arg':
- + /src/charstrg.d:1418: warning: `i' may be used uninitialized in this function
- + /src/charstrg.d: In function `test_string_limits':
- + /src/charstrg.d:1508: warning: `start' may be used uninitialized in this function
- + /src/charstrg.d:1509: warning: `end' may be used uninitialized in this function
- + /src/charstrg.d: In function `test_1_stringsym_limits':
- + /src/charstrg.d:1587: warning: `start' may be used uninitialized in this function
- + /src/charstrg.d:1588: warning: `end' may be used uninitialized in this function
- + /src/charstrg.d: In function `test_2_stringsym_limits':
- + /src/charstrg.d:1659: warning: `start1' may be used uninitialized in this function
- + /src/charstrg.d:1660: warning: `end1' may be used uninitialized in this function
- + /src/charstrg.d:1689: warning: `start2' may be used uninitialized in this function
- + /src/charstrg.d:1690: warning: `end2' may be used uninitialized in this function
- + /src/charstrg.d: In function `C_substring':
- + /src/charstrg.d:2322: warning: `start' may be used uninitialized in this function
- + /src/charstrg.d:2323: warning: `end' may be used uninitialized in this function
- + /src/control.d: In function `C_tagbody':
- + /src/control.d:1439: warning: variable `body' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d: In function `invoke_handlers':
- + /src/eval.d:686: warning: variable `other_ranges' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:689: warning: variable `FRAME' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:702: warning: variable `i' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d: In function `funcall_iclosure':
- + /src/eval.d:2371: warning: argument `closure' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:2372: warning: argument `args_pointer' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:2373: warning: argument `argcount' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d: In function `eval':
- + /src/eval.d:2849: warning: variable `_SetSignal_re' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:2849: warning: variable `_n1' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:2846: warning: argument `form' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d: In function `eval_no_hooks':
- + /src/eval.d:2906: warning: argument `form' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d: In function `interpret_bytecode_':
- + /src/eval.d:5750: warning: variable `closure' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:5755: warning: variable `byteptr' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:5763: warning: variable `closureptr' may be clobbered by `longjmp' or `vfork'
- + /src/eval.d:5746: warning: argument `codeptr' may be clobbered by `longjmp' or `vfork'
- + /src/hashtabl.d: In function `hashcode':
- + /src/hashtabl.d:438: warning: statement with no effect
- + /src/hashtabl.d: In function `C_class_tuple_gethash':
- + /src/hashtabl.d:1326: warning: statement with no effect
- + /src/io.d: In function `C_bit_vector_reader':
- + /src/io.d:3155: warning: `ch' may be used uninitialized in this function
- + /src/io.d: In function `C_vector_reader':
- + /src/io.d:3245: warning: `el' may be used uninitialized in this function
- + /src/lisparit0.d: In function `divu_3232_3232_':
- + /src/lisparit0.d:1130: warning: statement with no effect
- + /src/lisparit0.d: In function `make_random_state':
- + /src/lisparit0.d:22269: warning: assignment makes integer from pointer without a cast
- + /src/pathname.d: In function `parse_logical_word':
- + /src/pathname.d:1027: warning: `ch' may be used uninitialized in this function
- + /src/rexx.d: In function `C_rexx_put':
- + /src/rexx.d:89: warning: `vargs' may be used uninitialized in this function
- + /src/spvw.d: In function `speicher_laenge':
- + /src/spvw.d:2364: warning: control reaches end of non-void function
- + /src/spvw.d: In function `alive':
- + /src/spvw.d:3556: warning: control reaches end of non-void function
- + /src/spvw.d: In function `gc_compact_from_varobject_page':
- + /src/spvw.d:5786: warning: `p2' may be used uninitialized in this function
- + /src/spvw.d:5787: warning: `l2' may be used uninitialized in this function
- + /src/spvw.d: In function `gc_compact_from_cons_page':
- + /src/spvw.d:5840: warning: `p2' may be used uninitialized in this function
- + /src/spvw.d:5841: warning: `l2' may be used uninitialized in this function
- + /src/spvw.d: In function `asciz_out':
- + /src/spvw.d:7859: warning: initialization discards `const' from pointer target type
- + /src/spvw.d: In function `main':
- + /src/spvw.d:9580: warning: variable `argv_memneed' may be clobbered by `longjmp' or `vfork'
- + /src/spvw.d:9582: warning: variable `argv_stackneed' may be clobbered by `longjmp' or `vfork'
- + /src/spvw.d: In function `loadmem':
- + /src/spvw.d:11526: warning: empty body in an else-statement
- + /src/stream.d: In function `make_file_stream':
- + /src/stream.d:8793: warning: `art' may be used uninitialized in this function
- +
- + Additionaly for the -low and -00 versions:
- + /src/lisparit0.d: In function `I_to_UL':
- + /src/lisparit0.d:1954: warning: comparison is always 1 due to limited range of data type
- + /src/lisparit0.d: In function `I_to_L':
- + /src/lisparit0.d:2001: warning: comparison is always 1 due to limited range of data type
- + /src/lisparit0.d:2030: warning: comparison is always 0 due to limited range of data type
- + /src/lisparit0.d: In function `I_to_UQ':
- + /src/lisparit0.d:2092: warning: comparison is always 1 due to limited range of data type
- + /src/lisparit0.d: In function `LF_I_scale_float_LF':
- + /src/lisparit0.d:16261: warning: comparison is always 1 due to limited range of data type
- + /src/lisparit0.d:16288: warning: comparison is always 0 due to limited range of data type
- +
- +
- Authors:
- --------
-
- ! Bruno Haible
- ! Michael Stoll
-
- Email: haible@ma2s2.mathematik.uni-karlsruhe.de
- ***************
- *** 168,172 ****
- --------------
-
- ! Jörg Höhle
-
- ! Email: hoehle@zeus.gmd.de
- --- 304,308 ----
- --------------
-
- ! Jörg Höhle
-
- ! Email: Joerg.Hoehle@gmd.de
- Only in dh0:source/clisptmp/amiga/jchlib: CVS
- Only in dh0:source/clisptmp/amiga/jchlib/include: CVS
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/include/stdlib.h amiga/jchlib/include/stdlib.h
- *** dh0:source/clisptmp/amiga/jchlib/include/stdlib.h Mon Apr 15 16:24:22 1996
- --- amiga/jchlib/include/stdlib.h Tue Jun 11 22:16:15 1996
- ***************
- *** 1,5 ****
- /* Tiny GCC Library
- * stdlib.h
- ! * Jörg Höhle, 11-Dec-93
- */
-
- --- 1,5 ----
- /* Tiny GCC Library
- * stdlib.h
- ! * Jörg Höhle, 11-Jun-96
- */
-
- ***************
- *** 9,12 ****
- --- 9,13 ----
- typedef void exit_t (int);
- extern volatile exit_t exit;
- + char *getenv(const char *);
-
- #endif /* _STDLIB_H_ */
- Only in amiga/jchlib/lib: crt0.o
- Only in dh0:source/clisptmp/amiga/jchlib/lib: CVS
- Only in amiga/jchlib/lib: foo.o
- Only in amiga/jchlib/lib: libcclisp.a
- Only in amiga/jchlib/lib: libtinygcc.a
- Only in amiga/jchlib/lib: _udivdi3.o
- Only in amiga/jchlib/lib: _udivmoddi4.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/Makefile amiga/jchlib/Makefile
- *** dh0:source/clisptmp/amiga/jchlib/Makefile Mon Apr 15 16:24:18 1996
- --- amiga/jchlib/Makefile Tue Aug 06 20:44:42 1996
- ***************
- *** 1,11 ****
- # GNU-Makefile for tiny GCC library
- ! # Jörg Höhle, 11-Jul-94
-
- FLAGS=-Wall -fomit-frame-pointer
- # -IGCC:include is used by the GCC2 inlines
- ! INCPATH=-nostdinc -Iinclude -IAB:usr/include/amiga31 -IGCC258:os-include -IGCC258:include
-
- #CP =copy clone
- ! CP =cp
-
- CC =gcc -v
- --- 1,14 ----
- # GNU-Makefile for tiny GCC library
- ! # Jörg Höhle, 6-Aug-96
-
- + # 24.7.96: removed gnulib files from LIBFILES, use -lgcc instead
- + # lib/gnuarith.o lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o\
- +
- FLAGS=-Wall -fomit-frame-pointer
- # -IGCC:include is used by the GCC2 inlines
- ! INCPATH=-nostdinc -Iinclude -IADE:os-include -IADE:include
-
- #CP =copy clone
- ! CP =cp -p
-
- CC =gcc -v
- ***************
- *** 14,22 ****
- ASFLAGS=-mc68010
- LD =ld
- ! LDFLAGS=-nostdlib -l$(LIBSHORTNAME)
- #AR from gcc-2.5.6/8 doesn't strip dirnames which I believe is wrong
- AR =ar233
-
- ! LIBSHORTNAME=clisp
- LIBFILENAME=lib/lib$(LIBSHORTNAME).a
- CRT0FILENAME=lib/crt0.o
- --- 17,26 ----
- ASFLAGS=-mc68010
- LD =ld
- ! LDFLAGS=-x -nostdlib -Llib -l$(LIBSHORTNAME)
- #AR from gcc-2.5.6/8 doesn't strip dirnames which I believe is wrong
- AR =ar233
-
- ! #LIBSHORTNAME=tiny
- ! LIBSHORTNAME=cclisp
- LIBFILENAME=lib/lib$(LIBSHORTNAME).a
- CRT0FILENAME=lib/crt0.o
- ***************
- *** 25,29 ****
- main.c def_handle.c wbmain.c exit.c parseargs.c gcc2__main.s)
-
- ! MISCFILES=misc/setjmp.s misc/strlen.c misc/CreatePort.c misc/setmode.c
- # MISCOBJS=$(subst .c,.o,$(MISCFILES))
-
- --- 29,33 ----
- main.c def_handle.c wbmain.c exit.c parseargs.c gcc2__main.s)
-
- ! MISCFILES=misc/setjmp.s misc/strlen.c misc/CreatePort.c misc/setmode.c misc/getenv.c
- # MISCOBJS=$(subst .c,.o,$(MISCFILES))
-
- ***************
- *** 32,37 ****
- startup/main.o startup/wbmain.o startup/exit.o startup/parseargs.o\
- misc/setjmp.o misc/strlen.o startup/gcc2__main.o\
- ! misc/CreatePort.o misc/BPTRfprintf.o misc/setmode.o\
- ! lib/gnuarith.o lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o\
- startup/def_handle.o startup/def_window.o startup/def_glue.o
-
- --- 36,40 ----
- startup/main.o startup/wbmain.o startup/exit.o startup/parseargs.o\
- misc/setjmp.o misc/strlen.o startup/gcc2__main.o\
- ! misc/CreatePort.o misc/BPTRfprintf.o misc/setmode.o misc/getenv.o\
- startup/def_handle.o startup/def_window.o startup/def_glue.o
-
- ***************
- *** 42,46 ****
- all: $(LIBFILENAME) $(CRT0FILENAME)
-
- ! lib/libclisp.a: $(CLISPLIBFILES)
- $(RM) $@
- $(AR) -qv $@ $^
- --- 45,49 ----
- all: $(LIBFILENAME) $(CRT0FILENAME)
-
- ! lib/libcclisp.a: $(CLISPLIBFILES)
- $(RM) $@
- $(AR) -qv $@ $^
- ***************
- *** 58,73 ****
- echo "gnuarith.o is taken from GCCBuRP"
-
- ! lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o:
- echo "$@ comes from GCC-2.5.8"
-
- test: test.o $(LIBFILENAME) $(CRT0FILENAME)
- ! $(LD) $(CRT0FILENAME) $< -nostdlib -Llib -l$(LIBSHORTNAME) -o $@
-
- test-s: test.o $(LIBFILENAME) $(CRT0FILENAME)
- ! $(LD) -s $(CRT0FILENAME) $< -nostdlib -Llib -l$(LIBSHORTNAME) -o $@
-
- setmode-main: misc/setmode.c $(LIBFILENAME) $(CRT0FILENAME)
- $(CC) $(CFLAGS) -c -DMAIN -DJCHLIB misc/setmode.c -o setmode-main.o
- ! $(LD) -s $(CRT0FILENAME) setmode-main.o -nostdlib -Llib -l$(LIBSHORTNAME) -o $@
-
- clean:
- --- 61,77 ----
- echo "gnuarith.o is taken from GCCBuRP"
-
- ! lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o lib/_udivdi3.o:
- echo "$@ comes from GCC-2.5.8"
-
- + # Luckily, -lgcc is not required here
- test: test.o $(LIBFILENAME) $(CRT0FILENAME)
- ! $(LD) $(CRT0FILENAME) $< $(LDFLAGS) -o $@
-
- test-s: test.o $(LIBFILENAME) $(CRT0FILENAME)
- ! $(LD) -s $(CRT0FILENAME) $< $(LDFLAGS) -o $@
-
- setmode-main: misc/setmode.c $(LIBFILENAME) $(CRT0FILENAME)
- $(CC) $(CFLAGS) -c -DMAIN -DJCHLIB misc/setmode.c -o setmode-main.o
- ! $(LD) -s $(CRT0FILENAME) setmode-main.o $(LDFLAGS) -o $@
-
- clean:
- Only in amiga/jchlib/misc: BPTRfprintf.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/BPTRfprintf.s amiga/jchlib/misc/BPTRfprintf.s
- *** dh0:source/clisptmp/amiga/jchlib/misc/BPTRfprintf.s Mon Apr 15 16:24:24 1996
- --- amiga/jchlib/misc/BPTRfprintf.s Tue Jul 09 21:03:09 1996
- ***************
- *** 1,4 ****
- | Tiny GCC Library
- ! | Jörg Höhle, 10-Jul-94
-
- |A 254 byte buffer is allocated and chunks max that large written
- --- 1,4 ----
- | Tiny GCC Library
- ! | Jörg Höhle, 9-Jul-96
-
- |A 254 byte buffer is allocated and chunks max that large written
- ***************
- *** 33,37 ****
- movel a3@(12),a0 | C-format
- lea a3@(16),a1 | C-varargs
- ! lea pc@(stuffit+2),a2 | PutChProc, +2 because of as? bug!
- | PutChData in a3
- movel _SysBase,a6
- --- 33,37 ----
- movel a3@(12),a0 | C-format
- lea a3@(16),a1 | C-varargs
- ! lea pc@(stuffit),a2 | PutChProc, ATTENTION! old gas needed stuffit+2
- | PutChData in a3
- movel _SysBase,a6
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/CreatePort.c amiga/jchlib/misc/CreatePort.c
- *** dh0:source/clisptmp/amiga/jchlib/misc/CreatePort.c Mon Apr 15 16:24:26 1996
- --- amiga/jchlib/misc/CreatePort.c Tue Jul 09 20:32:12 1996
- ***************
- *** 1,4 ****
- /* GCC Library
- ! * Jörg Höhle, 30-Nov-92
- */
-
- --- 1,4 ----
- /* GCC Library
- ! * Jörg Höhle, 12-Jun-96
- */
-
- ***************
- *** 6,14 ****
- #include <exec/ports.h>
- #include <exec/memory.h>
- ! #ifdef __GNUC__
- ! #include <inline/exec.h>
- ! #else
- ! #include <clib/exec.h>
- ! #endif
-
- void DeletePort(struct MsgPort * port);
- --- 6,14 ----
- #include <exec/ports.h>
- #include <exec/memory.h>
- !
- ! #define __CONSTLIBBASEDECL__ const /* for GCC inlines */
- ! extern struct ExecBase * const SysBase;
- ! #include <proto/exec.h>
- ! #include <proto/alib.h> /* for NewList() */
-
- void DeletePort(struct MsgPort * port);
- Only in amiga/jchlib/misc: CreatePort.o
- Only in dh0:source/clisptmp/amiga/jchlib/misc: CVS
- Only in amiga/jchlib/misc: getenv.c
- Only in amiga/jchlib/misc: getenv.o
- Only in amiga/jchlib/misc: setjmp.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/setmode.c amiga/jchlib/misc/setmode.c
- *** dh0:source/clisptmp/amiga/jchlib/misc/setmode.c Mon Apr 15 16:24:26 1996
- --- amiga/jchlib/misc/setmode.c Tue Jul 09 20:17:45 1996
- ***************
- *** 1,5 ****
- --- 1,8 ----
- #include <exec/types.h>
- + #include <exec/execbase.h>
- #include <dos/dosextens.h>
-
- + #define __CONSTLIBBASEDECL__ const /* for GCC inlines */
- + extern struct ExecBase * const SysBase;
- #include <inline/exec.h>
- #include <inline/dos.h>
- ***************
- *** 11,15 ****
-
- LONG setmode(BPTR fh, LONG mode)
- ! {extern struct DosLibrary * DOSBase;
- if (DOSBase->dl_lib.lib_Version > 35)
- return SetMode(fh,mode);
- --- 14,18 ----
-
- LONG setmode(BPTR fh, LONG mode)
- ! {extern struct DosLibrary * const DOSBase;
- if (DOSBase->dl_lib.lib_Version > 35)
- return SetMode(fh,mode);
- Only in amiga/jchlib/misc: setmode.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/strlen.c amiga/jchlib/misc/strlen.c
- *** dh0:source/clisptmp/amiga/jchlib/misc/strlen.c Mon Apr 15 16:24:28 1996
- --- amiga/jchlib/misc/strlen.c Tue Aug 21 23:46:18 1995
- ***************
- *** 1,15 ****
- ! #if 0
- int strlen(const char* str)
- {
- ! register int count;
- ! for (count = 0; *str != '\0'; count++, str++) ;
- ! return count;
- }
- ! #else /* better optimisation */
- ! int strlen(const char* str)
- ! {
- ! register int count = 0;
- ! while (!(*str++ == 0)) count++;
- ! return count;
- ! }
- ! #endif
- --- 1,18 ----
- ! /* only loop over tst.b (a0)+ */
- int strlen(const char* str)
- {
- ! register const char* ptr = str;
- ! while (*ptr++) ;
- ! return ~(str - ptr);
- }
- !
- ! /* almost identical to:
- ! move.l (sp)+,a0
- ! move.l a0,d0
- ! slloop:
- ! tst.l (a0)+ ; Test for null-terminator and increment A0
- ! bne.b slloop ; Repeat if we didn't find the terminator
- ! not.l d0 ; D0 = -D0 - 1
- ! add.l a0,d0 ; D0 = A0 - D0 - 1
- ! rts
- ! */
- Only in amiga/jchlib/misc: strlen.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/clisp.c amiga/jchlib/startup/clisp.c
- *** dh0:source/clisptmp/amiga/jchlib/startup/clisp.c Mon Apr 15 16:24:28 1996
- --- amiga/jchlib/startup/clisp.c Tue Jul 09 19:35:00 1996
- ***************
- *** 9,12 ****
- --- 9,14 ----
- /* BPTR Output_handle = NULL; */
-
- + #ifdef SUPPORT_1_3
- UBYTE _WDefName13[] = "CON:0/11/640/186/CLISP-Listener";
- + #endif
- UBYTE _WDefName[] = "CON:0/11//186/CLISP-Listener/CLOSE/AUTO/WAIT";
- Only in amiga/jchlib/startup: clisp.o
- Only in amiga/jchlib/startup: crt0.o
- Only in dh0:source/clisptmp/amiga/jchlib/startup: CVS
- Only in amiga/jchlib/startup: def_handle.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/def_window.c amiga/jchlib/startup/def_window.c
- *** dh0:source/clisptmp/amiga/jchlib/startup/def_window.c Mon Apr 15 16:24:30 1996
- --- amiga/jchlib/startup/def_window.c Wed Jul 24 02:34:31 1996
- ***************
- *** 1,4 ****
- #include <exec/types.h>
-
- ! UBYTE _WDefName13[] = "CON:0/11/640/186/Interaction";
- ! UBYTE _WDefName[] = "CON:0/11//186/Interaction/CLOSE/AUTO/WAIT";
- --- 1,6 ----
- #include <exec/types.h>
-
- ! #ifdef SUPPORT_1_3
- ! UBYTE _WDefName13[] = "CON:0/11/640/186/Program-console";
- ! #endif
- ! UBYTE _WDefName[] = "CON:0/11//186/Program-console/CLOSE/AUTO/WAIT";
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/exit.c amiga/jchlib/startup/exit.c
- *** dh0:source/clisptmp/amiga/jchlib/startup/exit.c Mon Apr 15 16:24:30 1996
- --- amiga/jchlib/startup/exit.c Tue Jul 09 19:48:00 1996
- ***************
- *** 6,16 ****
- #include <exec/ports.h>
- #include <libraries/dos.h>
- ! #ifdef __GNUC__
- ! #include <inline/exec.h>
- ! #include <inline/dos.h>
- ! #else
- ! #include <clib/exec.h>
- ! #include <clib/dos.h>
- ! #endif
-
- volatile void _exit(LONG);
- --- 6,11 ----
- #include <exec/ports.h>
- #include <libraries/dos.h>
- ! #include <proto/exec.h>
- ! #include <proto/dos.h>
-
- volatile void _exit(LONG);
- Only in amiga/jchlib/startup: exit.o
- Only in amiga/jchlib/startup: gcc2__main.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/main.c amiga/jchlib/startup/main.c
- *** dh0:source/clisptmp/amiga/jchlib/startup/main.c Mon Apr 15 16:24:32 1996
- --- amiga/jchlib/startup/main.c Tue Jul 09 19:55:18 1996
- ***************
- *** 8,30 ****
- #include <exec/ports.h>
- #include <workbench/startup.h>
- ! #ifdef __GNUC__
- ! #include <inline/exec.h>
- ! #include <inline/dos.h>
- ! #else
- ! #include <clib/exec.h>
- ! #include <clib/dos.h>
- ! #endif
-
- ! struct ExecBase * SysBase;
- struct DosLibrary * DOSBase = NULL;
- - struct Process * _Process = NULL;
- struct WBStartup * WBenchMsg = NULL;
- UWORD _OS_Version;
-
- long _main(LONG arglen, UBYTE* arg)
- {
- ! register struct Process *proc =
- ! _Process = (struct Process *)FindTask(NULL);
- _OS_Version = SysBase->LibNode.lib_Version;
- if (NULL == proc->pr_CLI) /* WB startup */
- {
- --- 8,30 ----
- #include <exec/ports.h>
- #include <workbench/startup.h>
- ! #include <proto/exec.h>
- ! #include <proto/dos.h>
-
- ! struct ExecBase * const SysBase;
- struct DosLibrary * DOSBase = NULL;
- struct WBStartup * WBenchMsg = NULL;
- + #ifdef SUPPORT_1_3
- UWORD _OS_Version;
- + #define MINIMAL_VERSION 0L
- + #else
- + #define MINIMAL_VERSION 37L
- + #endif
-
- long _main(LONG arglen, UBYTE* arg)
- {
- ! register struct Process *proc = (struct Process *)FindTask(NULL);
- ! #ifdef SUPPORT_1_3
- _OS_Version = SysBase->LibNode.lib_Version;
- + #endif
- if (NULL == proc->pr_CLI) /* WB startup */
- {
- ***************
- *** 33,37 ****
- }
-
- ! if (NULL == (DOSBase = (struct DosLibrary *)OpenLibrary(DOSNAME,0L)))
- { exit(-1L); } /* DOSBase will not necessarily be set in exit()! */
-
- --- 33,37 ----
- }
-
- ! if (NULL == (DOSBase = (struct DosLibrary *)OpenLibrary(DOSNAME,MINIMAL_VERSION)))
- { exit(-1L); } /* DOSBase will not necessarily be set in exit()! */
-
- Only in amiga/jchlib/startup: main.o
- Only in amiga/jchlib/startup: parseargs.o
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/wbmain.c amiga/jchlib/startup/wbmain.c
- *** dh0:source/clisptmp/amiga/jchlib/startup/wbmain.c Mon Apr 15 16:24:34 1996
- --- amiga/jchlib/startup/wbmain.c Tue Jul 09 20:08:06 1996
- ***************
- *** 1,4 ****
- /* Tiny GCC Library
- ! * Jörg Höhle, 21-Jul-94
- */
-
- --- 1,4 ----
- /* Tiny GCC Library
- ! * Jörg Höhle, 9-Jul-96
- */
-
- ***************
- *** 11,24 ****
- struct Library * IconBase = NULL;
-
- ! #ifdef __GNUC__
- ! #include <inline/exec.h>
- ! #include <inline/dos.h>
- ! #define BASE_EXT_DECL
- ! #include <inline/icon.h>
- ! #else
- ! #include <clib/exec.h>
- ! #include <clib/dos.h>
- ! #include <clib/icon.h>
- ! #endif
-
- /* FALSE for standard code (def_window.c), TRUE for CLISP (through clisp.c) */
- --- 11,18 ----
- struct Library * IconBase = NULL;
-
- ! #include <proto/exec.h>
- ! #include <proto/dos.h>
- ! #define BASE_EXT_DECL /* no const declaration with old GCC function inlines */
- ! #include <proto/icon.h>
-
- /* FALSE for standard code (def_window.c), TRUE for CLISP (through clisp.c) */
- ***************
- *** 26,30 ****
- --- 20,26 ----
-
- /* These are pulled from the library unless you define them (see clisp.c) */
- + #ifdef SUPPORT_1_3
- extern UBYTE _WDefName13[];
- + #endif
- extern UBYTE _WDefName[];
-
- ***************
- *** 60,64 ****
- if (dobj != NULL)
- { char* arg = FindToolType(dobj->do_ToolTypes,"WINDOW");
- ! /* ex: WINDOW=CON:0/0/640/200/CLOS-Listener oder WINDOW=NIL: */
- if (arg != NULL)
- { register int len = strlen(arg);
- --- 56,60 ----
- if (dobj != NULL)
- { char* arg = FindToolType(dobj->do_ToolTypes,"WINDOW");
- ! /* ex: WINDOW=CON:0/0/640/200/CLOS-Listener/CLOSE oder WINDOW=NIL: */
- if (arg != NULL)
- { register int len = strlen(arg);
- ***************
- *** 74,78 ****
- if (arg != NULL)
- { register int len = strlen(arg);
- ! D(ebug("Found ARG tooltype: %s\n",arg));
- argline[i].line = alloca(len+1);
- nzbcopy(arg,argline[i].line,len+1);
- --- 70,74 ----
- if (arg != NULL)
- { register int len = strlen(arg);
- ! D(ebug("Found ARGS tooltype: %s\n",arg));
- argline[i].line = alloca(len+1);
- nzbcopy(arg,argline[i].line,len+1);
- ***************
- *** 127,131 ****
- --- 123,131 ----
-
- if (ioname == NULL)
- + #ifdef SUPPORT_1_3
- { ioname = _OS_Version >= 37 ? _WDefName : _WDefName13; }
- + #else
- + { ioname = _WDefName; }
- + #endif
-
- Input_handle = Output_handle = Open(ioname,MODE_OLDFILE);
- Only in amiga/jchlib/startup: wbmain.o
- Only in amiga/jchlib: test
- diff -rc2 dh0:source/clisptmp/amiga/jchlib/test.c amiga/jchlib/test.c
- *** dh0:source/clisptmp/amiga/jchlib/test.c Mon Apr 15 16:24:18 1996
- --- amiga/jchlib/test.c Tue Jul 09 21:04:42 1996
- ***************
- *** 6,10 ****
- #include <libgoodies.h> /* for BPTRfprintf() */
-
- ! #include <inline/dos.h>
-
- /* This comes from the startup code */
- --- 6,12 ----
- #include <libgoodies.h> /* for BPTRfprintf() */
-
- ! #define __CONSTLIBBASEDECL__ const /* better code with GCC inlines */
- ! extern struct DosLibrary * const DOSBase;
- ! #include <proto/dos.h>
-
- /* This comes from the startup code */
- ***************
- *** 12,18 ****
-
- const char *usage = "Usage:
- ! Please try this from WorkBench also, using the ARGS tooltype.
- ! When called with four arguments, does setjmp() test.
- ! ";
-
- int main(int argc, char *argv[])
- --- 14,22 ----
-
- const char *usage = "Usage:
- ! Please try this from WorkBench also, using the ARGS tooltype."
- ! #if 0
- ! "When called with four arguments, does setjmp() test."
- ! #endif
- ! ;
-
- int main(int argc, char *argv[])
- ***************
- *** 37,40 ****
- --- 41,45 ----
- if (argc == 1)
- { Write(Output_handle,usage,strlen(usage)); }
- + /* TODO argc=5 and setjmp() test */
- exit(RETURN_WARN-1); /* test return code */
- }
- Only in amiga/jchlib: test.o
- diff -rc2 dh0:source/clisptmp/amiga/README.Amiga amiga/README.Amiga
- *** dh0:source/clisptmp/amiga/README.Amiga Mon Apr 15 16:24:14 1996
- --- amiga/README.Amiga Tue Aug 13 01:08:07 1996
- ***************
- *** 1,12 ****
- Dear lisper,
-
- ! This archive contains an Amiga version of CLISP as of 8th January 1994 (with
- ! patches from 25th January), slightly modified on 7th of February. Please see
- ! the files clisp.man and README too. Aminet archive names have been shortened
- ! to fit the 20 characters limit.
- !
- ! There are three distinct binary versions of CLISP. These will be referred as
- ! *-high, *-low and *-wide. Depending on your machine, you'll be able to run
- ! one or the other, or all of them for testing purposes.
-
- o The *-low Version:
- --- 1,34 ----
- + Short: Common Lisp, release 30.5.96
- + Requires: OS 2.04 or newer
- + Author: haible@ma2s2.mathematik.uni-karlsruhe.de, Joerg.Hoehle@gmd.de
- + Uploader: Joerg.Hoehle@gmd.de
- +
- Dear lisper,
-
- ! This archive contains an Amiga version of CLISP as of 30th May 1996. Please
- ! see the files README (general description, installation), clisp.man (command
- ! line switches, tooltypes, explanation of files) and impnotes.txt
- ! (differences between CLISP and the Common Lisp reference, extensions, ARexx
- ! interface documentation). See also CHANGES.LOG if you are not a new user.
- ! Aminet archive names have been shortened to fit the 20 characters limit.
- !
- ! Which version to choose
- ! -----------------------
- !
- ! There may be four distinct binary versions of CLISP. These will be referred
- ! as *-high, *-low, *-00 and *-wide. Depending on your machine, you'll not be
- ! able to run all of them on one machine.
- !
- ! o The *-high version:
- !
- ! + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
- ! doesn't use the floating point coprocessor.
- !
- ! + is able to deal with addresses from 0 to 0x07FFFFFF, thus working on most
- ! A3000 and A4000 machines. GigaMem uses addresses between 0x20000000 and
- ! 0x60000000. VMM uses adresses at 0x40000000. CLISP cannot run with
- ! that.
- !
- ! * checks the memory it gets, reverting to MEMF_24BITDMA, like *-low.
-
- o The *-low Version:
- ***************
- *** 30,45 ****
- version.
-
- ! o The *-high version:
- !
- ! + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
- ! doesn't use the floating point coprocessor.
- !
- ! + is able to deal with addresses from 0 to 0x07FFFFFF, thus working on some
- ! A3000 and A4000 machines. GigaMem uses addresses between 0x20000000 and
- ! 0x60000000. VMM40 uses adresses at 0x40000000. CLISP cannot run with
- ! that.
-
- ! * checks the memory it gets, reverting to MEMF_24BITDMA (>2.0, otherwise
- ! MEMF_CHIP), like above.
-
- o The *-wide version:
- --- 52,65 ----
- version.
-
- ! o The *-00 version:
-
- ! + resembles the *-low version but has been compiled for a 68000 only. It
- ! doesn't need to clear the upper 8 bits, leading to faster execution on
- ! these machines (I measured 8% when compiling AFFI1.LSP, not that much).
- !
- ! + removing german and french language support would make the executable
- ! size 14% smaller but not the image without new .fas files, so I
- ! refrained from doing so and maintained .fas file compatibility among all
- ! versions.
-
- o The *-wide version:
- ***************
- *** 48,55 ****
- doesn't use the floating point coprocessor.
-
- ! + is able to deal with any address and works fine with virtual memory or
- ! configurations where memory is located above 0x08000000
- ! (e.g. CSA-Derringer 030). This has been achived at the cost of using
- ! 64-bit integers. This makes the executable and memory files very large.
-
- o The Lisp-part of CLISP is in the CLisp-*-Part2 archive, e.g. the compiler
- --- 68,77 ----
- doesn't use the floating point coprocessor.
-
- ! + is able to deal with any address and works fine with virtual
- ! memory (VMM) or configurations where memory is located above
- ! 0x08000000 (e.g. CSA-Derringer 030). This has been achived at the
- ! cost of using 64-bit integers. This makes the executable and
- ! memory files very large and run-time longer (I measured a 40%
- ! increase in execution time compared to *-high).
-
- o The Lisp-part of CLISP is in the CLisp-*-Part2 archive, e.g. the compiler
- ***************
- *** 62,67 ****
- o The complete CLISP source can be found in the clispsrc-<date>.tar.gz
- archive (see file ANNOUNCE). You need to have GNU-zip (gzip) and tar (or
- ! gtar) to be able to unpack it. I rearchived it for Aminet distribution into
- ! CLispsrc-<date>.lha.
-
-
- --- 84,89 ----
- o The complete CLISP source can be found in the clispsrc-<date>.tar.gz
- archive (see file ANNOUNCE). You need to have GNU-zip (gzip) and tar (or
- ! GNUtar) to be able to unpack it. I rearchived it for Aminet distribution
- ! into CLispsrc-<date>.lha.
-
-
- ***************
- *** 69,87 ****
- ------------
-
- ! 1. unpack:
- ! LHA X clisp-xxxxx.lha
-
- - 2. set common shortcuts:
- - assign >NIL: LISP: Work:CLISP
- - alias lisp LISP:lisp.run -M LISP:lispinit.mem
- -
- - 3. modify config.lsp
- -
- - 4. make memory image:
- - lisp
- - > (compile-file "config")
- - > (load "config")
- - > (saveinitmem)
- - > (exit)
-
- Notes
- --- 91,96 ----
- ------------
-
- ! See README.
-
-
- Notes
- ***************
- *** 92,98 ****
- interface. See also impnotes.txt.
-
- ! o CLISP always allocates its own stack and should not cause MungWall or
- ! Enforcer hits. I don't know whether this stack allocation feature may cause
- ! compatibility issues with future Amigas.
-
- o The lisp.run executable contains symbolic information. Symbolic information
- --- 101,107 ----
- interface. See also impnotes.txt.
-
- ! o CLISP always allocates its own stack (in private memory) and should
- ! not cause MungWall or Enforcer hits. This stack allocation feature
- ! may cause compatibility issues with future Amigas.
-
- o The lisp.run executable contains symbolic information. Symbolic information
- ***************
- *** 100,109 ****
-
- o Hints for your config.lsp:
- ! (defparameter *editor* "ttx WAIT") ; Turbotext editor
- (defparameter *editor* "ced -keepio") ; Cygnus ED (right?)
- - (defparameter *default-time-zone* -1) ; default set in defs1.lsp
-
-
- ! Changes: (_PART_ of CHANGES.LOG in the source tree)
-
- User visible changes
- --- 109,117 ----
-
- o Hints for your config.lsp:
- ! (defparameter *editor* "memacs") ; Micro-Emacs editor
- (defparameter *editor* "ced -keepio") ; Cygnus ED (right?)
-
-
- ! Changes: (_part_ of CHANGES.LOG in the source tree)
-
- User visible changes
- ***************
- *** 110,118 ****
- --------------------
-
- ! * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
-
- ! * The function ED can now edit functions that have been entered in
- ! interpreted form even if they have later been compiled.
-
- * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
- (COMPILE function-name) if the function's definition had been entered
- --- 118,171 ----
- --------------------
-
- ! * REMOVE-METHOD didn't work.
- ! Thanks to Roger Kehr <kehr@iti.informatik.th-darmstadt.de>
- ! and Bruno Haible for the fix.
- !
- ! * Fixed a bug in the compiler: A (MULTIPLE-VALUE-SETQ vars valform)
- ! or (MULTIPLE-VALUE-BIND vars valform ...) form was miscompiled if
- ! valform is known to produce a single value.
- ! Thanks to Bruno Haible and Paul Graham <pg@das.harvard.edu>.
- !
- ! * RENAME-FILE now does *not* result in an error if the destination
- ! file already exists (unless the system call results in an error message).
- !
- ! * PROBE-FILE and TRUENAME will not issue error messages if given
- ! directories.
- !
- ! * X3J13 vote <72> is implemented: all standard Common Lisp data objects
- ! other than symbols and lists are self-evaluating.
- ! Thanks to Pierpaolo Bernardi.
- !
- ! * X3J13 vote <40> is partially implemented: New macro WITH-STANDARD-IO-SYNTAX.
- ! Thanks to Pierpaolo Bernardi.
- !
- ! * Some FORMAT fixes:
- ! + X3J13 vote <81> is implemented: The FORMAT ~:^ directive is more useful.
- ! Warning: Old style "~:^" directives need to be converted to "~#:^".
- ! + X3J13 vote <82> is implemented: The FORMAT ~D, ~B, ~O, ~X, ~R directives
- ! accept an optional comma-interval parameter.
- ! + X3J13 vote <84> is implemented: FORMAT ~C outputs characters with no bits
- ! as if by WRITE-CHAR.
- ! + Handling of ~^ within the FORMAT ~? directive.
- !
- ! * New function FINALIZE. (FINALIZE object function) has the effect that
- ! function will be called when object is being garbage collected.
-
- ! * The initial value of *PACKAGE* can be specified by a command line option.
-
- + * Fixed a bug in the compiler which caused LOAD-TIME-VALUE forms to be
- + evaluated at compile time.
- +
- + * Amiga version: SCREEN package is implemented. Thanks to Jörg Höhle.
- +
- + * Fixed a CLOS bug which caused (DEFCLASS FOO (STANDARD-OBJECT) ()) and
- + (DEFINE-CONDITION FOO (CONDITION) ()) to signal errors.
- +
- + * The DEFCONSTANT warning about redefinition of a constant is also inhibited
- + if the constant's new and old values are the same string (in the sense of
- + EQUAL). Thanks to Marcus Daniels.
- +
- + * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
- +
- * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
- (COMPILE function-name) if the function's definition had been entered
- ***************
- *** 119,125 ****
- in interpreted form.
-
- - * The OPEN option :IF-EXISTS :RENAME-AND-DELETE now deletes the renamed
- - file. Previously :RENAME-AND-DELETE was equivalent to :RENAME.
- -
- * (LISP-IMPLEMENTATION-VERSION) returns a more precise version string.
-
- --- 172,175 ----
- ***************
- *** 130,135 ****
- FOR/AS clause, the effects are implementation dependent!
-
- - * X3J13 vote <120> is implemented: New function MAP-INTO.
- -
- * X3J13 vote <79> is implemented: New constants
- LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT,
- --- 180,183 ----
- ***************
- *** 142,149 ****
- LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT.
-
- - * Fixed a bug in DO-SYMBOLS: A symbol which is exported from a used package
- - was considered accessible in the using package even if it was shadowed by
- - another present symbol of the same name.
- -
- * Fixed a bug in the debugger which caused the BACKTRACE commands to print
- garbage if the current user interface language was not english.
- --- 190,193 ----
- ***************
- *** 156,166 ****
- ENGLISH, DEUTSCH, FRANCAIS and LANGUAGE-CASE.
-
- - * There is a command line option that makes CLISP behave more like what
- - ILISP (a popular Emacs LISP interface) expects.
- -
- - * The function CLOS:CALL-NEXT-METHOD can now be called with arguments, but
- - the check that the set of applicable methods must be the same as for the
- - original arguments will be bypassed.
- -
- * New functions READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE,
- WRITE-BYTE-SEQUENCE which perform fast block I/O.
- --- 200,203 ----
- ***************
- *** 170,184 ****
- macro WITHOUT-FLOATING-POINT-UNDERFLOW.
-
- - * X3J13 vote <95> is implemented: If the readtable argument passed to
- - GET-MACRO-CHARACTER and GET-DISPATCH-MACRO-CHARACTER is NIL, the standard
- - readtable is used.
- -
- * PROBE-FILE doesn't report an error any more if an intermediate directory
- in the path doesn't exist. NIL is returned instead.
-
- - * The DEFCONSTANT warning about redefinition of a constant is inhibited if
- - the constant's new and old values are the same (in the sense of EQL).
- - Thanks to Marcus Daniels.
- -
- * The function INTERACTIVE-STREAM-P knows that if the terminal stream is
- referring to a regular file (via input redirection) it is not interactive.
- --- 207,213 ----
- ***************
- *** 193,215 ****
- See impnotes.txt for details. Thanks to Marcus Daniels and Don Cohen.
-
- - * Fixed a CLOS bug: Generic functions with both optional and keyword
- - arguments didn't work.
- -
- - * Fixed a serious bug in the compiler which caused incorrect code to be
- - generated for functions like (LAMBDA (X) (SETQ X 1)).
- -
- - * Fixed a serious bug in the compiler which caused the compiler to crash
- - when compiling functions which contain two or more calls to ASSERT.
- -
- - * Fixed a bug: The macroexpander of MULTIPLE-VALUE-SETQ built up a
- - syntactically illegal form.
- -
- - * Fixed a bug in the reader: When reading pathnames from the syntax
- - #S(PATHNAME ...), #n# references in pathname components were not
- - resolved prior to calling MAKE-PATHNAME.
- -
- - * Fixed a bug in the reader: (read-from-string "1/") signalled an error
- - of type DIVISION-BY-ZERO.
- -
- * Fixed a bug in the terminal stream: If several consecutive READ-LINE
- operations on the terminal stream were performed without any text
- --- 222,225 ----
- ***************
- *** 226,248 ****
- -------------------
-
- ! * Copyright clarification.
- !
- ! * Miscellaneous documentation updates.
-
- ! * Speedup SUBLIS and NSUBLIS.
-
- ! * Let all known versions of gcc2 emit dbra instructions for loops. Thanks
- ! to Jörg Höhle.
- !
-
- ! Patches:
-
- - Gcc-2.3.3 -O2 -fomit-frame-pointer put several bugs in the compiler
- - output. I previously corrected two of them by hand-patching the assembly
- - files. Gcc-2.5.7 produces correct output but for 68020 and above machines
- - only. The low version is compiled with gcc-2.3.3 and the high and
- - wide-versions with gcc-2.5.8. Gcc-2.5.8 put a bug in the -DWIDE version of
- - control.d:_C_go. It seemed to me that beta versions of gcc-2.6.0 were not
- - stable enough for compilation of the wide version.
-
- Enjoy and send me all sorts of comments, bug reports and suggestions. Please
- --- 236,249 ----
- -------------------
-
- ! * Speed up compiled calls to FORMAT with literal control string by use of
- ! FORMATTER.
-
- ! * When a memory image is loaded, the terminal stream from the previous
- ! session is closed.
-
- ! * Copyright clarification.
-
- ! * Miscellaneous documentation updates.
-
-
- Enjoy and send me all sorts of comments, bug reports and suggestions. Please
- ***************
- *** 250,254 ****
- location) configuration when doing so.
-
- ! Joerg Hoehle.
- ! hoehle@inf-wiss.uni-konstanz.de
-
- --- 251,255 ----
- location) configuration when doing so.
-
- ! Jörg Höhle.
- ! Joerg.Hoehle@gmd.de
-
- Only in amiga/: TODO
-