Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Feb 2014 22:16:33 +0000 (UTC)
From:      Stephen Montgomery-Smith <stephen@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r344974 - in head/math: . reduce reduce/files
Message-ID:  <201402182216.s1IMGX5V077216@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: stephen
Date: Tue Feb 18 22:16:33 2014
New Revision: 344974
URL: http://svnweb.freebsd.org/changeset/ports/344974
QAT: https://qat.redports.org/buildarchive/r344974/

Log:
  - New port math/reduce.
  This is a powerful Computer-Algebra System written in it's own version of
  LISP with quite a long history behind it.
  
  PR:		ports/186855
  Submitted by:	Pedro Giffuni <giffunip@tutopia.com>

Added:
  head/math/reduce/
  head/math/reduce/Makefile   (contents, props changed)
  head/math/reduce/distinfo   (contents, props changed)
  head/math/reduce/files/
  head/math/reduce/files/patch-csl_cslbase_headers.h   (contents, props changed)
  head/math/reduce/files/redcsl.1   (contents, props changed)
  head/math/reduce/files/runcsl.sh   (contents, props changed)
  head/math/reduce/pkg-descr   (contents, props changed)
  head/math/reduce/pkg-plist   (contents, props changed)
Modified:
  head/math/Makefile

Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile	Tue Feb 18 22:08:52 2014	(r344973)
+++ head/math/Makefile	Tue Feb 18 22:16:33 2014	(r344974)
@@ -595,6 +595,7 @@
     SUBDIR += qwtplot3d-qt4
     SUBDIR += randlib
     SUBDIR += rapid
+    SUBDIR += reduce
     SUBDIR += reed-solomon
     SUBDIR += rkward-kde4
     SUBDIR += rngstreams

Added: head/math/reduce/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/reduce/Makefile	Tue Feb 18 22:16:33 2014	(r344974)
@@ -0,0 +1,55 @@
+# Created by: Pedro Giffuni
+# $FreeBSD$
+
+PORTNAME=	reduce
+PORTVERSION=	20110414
+CATEGORIES=	math lang
+MASTER_SITES=	SF/${PORTNAME}-algebra/
+DISTNAME=	${PORTNAME}-src-${PORTVERSION}
+
+MAINTAINER=	giffunip@tutopia.com
+COMMENT=	Portable general-purpose computer algebra system (CSL version)
+
+LICENSE=	BSD
+
+RUN_DEPENDS=	gnuplot:${PORTSDIR}/math/gnuplot
+LIB_DEPENDS=	libjpeg.so:${PORTSDIR}/graphics/jpeg \
+		libpng15.so:${PORTSDIR}/graphics/png \
+		libtiff.so:${PORTSDIR}/graphics/tiff
+
+USE_BZIP2=	yes
+USES=		gmake
+USE_XORG=	xext x11 xft
+USE_GNOME=	lthack ltverhack
+
+WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
+
+HAS_CONFIGURE=	yes
+CONFIGURE_ARGS=	--with-csl
+ALL_TARGET=
+
+.include <bsd.port.pre.mk>
+
+HMAN1=	redcsl.1
+
+.if ${ARCH} == "amd64"
+TARGET_SDIR=	x86_64-unknown-${OPSYS:L}${OSREL}
+.else
+TARGET_SDIR=	${ARCH}-unknown-${OPSYS:L}${OSREL}
+.endif
+REDUCECSL=	${WRKSRC}/cslbuild/${TARGET_SDIR}/csl
+
+do-install:
+	${MKDIR} ${STAGEDIR}${DATADIR}
+	${INSTALL_PROGRAM} ${REDUCECSL}/reduce ${STAGEDIR}${DATADIR}
+	${INSTALL_DATA} ${REDUCECSL}/reduce.img ${STAGEDIR}${DATADIR}
+	${INSTALL_SCRIPT} ${FILESDIR}/runcsl.sh ${STAGEDIR}${PREFIX}/bin/redcsl
+	${INSTALL_MAN} ${FILESDIR}/redcsl.1 ${STAGEDIR}${MANPREFIX}/man/man1/
+	${MKDIR} ${STAGEDIR}${DATADIR}/reduce.doc
+	(cd ${REDUCECSL}/reduce.doc && ${COPYTREE_SHARE} . \
+	    ${STAGEDIR}${DATADIR}/reduce.doc)
+	${MKDIR} ${STAGEDIR}${PREFIX}/${FONTDIR}
+	(cd ${REDUCECSL}/reduce.fonts && ${COPYTREE_SHARE} . \
+	    ${STAGEDIR}${DATADIR}/reduce.fonts)
+
+.include <bsd.port.post.mk>

