home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / CLISP-2.LHA / CLISP960530-di.lha / diffs-ami-14.8.96-jch next >
Encoding:
Text File  |  1996-08-15  |  78.2 KB  |  2,452 lines

  1. Only in amiga/: affi.txt
  2. diff -rc2 dh0:source/clisptmp/amiga/BMakefile amiga/BMakefile
  3. *** dh0:source/clisptmp/amiga/BMakefile    Mon Apr 15 16:24:12 1996
  4. --- amiga/BMakefile    Wed Aug 14 22:08:54 1996
  5. ***************
  6. *** 1,8 ****
  7.   # BMakefile für CLISP mit GNU-ANSI-C-Compiler
  8. ! # Jörg Höhle 6.10.94
  9. ! # Optionen: GCC26, C20, WIDE, HIGH, KI, KA, LMEM
  10. ! #  HIGH => C20
  11. ! #  WIDE => C20
  12. ! # keeping intermediate files means keeping assembly files
  13.   if def(KI)
  14.   KA=1
  15. --- 1,13 ----
  16.   # BMakefile für CLISP mit GNU-ANSI-C-Compiler
  17. ! # Jörg Höhle 14.8.96
  18. ! # Optionen: ADE, C00, C20, WIDE, HIGH, FFI, KI, KA, LMEM
  19. ! #  Versionsauswahl
  20. ! #   HIGH => C20 -high version
  21. ! #   WIDE => C20 -wide: 64 bits for use within VMM
  22. ! #   C00         -00 for 68000 only
  23. ! #   ---         -low with 24 address bits
  24. ! #  Optional: FFI KI KA LMEM
  25. ! #  Compiler: ADE
  26. ! # keeping intermediate files implies keeping assembly files
  27.   if def(KI)
  28.   KA=1
  29. ***************
  30. *** 33,46 ****
  31.   WPFLAGS=-DAMIGA3000
  32.   endif
  33.   
  34. ! IXCFLAGS= >NIL: -a -.
  35.   
  36. ! if def(GCC26)
  37. ! # Use GCC259/GCC26
  38. ! # Path GNU:bin/ GNU:lib/gcc-lib/mc68000-cbm-amigados/2.5.90/
  39. ! IXCONFIG=GNU:ixem/bin/ixconfig
  40.   CC  = gcc
  41. ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
  42. ! CC1 = cc1 -version
  43.   AS  = as
  44.   
  45. --- 38,56 ----
  46.   WPFLAGS=-DAMIGA3000
  47.   endif
  48. + ifdef(C00)
  49. + WPFLAGS=-DMC68000
  50. + endif
  51.   
  52. ! #IXCFLAGS= >NIL: -a -.
  53. ! IXCFLAGS= >NIL: -a1 -/0
  54.   
  55. ! if def(ADE)
  56. ! # Use GCC272
  57. ! # Path ADE:bin/ ADE:lib/gcc-lib/m68k-cbm-amigados/2.7.2/
  58. ! #IXCONFIG=GNU:ixem/bin/ixconfig
  59. ! IXCONFIG=GCC258:bin/ixprefs
  60.   CC  = gcc
  61. ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -lang-c -v
  62. ! CC1 = T:cc1 -version
  63.   AS  = as
  64.   
  65. ***************
  66. *** 49,62 ****
  67.   LDSTACK  = 180000
  68.   
  69. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
  70.   LD     = ld $(LIBPATH) $(CRT0)
  71. ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
  72. ! LIBS   =-lclisp
  73. ! CRT0   =Ben:p/gccsmalllib/lib/crt0.o
  74.   
  75.   else
  76. ! # Use GCC25x
  77.   # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
  78. ! IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
  79.   CC  = gcc
  80.   CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
  81. --- 59,74 ----
  82.   LDSTACK  = 180000
  83.   
  84. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
  85.   LD     = ld $(LIBPATH) $(CRT0)
  86. ! LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
  87. ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
  88. ! LIBS   =-lcclisp -lgcc
  89. ! CRT0   =LISP:amiga/jchlib/lib/crt0.o
  90.   
  91.   else
  92. ! # Use GCC258
  93.   # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
  94. ! #IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
  95. ! IXCONFIG=GCC258:bin/ixprefs
  96.   CC  = gcc
  97.   CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
  98. ***************
  99. *** 65,80 ****
  100.   
  101.   CPPSTACK = 20000
  102. ! CC1STACK = 380000
  103. ! LDSTACK  = 180000
  104.   
  105. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
  106.   LD     = ld $(LIBPATH) $(CRT0)
  107. ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
  108. ! LIBS   =-lclisp
  109. ! CRT0   =Ben:p/gccsmalllib/lib/crt0.o
  110.   endif
  111.   
  112.   
  113. ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H $(MPFLAGS) $(WPFLAGS)
  114.   CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
  115.    -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
  116. --- 77,94 ----
  117.   
  118.   CPPSTACK = 20000
  119. ! CC1STACK = 450000
  120. ! LDSTACK  = 200000
  121.   
  122. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
  123.   LD     = ld $(LIBPATH) $(CRT0)
  124. ! #LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
  125. ! LIBGCCPATH=
  126. ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
  127. ! LIBS   =-lcclisp -ltinygcc
  128. ! CRT0   =LISP:amiga/jchlib/lib/crt0.o
  129.   endif
  130.   
  131.   
  132. ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H -DHAVE_AFFI $(MPFLAGS) $(WPFLAGS)
  133.   CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
  134.    -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
  135. ***************
  136. *** 86,91 ****
  137.   FSTMPDIR = RAM:
  138.   
  139. ! COMMENT = /utils/comment5
  140. ! ANSIDECL = /utils/ansidecl
  141.   PRESTACK = 20000
  142.   
  143. --- 100,110 ----
  144.   FSTMPDIR = RAM:
  145.   
  146. ! MV=mv
  147. ! RM=delete
  148. ! AR=ar
  149. ! RANLIB=ranlib
  150. ! COMMENT  = lisp:utils/comment5
  151. ! CVTMSGS  = lisp:utils/cvtmsgs
  152. ! ANSIDECL = lisp:utils/ansidecl
  153.   PRESTACK = 20000
  154.   
  155. ***************
  156. *** 95,100 ****
  157.   D_INC_MACHINE = amiga.d
  158.   D_INC_SPECIAL = amiga2.d
  159. ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d
  160. ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d pseudofun.d constsym.d \
  161.    constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
  162.   D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
  163. --- 114,119 ----
  164.   D_INC_MACHINE = amiga.d
  165.   D_INC_SPECIAL = amiga2.d
  166. ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d bytecode.d
  167. ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d subrkw.d pseudofun.d constsym.d \
  168.    constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
  169.   D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
  170. ***************
  171. *** 105,114 ****
  172.   D_AMODULES = ari68000.d
  173.   endif
  174. ! D_EMODULES = # affi.d
  175.   D_CMODULES_SPECIAL = rexx.d
  176. ! D_CMODULES = spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
  177. !  eval.d control.d pathname.d stream.d io.d error.d \
  178.    array.d hashtabl.d list.d package.d record.d sequence.d \
  179. !  charstrg.d debug.d misc.d predtype.d symbol.d dbxtypes.d \
  180.    lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
  181.   #D_MODULES = $(D_CMODULES) $(D_AMODULES)
  182. --- 124,137 ----
  183.   D_AMODULES = ari68000.d
  184.   endif
  185. ! if ndef(FFI)
  186. ! D_EMODULES = affi.d
  187. ! else
  188. ! D_EMODULES = affi.d foreign.d
  189. ! endif
  190.   D_CMODULES_SPECIAL = rexx.d
  191. ! D_CMODULES = misc.d spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
  192. !  eval.d control.d pathname.d stream.d io.d error.d time.d \
  193.    array.d hashtabl.d list.d package.d record.d sequence.d \
  194. !  charstrg.d debug.d predtype.d symbol.d dbxtypes.d \
  195.    lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
  196.   #D_MODULES = $(D_CMODULES) $(D_AMODULES)
  197. ***************
  198. *** 124,127 ****
  199. --- 147,151 ----
  200.   C_INC_NORMAL = $(subst .d,.c,$(D_INC_NORMAL))
  201.   C_INC_ALL = $(subst .d,.c,$(D_INC_ALL))
  202. + C_DIST = modules.c genclisph.c
  203.   
  204.   OBJECTS_SPECIAL = $(subst .d,.o,$(D_CMODULES_SPECIAL))
  205. ***************
  206. *** 129,133 ****
  207. --- 153,162 ----
  208.   OBJECTS_A = $(subst .d,.o,$(D_AMODULES))
  209.   OBJECTS = $(OBJECTS_C) $(OBJECTS_A)
  210. + LIBOBJECTS = $(filter-out modules.o,$(OBJECTS))
  211.   
  212. + E_LSPFILES =
  213. + if def(FFI)
  214. + E_LSPFILES =foreign1.lsp
  215. + endif
  216.   LSPFILES = \
  217.    init.lsp defseq.lsp backquot.lsp defmacro.lsp macros1.lsp macros2.lsp \
  218. ***************
  219. *** 135,139 ****
  220.    user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
  221.    timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
  222. !  loop.lsp rexx.lsp
  223.   FASFILES = $(subst .lsp,.fas,$(LSPFILES))
  224.   RFASFILES = $(addprefix $(R),$(FASFILES))
  225. --- 164,168 ----
  226.    user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
  227.    timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
  228. !  screen.lsp loop.lsp rexx1.lsp affi1.lsp $(E_LSPFILES)
  229.   FASFILES = $(subst .lsp,.fas,$(LSPFILES))
  230.   RFASFILES = $(addprefix $(R),$(FASFILES))
  231. ***************
  232. *** 140,146 ****
  233.   
  234.   IMEMFILE = interpreted.mem
  235.   CMEMFILE = lispinit.mem
  236.   CLISPEXE = lisp.run
  237. ! DMEMFILE = lispinit.mem_
  238.   
  239.   %.h:
  240. --- 169,177 ----
  241.   
  242.   IMEMFILE = interpreted.mem
  243. + HMEMFILE = halfinterp.mem
  244.   CMEMFILE = lispinit.mem
  245.   CLISPEXE = lisp.run
  246. ! DMEMFILE = compiler.mem
  247. ! SMEMFILE = small.mem
  248.   
  249.   %.h:
  250. ***************
  251. *** 170,173 ****
  252. --- 201,206 ----
  253.   nope spvw.o: avl.c sort.c
  254.   
  255. + nope eval.o: bytecode.c
  256.   nope modules.o: $(R)modules.h
  257.   
  258. ***************
  259. *** 186,190 ****
  260.   
  261.   # Make all include files
  262. ! $(C_INC_ALL): $(R)$*.d
  263.       stack $(PRESTACK)
  264.   #    Named pipes make it slower!
  265. --- 219,223 ----
  266.   
  267.   # Make all include files
  268. ! $(C_INC_ALL) $(C_DIST): $(R)$*.d
  269.       stack $(PRESTACK)
  270.   #    Named pipes make it slower!
  271. ***************
  272. *** 193,199 ****
  273.   #    run $(COMMENT) $(R)$*.d >PIPE:prepclisp
  274.   #    $(ANSIDECL) <PIPE:prepclisp/r >$@
  275. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
  276.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
  277. !     delete $(FSTMPDIR)$*.dc
  278.   
  279.   # Make all assembly objects
  280. --- 226,234 ----
  281.   #    run $(COMMENT) $(R)$*.d >PIPE:prepclisp
  282.   #    $(ANSIDECL) <PIPE:prepclisp/r >$@
  283. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
  284. !     $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
  285. !     $(RM) $(FSTMPDIR)$*.cd
  286.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
  287. !     $(RM) $(FSTMPDIR)$*.dc
  288.   
  289.   # Make all assembly objects
  290. ***************
  291. *** 204,208 ****
  292.       stack $(CC1STACK)
  293.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  294. !     delete $(TMPDIR)$*.s
  295.   
  296.   # Make all C objects
  297. --- 239,243 ----
  298.       stack $(CC1STACK)
  299.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  300. !     $(RM) $(TMPDIR)$*.s
  301.   
  302.   # Make all C objects
  303. ***************
  304. *** 210,216 ****
  305.       @date
  306.       stack $(PRESTACK)
  307. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
  308.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
  309. !     delete $(FSTMPDIR)$*.dc
  310.   if def(LMEM)
  311.       @avail >nil: flush
  312. --- 245,253 ----
  313.       @date
  314.       stack $(PRESTACK)
  315. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
  316. !     $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
  317. !     $(RM) $(FSTMPDIR)$*.cd
  318.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
  319. !     $(RM) $(FSTMPDIR)$*.dc
  320.   if def(LMEM)
  321.       @avail >nil: flush
  322. ***************
  323. *** 220,224 ****
  324.       $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
  325.   if ndef(KI)
  326. !     delete $(TMPDIR)$*.c
  327.   endif
  328.   if def(LMEM)
  329. --- 257,261 ----
  330.       $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
  331.   if ndef(KI)
  332. !     $(RM) $(TMPDIR)$*.c
  333.   endif
  334.   if def(LMEM)
  335. ***************
  336. *** 229,233 ****
  337.       -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
  338.   if ndef(KI)
  339. !     delete $(TMPDIR)$*.i
  340.   endif
  341.   if def(YES_HIGH)
  342. --- 266,270 ----
  343.       -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
  344.   if ndef(KI)
  345. !     $(RM) $(TMPDIR)$*.i
  346.   endif
  347.   if def(YES_HIGH)
  348. ***************
  349. *** 235,243 ****
  350.   #    Some lines are too long for Edit
  351.       sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
  352. !     delete $(FSTMPDIR)$*.es
  353.   endif
  354.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  355.   if ndef(KA)
  356. !     delete $(TMPDIR)$*.s
  357.   endif
  358.   
  359. --- 272,280 ----
  360.   #    Some lines are too long for Edit
  361.       sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
  362. !     $(RM) $(FSTMPDIR)$*.es
  363.   endif
  364.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  365.   if ndef(KA)
  366. !     $(RM) $(TMPDIR)$*.s
  367.   endif
  368.   
  369. ***************
  370. *** 257,269 ****
  371.   # make an interpreted world
  372.   $(IMEMFILE):
  373.       @avail >nil: flush
  374.       @date
  375. !     $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(sys::%saveinitmem)(exit)
  376.       @date
  377. !     mv $(R)lispimag.mem $@
  378.   
  379.   # compile LISP files
  380.   $(RFASFILES): $*.lsp
  381.       @avail >nil: flush
  382.       @date
  383.       $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
  384. --- 294,310 ----
  385.   # make an interpreted world
  386.   $(IMEMFILE):
  387. + if def(LMEM)
  388.       @avail >nil: flush
  389. + endif
  390.       @date
  391. !     $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
  392.       @date
  393. !     $(MV) $(R)lispinit.mem $@
  394.   
  395.   # compile LISP files
  396.   $(RFASFILES): $*.lsp
  397. + if def(LMEM)
  398.       @avail >nil: flush
  399. + endif
  400.       @date
  401.       $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
  402. ***************
  403. *** 270,282 ****
  404.       @date
  405.   
  406. ! # make a compiled world
  407.   $(CMEMFILE): $(RFASFILES)
  408.       @avail >nil: flush
  409.       @date
  410. !     $(CLISPEXE) -x (cd"/src/")(load"init.fas")(sys::%saveinitmem)(exit)
  411.       @date
  412. !     mv $(R)lispimag.mem $@
  413.   
  414.   clean:
  415. !     delete $(C_INC_ALL) $(OBJECTS)
  416.   force:
  417. --- 311,360 ----
  418.       @date
  419.   
  420. ! # make a useful bootstrap world, set DMEMFILE=interpreted.mem
  421. ! $(HMEMFILE): $(addprefix $(R),compiler.fas)
  422. ! if def(LMEM)
  423. !     @avail >nil: flush
  424. ! endif
  425. !     @date
  426. !     $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
  427. !     @date
  428. !     $(MV) $(R)lispinit.mem $@
  429. ! # make a compiled world, set DMEMFILE=halfinterp.mem when bootstrapping
  430.   $(CMEMFILE): $(RFASFILES)
  431. + if def(LMEM)
  432. +     @avail >nil: flush
  433. + endif
  434. +     @date
  435. +     $(CLISPEXE) -x (cd"/src/")(load"init.fas")(saveinitmem)(exit)
  436. +     @date
  437. +     $(MV) $(R)lispinit.mem $@
  438. + # small image without compiler, disassem, loop, clos, conditio, defs3, gstream, screen
  439. + # init-small.fas is init-small.fas with these lines commented out (near end of file)
  440. + $(SMEMFILE): $(RFASFILES)
  441. + if def(LMEM)
  442.       @avail >nil: flush
  443. + endif
  444.       @date
  445. !     $(CLISPEXE) -x (cd"/src/")(load"init-small.fas")(saveinitmem)(exit)
  446.       @date
  447. !     $(MV) $(R)lispinit.mem $@
  448.   
  449.   clean:
  450. !     $(RM) $(C_INC_ALL) $(OBJECTS)
  451.   force:
  452. + libclisp.a: $(LIBOBJECTS)
  453. +     -$(RM) $@
  454. +     $(AR) qv $@ $(LIBOBJECTS)
  455. +     $(RANLIB) $@
  456. + # generate it using the normal libnix/ixemul environment
  457. + #gcc -v -O2 -m68020 -DAMIGA3000 -DHAVE_FFI -I. -c genclisph.c
  458. + genclisph.o: genclisph.c
  459. +     $(CC) $(WPFLAGS) $(MCFLAGS) -I. -o $@ $*.c
  460. + #gcc -v -m68020 -Wl,-defsym,asciz_out=printf
  461. + genclisp: genclisp.o
  462. +     $(CC) $(MCFLAGS) -o $@ $<
  463. diff -rc2 dh0:source/clisptmp/amiga/clisp.man amiga/clisp.man
  464. *** dh0:source/clisptmp/amiga/clisp.man    Mon Apr 15 16:24:16 1996
  465. --- amiga/clisp.man    Tue Aug 13 19:49:22 1996
  466. ***************
  467. *** 6,10 ****
  468.   SYNOPSIS
  469.        clisp [ -h ] [ -m memsize ] [ -s stacksize ] [ -M memfile  ]
  470. !      [ -q ] [ -i initfile ...  ] [ -c [ -l ] lispfile ...  ] [ -x
  471.        expression ]
  472.   
  473. --- 6,11 ----
  474.   SYNOPSIS
  475.        clisp [ -h ] [ -m memsize ] [ -s stacksize ] [ -M memfile  ]
  476. !      [ -L language ] [ -q ] [ -I ] [ -i initfile ...  ] [ -c [ -l
  477. !      ] lispfile [ -o outputfile ] ...  ] [ -p packagename ] [  -x
  478.        expression ]
  479.   
  480. ***************
  481. *** 40,46 ****
  482. --- 41,56 ----
  483.             memory dump produced by the saveinitmem function.
  484.   
  485. +      -L language
  486. +           Specifies the language clisp uses to  communicate  with
  487. +           the user. This may be english, deutsch, francais.
  488.        -q   Quiet: clisp displays  no  banner  at  startup  and  no
  489.             good-bye message when quitting.
  490.   
  491. +      -I   ILISP friendly: clisp interacts in a way that ILISP  (a
  492. +           popular Emacs LISP interface) can deal with.  Currently
  493. +           the only effect of this is that unnecessary prompts are
  494. +           not suppressed.
  495.        -i initfile ...
  496.             Specifies initialization files to be loaded at startup.
  497. ***************
  498. *** 52,58 ****
  499. --- 62,76 ----
  500.             to gain efficiency.
  501.   
  502. +      -o outputfile
  503. +           Specifies the output file or directory for the compila-
  504. +           tion of the last specified lispfile.
  505.        -l   A bytecode listing of the files being compiled will  be
  506.             produced.  Useful only for debugging purposes.
  507.   
  508. +      -p packagename
  509. +           At startup the value of the variable *package* will  be
  510. +           set to the package named packagename.
  511.        -x expressions
  512.             Executes a series of arbitrary expressions instead of a
  513. ***************
  514. *** 119,122 ****
  515. --- 137,158 ----
  516.   
  517.   ENVIRONMENT
  518. +      CLISP_LANGUAGE
  519. +           specifies the language clisp uses to  communicate  with
  520. +           the  user.  The value may be english, deutsch, francais
  521. +           and defaults to english.  The -L option can be used  to
  522. +           override this environment variable.
  523. +      Language
  524. +           specifies the language clisp uses to  communicate  with
  525. +           the  user,  unless  it is already specified through the
  526. +           environment variable CLISP_LANGUAGE or the  -L  option.
  527. +           The value may be as above.
  528. +      LANG specifies the language clisp uses to  communicate  with
  529. +           the  user,  unless  it is already specified through the
  530. +           environment variable CLISP_LANGUAGE or the  -L  option.
  531. +           The  value may begin with a two-letter ISO 639 language
  532. +           code, for example en, de, fr.
  533.   SEE ALSO
  534.        cmulisp(1), emacs(1).
  535. ***************
  536. *** 125,129 ****
  537.        The function inspect is not implemented.
  538.   
  539. !      Only very few extensions from CLtL2 are supported.
  540.   
  541.        No on-line documentation  beyond  apropos  and  describe  is
  542. --- 161,165 ----
  543.        The function inspect is not implemented.
  544.   
  545. !      Not all extensions from CLtL2 are supported.
  546.   
  547.        No on-line documentation  beyond  apropos  and  describe  is
  548. ***************
  549. *** 132,138 ****
  550.   PROJECTS
  551.        Writing on-line documentation.
  552. -      Building a foreign function interface  (ability  to  call  C
  553. -      code directly).
  554.   
  555.        Write inspect.
  556. --- 168,171 ----
  557. Only in dh0:source/clisptmp/amiga/: CVS
  558. diff -rc2 dh0:source/clisptmp/amiga/GMakefile amiga/GMakefile
  559. *** dh0:source/clisptmp/amiga/GMakefile    Mon Apr 15 16:24:14 1996
  560. --- amiga/GMakefile    Wed Aug 14 22:08:55 1996
  561. ***************
  562. *** 1,8 ****
  563.   # GNU-Makefile für CLISP mit GNU-ANSI-C-Compiler
  564. ! # Jörg Höhle 6.10.94
  565. ! # Optionen: GCC26, C20, WIDE, HIGH, KI, KA, LMEM
  566. ! #  HIGH => C20
  567. ! #  WIDE => C20
  568. ! # keeping intermediate files means keeping assembly files
  569.   ifdef KI
  570.   KA=1
  571. --- 1,13 ----
  572.   # GNU-Makefile für CLISP mit GNU-ANSI-C-Compiler
  573. ! # Jörg Höhle 14.8.96
  574. ! # Optionen: ADE, C00, C20, WIDE, HIGH, FFI, KI, KA, LMEM
  575. ! #  Versionsauswahl
  576. ! #   HIGH => C20 -high version
  577. ! #   WIDE => C20 -wide: 64 bits for use within VMM
  578. ! #   C00         -00 for 68000 only
  579. ! #   ---         -low with 24 address bits
  580. ! #  Optional: FFI KI KA LMEM
  581. ! #  Compiler: ADE
  582. ! # keeping intermediate files implies keeping assembly files
  583.   ifdef KI
  584.   KA=1
  585. ***************
  586. *** 33,46 ****
  587.   WPFLAGS=-DAMIGA3000
  588.   endif
  589.   
  590. ! IXCFLAGS= >NIL: -a -.
  591.   
  592. ! ifdef GCC26
  593. ! # Use GCC259/GCC26
  594. ! # Path GNU:bin/ GNU:lib/gcc-lib/mc68000-cbm-amigados/2.5.90/
  595. ! IXCONFIG=GNU:ixem/bin/ixconfig
  596.   CC  = gcc
  597. ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
  598. ! CC1 = cc1 -version
  599.   AS  = as
  600.   
  601. --- 38,56 ----
  602.   WPFLAGS=-DAMIGA3000
  603.   endif
  604. + ifdef(C00)
  605. + WPFLAGS=-DMC68000
  606. + endif
  607.   
  608. ! #IXCFLAGS= >NIL: -a -.
  609. ! IXCFLAGS= >NIL: -a1 -/0
  610.   
  611. ! if def(ADE)
  612. ! # Use GCC272
  613. ! # Path ADE:bin/ ADE:lib/gcc-lib/m68k-cbm-amigados/2.7.2/
  614. ! #IXCONFIG=GNU:ixem/bin/ixconfig
  615. ! IXCONFIG=GCC258:bin/ixprefs
  616.   CC  = gcc
  617. ! CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -lang-c -v
  618. ! CC1 = T:cc1 -version
  619.   AS  = as
  620.   
  621. ***************
  622. *** 49,63 ****
  623.   LDSTACK  = 180000
  624.   
  625. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
  626.   LD     = ld $(LIBPATH) $(CRT0)
  627. ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
  628. ! LIBS   =-lclisp
  629. ! CRT0   =Ben:p/gccsmalllib/lib/crt0.o
  630.   
  631.   else
  632. ! # Use GCC25x
  633.   # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
  634.   # PATH=/GCC258/bin:/GCC258/lib/gcc-lib/amigados/2.5.8:/C
  635. ! IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
  636.   CC  = gcc
  637.   CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
  638. --- 59,75 ----
  639.   LDSTACK  = 180000
  640.   
  641. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
  642.   LD     = ld $(LIBPATH) $(CRT0)
  643. ! LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
  644. ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
  645. ! LIBS   =-lcclisp -lgcc
  646. ! CRT0   =LISP:amiga/jchlib/lib/crt0.o
  647.   
  648.   else
  649. ! # Use GCC258
  650.   # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
  651.   # PATH=/GCC258/bin:/GCC258/lib/gcc-lib/amigados/2.5.8:/C
  652. ! #IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
  653. ! IXCONFIG=GCC258:bin/ixprefs
  654.   CC  = gcc
  655.   CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
  656. ***************
  657. *** 66,81 ****
  658.   
  659.   CPPSTACK = 20000
  660. ! CC1STACK = 380000
  661. ! LDSTACK  = 180000
  662.   
  663. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
  664.   LD     = ld $(LIBPATH) $(CRT0)
  665. ! LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
  666. ! LIBS   =-lclisp
  667. ! CRT0   =Ben:p/gccsmalllib/lib/crt0.o
  668.   endif
  669.   
  670.   
  671. ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H $(MPFLAGS) $(WPFLAGS)
  672.   CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
  673.    -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
  674. --- 78,95 ----
  675.   
  676.   CPPSTACK = 20000
  677. ! CC1STACK = 450000
  678. ! LDSTACK  = 200000
  679.   
  680. ! INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -ILISP:amiga/jchlib/include -IGCC258:include
  681.   LD     = ld $(LIBPATH) $(CRT0)
  682. ! #LIBGCCPATH=-LGCC258:lib/gcc-lib/amigados/2.5.8/
  683. ! LIBGCCPATH=
  684. ! LIBPATH=-nostdlib -LLISP:amiga/jchlib/lib $(LIBGCCPATH)
  685. ! LIBS   =-lcclisp -ltinygcc
  686. ! CRT0   =LISP:amiga/jchlib/lib/crt0.o
  687.   endif
  688.   
  689.   
  690. ! CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H -DHAVE_AFFI $(MPFLAGS) $(WPFLAGS)
  691.   CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
  692.    -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
  693. ***************
  694. *** 87,92 ****
  695.   FSTMPDIR = RAM:
  696.   
  697. ! COMMENT = /utils/comment5
  698. ! ANSIDECL = /utils/ansidecl
  699.   PRESTACK = 20000
  700.   
  701. --- 101,111 ----
  702.   FSTMPDIR = RAM:
  703.   
  704. ! MV=mv
  705. ! RM=delete
  706. ! AR=ar
  707. ! RANLIB=ranlib
  708. ! COMMENT  = lisp:utils/comment5
  709. ! CVTMSGS  = lisp:utils/cvtmsgs
  710. ! ANSIDECL = lisp:utils/ansidecl
  711.   PRESTACK = 20000
  712.   
  713. ***************
  714. *** 96,101 ****
  715.   D_INC_MACHINE = amiga.d
  716.   D_INC_SPECIAL = amiga2.d
  717. ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d
  718. ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d pseudofun.d constsym.d \
  719.    constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
  720.   D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
  721. --- 115,120 ----
  722.   D_INC_MACHINE = amiga.d
  723.   D_INC_SPECIAL = amiga2.d
  724. ! D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d bytecode.d
  725. ! D_INC_NORMAL = lispbibl.d fsubr.d subr.d subrkw.d pseudofun.d constsym.d \
  726.    constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
  727.   D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
  728. ***************
  729. *** 106,115 ****
  730.   D_AMODULES = ari68000.d
  731.   endif
  732. ! D_EMODULES = # affi.d
  733.   D_CMODULES_SPECIAL = rexx.d
  734. ! D_CMODULES = spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
  735. !  eval.d control.d pathname.d stream.d io.d error.d \
  736.    array.d hashtabl.d list.d package.d record.d sequence.d \
  737. !  charstrg.d debug.d misc.d predtype.d symbol.d dbxtypes.d \
  738.    lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
  739.   #D_MODULES = $(D_CMODULES) $(D_AMODULES)
  740. --- 125,138 ----
  741.   D_AMODULES = ari68000.d
  742.   endif
  743. ! ifndef FFI
  744. ! D_EMODULES = affi.d
  745. ! else
  746. ! D_EMODULES = affi.d foreign.d
  747. ! endif
  748.   D_CMODULES_SPECIAL = rexx.d
  749. ! D_CMODULES = misc.d spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
  750. !  eval.d control.d pathname.d stream.d io.d error.d time.d \
  751.    array.d hashtabl.d list.d package.d record.d sequence.d \
  752. !  charstrg.d debug.d predtype.d symbol.d dbxtypes.d \
  753.    lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
  754.   #D_MODULES = $(D_CMODULES) $(D_AMODULES)
  755. ***************
  756. *** 125,128 ****
  757. --- 148,152 ----
  758.   C_INC_NORMAL = $(subst .d,.c,$(D_INC_NORMAL))
  759.   C_INC_ALL = $(subst .d,.c,$(D_INC_ALL))
  760. + C_DIST = modules.c genclisph.c
  761.   
  762.   OBJECTS_SPECIAL = $(subst .d,.o,$(D_CMODULES_SPECIAL))
  763. ***************
  764. *** 130,134 ****
  765. --- 154,163 ----
  766.   OBJECTS_A = $(subst .d,.o,$(D_AMODULES))
  767.   OBJECTS = $(OBJECTS_C) $(OBJECTS_A)
  768. + LIBOBJECTS = $(filter-out modules.o,$(OBJECTS))
  769.   
  770. + E_LSPFILES =
  771. + ifdef FFI
  772. + E_LSPFILES =foreign1.lsp
  773. + endif
  774.   LSPFILES = \
  775.    init.lsp defseq.lsp backquot.lsp defmacro.lsp macros1.lsp macros2.lsp \
  776. ***************
  777. *** 136,140 ****
  778.    user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
  779.    timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
  780. !  loop.lsp rexx.lsp
  781.   FASFILES = $(subst .lsp,.fas,$(LSPFILES))
  782.   RFASFILES = $(addprefix $(R),$(FASFILES))
  783. --- 165,169 ----
  784.    user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
  785.    timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
  786. !  screen.lsp loop.lsp rexx1.lsp affi1.lsp $(E_LSPFILES)
  787.   FASFILES = $(subst .lsp,.fas,$(LSPFILES))
  788.   RFASFILES = $(addprefix $(R),$(FASFILES))
  789. ***************
  790. *** 141,147 ****
  791.   
  792.   IMEMFILE = interpreted.mem
  793.   CMEMFILE = lispinit.mem
  794.   CLISPEXE = lisp.run
  795. ! DMEMFILE = lispinit.mem_
  796.   
  797.   .SUFFIXES: .d .lsp
  798. --- 170,178 ----
  799.   
  800.   IMEMFILE = interpreted.mem
  801. + HMEMFILE = halfinterp.mem
  802.   CMEMFILE = lispinit.mem
  803.   CLISPEXE = lisp.run
  804. ! DMEMFILE = compiler.mem
  805. ! SMEMFILE = small.mem
  806.   
  807.   .SUFFIXES: .d .lsp
  808. ***************
  809. *** 169,172 ****
  810. --- 200,205 ----
  811.   spvw.o: avl.c sort.c
  812.   
  813. + eval.o: bytecode.c
  814.   modules.o: $(R)modules.h
  815.   
  816. ***************
  817. *** 185,189 ****
  818.   
  819.   # Make all include files
  820. ! $(C_INC_ALL): %.c: $(R)%.d
  821.       stack $(PRESTACK)
  822.   #    Named pipes make it slower!
  823. --- 218,222 ----
  824.   
  825.   # Make all include files
  826. ! $(C_INC_ALL) $(C_DIST): %.c: $(R)%.d
  827.       stack $(PRESTACK)
  828.   #    Named pipes make it slower!
  829. ***************
  830. *** 192,198 ****
  831.   #    run $(COMMENT) $(R)$*.d >PIPE:prepclisp
  832.   #    $(ANSIDECL) <PIPE:prepclisp/r >$@
  833. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
  834.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
  835. !     delete $(FSTMPDIR)$*.dc
  836.   
  837.   # Make all assembly objects
  838. --- 225,233 ----
  839.   #    run $(COMMENT) $(R)$*.d >PIPE:prepclisp
  840.   #    $(ANSIDECL) <PIPE:prepclisp/r >$@
  841. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
  842. !     $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
  843. !     $(RM) $(FSTMPDIR)$*.cd
  844.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
  845. !     $(RM) $(FSTMPDIR)$*.dc
  846.   
  847.   # Make all assembly objects
  848. ***************
  849. *** 203,207 ****
  850.       stack $(CC1STACK)
  851.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  852. !     delete $(TMPDIR)$*.s
  853.   
  854.   # Make all C objects
  855. --- 238,242 ----
  856.       stack $(CC1STACK)
  857.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  858. !     $(RM) $(TMPDIR)$*.s
  859.   
  860.   # Make all C objects
  861. ***************
  862. *** 209,215 ****
  863.       @date
  864.       stack $(PRESTACK)
  865. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
  866.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
  867. !     delete $(FSTMPDIR)$*.dc
  868.   ifdef LMEM
  869.       @avail >nil: flush
  870. --- 244,252 ----
  871.       @date
  872.       stack $(PRESTACK)
  873. !     $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.cd
  874. !     $(CVTMSGS) <$(FSTMPDIR)$*.cd >$(FSTMPDIR)$*.dc
  875. !     $(RM) $(FSTMPDIR)$*.cd
  876.       $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
  877. !     $(RM) $(FSTMPDIR)$*.dc
  878.   ifdef LMEM
  879.       @avail >nil: flush
  880. ***************
  881. *** 219,223 ****
  882.       $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
  883.   ifndef KI
  884. !     delete $(TMPDIR)$*.c
  885.   endif
  886.   ifdef LMEM
  887. --- 256,260 ----
  888.       $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
  889.   ifndef KI
  890. !     $(RM) $(TMPDIR)$*.c
  891.   endif
  892.   ifdef LMEM
  893. ***************
  894. *** 228,232 ****
  895.       -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
  896.   ifndef KI
  897. !     delete $(TMPDIR)$*.i
  898.   endif
  899.   ifdef YES_HIGH
  900. --- 265,269 ----
  901.       -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
  902.   ifndef KI
  903. !     $(RM) $(TMPDIR)$*.i
  904.   endif
  905.   ifdef YES_HIGH
  906. ***************
  907. *** 234,242 ****
  908.   #    Some lines are too long for Edit
  909.       sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
  910. !     delete $(FSTMPDIR)$*.es
  911.   endif
  912.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  913.   ifndef KA
  914. !     delete $(TMPDIR)$*.s
  915.   endif
  916.   
  917. --- 271,279 ----
  918.   #    Some lines are too long for Edit
  919.       sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
  920. !     $(RM) $(FSTMPDIR)$*.es
  921.   endif
  922.       $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
  923.   ifndef KA
  924. !     $(RM) $(TMPDIR)$*.s
  925.   endif
  926.   
  927. ***************
  928. *** 256,268 ****
  929.   # make an interpreted world
  930.   $(IMEMFILE):
  931.       @avail >nil: flush
  932.       @date
  933. !     $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(sys::%saveinitmem)(exit)
  934.       @date
  935. !     mv $(R)lispimag.mem $@
  936.   
  937.   # compile LISP files
  938.   $(RFASFILES): %.fas: %.lsp
  939.       @avail >nil: flush
  940.       @date
  941.       $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
  942. --- 293,309 ----
  943.   # make an interpreted world
  944.   $(IMEMFILE):
  945. + ifdef LMEM
  946.       @avail >nil: flush
  947. + endif
  948.       @date
  949. !     $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
  950.       @date
  951. !     $(MV) $(R)lispinit.mem $@
  952.   
  953.   # compile LISP files
  954.   $(RFASFILES): %.fas: %.lsp
  955. + ifdef LMEM
  956.       @avail >nil: flush
  957. + endif
  958.       @date
  959.       $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
  960. ***************
  961. *** 269,281 ****
  962.       @date
  963.   
  964. ! # make a compiled world
  965.   $(CMEMFILE): $(RFASFILES)
  966.       @avail >nil: flush
  967.       @date
  968. !     $(CLISPEXE) -x (cd"/src/")(load"init.fas")(sys::%saveinitmem)(exit)
  969.       @date
  970. !     mv $(R)lispimag.mem $@
  971.   
  972.   clean:
  973. !     delete $(C_INC_ALL) $(OBJECTS)
  974.   force:
  975. --- 310,359 ----
  976.       @date
  977.   
  978. ! # make a useful bootstrap world, set DMEMFILE=interpreted.mem
  979. ! $(HMEMFILE): $(addprefix $(R),compiler.fas)
  980. ! ifdef LMEM
  981. !     @avail >nil: flush
  982. ! endif
  983. !     @date
  984. !     $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
  985. !     @date
  986. !     $(MV) $(R)lispinit.mem $@
  987. ! # make a compiled world, set DMEMFILE=halfinterp.mem when bootstrapping
  988.   $(CMEMFILE): $(RFASFILES)
  989. + ifdef LMEM
  990. +     @avail >nil: flush
  991. + endif
  992. +     @date
  993. +     $(CLISPEXE) -x (cd"/src/")(load"init.fas")(saveinitmem)(exit)
  994. +     @date
  995. +     $(MV) $(R)lispinit.mem $@
  996. + # small image without compiler, disassem, loop, clos, conditio, defs3, gstream, screen
  997. + # init-small.fas is init-small.fas with these lines commented out (near end of file)
  998. + $(SMEMFILE): $(RFASFILES)
  999. + ifdef LMEM
  1000.       @avail >nil: flush
  1001. + endif
  1002.       @date
  1003. !     $(CLISPEXE) -x (cd"/src/")(load"init-small.fas")(saveinitmem)(exit)
  1004.       @date
  1005. !     $(MV) $(R)lispinit.mem $@
  1006.   
  1007.   clean:
  1008. !     $(RM) $(C_INC_ALL) $(OBJECTS)
  1009.   force:
  1010. + libclisp.a: $(LIBOBJECTS)
  1011. +     -$(RM) $@
  1012. +     $(AR) qv $@ $(LIBOBJECTS)
  1013. +     $(RANLIB) $@
  1014. + # generate it using the normal libnix/ixemul environment
  1015. + #gcc -v -O2 -m68020 -DAMIGA3000 -DHAVE_FFI -I. -c genclisph.c
  1016. + genclisph.o: genclisph.c
  1017. +     $(CC) $(WPFLAGS) $(MCFLAGS) -I. -o $@ $*.c
  1018. + #gcc -v -m68020 -Wl,-defsym,asciz_out=printf
  1019. + genclisp: genclisp.o
  1020. +     $(CC) $(MCFLAGS) -o $@ $<
  1021. diff -rc2 dh0:source/clisptmp/amiga/INSTALL amiga/INSTALL
  1022. *** dh0:source/clisptmp/amiga/INSTALL    Mon Apr 15 16:24:14 1996
  1023. --- amiga/INSTALL    Wed Aug 14 22:50:08 1996
  1024. ***************
  1025. *** 4,38 ****
  1026.   1. Install a GNU GCC development platform
  1027.   
  1028. !    In 1992, both DICE-2.06.37 and Lattice-5.04 were tested for
  1029. !    suitability. Because of various bugs, they were not able to compile the
  1030. !    CLISP source.
  1031.   
  1032.      I managed to compile early versions of CLISP on my stock B2000 with 5MB
  1033. !    of RAM and gcc-1.40, throwing every program out of the machine
  1034. !    (including RAM: and LoadWB) and running each compiler stage
  1035. !    separately. Luckily, when I hit GCC bugs, newer bug-freed versions were
  1036. !    available. Now I have 10MB of RAM which is just enough with GCC >=
  1037. !    2.3. GCC-2.3.3 contains some bugs that required me to hand-patch the
  1038. !    files stream.s and pathname.s. I use GCC-2.5.8 now.
  1039.   
  1040.   2. Install Amiga includes
  1041.   
  1042. !    They are copyrighted by Commodore-Amiga and can be obtained by CATS
  1043. !    (Commodore-Amiga Technical Support) or on Fred Fish CDs. See your Amiga FAQ.
  1044.   
  1045.   3. Make directory trees
  1046.   
  1047. !    I recommend clisp/make.low/ for the *-low version, clisp/make.high/ for
  1048. !    the *-high version and clisp/make.wide for the *-wide version (see file
  1049. !    README.Amiga for what these are). Source should be in clisp/src/ (all you
  1050. !    need are the files *.d, *.h and *.lsp), and utilities (only comment5 and
  1051. !    ansidecl are needed) in clisp/utils/.
  1052.   
  1053. ! 4. Ixconfig
  1054.   
  1055.      In order to find include files located in /src/ relatively to the make.*
  1056. !    directory, ixemul.library shouldn't translate /. As sh (called by make)
  1057. !    doesn't seem to be able to handle this situation, a workaround is to
  1058. !    assign src: and utils: to the src and utils directories respectively.
  1059.   
  1060.   5. Check your stack sizes
  1061. --- 4,36 ----
  1062.   1. Install a GNU GCC development platform
  1063.   
  1064. !    I don't believe CLISP can be compiled with anything else than GCC
  1065. !    on the Amiga. CLISP source heavily stresses any C compiler.
  1066.   
  1067.      I managed to compile early versions of CLISP on my stock B2000 with 5MB
  1068. !    of RAM and gcc-1.40, throwing every program out of the machine (including
  1069. !    RAM: and LoadWB) and running each compiler stage separately. Luckily,
  1070. !    when I hit GCC bugs, newer bug-freed versions were available. Compilation
  1071. !    of CLISP has lead to several bug-reports in gnu.gcc.bugs.
  1072.   
  1073.   2. Install Amiga includes
  1074.   
  1075. !    They are copyrighted by Commodore-Amiga and can be obtained on the Amiga
  1076. !    Developer CD or on Fred Fish CDs. See your Amiga FAQ.
  1077.   
  1078.   3. Make directory trees
  1079.   
  1080. !    Leave source in src/ (only *.d, *.h and *.lsp files are needed) and
  1081. !    utilities in utils/ (only comment5, ansidecl and cvtmsgs are needed).
  1082. !    Choose the version you want to build (see README.Amiga or README) and
  1083. !    create directories like make.high/, make.low/ and make.wide/ at the same
  1084. !    level as src/.
  1085.   
  1086. ! 4. IxPrefs and ixemul.library `/' pathname translation
  1087.   
  1088.      In order to find include files located in /src/ relatively to the make.*
  1089. !    directory, ixemul.library shouldn't translate /. As sh (which is called
  1090. !    by GNU-make) doesn't seem to be able to handle this situation, a
  1091. !    workaround is to assign src: and utils: to the src/ and utils/ directories
  1092. !    respectively.
  1093.   
  1094.   5. Check your stack sizes
  1095. ***************
  1096. *** 42,49 ****
  1097.      gcc-ld requires 180000 bytes.
  1098.   
  1099. !    This is current stack usage and can increase when adding new features to
  1100. !    CLISP. If your make program can't set stack sizes, you'll have to run
  1101. !    everything with the maximum stack. This is why I have a private make
  1102. !    program that recognizes and honours the stack command.
  1103.   
  1104.   6. Make the clisp support library found in amiga/jchlib/
  1105. --- 40,47 ----
  1106.      gcc-ld requires 180000 bytes.
  1107.   
  1108. !    This is my observed stack usage relative to GCC-2.5.8 and can increase
  1109. !    when adding new features to CLISP. If your make program cannot set stack
  1110. !    sizes, you'll have to run everything with the maximum stack. I have my
  1111. !    own make program which recognizes and honours the stack command.
  1112.   
  1113.   6. Make the clisp support library found in amiga/jchlib/
  1114. ***************
  1115. *** 50,63 ****
  1116.   
  1117.      This is a micro C startup library containing the bare minimum to start a
  1118. !    program from CLI or WorkBench and setjmp() and strlen(). It's used by
  1119. !    CLISP but could be by other programs too. It doesn't require
  1120. !    ixemul.library. From WorkBench, it opens the window specified by the
  1121. !    WINDOW tooltype and supports project icons (currently all in the same
  1122. !    directory only).
  1123. !    Compiling CLISP without using my library has never been
  1124. !    tested. Furthermore, CLISP now uses the setmode() function from this
  1125. !    library which is not found in a standard C library.
  1126.   
  1127.   7. Makefile
  1128.   
  1129. --- 48,59 ----
  1130.   
  1131.      This is a micro C startup library containing the bare minimum to start a
  1132. !    program from CLI or WorkBench, setjmp() and strlen(). It's used by CLISP
  1133. !    but could be by other programs too. It doesn't require ixemul.library.
  1134. !    From WorkBench, it opens the window specified by the WINDOW tooltype,
  1135. !    initializes argv[] with ARGS if present and supports project icons
  1136. !    (currently all in the same directory only).
  1137.   
  1138. +    Compiling CLISP without using my library has never been tested.
  1139.   7. Makefile
  1140.   
  1141. ***************
  1142. *** 69,86 ****
  1143.      space for the gcc driver.
  1144.   
  1145. !    Now, with the normal make, I nevertheless managed to build CLISP by
  1146. !    running VMM, a virtual memory manager and setting the stack before
  1147. !    starting make. It's a huge waste and won't run in a 10MB system without
  1148. !    virtual memory, but you could also use this. Link or copy the /bin/true
  1149. !    command to make.*/stack so that /bin/sh will find a stack command (it's
  1150. !    called by the Makefile). If /bin/sh can't find cc1, cpp etc. because they
  1151. !    are deep inside the gcc-lib hierarchy, set a local variable PATH to all
  1152. !    the paths. Make and thus sh will inherit this variable:
  1153.   
  1154. !     set PATH /gnu/bin:/gnu/lib/gcc-lib/mc680x0-cbm-amigados/2.x.x:/C:/utils/:.
  1155.   
  1156.   8. Edit
  1157.   
  1158. !        make.*/Makefile
  1159.   
  1160.      according to your choices and tastes. By default, you'll make the
  1161. --- 65,83 ----
  1162.      space for the gcc driver.
  1163.   
  1164. !    Now, with a normal (GNU-)make, I nevertheless managed to build CLISP by
  1165. !    running VMM, a virtual memory manager and setting the maximal stack
  1166. !    before starting make. It's a huge waste of resources and won't run in a
  1167. !    10MB system without virtual memory, but you could also try this. Link or
  1168. !    copy the /bin/true command to make.*/stack so that /bin/sh will find a
  1169. !    stack command (it's called by the Makefile). If /bin/sh can't find cc1,
  1170. !    cpp etc. because they are deep inside the gcc-lib hierarchy, set a local
  1171. !    variable PATH to all the paths. Make and thus sh will inherit this
  1172. !    variable:
  1173.   
  1174. !     set PATH /gnu/bin:/gnu/lib/gcc-lib/m68k-cbm-amigados/2.x.x:/C:/utils/:.
  1175.   
  1176.   8. Edit
  1177.   
  1178. !     make.*/Makefile
  1179.   
  1180.      according to your choices and tastes. By default, you'll make the
  1181. ***************
  1182. *** 87,101 ****
  1183.      international (well, english, french and german) version of CLISP, which
  1184.      requires more space than a single language one that can be built by
  1185. !    adding -DENGLISH, -DFRANCAIS or -DDEUTSCH flags to the compiler. See
  1186. !    src/lispbibl.d for everything that can be defined. The amiga or AMIGA
  1187.      define serves to recognize the Amiga (don't set them for now under
  1188.      Amiga-UNIX). Interesting preprocessor flags include AMIGA3000, MC680Y0
  1189. !    for 68020 or better (implied by AMIGA3000), MC68000 for 68000 only, WIDE
  1190. !    for 64 bit ints (for 32 bit clean pointers).
  1191.   
  1192.   9. Edit
  1193.   
  1194. !        src/config.lsp
  1195. !        src/timezone.lsp
  1196.   
  1197.      See README for the one line to modify in timezone.lsp. In config.lsp,
  1198. --- 84,104 ----
  1199.      international (well, english, french and german) version of CLISP, which
  1200.      requires more space than a single language one that can be built by
  1201. !    adding one of -DENGLISH, -DFRANCAIS or -DDEUTSCH flags to the compiler.
  1202. !    See src/lispbibl.d for everything that can be defined. The amiga or AMIGA
  1203.      define serves to recognize the Amiga (don't set them for now under
  1204.      Amiga-UNIX). Interesting preprocessor flags include AMIGA3000, MC680Y0
  1205. !    for 68020 or better (implied by AMIGA3000), MC68000 for 68000 only, and
  1206. !    WIDE for 64 bit ints (for 32 bit clean pointers).
  1207. !    Extensions like gettext and readline cannot currently be added as they
  1208. !    use stdio and malloc whereas CLISP uses the low-level and unbuffered
  1209. !    dos.library routines for i/o and AllocMem() etc. for all memory.  Don't
  1210. !    mess with it. Using UNIX-like (open) or ANSI (fopen) stdio would require
  1211. !    a large rewrite of several source files.
  1212.   
  1213.   9. Edit
  1214.   
  1215. !     src/config.lsp
  1216. !     src/timezone.lsp
  1217.   
  1218.      See README for the one line to modify in timezone.lsp. In config.lsp,
  1219. ***************
  1220. *** 104,109 ****
  1221.   10. Remove
  1222.   
  1223. !    Every $ from the file src/ari68020.mit.d and rename it src/ari68020.d
  1224. !         sed > ari68020.d -e "s/$//" ari68020.mit.d
  1225.      Quote $ according to your shell conventions and sed version.
  1226.   
  1227. --- 107,112 ----
  1228.   10. Remove
  1229.   
  1230. !    every $ from the file src/ari68020.mit.d and rename it src/ari68020.d
  1231. !     sed > ari68020.d -e "s/$//" ari68020.mit.d
  1232.      Quote $ according to your shell conventions and sed version.
  1233.   
  1234. ***************
  1235. *** 114,120 ****
  1236.   12. Type
  1237.   
  1238. !         make    (while in a make.* directory)    (-low)
  1239. !         make HIGH=1                (-high)
  1240. !         make WIDE=1                (-wide)
  1241.   
  1242.      and wait for things to happen. One night on a B2000, more than one hour
  1243. --- 117,123 ----
  1244.   12. Type
  1245.   
  1246. !     make    (while in a make.* directory)    (-low)
  1247. !     make HIGH=1                (-high)
  1248. !     make WIDE=1                (-wide)
  1249.   
  1250.      and wait for things to happen. One night on a B2000, more than one hour
  1251. ***************
  1252. *** 122,142 ****
  1253.   
  1254.      Hint: use FIFO: (by Matt Dillon) in order to get a logfile.
  1255. !         NewShell FIFO:shell/rwkecs
  1256. !         Run >nil: remcli shell
  1257. !         Run >nil: cat FIFO:shell/rmt >>compile.log
  1258. !         echo "Log going into compile.log."
  1259.      Or use KingCon, ConsoleBuffer or else the Recorder program from the
  1260.      hacks204 archive by Andy Finkel (doesn't seem to work with 3.0).
  1261.   
  1262. ! 13. Type
  1263.   
  1264. !         make interpreted.mem     a memory image with everything
  1265. !                                   uncompiled (size 1.7MB)
  1266. !         make lispinit.mem        makes all *.fas files and
  1267. !                                   a memory image with everything
  1268. !                                   compiled (size 500KB, 1MB for wide version)
  1269.      The second step is the most time consuming.
  1270.   
  1271. ! 14. A test-suite
  1272.   
  1273.      The directory clisp/tests/ contains a large number of test files. While in
  1274. --- 125,183 ----
  1275.   
  1276.      Hint: use FIFO: (by Matt Dillon) in order to get a logfile.
  1277. !     NewShell FIFO:shell/rwkecs
  1278. !     Run >nil: remcli shell
  1279. !     Run >nil: cat FIFO:shell/rmt >>compile.log
  1280. !     echo "Log going into compile.log."
  1281.      Or use KingCon, ConsoleBuffer or else the Recorder program from the
  1282.      hacks204 archive by Andy Finkel (doesn't seem to work with 3.0).
  1283.   
  1284. ! 13. Patches
  1285.   
  1286. !    Gcc-2.3.3 -O2 -fomit-frame-pointer put several bugs in the compiler
  1287. !    output. I previously corrected two of them by hand-patching the assembly
  1288. !    files. Gcc-2.5.7 produced correct output but for 68020 and above machines
  1289. !    only. Gcc-2.5.8 produces few bugs and only in the -DWIDE version. Beta
  1290. !    versions of gcc-2.6.0 were not stable enough for compilation of the
  1291. !    -DWIDE version. I'm using Gcc-2.5.8.
  1292. !    Here's what to patch in control.s:_C_go (before the second eql):
  1293. !         movel a5@(-12),sp@-
  1294. !         movel a5@(-16),sp@-
  1295. ! #APP
  1296. ! | Should only be incremented once!
  1297. ! |       movel d1,a2
  1298. ! |       addql #8,d1
  1299. ! #NO_APP
  1300. !         movel d1,a2
  1301. !         addql #8,d1
  1302. !         movel a2@(4),sp@-
  1303. !         movel a2@,sp@-
  1304. !         movel d1,a5@(-28)
  1305. !         jbsr _eql
  1306. !    Here's a patch for predtype.s:_equalp (case_string dotimespL loop):
  1307. !     movel a5@(-32),d1
  1308. !     movel d1,a1
  1309. !     addql #1,d1
  1310. !     moveb a1@,d0
  1311. ! #APP
  1312. ! | Save incremented address!
  1313. !     movel d1,a5@(-32)
  1314. ! #NO_APP
  1315. !     movel d0,sp@-
  1316. !     jbsr a6@
  1317. !    Nobody gurantees there aren't more bugs not uncovered by the tests.
  1318. ! 14. Type
  1319. !     make interpreted.mem    a memory image with everything
  1320. !                  uncompiled (size 1.7MB)
  1321. !     make lispinit.mem    makes all *.fas files and
  1322. !                  a memory image with everything
  1323. !                  compiled (size 500KB, 1MB for wide version)
  1324.      The second step is the most time consuming.
  1325.   
  1326. ! 15. A test-suite
  1327.   
  1328.      The directory clisp/tests/ contains a large number of test files. While in
  1329. ***************
  1330. *** 150,154 ****
  1331.      array.erg should remain and report some limit or fixnum differences.
  1332.   
  1333. ! 15. Documentation
  1334.   
  1335.      Unluckily for an Amiga-only site, I generated the .man file on a UNIX
  1336. --- 191,195 ----
  1337.      array.erg should remain and report some limit or fixnum differences.
  1338.   
  1339. ! 16. Documentation
  1340.   
  1341.      Unluckily for an Amiga-only site, I generated the .man file on a UNIX
  1342. ***************
  1343. *** 157,165 ****
  1344.   
  1345.   
  1346.   Authors:
  1347.   --------
  1348.   
  1349. !         Bruno Haible
  1350. !         Michael Stoll
  1351.   
  1352.   Email: haible@ma2s2.mathematik.uni-karlsruhe.de
  1353. --- 198,301 ----
  1354.   
  1355.   
  1356. + 17. Known compiler warnings
  1357. +    This gives you an idea of what not to look at. Some warnings, especially
  1358. +    in LISPARIT.D vary among the versions.
  1359. + /src/array.d: In function `C_make_array':
  1360. + /src/array.d:2445: warning: `fillpointer' may be used uninitialized in this function
  1361. + /src/array.d: In function `C_adjust_array':
  1362. + /src/array.d:2742: warning: `fillpointer' may be used uninitialized in this function
  1363. + /src/charstrg.d: In function `test_index_arg':
  1364. + /src/charstrg.d:1418: warning: `i' may be used uninitialized in this function
  1365. + /src/charstrg.d: In function `test_string_limits':
  1366. + /src/charstrg.d:1508: warning: `start' may be used uninitialized in this function
  1367. + /src/charstrg.d:1509: warning: `end' may be used uninitialized in this function
  1368. + /src/charstrg.d: In function `test_1_stringsym_limits':
  1369. + /src/charstrg.d:1587: warning: `start' may be used uninitialized in this function
  1370. + /src/charstrg.d:1588: warning: `end' may be used uninitialized in this function
  1371. + /src/charstrg.d: In function `test_2_stringsym_limits':
  1372. + /src/charstrg.d:1659: warning: `start1' may be used uninitialized in this function
  1373. + /src/charstrg.d:1660: warning: `end1' may be used uninitialized in this function
  1374. + /src/charstrg.d:1689: warning: `start2' may be used uninitialized in this function
  1375. + /src/charstrg.d:1690: warning: `end2' may be used uninitialized in this function
  1376. + /src/charstrg.d: In function `C_substring':
  1377. + /src/charstrg.d:2322: warning: `start' may be used uninitialized in this function
  1378. + /src/charstrg.d:2323: warning: `end' may be used uninitialized in this function
  1379. + /src/control.d: In function `C_tagbody':
  1380. + /src/control.d:1439: warning: variable `body' may be clobbered by `longjmp' or `vfork'
  1381. + /src/eval.d: In function `invoke_handlers':
  1382. + /src/eval.d:686: warning: variable `other_ranges' may be clobbered by `longjmp' or `vfork'
  1383. + /src/eval.d:689: warning: variable `FRAME' may be clobbered by `longjmp' or `vfork'
  1384. + /src/eval.d:702: warning: variable `i' may be clobbered by `longjmp' or `vfork'
  1385. + /src/eval.d: In function `funcall_iclosure':
  1386. + /src/eval.d:2371: warning: argument `closure' may be clobbered by `longjmp' or `vfork'
  1387. + /src/eval.d:2372: warning: argument `args_pointer' may be clobbered by `longjmp' or `vfork'
  1388. + /src/eval.d:2373: warning: argument `argcount' may be clobbered by `longjmp' or `vfork'
  1389. + /src/eval.d: In function `eval':
  1390. + /src/eval.d:2849: warning: variable `_SetSignal_re' may be clobbered by `longjmp' or `vfork'
  1391. + /src/eval.d:2849: warning: variable `_n1' may be clobbered by `longjmp' or `vfork'
  1392. + /src/eval.d:2846: warning: argument `form' may be clobbered by `longjmp' or `vfork'
  1393. + /src/eval.d: In function `eval_no_hooks':
  1394. + /src/eval.d:2906: warning: argument `form' may be clobbered by `longjmp' or `vfork'
  1395. + /src/eval.d: In function `interpret_bytecode_':
  1396. + /src/eval.d:5750: warning: variable `closure' may be clobbered by `longjmp' or `vfork'
  1397. + /src/eval.d:5755: warning: variable `byteptr' may be clobbered by `longjmp' or `vfork'
  1398. + /src/eval.d:5763: warning: variable `closureptr' may be clobbered by `longjmp' or `vfork'
  1399. + /src/eval.d:5746: warning: argument `codeptr' may be clobbered by `longjmp' or `vfork'
  1400. + /src/hashtabl.d: In function `hashcode':
  1401. + /src/hashtabl.d:438: warning: statement with no effect
  1402. + /src/hashtabl.d: In function `C_class_tuple_gethash':
  1403. + /src/hashtabl.d:1326: warning: statement with no effect
  1404. + /src/io.d: In function `C_bit_vector_reader':
  1405. + /src/io.d:3155: warning: `ch' may be used uninitialized in this function
  1406. + /src/io.d: In function `C_vector_reader':
  1407. + /src/io.d:3245: warning: `el' may be used uninitialized in this function
  1408. + /src/lisparit0.d: In function `divu_3232_3232_':
  1409. + /src/lisparit0.d:1130: warning: statement with no effect
  1410. + /src/lisparit0.d: In function `make_random_state':
  1411. + /src/lisparit0.d:22269: warning: assignment makes integer from pointer without a cast
  1412. + /src/pathname.d: In function `parse_logical_word':
  1413. + /src/pathname.d:1027: warning: `ch' may be used uninitialized in this function
  1414. + /src/rexx.d: In function `C_rexx_put':
  1415. + /src/rexx.d:89: warning: `vargs' may be used uninitialized in this function
  1416. + /src/spvw.d: In function `speicher_laenge':
  1417. + /src/spvw.d:2364: warning: control reaches end of non-void function
  1418. + /src/spvw.d: In function `alive':
  1419. + /src/spvw.d:3556: warning: control reaches end of non-void function
  1420. + /src/spvw.d: In function `gc_compact_from_varobject_page':
  1421. + /src/spvw.d:5786: warning: `p2' may be used uninitialized in this function
  1422. + /src/spvw.d:5787: warning: `l2' may be used uninitialized in this function
  1423. + /src/spvw.d: In function `gc_compact_from_cons_page':
  1424. + /src/spvw.d:5840: warning: `p2' may be used uninitialized in this function
  1425. + /src/spvw.d:5841: warning: `l2' may be used uninitialized in this function
  1426. + /src/spvw.d: In function `asciz_out':
  1427. + /src/spvw.d:7859: warning: initialization discards `const' from pointer target type
  1428. + /src/spvw.d: In function `main':
  1429. + /src/spvw.d:9580: warning: variable `argv_memneed' may be clobbered by `longjmp' or `vfork'
  1430. + /src/spvw.d:9582: warning: variable `argv_stackneed' may be clobbered by `longjmp' or `vfork'
  1431. + /src/spvw.d: In function `loadmem':
  1432. + /src/spvw.d:11526: warning: empty body in an else-statement
  1433. + /src/stream.d: In function `make_file_stream':
  1434. + /src/stream.d:8793: warning: `art' may be used uninitialized in this function
  1435. +    Additionaly for the -low and -00 versions:
  1436. + /src/lisparit0.d: In function `I_to_UL':
  1437. + /src/lisparit0.d:1954: warning: comparison is always 1 due to limited range of data type
  1438. + /src/lisparit0.d: In function `I_to_L':
  1439. + /src/lisparit0.d:2001: warning: comparison is always 1 due to limited range of data type
  1440. + /src/lisparit0.d:2030: warning: comparison is always 0 due to limited range of data type
  1441. + /src/lisparit0.d: In function `I_to_UQ':
  1442. + /src/lisparit0.d:2092: warning: comparison is always 1 due to limited range of data type
  1443. + /src/lisparit0.d: In function `LF_I_scale_float_LF':
  1444. + /src/lisparit0.d:16261: warning: comparison is always 1 due to limited range of data type
  1445. + /src/lisparit0.d:16288: warning: comparison is always 0 due to limited range of data type
  1446.   Authors:
  1447.   --------
  1448.   
  1449. !     Bruno Haible            
  1450. !     Michael Stoll
  1451.   
  1452.   Email: haible@ma2s2.mathematik.uni-karlsruhe.de
  1453. ***************
  1454. *** 168,172 ****
  1455.   --------------
  1456.   
  1457. !         Jörg Höhle
  1458.   
  1459. ! Email: hoehle@zeus.gmd.de
  1460. --- 304,308 ----
  1461.   --------------
  1462.   
  1463. !     Jörg Höhle
  1464.   
  1465. ! Email: Joerg.Hoehle@gmd.de
  1466. Only in dh0:source/clisptmp/amiga/jchlib: CVS
  1467. Only in dh0:source/clisptmp/amiga/jchlib/include: CVS
  1468. diff -rc2 dh0:source/clisptmp/amiga/jchlib/include/stdlib.h amiga/jchlib/include/stdlib.h
  1469. *** dh0:source/clisptmp/amiga/jchlib/include/stdlib.h    Mon Apr 15 16:24:22 1996
  1470. --- amiga/jchlib/include/stdlib.h    Tue Jun 11 22:16:15 1996
  1471. ***************
  1472. *** 1,5 ****
  1473.   /* Tiny GCC Library
  1474.    * stdlib.h
  1475. !  * Jörg Höhle, 11-Dec-93
  1476.    */
  1477.   
  1478. --- 1,5 ----
  1479.   /* Tiny GCC Library
  1480.    * stdlib.h
  1481. !  * Jörg Höhle, 11-Jun-96
  1482.    */
  1483.   
  1484. ***************
  1485. *** 9,12 ****
  1486. --- 9,13 ----
  1487.   typedef void exit_t (int);
  1488.   extern volatile exit_t exit;
  1489. + char *getenv(const char *);
  1490.   
  1491.   #endif /* _STDLIB_H_ */
  1492. Only in amiga/jchlib/lib: crt0.o
  1493. Only in dh0:source/clisptmp/amiga/jchlib/lib: CVS
  1494. Only in amiga/jchlib/lib: foo.o
  1495. Only in amiga/jchlib/lib: libcclisp.a
  1496. Only in amiga/jchlib/lib: libtinygcc.a
  1497. Only in amiga/jchlib/lib: _udivdi3.o
  1498. Only in amiga/jchlib/lib: _udivmoddi4.o
  1499. diff -rc2 dh0:source/clisptmp/amiga/jchlib/Makefile amiga/jchlib/Makefile
  1500. *** dh0:source/clisptmp/amiga/jchlib/Makefile    Mon Apr 15 16:24:18 1996
  1501. --- amiga/jchlib/Makefile    Tue Aug 06 20:44:42 1996
  1502. ***************
  1503. *** 1,11 ****
  1504.   # GNU-Makefile for tiny GCC library
  1505. ! # Jörg Höhle, 11-Jul-94
  1506.   
  1507.   FLAGS=-Wall -fomit-frame-pointer
  1508.   # -IGCC:include is used by the GCC2 inlines
  1509. ! INCPATH=-nostdinc -Iinclude -IAB:usr/include/amiga31 -IGCC258:os-include -IGCC258:include
  1510.   
  1511.   #CP    =copy clone
  1512. ! CP     =cp
  1513.   
  1514.   CC     =gcc -v
  1515. --- 1,14 ----
  1516.   # GNU-Makefile for tiny GCC library
  1517. ! # Jörg Höhle, 6-Aug-96
  1518.   
  1519. + # 24.7.96: removed gnulib files from LIBFILES, use -lgcc instead
  1520. + #        lib/gnuarith.o lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o\
  1521.   FLAGS=-Wall -fomit-frame-pointer
  1522.   # -IGCC:include is used by the GCC2 inlines
  1523. ! INCPATH=-nostdinc -Iinclude -IADE:os-include -IADE:include
  1524.   
  1525.   #CP    =copy clone
  1526. ! CP     =cp -p
  1527.   
  1528.   CC     =gcc -v
  1529. ***************
  1530. *** 14,22 ****
  1531.   ASFLAGS=-mc68010
  1532.   LD     =ld
  1533. ! LDFLAGS=-nostdlib -l$(LIBSHORTNAME)
  1534.   #AR from gcc-2.5.6/8 doesn't strip dirnames which I believe is wrong
  1535.   AR     =ar233
  1536.   
  1537. ! LIBSHORTNAME=clisp
  1538.   LIBFILENAME=lib/lib$(LIBSHORTNAME).a
  1539.   CRT0FILENAME=lib/crt0.o
  1540. --- 17,26 ----
  1541.   ASFLAGS=-mc68010
  1542.   LD     =ld
  1543. ! LDFLAGS=-x -nostdlib -Llib -l$(LIBSHORTNAME)
  1544.   #AR from gcc-2.5.6/8 doesn't strip dirnames which I believe is wrong
  1545.   AR     =ar233
  1546.   
  1547. ! #LIBSHORTNAME=tiny
  1548. ! LIBSHORTNAME=cclisp
  1549.   LIBFILENAME=lib/lib$(LIBSHORTNAME).a
  1550.   CRT0FILENAME=lib/crt0.o
  1551. ***************
  1552. *** 25,29 ****
  1553.    main.c def_handle.c wbmain.c exit.c parseargs.c gcc2__main.s)
  1554.   
  1555. ! MISCFILES=misc/setjmp.s misc/strlen.c misc/CreatePort.c misc/setmode.c
  1556.   # MISCOBJS=$(subst .c,.o,$(MISCFILES))
  1557.   
  1558. --- 29,33 ----
  1559.    main.c def_handle.c wbmain.c exit.c parseargs.c gcc2__main.s)
  1560.   
  1561. ! MISCFILES=misc/setjmp.s misc/strlen.c misc/CreatePort.c misc/setmode.c misc/getenv.c
  1562.   # MISCOBJS=$(subst .c,.o,$(MISCFILES))
  1563.   
  1564. ***************
  1565. *** 32,37 ****
  1566.    startup/main.o startup/wbmain.o startup/exit.o startup/parseargs.o\
  1567.    misc/setjmp.o misc/strlen.o startup/gcc2__main.o\
  1568. !  misc/CreatePort.o misc/BPTRfprintf.o misc/setmode.o\
  1569. !  lib/gnuarith.o lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o\
  1570.    startup/def_handle.o startup/def_window.o startup/def_glue.o
  1571.   
  1572. --- 36,40 ----
  1573.    startup/main.o startup/wbmain.o startup/exit.o startup/parseargs.o\
  1574.    misc/setjmp.o misc/strlen.o startup/gcc2__main.o\
  1575. !  misc/CreatePort.o misc/BPTRfprintf.o misc/setmode.o misc/getenv.o\
  1576.    startup/def_handle.o startup/def_window.o startup/def_glue.o
  1577.   
  1578. ***************
  1579. *** 42,46 ****
  1580.   all: $(LIBFILENAME) $(CRT0FILENAME)
  1581.   
  1582. ! lib/libclisp.a: $(CLISPLIBFILES)
  1583.       $(RM) $@
  1584.       $(AR) -qv $@ $^
  1585. --- 45,49 ----
  1586.   all: $(LIBFILENAME) $(CRT0FILENAME)
  1587.   
  1588. ! lib/libcclisp.a: $(CLISPLIBFILES)
  1589.       $(RM) $@
  1590.       $(AR) -qv $@ $^
  1591. ***************
  1592. *** 58,73 ****
  1593.       echo "gnuarith.o is taken from GCCBuRP"
  1594.   
  1595. ! lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o:
  1596.       echo "$@ comes from GCC-2.5.8"
  1597.   
  1598.   test: test.o $(LIBFILENAME) $(CRT0FILENAME)
  1599. !     $(LD) $(CRT0FILENAME) $< -nostdlib -Llib -l$(LIBSHORTNAME) -o $@
  1600.   
  1601.   test-s: test.o $(LIBFILENAME) $(CRT0FILENAME)
  1602. !     $(LD) -s $(CRT0FILENAME) $< -nostdlib -Llib -l$(LIBSHORTNAME) -o $@
  1603.   
  1604.   setmode-main: misc/setmode.c $(LIBFILENAME) $(CRT0FILENAME)
  1605.       $(CC) $(CFLAGS) -c -DMAIN -DJCHLIB misc/setmode.c -o setmode-main.o
  1606. !     $(LD) -s $(CRT0FILENAME) setmode-main.o -nostdlib -Llib -l$(LIBSHORTNAME) -o $@
  1607.   
  1608.   clean:
  1609. --- 61,77 ----
  1610.       echo "gnuarith.o is taken from GCCBuRP"
  1611.   
  1612. ! lib/_ashldi3.o lib/_ucmpdi2.o lib/_negdi2.o lib/_udivdi3.o:
  1613.       echo "$@ comes from GCC-2.5.8"
  1614.   
  1615. + # Luckily, -lgcc is not required here
  1616.   test: test.o $(LIBFILENAME) $(CRT0FILENAME)
  1617. !     $(LD) $(CRT0FILENAME) $< $(LDFLAGS) -o $@
  1618.   
  1619.   test-s: test.o $(LIBFILENAME) $(CRT0FILENAME)
  1620. !     $(LD) -s $(CRT0FILENAME) $< $(LDFLAGS) -o $@
  1621.   
  1622.   setmode-main: misc/setmode.c $(LIBFILENAME) $(CRT0FILENAME)
  1623.       $(CC) $(CFLAGS) -c -DMAIN -DJCHLIB misc/setmode.c -o setmode-main.o
  1624. !     $(LD) -s $(CRT0FILENAME) setmode-main.o $(LDFLAGS) -o $@
  1625.   
  1626.   clean:
  1627. Only in amiga/jchlib/misc: BPTRfprintf.o
  1628. diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/BPTRfprintf.s amiga/jchlib/misc/BPTRfprintf.s
  1629. *** dh0:source/clisptmp/amiga/jchlib/misc/BPTRfprintf.s    Mon Apr 15 16:24:24 1996
  1630. --- amiga/jchlib/misc/BPTRfprintf.s    Tue Jul 09 21:03:09 1996
  1631. ***************
  1632. *** 1,4 ****
  1633.   | Tiny GCC Library
  1634. ! | Jörg Höhle, 10-Jul-94
  1635.   
  1636.   |A 254 byte buffer is allocated and chunks max that large written
  1637. --- 1,4 ----
  1638.   | Tiny GCC Library
  1639. ! | Jörg Höhle, 9-Jul-96
  1640.   
  1641.   |A 254 byte buffer is allocated and chunks max that large written
  1642. ***************
  1643. *** 33,37 ****
  1644.       movel a3@(12),a0    | C-format
  1645.       lea a3@(16),a1        | C-varargs
  1646. !     lea pc@(stuffit+2),a2    | PutChProc, +2 because of as? bug!
  1647.                   | PutChData in a3
  1648.       movel _SysBase,a6
  1649. --- 33,37 ----
  1650.       movel a3@(12),a0    | C-format
  1651.       lea a3@(16),a1        | C-varargs
  1652. !     lea pc@(stuffit),a2    | PutChProc, ATTENTION! old gas needed stuffit+2
  1653.                   | PutChData in a3
  1654.       movel _SysBase,a6
  1655. diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/CreatePort.c amiga/jchlib/misc/CreatePort.c
  1656. *** dh0:source/clisptmp/amiga/jchlib/misc/CreatePort.c    Mon Apr 15 16:24:26 1996
  1657. --- amiga/jchlib/misc/CreatePort.c    Tue Jul 09 20:32:12 1996
  1658. ***************
  1659. *** 1,4 ****
  1660.   /* GCC Library
  1661. !  * Jörg Höhle, 30-Nov-92
  1662.    */
  1663.   
  1664. --- 1,4 ----
  1665.   /* GCC Library
  1666. !  * Jörg Höhle, 12-Jun-96
  1667.    */
  1668.   
  1669. ***************
  1670. *** 6,14 ****
  1671.   #include <exec/ports.h>
  1672.   #include <exec/memory.h>
  1673. ! #ifdef __GNUC__
  1674. !   #include <inline/exec.h>
  1675. ! #else
  1676. !   #include <clib/exec.h>
  1677. ! #endif
  1678.   
  1679.   void DeletePort(struct MsgPort * port);
  1680. --- 6,14 ----
  1681.   #include <exec/ports.h>
  1682.   #include <exec/memory.h>
  1683. ! #define __CONSTLIBBASEDECL__ const /* for GCC inlines */
  1684. ! extern struct ExecBase * const SysBase;
  1685. ! #include <proto/exec.h>
  1686. ! #include <proto/alib.h>    /* for NewList() */
  1687.   
  1688.   void DeletePort(struct MsgPort * port);
  1689. Only in amiga/jchlib/misc: CreatePort.o
  1690. Only in dh0:source/clisptmp/amiga/jchlib/misc: CVS
  1691. Only in amiga/jchlib/misc: getenv.c
  1692. Only in amiga/jchlib/misc: getenv.o
  1693. Only in amiga/jchlib/misc: setjmp.o
  1694. diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/setmode.c amiga/jchlib/misc/setmode.c
  1695. *** dh0:source/clisptmp/amiga/jchlib/misc/setmode.c    Mon Apr 15 16:24:26 1996
  1696. --- amiga/jchlib/misc/setmode.c    Tue Jul 09 20:17:45 1996
  1697. ***************
  1698. *** 1,5 ****
  1699. --- 1,8 ----
  1700.   #include <exec/types.h>
  1701. + #include <exec/execbase.h>
  1702.   #include <dos/dosextens.h>
  1703.   
  1704. + #define __CONSTLIBBASEDECL__ const /* for GCC inlines */
  1705. + extern struct ExecBase * const SysBase;
  1706.   #include <inline/exec.h>
  1707.   #include <inline/dos.h>
  1708. ***************
  1709. *** 11,15 ****
  1710.   
  1711.   LONG setmode(BPTR fh, LONG mode)
  1712. ! {extern struct DosLibrary * DOSBase;
  1713.    if (DOSBase->dl_lib.lib_Version > 35)
  1714.      return SetMode(fh,mode);
  1715. --- 14,18 ----
  1716.   
  1717.   LONG setmode(BPTR fh, LONG mode)
  1718. ! {extern struct DosLibrary * const DOSBase;
  1719.    if (DOSBase->dl_lib.lib_Version > 35)
  1720.      return SetMode(fh,mode);
  1721. Only in amiga/jchlib/misc: setmode.o
  1722. diff -rc2 dh0:source/clisptmp/amiga/jchlib/misc/strlen.c amiga/jchlib/misc/strlen.c
  1723. *** dh0:source/clisptmp/amiga/jchlib/misc/strlen.c    Mon Apr 15 16:24:28 1996
  1724. --- amiga/jchlib/misc/strlen.c    Tue Aug 21 23:46:18 1995
  1725. ***************
  1726. *** 1,15 ****
  1727. ! #if 0
  1728.   int strlen(const char* str)
  1729.   {
  1730. !   register int count;
  1731. !   for (count = 0; *str != '\0'; count++, str++) ;
  1732. !   return count;
  1733.   }
  1734. ! #else /* better optimisation */
  1735. ! int strlen(const char* str)
  1736. ! {
  1737. !   register int count = 0;
  1738. !   while (!(*str++ == 0)) count++;
  1739. !   return count;
  1740. ! }
  1741. ! #endif
  1742. --- 1,18 ----
  1743. ! /* only loop over tst.b (a0)+ */
  1744.   int strlen(const char* str)
  1745.   {
  1746. !   register const char* ptr = str;
  1747. !   while (*ptr++) ;
  1748. !   return ~(str - ptr);
  1749.   }
  1750. ! /* almost identical to:
  1751. !         move.l  (sp)+,a0
  1752. !         move.l a0,d0
  1753. ! slloop:
  1754. !         tst.l   (a0)+           ; Test for null-terminator and increment A0
  1755. !         bne.b   slloop          ; Repeat if we didn't find the terminator
  1756. !         not.l   d0              ; D0 = -D0 - 1
  1757. !         add.l   a0,d0           ; D0 = A0 - D0 - 1
  1758. !         rts
  1759. ! */
  1760. Only in amiga/jchlib/misc: strlen.o
  1761. diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/clisp.c amiga/jchlib/startup/clisp.c
  1762. *** dh0:source/clisptmp/amiga/jchlib/startup/clisp.c    Mon Apr 15 16:24:28 1996
  1763. --- amiga/jchlib/startup/clisp.c    Tue Jul 09 19:35:00 1996
  1764. ***************
  1765. *** 9,12 ****
  1766. --- 9,14 ----
  1767.   /* BPTR Output_handle = NULL; */
  1768.   
  1769. + #ifdef SUPPORT_1_3
  1770.   UBYTE _WDefName13[] = "CON:0/11/640/186/CLISP-Listener";
  1771. + #endif
  1772.   UBYTE _WDefName[] =  "CON:0/11//186/CLISP-Listener/CLOSE/AUTO/WAIT";
  1773. Only in amiga/jchlib/startup: clisp.o
  1774. Only in amiga/jchlib/startup: crt0.o
  1775. Only in dh0:source/clisptmp/amiga/jchlib/startup: CVS
  1776. Only in amiga/jchlib/startup: def_handle.o
  1777. diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/def_window.c amiga/jchlib/startup/def_window.c
  1778. *** dh0:source/clisptmp/amiga/jchlib/startup/def_window.c    Mon Apr 15 16:24:30 1996
  1779. --- amiga/jchlib/startup/def_window.c    Wed Jul 24 02:34:31 1996
  1780. ***************
  1781. *** 1,4 ****
  1782.   #include <exec/types.h>
  1783.   
  1784. ! UBYTE _WDefName13[] = "CON:0/11/640/186/Interaction";
  1785. ! UBYTE _WDefName[] =  "CON:0/11//186/Interaction/CLOSE/AUTO/WAIT";
  1786. --- 1,6 ----
  1787.   #include <exec/types.h>
  1788.   
  1789. ! #ifdef SUPPORT_1_3
  1790. ! UBYTE _WDefName13[] = "CON:0/11/640/186/Program-console";
  1791. ! #endif
  1792. ! UBYTE _WDefName[] =  "CON:0/11//186/Program-console/CLOSE/AUTO/WAIT";
  1793. diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/exit.c amiga/jchlib/startup/exit.c
  1794. *** dh0:source/clisptmp/amiga/jchlib/startup/exit.c    Mon Apr 15 16:24:30 1996
  1795. --- amiga/jchlib/startup/exit.c    Tue Jul 09 19:48:00 1996
  1796. ***************
  1797. *** 6,16 ****
  1798.   #include <exec/ports.h>
  1799.   #include <libraries/dos.h>
  1800. ! #ifdef __GNUC__
  1801. !   #include <inline/exec.h>
  1802. !   #include <inline/dos.h>
  1803. ! #else
  1804. !   #include <clib/exec.h>
  1805. !   #include <clib/dos.h>
  1806. ! #endif
  1807.   
  1808.   volatile void _exit(LONG);
  1809. --- 6,11 ----
  1810.   #include <exec/ports.h>
  1811.   #include <libraries/dos.h>
  1812. ! #include <proto/exec.h>
  1813. ! #include <proto/dos.h>
  1814.   
  1815.   volatile void _exit(LONG);
  1816. Only in amiga/jchlib/startup: exit.o
  1817. Only in amiga/jchlib/startup: gcc2__main.o
  1818. diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/main.c amiga/jchlib/startup/main.c
  1819. *** dh0:source/clisptmp/amiga/jchlib/startup/main.c    Mon Apr 15 16:24:32 1996
  1820. --- amiga/jchlib/startup/main.c    Tue Jul 09 19:55:18 1996
  1821. ***************
  1822. *** 8,30 ****
  1823.   #include <exec/ports.h>
  1824.   #include <workbench/startup.h>
  1825. ! #ifdef __GNUC__
  1826. !   #include <inline/exec.h>
  1827. !   #include <inline/dos.h>
  1828. ! #else
  1829. !   #include <clib/exec.h>
  1830. !   #include <clib/dos.h>
  1831. ! #endif
  1832.   
  1833. ! struct ExecBase * SysBase;
  1834.   struct DosLibrary * DOSBase = NULL;
  1835. - struct Process * _Process = NULL;
  1836.   struct WBStartup * WBenchMsg = NULL;
  1837.   UWORD _OS_Version;
  1838.   
  1839.   long _main(LONG arglen, UBYTE* arg)
  1840.   {
  1841. !   register struct Process *proc =
  1842. !     _Process = (struct Process *)FindTask(NULL);
  1843.     _OS_Version = SysBase->LibNode.lib_Version;
  1844.     if (NULL == proc->pr_CLI) /* WB startup */
  1845.       {
  1846. --- 8,30 ----
  1847.   #include <exec/ports.h>
  1848.   #include <workbench/startup.h>
  1849. ! #include <proto/exec.h>
  1850. ! #include <proto/dos.h>
  1851.   
  1852. ! struct ExecBase * const SysBase;
  1853.   struct DosLibrary * DOSBase = NULL;
  1854.   struct WBStartup * WBenchMsg = NULL;
  1855. + #ifdef SUPPORT_1_3
  1856.   UWORD _OS_Version;
  1857. + #define MINIMAL_VERSION 0L
  1858. + #else
  1859. + #define MINIMAL_VERSION 37L
  1860. + #endif
  1861.   
  1862.   long _main(LONG arglen, UBYTE* arg)
  1863.   {
  1864. !   register struct Process *proc = (struct Process *)FindTask(NULL);
  1865. ! #ifdef SUPPORT_1_3
  1866.     _OS_Version = SysBase->LibNode.lib_Version;
  1867. + #endif
  1868.     if (NULL == proc->pr_CLI) /* WB startup */
  1869.       {
  1870. ***************
  1871. *** 33,37 ****
  1872.       }
  1873.   
  1874. !   if (NULL == (DOSBase = (struct DosLibrary *)OpenLibrary(DOSNAME,0L)))
  1875.       { exit(-1L); } /* DOSBase will not necessarily be set in exit()! */
  1876.   
  1877. --- 33,37 ----
  1878.       }
  1879.   
  1880. !   if (NULL == (DOSBase = (struct DosLibrary *)OpenLibrary(DOSNAME,MINIMAL_VERSION)))
  1881.       { exit(-1L); } /* DOSBase will not necessarily be set in exit()! */
  1882.   
  1883. Only in amiga/jchlib/startup: main.o
  1884. Only in amiga/jchlib/startup: parseargs.o
  1885. diff -rc2 dh0:source/clisptmp/amiga/jchlib/startup/wbmain.c amiga/jchlib/startup/wbmain.c
  1886. *** dh0:source/clisptmp/amiga/jchlib/startup/wbmain.c    Mon Apr 15 16:24:34 1996
  1887. --- amiga/jchlib/startup/wbmain.c    Tue Jul 09 20:08:06 1996
  1888. ***************
  1889. *** 1,4 ****
  1890.   /* Tiny GCC Library
  1891. !  * Jörg Höhle, 21-Jul-94
  1892.    */
  1893.   
  1894. --- 1,4 ----
  1895.   /* Tiny GCC Library
  1896. !  * Jörg Höhle, 9-Jul-96
  1897.    */
  1898.   
  1899. ***************
  1900. *** 11,24 ****
  1901.   struct Library * IconBase = NULL;
  1902.   
  1903. ! #ifdef __GNUC__
  1904. !   #include <inline/exec.h>
  1905. !   #include <inline/dos.h>
  1906. ! #define BASE_EXT_DECL
  1907. !   #include <inline/icon.h>
  1908. ! #else
  1909. !   #include <clib/exec.h>
  1910. !   #include <clib/dos.h>
  1911. !   #include <clib/icon.h>
  1912. ! #endif
  1913.   
  1914.   /* FALSE for standard code (def_window.c), TRUE for CLISP (through clisp.c) */
  1915. --- 11,18 ----
  1916.   struct Library * IconBase = NULL;
  1917.   
  1918. ! #include <proto/exec.h>
  1919. ! #include <proto/dos.h>
  1920. ! #define BASE_EXT_DECL    /* no const declaration with old GCC function inlines */
  1921. ! #include <proto/icon.h>
  1922.   
  1923.   /* FALSE for standard code (def_window.c), TRUE for CLISP (through clisp.c) */
  1924. ***************
  1925. *** 26,30 ****
  1926. --- 20,26 ----
  1927.   
  1928.   /* These are pulled from the library unless you define them (see clisp.c) */
  1929. + #ifdef SUPPORT_1_3
  1930.   extern UBYTE _WDefName13[];
  1931. + #endif
  1932.   extern UBYTE _WDefName[];
  1933.   
  1934. ***************
  1935. *** 60,64 ****
  1936.             if (dobj != NULL)
  1937.               { char* arg = FindToolType(dobj->do_ToolTypes,"WINDOW");
  1938. !               /* ex: WINDOW=CON:0/0/640/200/CLOS-Listener oder WINDOW=NIL: */
  1939.                 if (arg != NULL)
  1940.                   { register int len = strlen(arg);
  1941. --- 56,60 ----
  1942.             if (dobj != NULL)
  1943.               { char* arg = FindToolType(dobj->do_ToolTypes,"WINDOW");
  1944. !               /* ex: WINDOW=CON:0/0/640/200/CLOS-Listener/CLOSE oder WINDOW=NIL: */
  1945.                 if (arg != NULL)
  1946.                   { register int len = strlen(arg);
  1947. ***************
  1948. *** 74,78 ****
  1949.                 if (arg != NULL)
  1950.                   { register int len = strlen(arg);
  1951. !           D(ebug("Found ARG tooltype: %s\n",arg));
  1952.                     argline[i].line = alloca(len+1);
  1953.                     nzbcopy(arg,argline[i].line,len+1);
  1954. --- 70,74 ----
  1955.                 if (arg != NULL)
  1956.                   { register int len = strlen(arg);
  1957. !           D(ebug("Found ARGS tooltype: %s\n",arg));
  1958.                     argline[i].line = alloca(len+1);
  1959.                     nzbcopy(arg,argline[i].line,len+1);
  1960. ***************
  1961. *** 127,131 ****
  1962. --- 123,131 ----
  1963.   
  1964.     if (ioname == NULL)
  1965. + #ifdef SUPPORT_1_3
  1966.       { ioname = _OS_Version >= 37 ? _WDefName : _WDefName13; }
  1967. + #else
  1968. +     { ioname = _WDefName; }
  1969. + #endif
  1970.   
  1971.     Input_handle = Output_handle = Open(ioname,MODE_OLDFILE);
  1972. Only in amiga/jchlib/startup: wbmain.o
  1973. Only in amiga/jchlib: test
  1974. diff -rc2 dh0:source/clisptmp/amiga/jchlib/test.c amiga/jchlib/test.c
  1975. *** dh0:source/clisptmp/amiga/jchlib/test.c    Mon Apr 15 16:24:18 1996
  1976. --- amiga/jchlib/test.c    Tue Jul 09 21:04:42 1996
  1977. ***************
  1978. *** 6,10 ****
  1979.   #include <libgoodies.h>    /* for BPTRfprintf() */
  1980.   
  1981. ! #include <inline/dos.h>
  1982.   
  1983.   /* This comes from the startup code */
  1984. --- 6,12 ----
  1985.   #include <libgoodies.h>    /* for BPTRfprintf() */
  1986.   
  1987. ! #define __CONSTLIBBASEDECL__ const /* better code with GCC inlines */
  1988. ! extern struct DosLibrary * const DOSBase;
  1989. ! #include <proto/dos.h>
  1990.   
  1991.   /* This comes from the startup code */
  1992. ***************
  1993. *** 12,18 ****
  1994.   
  1995.   const char *usage = "Usage:
  1996. ! Please try this from WorkBench also, using the ARGS tooltype.
  1997. ! When called with four arguments, does setjmp() test.
  1998. ! ";
  1999.   
  2000.   int main(int argc, char *argv[])
  2001. --- 14,22 ----
  2002.   
  2003.   const char *usage = "Usage:
  2004. ! Please try this from WorkBench also, using the ARGS tooltype."
  2005. ! #if 0
  2006. ! "When called with four arguments, does setjmp() test."
  2007. ! #endif
  2008. ! ;
  2009.   
  2010.   int main(int argc, char *argv[])
  2011. ***************
  2012. *** 37,40 ****
  2013. --- 41,45 ----
  2014.     if (argc == 1)
  2015.       { Write(Output_handle,usage,strlen(usage)); }
  2016. +   /* TODO argc=5 and setjmp() test */
  2017.     exit(RETURN_WARN-1); /* test return code */
  2018.   }
  2019. Only in amiga/jchlib: test.o
  2020. diff -rc2 dh0:source/clisptmp/amiga/README.Amiga amiga/README.Amiga
  2021. *** dh0:source/clisptmp/amiga/README.Amiga    Mon Apr 15 16:24:14 1996
  2022. --- amiga/README.Amiga    Tue Aug 13 01:08:07 1996
  2023. ***************
  2024. *** 1,12 ****
  2025.   Dear lisper,
  2026.   
  2027. ! This archive contains an Amiga version of CLISP as of 8th January 1994 (with
  2028. ! patches from 25th January), slightly modified on 7th of February. Please see
  2029. ! the files clisp.man and README too. Aminet archive names have been shortened
  2030. ! to fit the 20 characters limit.
  2031. ! There are three distinct binary versions of CLISP. These will be referred as
  2032. ! *-high, *-low and *-wide. Depending on your machine, you'll be able to run
  2033. ! one or the other, or all of them for testing purposes.
  2034.   
  2035.   o The *-low Version:
  2036. --- 1,34 ----
  2037. + Short: Common Lisp, release 30.5.96
  2038. + Requires: OS 2.04 or newer
  2039. + Author: haible@ma2s2.mathematik.uni-karlsruhe.de, Joerg.Hoehle@gmd.de
  2040. + Uploader: Joerg.Hoehle@gmd.de
  2041.   Dear lisper,
  2042.   
  2043. ! This archive contains an Amiga version of CLISP as of 30th May 1996. Please
  2044. ! see the files README (general description, installation), clisp.man (command
  2045. ! line switches, tooltypes, explanation of files) and impnotes.txt
  2046. ! (differences between CLISP and the Common Lisp reference, extensions, ARexx
  2047. ! interface documentation). See also CHANGES.LOG if you are not a new user.
  2048. ! Aminet archive names have been shortened to fit the 20 characters limit.
  2049. ! Which version to choose
  2050. ! -----------------------
  2051. ! There may be four distinct binary versions of CLISP. These will be referred
  2052. ! as *-high, *-low, *-00 and *-wide. Depending on your machine, you'll not be
  2053. ! able to run all of them on one machine.
  2054. ! o The *-high version:
  2055. !   + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
  2056. !     doesn't use the floating point coprocessor.
  2057. !   + is able to deal with addresses from 0 to 0x07FFFFFF, thus working on most
  2058. !     A3000 and A4000 machines. GigaMem uses addresses between 0x20000000 and
  2059. !     0x60000000. VMM uses adresses at 0x40000000. CLISP cannot run with
  2060. !     that.
  2061. !   * checks the memory it gets, reverting to MEMF_24BITDMA, like *-low.
  2062.   
  2063.   o The *-low Version:
  2064. ***************
  2065. *** 30,45 ****
  2066.       version.
  2067.   
  2068. ! o The *-high version:
  2069. !   + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
  2070. !     doesn't use the floating point coprocessor.
  2071. !   + is able to deal with addresses from 0 to 0x07FFFFFF, thus working on some
  2072. !     A3000 and A4000 machines. GigaMem uses addresses between 0x20000000 and
  2073. !     0x60000000. VMM40 uses adresses at 0x40000000. CLISP cannot run with
  2074. !     that.
  2075.   
  2076. !   * checks the memory it gets, reverting to MEMF_24BITDMA (>2.0, otherwise
  2077. !     MEMF_CHIP), like above.
  2078.   
  2079.   o The *-wide version:
  2080. --- 52,65 ----
  2081.       version.
  2082.   
  2083. ! o The *-00 version:
  2084.   
  2085. !   + resembles the *-low version but has been compiled for a 68000 only. It
  2086. !     doesn't need to clear the upper 8 bits, leading to faster execution on
  2087. !     these machines (I measured 8% when compiling AFFI1.LSP, not that much).
  2088. !   + removing german and french language support would make the executable
  2089. !     size 14% smaller but not the image without new .fas files, so I
  2090. !     refrained from doing so and maintained .fas file compatibility among all
  2091. !     versions.
  2092.   
  2093.   o The *-wide version:
  2094. ***************
  2095. *** 48,55 ****
  2096.       doesn't use the floating point coprocessor.
  2097.   
  2098. !   + is able to deal with any address and works fine with virtual memory or
  2099. !     configurations where memory is located above 0x08000000
  2100. !     (e.g. CSA-Derringer 030). This has been achived at the cost of using
  2101. !     64-bit integers. This makes the executable and memory files very large.
  2102.   
  2103.   o The Lisp-part of CLISP is in the CLisp-*-Part2 archive, e.g. the compiler
  2104. --- 68,77 ----
  2105.       doesn't use the floating point coprocessor.
  2106.   
  2107. !   + is able to deal with any address and works fine with virtual
  2108. !     memory (VMM) or configurations where memory is located above
  2109. !     0x08000000 (e.g. CSA-Derringer 030). This has been achived at the
  2110. !     cost of using 64-bit integers. This makes the executable and
  2111. !     memory files very large and run-time longer (I measured a 40%
  2112. !     increase in execution time compared to *-high).
  2113.   
  2114.   o The Lisp-part of CLISP is in the CLisp-*-Part2 archive, e.g. the compiler
  2115. ***************
  2116. *** 62,67 ****
  2117.   o The complete CLISP source can be found in the clispsrc-<date>.tar.gz
  2118.     archive (see file ANNOUNCE). You need to have GNU-zip (gzip) and tar (or
  2119. !   gtar) to be able to unpack it. I rearchived it for Aminet distribution into
  2120. !   CLispsrc-<date>.lha.
  2121.   
  2122.   
  2123. --- 84,89 ----
  2124.   o The complete CLISP source can be found in the clispsrc-<date>.tar.gz
  2125.     archive (see file ANNOUNCE). You need to have GNU-zip (gzip) and tar (or
  2126. !   GNUtar) to be able to unpack it. I rearchived it for Aminet distribution
  2127. !   into CLispsrc-<date>.lha.
  2128.   
  2129.   
  2130. ***************
  2131. *** 69,87 ****
  2132.   ------------
  2133.   
  2134. ! 1. unpack:
  2135. !       LHA X clisp-xxxxx.lha
  2136.   
  2137. - 2. set common shortcuts:
  2138. -       assign >NIL: LISP: Work:CLISP
  2139. -       alias lisp LISP:lisp.run -M LISP:lispinit.mem
  2140. - 3. modify config.lsp
  2141. - 4. make memory image:
  2142. -       lisp
  2143. -       > (compile-file "config")
  2144. -       > (load "config")
  2145. -       > (saveinitmem)
  2146. -       > (exit)
  2147.   
  2148.   Notes
  2149. --- 91,96 ----
  2150.   ------------
  2151.   
  2152. ! See README.
  2153.   
  2154.   
  2155.   Notes
  2156. ***************
  2157. *** 92,98 ****
  2158.     interface. See also impnotes.txt.
  2159.   
  2160. ! o CLISP always allocates its own stack and should not cause MungWall or
  2161. !   Enforcer hits. I don't know whether this stack allocation feature may cause
  2162. !   compatibility issues with future Amigas.
  2163.   
  2164.   o The lisp.run executable contains symbolic information. Symbolic information
  2165. --- 101,107 ----
  2166.     interface. See also impnotes.txt.
  2167.   
  2168. ! o CLISP always allocates its own stack (in private memory) and should
  2169. !   not cause MungWall or Enforcer hits. This stack allocation feature
  2170. !   may cause compatibility issues with future Amigas.
  2171.   
  2172.   o The lisp.run executable contains symbolic information. Symbolic information
  2173. ***************
  2174. *** 100,109 ****
  2175.   
  2176.   o Hints for your config.lsp:
  2177. ! (defparameter *editor* "ttx WAIT")    ; Turbotext editor
  2178.   (defparameter *editor* "ced -keepio")    ; Cygnus ED (right?)
  2179. - (defparameter *default-time-zone* -1)    ; default set in defs1.lsp
  2180.   
  2181.   
  2182. ! Changes: (_PART_ of CHANGES.LOG in the source tree)
  2183.   
  2184.   User visible changes
  2185. --- 109,117 ----
  2186.   
  2187.   o Hints for your config.lsp:
  2188. ! (defparameter *editor* "memacs")    ; Micro-Emacs editor
  2189.   (defparameter *editor* "ced -keepio")    ; Cygnus ED (right?)
  2190.   
  2191.   
  2192. ! Changes: (_part_ of CHANGES.LOG in the source tree)
  2193.   
  2194.   User visible changes
  2195. ***************
  2196. *** 110,118 ****
  2197.   --------------------
  2198.   
  2199. ! * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
  2200.   
  2201. ! * The function ED can now edit functions that have been entered in
  2202. !   interpreted form even if they have later been compiled.
  2203.   
  2204.   * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
  2205.     (COMPILE function-name) if the function's definition had been entered
  2206. --- 118,171 ----
  2207.   --------------------
  2208.   
  2209. ! * REMOVE-METHOD didn't work. 
  2210. !   Thanks to Roger Kehr <kehr@iti.informatik.th-darmstadt.de>
  2211. !   and Bruno Haible for the fix.
  2212. ! * Fixed a bug in the compiler: A (MULTIPLE-VALUE-SETQ vars valform)
  2213. !   or (MULTIPLE-VALUE-BIND vars valform ...) form was miscompiled if
  2214. !   valform is known to produce a single value.
  2215. !   Thanks to Bruno Haible and Paul Graham <pg@das.harvard.edu>.  
  2216. ! * RENAME-FILE now does *not* result in an error if the destination
  2217. !   file already exists (unless the system call results in an error message).
  2218. ! * PROBE-FILE and TRUENAME will not issue error messages if given
  2219. !   directories.
  2220. ! * X3J13 vote <72> is implemented: all standard Common Lisp data objects 
  2221. !   other than symbols and lists are self-evaluating. 
  2222. !   Thanks to Pierpaolo Bernardi. 
  2223. ! * X3J13 vote <40> is partially implemented: New macro WITH-STANDARD-IO-SYNTAX.
  2224. !   Thanks to Pierpaolo Bernardi.
  2225. ! * Some FORMAT fixes:
  2226. !   + X3J13 vote <81> is implemented: The FORMAT ~:^ directive is more useful.
  2227. !     Warning: Old style "~:^" directives need to be converted to "~#:^".
  2228. !   + X3J13 vote <82> is implemented: The FORMAT ~D, ~B, ~O, ~X, ~R directives
  2229. !     accept an optional comma-interval parameter.
  2230. !   + X3J13 vote <84> is implemented: FORMAT ~C outputs characters with no bits
  2231. !     as if by WRITE-CHAR.
  2232. !   + Handling of ~^ within the FORMAT ~? directive.
  2233. ! * New function FINALIZE. (FINALIZE object function) has the effect that
  2234. !   function will be called when object is being garbage collected.
  2235.   
  2236. ! * The initial value of *PACKAGE* can be specified by a command line option.
  2237.   
  2238. + * Fixed a bug in the compiler which caused LOAD-TIME-VALUE forms to be
  2239. +   evaluated at compile time.
  2240. + * Amiga version: SCREEN package is implemented. Thanks to Jörg Höhle.
  2241. + * Fixed a CLOS bug which caused (DEFCLASS FOO (STANDARD-OBJECT) ()) and
  2242. +   (DEFINE-CONDITION FOO (CONDITION) ()) to signal errors.
  2243. + * The DEFCONSTANT warning about redefinition of a constant is also inhibited
  2244. +   if the constant's new and old values are the same string (in the sense of
  2245. +   EQUAL). Thanks to Marcus Daniels.
  2246. + * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
  2247.   * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
  2248.     (COMPILE function-name) if the function's definition had been entered
  2249. ***************
  2250. *** 119,125 ****
  2251.     in interpreted form.
  2252.   
  2253. - * The OPEN option :IF-EXISTS :RENAME-AND-DELETE now deletes the renamed
  2254. -   file. Previously :RENAME-AND-DELETE was equivalent to :RENAME.
  2255.   * (LISP-IMPLEMENTATION-VERSION) returns a more precise version string.
  2256.   
  2257. --- 172,175 ----
  2258. ***************
  2259. *** 130,135 ****
  2260.     FOR/AS clause, the effects are implementation dependent!
  2261.   
  2262. - * X3J13 vote <120> is implemented: New function MAP-INTO.
  2263.   * X3J13 vote <79> is implemented: New constants
  2264.     LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT,
  2265. --- 180,183 ----
  2266. ***************
  2267. *** 142,149 ****
  2268.     LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT.
  2269.   
  2270. - * Fixed a bug in DO-SYMBOLS: A symbol which is exported from a used package
  2271. -   was considered accessible in the using package even if it was shadowed by
  2272. -   another present symbol of the same name.
  2273.   * Fixed a bug in the debugger which caused the BACKTRACE commands to print
  2274.     garbage if the current user interface language was not english.
  2275. --- 190,193 ----
  2276. ***************
  2277. *** 156,166 ****
  2278.     ENGLISH, DEUTSCH, FRANCAIS and LANGUAGE-CASE.
  2279.   
  2280. - * There is a command line option that makes CLISP behave more like what
  2281. -   ILISP (a popular Emacs LISP interface) expects.
  2282. - * The function CLOS:CALL-NEXT-METHOD can now be called with arguments, but
  2283. -   the check that the set of applicable methods must be the same as for the
  2284. -   original arguments will be bypassed.
  2285.   * New functions READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE,
  2286.     WRITE-BYTE-SEQUENCE which perform fast block I/O.
  2287. --- 200,203 ----
  2288. ***************
  2289. *** 170,184 ****
  2290.     macro WITHOUT-FLOATING-POINT-UNDERFLOW.
  2291.   
  2292. - * X3J13 vote <95> is implemented: If the readtable argument passed to
  2293. -   GET-MACRO-CHARACTER and GET-DISPATCH-MACRO-CHARACTER is NIL, the standard
  2294. -   readtable is used.
  2295.   * PROBE-FILE doesn't report an error any more if an intermediate directory
  2296.     in the path doesn't exist. NIL is returned instead.
  2297.   
  2298. - * The DEFCONSTANT warning about redefinition of a constant is inhibited if
  2299. -   the constant's new and old values are the same (in the sense of EQL).
  2300. -   Thanks to Marcus Daniels.
  2301.   * The function INTERACTIVE-STREAM-P knows that if the terminal stream is
  2302.     referring to a regular file (via input redirection) it is not interactive.
  2303. --- 207,213 ----
  2304. ***************
  2305. *** 193,215 ****
  2306.     See impnotes.txt for details. Thanks to Marcus Daniels and Don Cohen.
  2307.   
  2308. - * Fixed a CLOS bug: Generic functions with both optional and keyword
  2309. -   arguments didn't work.
  2310. - * Fixed a serious bug in the compiler which caused incorrect code to be
  2311. -   generated for functions like (LAMBDA (X) (SETQ X 1)).
  2312. - * Fixed a serious bug in the compiler which caused the compiler to crash
  2313. -   when compiling functions which contain two or more calls to ASSERT.
  2314. - * Fixed a bug: The macroexpander of MULTIPLE-VALUE-SETQ built up a
  2315. -   syntactically illegal form.
  2316. - * Fixed a bug in the reader: When reading pathnames from the syntax
  2317. -   #S(PATHNAME ...), #n# references in pathname components were not
  2318. -   resolved prior to calling MAKE-PATHNAME.
  2319. - * Fixed a bug in the reader: (read-from-string "1/") signalled an error
  2320. -   of type DIVISION-BY-ZERO.
  2321.   * Fixed a bug in the terminal stream: If several consecutive READ-LINE
  2322.     operations on the terminal stream were performed without any text
  2323. --- 222,225 ----
  2324. ***************
  2325. *** 226,248 ****
  2326.   -------------------
  2327.   
  2328. ! * Copyright clarification.
  2329. ! * Miscellaneous documentation updates.
  2330.   
  2331. ! * Speedup SUBLIS and NSUBLIS.
  2332.   
  2333. ! * Let all known versions of gcc2 emit dbra instructions for loops. Thanks
  2334. !   to Jörg Höhle.
  2335.   
  2336. ! Patches:
  2337.   
  2338. -   Gcc-2.3.3 -O2 -fomit-frame-pointer put several bugs in the compiler
  2339. -   output. I previously corrected two of them by hand-patching the assembly
  2340. -   files. Gcc-2.5.7 produces correct output but for 68020 and above machines
  2341. -   only. The low version is compiled with gcc-2.3.3 and the high and
  2342. -   wide-versions with gcc-2.5.8. Gcc-2.5.8 put a bug in the -DWIDE version of
  2343. -   control.d:_C_go. It seemed to me that beta versions of gcc-2.6.0 were not
  2344. -   stable enough for compilation of the wide version.
  2345.   
  2346.   Enjoy and send me all sorts of comments, bug reports and suggestions. Please
  2347. --- 236,249 ----
  2348.   -------------------
  2349.   
  2350. ! * Speed up compiled calls to FORMAT with literal control string by use of
  2351. !   FORMATTER.
  2352.   
  2353. ! * When a memory image is loaded, the terminal stream from the previous
  2354. !   session is closed.
  2355.   
  2356. ! * Copyright clarification.
  2357.   
  2358. ! * Miscellaneous documentation updates.
  2359.   
  2360.   
  2361.   Enjoy and send me all sorts of comments, bug reports and suggestions. Please
  2362. ***************
  2363. *** 250,254 ****
  2364.   location) configuration when doing so.
  2365.   
  2366. !       Joerg Hoehle.
  2367. ! hoehle@inf-wiss.uni-konstanz.de
  2368.   
  2369. --- 251,255 ----
  2370.   location) configuration when doing so.
  2371.   
  2372. !       Jörg Höhle.
  2373. ! Joerg.Hoehle@gmd.de
  2374.   
  2375. Only in amiga/: TODO
  2376.