# HG changeset patch # User wenzelm # Date 1335551260 -7200 # Node ID decb1d2e2607fb8e667cbdeb1ef1f44fd17b9bf7 # Parent 2e3821e13d677b4c12b888ce02da81c059110748# Parent a832454c4003c6918f48463ceb79e6122dbae1c1 merged diff -r 2e3821e13d67 -r decb1d2e2607 Admin/Cygwin/exec_process.c --- a/Admin/Cygwin/exec_process.c Fri Apr 27 17:14:13 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* Author: Makarius - -Bash process group invocation on Cygwin. -*/ - -#include -#include -#include -#include -#include - - -static void fail(const char *msg) -{ - printf("%s\n", msg); - exit(2); -} - - -int main(int argc, char *argv[]) -{ - /* args */ - - if (argc != 3) { - printf("Bad arguments\n"); - exit(1); - } - char *pid_name = argv[1]; - char *script = argv[2]; - - - /* report pid */ - - FILE *pid_file; - pid_file = fopen(pid_name, "w"); - if (pid_file == NULL) fail("Cannot open pid file"); - fprintf(pid_file, "%d", getpid()); - fclose(pid_file); - - - /* setsid */ - - if (getgid() == getpid()) fail("Cannot set session id"); - setsid(); - - - /* exec */ - - char *cmd_line[4]; - cmd_line[0] = "/bin/bash"; - cmd_line[1] = "-c"; - cmd_line[2] = script; - cmd_line[3] = NULL; - - int pid = spawnv(_P_NOWAIT, "/bin/bash", cmd_line); - if (pid == -1) fail("Bad process"); - waitpid(pid); -} - diff -r 2e3821e13d67 -r decb1d2e2607 Admin/exec_process/build --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Admin/exec_process/build Fri Apr 27 20:27:40 2012 +0200 @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +# +# Multi-platform build script + +THIS="$(cd "$(dirname "$0")"; pwd)" +PRG="$(basename "$0")" + + +# diagnostics + +function usage() +{ + echo + echo "Usage: $PRG TARGET" + echo + exit 1 +} + +function fail() +{ + echo "$1" >&2 + exit 2 +} + + +# command line args + +[ "$#" -eq 0 ] && usage +TARGET="$1"; shift + +[ "$#" -eq 0 ] || usage + + +# main + +mkdir -p "$TARGET" + +case "$TARGET" in + x86_64-linux | x86_64-darwin) + cc -m64 exec_process.c -o "$TARGET/exec_process" + ;; + x86-linux | x86-darwin) + cc -m32 exec_process.c -o "$TARGET/exec_process" + ;; + x86-cygwin) + cc exec_process.c -o "$TARGET/exec_process.exe" + ;; + *) + cc exec_process.c -o "$TARGET/exec_process" + ;; +esac + + diff -r 2e3821e13d67 -r decb1d2e2607 Admin/exec_process/etc/settings --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Admin/exec_process/etc/settings Fri Apr 27 20:27:40 2012 +0200 @@ -0,0 +1,3 @@ +# -*- shell-script -*- :mode=shellscript: + +EXEC_PROCESS="$COMPONENT/${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}/exec_process" diff -r 2e3821e13d67 -r decb1d2e2607 Admin/exec_process/exec_process.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Admin/exec_process/exec_process.c Fri Apr 27 20:27:40 2012 +0200 @@ -0,0 +1,57 @@ +/* Author: Makarius + +Bash process group invocation. +*/ + +#include +#include +#include +#include + + +static void fail(const char *msg) +{ + fprintf(stderr, "%s\n", msg); + exit(2); +} + + +int main(int argc, char *argv[]) +{ + /* args */ + + if (argc != 3) { + fprintf(stderr, "Bad arguments\n"); + exit(1); + } + char *pid_name = argv[1]; + char *script = argv[2]; + + + /* report pid */ + + FILE *pid_file; + pid_file = fopen(pid_name, "w"); + if (pid_file == NULL) fail("Cannot open pid file"); + fprintf(pid_file, "%d", getpid()); + fclose(pid_file); + + + /* setsid */ + + if (getgid() == getpid()) fail("Cannot set session id"); + setsid(); + + + /* exec */ + + char *cmd_line[4]; + cmd_line[0] = "/bin/bash"; + cmd_line[1] = "-c"; + cmd_line[2] = script; + cmd_line[3] = NULL; + + execv("/bin/bash", cmd_line); + fail("Cannot exec process"); +} + diff -r 2e3821e13d67 -r decb1d2e2607 README --- a/README Fri Apr 27 17:14:13 2012 +0200 +++ b/README Fri Apr 27 20:27:40 2012 +0200 @@ -7,29 +7,19 @@ See the NEWS file in the distribution for details on user-relevant changes. -System requirements - - Isabelle requires a regular Unix-style platform (e.g. Linux, - Windows with Cygwin, Mac OS X) and depends on the following main - add-on tools: +Installation - * The Poly/ML compiler and runtime system (version 5.2.1 or later). - * The GNU bash shell (version 3.x or 2.x). - * Perl (version 5.x). - * Java 1.6.x from Oracle or Apple -- for Scala and jEdit. - * GNU Emacs (version 23 or 24) -- for the Proof General 4.x interface. - * A complete LaTeX installation -- for document preparation. - -Installation + Isabelle work on the three main platform families: Linux, Mac OS X, + and Windows (via Cygwin). Completely integrated bundles including the full Isabelle sources, documentation, add-on tools and precompiled logic images for several platforms are available from the Isabelle web page. - Further background information may be found in the Isabelle System + Some background information may be found in the Isabelle System Manual, distributed with the sources (directory doc). -User interface +User interfaces Isabelle/jEdit is an emerging Prover IDE based on advanced technology of Isabelle/Scala. It provides a metaphor of continuous diff -r 2e3821e13d67 -r decb1d2e2607 doc-src/ProgProve/svmono.cls