Added: head/math/reduce/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/reduce/distinfo	Tue Feb 18 22:16:33 2014	(r344974)
@@ -0,0 +1,2 @@
+SHA256 (reduce-src-20110414.tar.bz2) = d6ac7a30e817ea71555d21b03a119a5236967b251eae8946a1817ae9a81cee03
+SIZE (reduce-src-20110414.tar.bz2) = 136783974

Added: head/math/reduce/files/patch-csl_cslbase_headers.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/reduce/files/patch-csl_cslbase_headers.h	Tue Feb 18 22:16:33 2014	(r344974)
@@ -0,0 +1,22 @@
+Index: csl/cslbase/headers.h
+===================================================================
+--- csl/cslbase/headers.h	(revision 1603)
++++ csl/cslbase/headers.h	(working copy)
+@@ -97,6 +97,17 @@
+ #define PRIxPTR "llx"
+ #endif
+ 
++/*
++ * This is necessary to for timeval in BSD systems.
++ */
++#if (defined(__unix__) || defined(unix)) && !defined(USG)
++#include <sys/param.h>
++#endif
++
++#if (defined(BSD) && (BSD >= 199103))
++#include <sys/time.h>
++#endif
++
+ #ifndef UNDER_CE
+ /*
+  * The test for UNDER_CE is a little odd here, but when I once compiled a

Added: head/math/reduce/files/redcsl.1
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/reduce/files/redcsl.1	Tue Feb 18 22:16:33 2014	(r344974)
@@ -0,0 +1,253 @@
+.TH REDCSL 1 "2010 October 10" "redcsl"
+.
+.
+.SH NAME
+redcsl \- Run REDUCE under CSL
+.
+.
+.SH Synopsis
+.B redcsl
+[
+.I command-line switches
+] [
+.I file ...\&
+]
+.
+.
+.SH DESCRIPTION
+.I redcsl
+runs REDUCE based on the 
+.BR CSL
+Lisp system.
+.
+.
+.SH REDCSL Options
+.TP
+.I file
+read input from file. 
+
+After all other options have been processed, the files given on the rest of
+the command line are read in and processed. A filename of
+.B -
+can be used to designate standard input.
+.TP
+.B -b [OIP]
+tells the system to avoid any attempt to recolour prompts and input text.
+It will mainly be needed on X terminals that have been set up so that they
+use colours that make the defaults here unhelpful, like white-on-black.
+
+This option can be followed by colour specifications to make things yet
+more specific. It is supposed to be the idea that three colours can be
+specified after it for output, input and prompts, with the letters KRGYbMCW
+standing for blacK, Red, Green, Yellow, blue, Magenta, Cyan and White.
+
+This may not fully work yet!
+.TP
+.BI -d " symbol[=value]"
+defines Lisp symbol
+.I symbol
+at system start, with value 
+.I value
+.
+.TP
+.B -g
+enables debugging mode.  It sets a lisp variable
+.SB !*backtrace
+and arranges that all backtraces are displayed notwithstanding use of
+.SB errorset.
+.TP
+.BI \-i " imagefile\fR,\fP " \-i-
+CSL and Reduce use image files to keep both initial heap images and
+.I fasl
+loadable modules. By default if the executable launched has some name,
+say xxx, then an image file xxx.img is used. But to support greater
+generality 
+.B -i
+introduces a new image,
+.B -i-
+indicates the default one and a sequence of such directives list
+image files that are searched in the order given. These are read-only.
+The similar option 
+.B -o
+equally introduces image files that are scanned for input, but that
+can also be used for output. Normally there would only be one
+.B -o
+directive.
+.TP
+.BI -j " dumpfile"
+dumps a record of all the files read during the Lisp run into
+.I dumpfile
+with a view that it can be included in a Makefile to document dependencies.
+.TP
+.BI -k " nnn[/ss]"
+sets the size of the heap to be used.  If 
+.BI -k nnn 
+is given then that much
+memory will be allocated and the heap will never expand.  Without this 
+option a default amount is used, and (on many machines) it will grow
+if space seems tight.
+
+If this options is given as
+.B -k 
+.I nnn/ss
+then ss is the number of CSL pages to be allocated to the Lisp stack.
+The default value (which is 1) should suffice for almost all users, and
+it should be noted that the C stack is separate from and independent of
+this one and it too could overflow.
+
+A suffix K, M or G on the number indicates units of kilobytes,
+megabytes or gigabytes, with megabytes being the default. so
+.B -k200M
+might represent typical usage.
+.TP
+.BI -l " logfile"
+sends a copy of the standard output to 
+.I logfile\fR.\fP
+It is very much as if the Lisp function
+.SB (spool logfile)
+had been invoked at the start of the run.
+.TP
+.B -n
+ignore startup function.
+
+Normally when the system is started it will run a 
+.I restart function
+as indicated in its heap image. There can be cases where a heap image has
+been created in a bad way such that the saved restart function always fails
+abruptly, and hence working out what was wrong becomes hard. In such cases
+it may be useful to give the
+.B -n
+options that forces CSL to ignore any startup function and merely begin
+in a minimal Lisp-style read-eval-print loop.
+.TP 
+.B -o
+see 
+.B -i
+.TP
+.B -q
+quiet run: sets
+.SB !*echo
+to
+.SB nil
+and switches off garbage collector messages.
+.TP
+.BI -r " nnn[,mmm]"
+seed random number generator.
+
+The random-number generator in CSL is normally initialised to a value
+based on the time of day and is hence not reproducible from run to run.
+In many cases that behavious is desirable, but for debugging it can be useful
+to force a seed. The directive
+.B -r 
+.I nnn[,mmm]
+sets the seed to up to 64 bits taken from the values 
+.I nnn 
+and 
+.I mmm. 
+THe second value is optional, and specifying 
+.B -r0
+explicitly asks for the non-reproducible behaviour (I hope). Note that
+the main Reduce-level random number source is coded at a higher level
+and does not get reset this way - this is the lower level CSL
+generator.
+.TP 
+.B -s
+sets the Lisp variable 
+.SB !*plap
+and hence the compiler generates an assembly listing.
+.TP
+.BI -t " name"
+reports the time-stamp on the named module, and then exits. This is
+for use in perl scripts and the like, and is needed because the stamps
+on modules within an image or library file are not otherwise instantly
+available.
+
+Note that especially on windowed systems it may be necessary to use
+this with 
+.BI -- " filename"
+since the information generated here goes to the default output, which
+in some cases is just the screen.
+.TP
+.BI -u " symbol"
+forcibly undefine a Lisp symbol. There are probably very very few
+cases where it is useful since I do not have a large number of
+system-specific predefined names.
+.TP
+.B -v
+An option to make things mildly more verbose. It displays more of a
+banner at startup and switches garbage collection messages on.
+.TP
+.B -w
+force console mode.
+
+On a typical system if the system is launched it creates a new window and uses
+its own windowed intarface in that. If it is run such that at startup the
+standard input or output are associated with a file or pipe, or under X the
+variable 
+.SB DISPLAY
+is not set it will try to start up in console
+mode. The flag 
+.B -w
+indicates that the system should run in console
+more regadless, while 
+.B -w+
+attempts a window even if that seems doomed to failure. When running
+the system to obey a script it will often make sense to use the
+.B -w
+option. Note that on Windows the system is provided as
+two separate (but almost identical) binaries. For example the file
+.SB csl.exe
+is linked in windows mode. A result is that if launched from the
+command line it detaches from its console, and if launched by
+double-clicking it does not create a console. It is in fact very ugly
+when double clicking on an application causes an unwanted console
+window to appear. In contrast
+.SB csl.com
+is a console mode version of just the same program, so when launched
+from a command line it can communicate with the console in the
+ordinary expected manner.
+.TP
+.B -z 
+start without image.
+
+When bootstrapping it is necessary to start up the system for one initial time
+without the benefit of any image file at all. This option makes
+this happen, so when it is specified the system starts up with a minimal
+environment and only those capabilities that are present in the CSL
+kernel. It will normally make sense to start loading some basic Lisp
+definitions rather rapidly. The files
+.SB compat.lsp
+,
+.SB extras.lsp 
+and 
+.SB compiler.lsp
+have Lisp source for the main things I use, and once they are loaded
+the Lisp compiler can be used to compile itself.
+.TP
+.B --help
+It is probably obvious what this option does! But in particular it
+displays an explanation of the 
+.B --dump-source
+option, and hence should count as a prominent and easy-to-find way of
+alerting people to their rights and obligations. Note that on Windows
+of the application was linked as a windows binary it carefully creates
+a console to display the help text in, and organizes a delay to give
+people a chance to read it.
+.TP
+.BI -- " filename"
+If the application is run in console mode then its standard output could
+be redirected to a file using shell facilities. But the
+.B --
+directive (followed by a file name) redirects output within the Lisp
+rather than outside it. If this is done a very limited capability for
+sending progress or status reports to stderr (or the title-bar when
+running in windowed mode) remains via the 
+.SB report!-right
+function.
+
+The 
+.B -w 
+option may frequently make sense in such cases, but if that
+is not used and the system tries to run in a window it will create it
+starting off minimised.
+.

Added: head/math/reduce/files/runcsl.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/reduce/files/runcsl.sh	Tue Feb 18 22:16:33 2014	(r344974)
@@ -0,0 +1,4 @@
+#! /bin/sh
+
+exec /usr/local/share/reduce/reduce $*
+

Added: head/math/reduce/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/reduce/pkg-descr	Tue Feb 18 22:16:33 2014	(r344974)
@@ -0,0 +1,24 @@
+REDUCE is an interactive system for general algebraic computations of 
+interest to mathematicians, scientists and engineers. It has been 
+produced by a collaborative effort involving many contributors. Its 
+capabilities include:
+
+*  expansion and ordering of polynomials and rational functions;
+*  substitutions and pattern matching in a wide variety of forms;
+*  automatic and user controlled simplification of expressions;
+*  calculations with symbolic matrices;
+*  arbitrary precision integer and real arithmetic;
+*  facilities for defining new functions and extending program syntax;
+*  analytic differentiation and integration;
+*  factorization of polynomials;
+*  facilities for the solution of a variety of algebraic equations;
+*  facilities for the output of expressions in a variety of formats;
+*  facilities for generating optimized numerical programs from symbolic input;
+*  calculations with a wide variety of special functions;
+*  Dirac matrix calculations of interest to high energy physicists.
+
+It is often used as an algebraic calculator for problems that are possible 
+to do by hand. However,  REDUCE is designed to support calculations that 
+are not feasible by hand.
+
+WWW: http://www.reduce-algebra.com/

Added: head/math/reduce/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/reduce/pkg-plist	Tue Feb 18 22:16:33 2014	(r344974)
@@ -0,0 +1,110 @@
+bin/redcsl
+%%DATADIR%%/reduce
+%%DATADIR%%/reduce.img
+%%DATADIR%%/reduce.doc/matrix.tex
+%%DATADIR%%/reduce.doc/progstr.tex
+%%DATADIR%%/reduce.doc/inter.tex
+%%DATADIR%%/reduce.doc/macros.tex
+%%DATADIR%%/reduce.doc/convert.tex
+%%DATADIR%%/reduce.doc/exprn.tex
+%%DATADIR%%/reduce.doc/r38_0500.html
+%%DATADIR%%/reduce.doc/hephys.tex
+%%DATADIR%%/reduce.doc/io.tex
+%%DATADIR%%/reduce.doc/r38_idx.html
+%%DATADIR%%/reduce.doc/manual.tex
+%%DATADIR%%/reduce.doc/oper2.tex
+%%DATADIR%%/reduce.doc/polyrat.tex
+%%DATADIR%%/reduce.doc/rest.tex
+%%DATADIR%%/reduce.doc/heugcd.tex
+%%DATADIR%%/reduce.doc/BSD-LICENSE.txt
+%%DATADIR%%/reduce.doc/r38_0400.html
+%%DATADIR%%/reduce.doc/list.tex
+%%DATADIR%%/reduce.doc/cfrac.tex
+%%DATADIR%%/reduce.doc/r38_0001.html
+%%DATADIR%%/reduce.doc/BINARY-LICENSE.txt
+%%DATADIR%%/reduce.doc/r38_0150.html
+%%DATADIR%%/reduce.doc/symbolic.tex
+%%DATADIR%%/reduce.doc/r38_0450.html
+%%DATADIR%%/reduce.doc/r38_0350.html
+%%DATADIR%%/reduce.doc/rlisp88.tex
+%%DATADIR%%/reduce.doc/rlispref.tex
+%%DATADIR%%/reduce.doc/abstract.tex
+%%DATADIR%%/reduce.doc/acknowl.tex
+%%DATADIR%%/reduce.doc/command.tex
+%%DATADIR%%/reduce.doc/map.tex
+%%DATADIR%%/reduce.doc/rememb.tex
+%%DATADIR%%/reduce.doc/redlogo.gif
+%%DATADIR%%/reduce.doc/oper.tex
+%%DATADIR%%/reduce.doc/maintain.tex
+%%DATADIR%%/reduce.doc/aprop.tex
+%%DATADIR%%/reduce.doc/title.tex
+%%DATADIR%%/reduce.doc/r38_0100.html
+%%DATADIR%%/reduce.doc/structr.tex
+%%DATADIR%%/reduce.doc/LGPL-2.1.txt
+%%DATADIR%%/reduce.doc/solve.tex
+%%DATADIR%%/reduce.doc/util.tex
+%%DATADIR%%/reduce.doc/subst.tex
+%%DATADIR%%/reduce.doc/r38_0250.html
+%%DATADIR%%/reduce.doc/intro.tex
+%%DATADIR%%/reduce.doc/r38_0550.html
+%%DATADIR%%/reduce.doc/r38_0050.html
+%%DATADIR%%/reduce.doc/r38_0300.html
+%%DATADIR%%/reduce.doc/r38_0600.html
+%%DATADIR%%/reduce.doc/index.html
+%%DATADIR%%/reduce.doc/statemnt.tex
+%%DATADIR%%/reduce.doc/appenda.tex
+%%DATADIR%%/reduce.doc/header.tex
+%%DATADIR%%/reduce.doc/proc.tex
+%%DATADIR%%/reduce.doc/r38_0200.html
+%%DATADIR%%/reduce.doc/r38_0650.html
+@dirrm %%DATADIR%%/reduce.doc
+%%DATADIR%%/reduce.fonts/cmmi9.ttf
+%%DATADIR%%/reduce.fonts/cmsy9.ttf
+%%DATADIR%%/reduce.fonts/cmsy6.ttf
+%%DATADIR%%/reduce.fonts/pfmfiles/cmsy10.pfm
+%%DATADIR%%/reduce.fonts/pfmfiles/cmr10.pfm
+%%DATADIR%%/reduce.fonts/pfmfiles/cmex10.pfm
+%%DATADIR%%/reduce.fonts/pfmfiles/cmmi10.pfm
+@dirrm %%DATADIR%%/reduce.fonts/pfmfiles
+%%DATADIR%%/reduce.fonts/cmmi6.ttf
+%%DATADIR%%/reduce.fonts/cmmi7.ttf
+%%DATADIR%%/reduce.fonts/cmr12.ttf
+%%DATADIR%%/reduce.fonts/cmsy7.ttf
+%%DATADIR%%/reduce.fonts/cmex10.pfa
+%%DATADIR%%/reduce.fonts/cmr9.ttf
+%%DATADIR%%/reduce.fonts/cmsy10.pfa
+%%DATADIR%%/reduce.fonts/cmsy5.ttf
+%%DATADIR%%/reduce.fonts/cmmi10.pfb
+%%DATADIR%%/reduce.fonts/cmex10.pfb
+%%DATADIR%%/reduce.fonts/cmex10.ttf
+%%DATADIR%%/reduce.fonts/cmr7.ttf
+%%DATADIR%%/reduce.fonts/cmr10.ttf
+%%DATADIR%%/reduce.fonts/cmsy10.pfb
+%%DATADIR%%/reduce.fonts/cmex9.ttf
+%%DATADIR%%/reduce.fonts/cmmi5.ttf
+%%DATADIR%%/reduce.fonts/cmmi10.pfa
+%%DATADIR%%/reduce.fonts/cmsy10.ttf
+%%DATADIR%%/reduce.fonts/cmex8.ttf
+%%DATADIR%%/reduce.fonts/README
+%%DATADIR%%/reduce.fonts/fonts.dir
+%%DATADIR%%/reduce.fonts/cmsy8.ttf
+%%DATADIR%%/reduce.fonts/cmmi10.ttf
+%%DATADIR%%/reduce.fonts/cmmi8.ttf
+%%DATADIR%%/reduce.fonts/cmr8.ttf
+%%DATADIR%%/reduce.fonts/fonts.scale
+%%DATADIR%%/reduce.fonts/cmex7.ttf
+%%DATADIR%%/reduce.fonts/cmmi12.ttf
+%%DATADIR%%/reduce.fonts/README.cmps-fonts
+%%DATADIR%%/reduce.fonts/README.BaKoMa
+%%DATADIR%%/reduce.fonts/cmr10.pfa
+%%DATADIR%%/reduce.fonts/cmr5.ttf
+%%DATADIR%%/reduce.fonts/cmr10.pfb
+%%DATADIR%%/reduce.fonts/cmr6.ttf
+%%DATADIR%%/reduce.fonts/cmr17.ttf
+%%DATADIR%%/reduce.fonts/src/cmr10.asm.gz
+%%DATADIR%%/reduce.fonts/src/cmex10.asm.gz
+%%DATADIR%%/reduce.fonts/src/cmsy10.asm.gz
+%%DATADIR%%/reduce.fonts/src/cmmi10.asm.gz
+@dirrm %%DATADIR%%/reduce.fonts/src
+@dirrm %%DATADIR%%/reduce.fonts
+@dirrm %%DATADIR%%



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402182216.s1IMGX5V077216>