MAJ pour le debugger et autres

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1289 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
master
Xavier Leroy 1997-02-23 16:29:36 +00:00
parent 5fee61df8c
commit b9b212f5ba
5 changed files with 69 additions and 20 deletions

21
INSTALL
View File

@ -1,8 +1,5 @@
PREREQUISITES
* Perl version 4 or 5 is required for building the Objective Caml
native-code compiler.
* The GNU C compiler gcc is recommended, as the bytecode
interpreter takes advantage of gcc-specific features to enhance
performance. Versions 2.5.8, 2.6.3, 2.7.0 and 2.7.2 have all been
@ -88,7 +85,7 @@ The "make bootstrap" checks that the bytecode programs compiled with
the new compiler are identical to the bytecode programs compiled with
the old compiler. If this is the case, you can be pretty sure the
system has been correctly compiled. Otherwise, this does not
necessarily means something went wrong. The best thing to do is to try
necessarily mean something went wrong. The best thing to do is to try
a second bootstrapping phase: just do "make bootstrap" again. It will
either crash almost immediately, or re-re-compile everything correctly
and reach the fixpoint.
@ -113,18 +110,30 @@ following commands (in the binary directory selected during autoconfiguration):
ocaml the interactive, toplevel-based system
ocamlmktop a tool to make toplevel systems that integrate
user-defined C primitives and Caml code
ocamldebug the source-level replay debugger
ocamldep output "make" dependencies for Caml sources
ocamlprof execution count profiler
ocamlcp the bytecode compiler in profiling mode
From the top directory, become superuser and do:
umask 022 # make sure to give read permission to all
umask 022 # make sure to give read & execute permission to all
make install
6- Installation is complete. Time to clean up. From the toplevel
directory, do "make clean".
7- The emacs/ subdirectory contains Emacs-Lisp files for an Objective Caml
editing mode and an interface for the debugger. To install these
files, change to the emacs/ subdirectory and do
make DEST=<directory where to install the files> install
or
make install
In the latter case, the destination directory defaults to the
"site-lisp" directory of your Emacs installation.
IF SOMETHING GOES WRONG:
@ -155,7 +164,7 @@ pinpoint the problem.
COMMON PROBLEMS:
* The Makefiles use the "include" directive, which is not supported by
all versions of make. Use GNU make instead.
all versions of make. Use GNU make if this is a problem.
* The Makefiles assume that make execute commands by calling /bin/sh. They
won't work if /bin/csh is called instead. You may have to unset the SHELL

View File

@ -84,7 +84,8 @@ PERVASIVES=arg array char digest filename format gc hashtbl lexing list map \
stack string stream sys oo genlex topdirs
# Recompile the system using the bootstrap compiler
all: runtime ocamlc ocamllex ocamlyacc ocamltools library ocaml otherlibraries
all: runtime ocamlc ocamllex ocamlyacc ocamltools library ocaml \
otherlibraries $(DEBUGGER)
# The compilation of ocaml will fail if the runtime has changed.
# Never mind, just do make bootstrap to reach fixpoint again.
@ -186,6 +187,7 @@ install:
cd man; for i in *.m; do cp $$i $(MANDIR)/`basename $$i .m`.$(MANEXT); done
for i in $(OTHERLIBRARIES); do (cd otherlibs/$$i; $(MAKE) install); done
if test -f ocamlopt; then $(MAKE) installopt; else :; fi
if test -f debugger/ocamldebug; then (cd debugger; $(MAKE) install); else :; fi
# Installation of the native-code compiler
installopt:
@ -281,9 +283,9 @@ beforedepend:: parsing/linenum.ml
# ocamlc.opt: $(COMPOBJS:.cmo=.cmx)
# $(CAMLOPT) $(LINKFLAGS) -o ocamlc.opt $(COMPOBJS:.cmo=.cmx)
partialclean::
rm -f ocamlc.opt
#
#partialclean::
# rm -f ocamlc.opt
# The native-code compiler compiled with itself
@ -438,6 +440,15 @@ clean::
alldepend::
for i in $(OTHERLIBRARIES); do (cd otherlibs/$$i; $(MAKE) depend); done
# The replay debugger
ocamldebugger:
cd debugger; $(MAKE) all
partialclean::
cd debugger; $(MAKE) clean
alldepend::
cd debugger; $(MAKE) depend
# Default rules
.SUFFIXES: .ml .mli .cmo .cmi .cmx

5
README
View File

@ -24,7 +24,8 @@ compiler currently runs on the following platforms:
Sparc processors: Sun Sparcstation under SunOS 4.1, Solaris 2, NetBSD
Intel 486 and Pentium processors: PCs under Linux, NextStep,
FreeBSD, Solaris 2
Mips processors: DecStation 3100 and 5000 under Ultrix 4
Mips processors: SGI workstations and mainframes under IRIX 5 and 6,
DecStation 3100 and 5000 under Ultrix 4
HP PA-RISC processors: HP 9000/700 under HPUX 9 and NextStep
PowerPC processors: IBM RS6000 and PowerPC workstations under AIX 3.2,
PowerMacintosh under MkLinux
@ -52,7 +53,9 @@ CONTENTS:
bytecomp/ bytecode compiler and linker
byterun/ bytecode interpreter and runtime system
config/ autoconfiguration stuff
debugger/ source-level replay debugger
driver/ driver code for the compilers
emacs/ Caml editing mode and debugger interface for GNU Emacs
lex/ lexer generator
parsing/ syntax analysis
stdlib/ standard library

View File

@ -75,9 +75,8 @@ In addition to Visual C++ 4.0 and MASM 6, you will also need a healthy
set of Unix / GNU utilities that understands long file names
(see e.g. ftp://ftp.cc.utexas.edu/microlib/nt/gnu/).
The sources for the toplevel graphical user interface are currently
not available to the general public. Contact us if you think you need
them.
The sources for the toplevel graphical user interface are not currently
available to the general public. Contact us if you think you need them.
RANDOM NOTES:
@ -92,7 +91,7 @@ Caml.
* Libraries available under Win32: "num", "str", "threads", "graph",
and large parts of "unix".
"graph" works only under the toplevel application.
"camltk4" still requires considerable work to run under Win32.
"camltk4" still requires some work to run under Win32.
CREDITS:

37
configure vendored
View File

@ -319,11 +319,14 @@ fi
# For the terminfo module
if sh hasgot -lcurses -ltermcap tgetent tgetstr tgetnum tputs; then
echo "termcap functions found."
echo "#define HAS_TERMCAP" >> s.h
cclibs="${cclibs}-lcurses -ltermcap"
fi
for libs in "" "-lcurses" "-ltermcap" "-lcurses -ltermcap"; do
if sh hasgot $libs tgetent tgetstr tgetnum tputs; then
echo "termcap functions found (with libraries '$libs')"
echo "#define HAS_TERMCAP" >> s.h
cclibs="${cclibs}${libs}"
break
fi
done
# Configuration for the libraries
@ -331,13 +334,16 @@ otherlibraries="unix str num dynlink"
# For the Unix library
has_sockets=no
if sh hasgot socket socketpair bind listen accept connect; then
echo "You have BSD sockets."
echo "#define HAS_SOCKETS" >> s.h
has_sockets=yes
elif sh hasgot -lnsl -lsocket socket socketpair bind listen accept connect; then
echo "You have BSD sockets (with the additional libraries -lnsl -lsocket)"
cclibs="$cclibs -lnsl -lsocket"
echo "#define HAS_SOCKETS" >> s.h
has_sockets=yes
fi
if sh hasgot -i unistd.h; then
@ -405,6 +411,7 @@ if sh hasgot truncate ftruncate; then
echo "#define HAS_TRUNCATE" >> s.h
fi
has_select=no
if sh hasgot select; then
echo "select() found."
echo "#define HAS_SELECT" >> s.h
@ -421,6 +428,7 @@ if sh hasgot symlink readlink lstat; then
echo "#define HAS_SYMLINK" >> s.h
fi
has_wait=no
if sh hasgot waitpid; then
echo "waitpid() found."
echo "#define HAS_WAITPID" >> s.h
@ -456,6 +464,7 @@ if $testasyncio && sh runtest async_io.c; then
echo "#define HAS_ASYNC_IO" >> s.h
fi
has_setitimer=no
if sh hasgot setitimer; then
echo "setitimer() found."
echo "#define HAS_SETITIMER" >> s.h
@ -472,6 +481,7 @@ if sh hasgot -i sys/utsname.h && sh hasgot uname; then
echo "#define HAS_UNAME" >> s.h
fi
has_gettimeofday=no
if sh hasgot gettimeofday; then
echo "gettimeofday() found."
echo "#define HAS_GETTIMEOFDAY" >> s.h
@ -488,6 +498,16 @@ if sh hasgot setsid; then
echo "#define HAS_SETSID" >> s.h
fi
# Determine if the debugger is supported
if test "$has_sockets" = "yes"; then
echo "Replay debugger supported."
debugger="ocamldebugger"
else
echo "No replay debugger (missing system calls)"
debugger=""
fi
# Determine the target architecture for the "num" library
case "$host" in
@ -585,6 +605,7 @@ fi
cclibs="$cclibs -lm"
echo "CCLIBS=$cclibs" >> Makefile
echo "OTHERLIBRARIES=$otherlibraries" >> Makefile
echo "DEBUGGER=$debugger" >> Makefile
rm -f tst hasgot.c
rm -f ../m.h ../s.h ../Makefile
@ -624,6 +645,12 @@ else
echo " preprocessed assembler ... $aspp $asppflags"
fi
if test "$debugger" = "ocamldebugger"; then
echo "Source-level replay debugger: supported"
else
echo "Source-level replay debugger: not supported"
fi
echo "Configuration for the external libraries:"
echo " libraries supported....... $otherlibraries"