summaryrefslogtreecommitdiff
path: root/lang/stalin
diff options
context:
space:
mode:
authorStanislav Sedov <stas@FreeBSD.org>2009-10-24 10:28:02 +0000
committerStanislav Sedov <stas@FreeBSD.org>2009-10-24 10:28:02 +0000
commit0eb557b841201e60583d492b2def06b176f5bd97 (patch)
treec53cbd5ef10e37d9ae3622fe3dc7533db10f5710 /lang/stalin
parentUpdate to 1.330 (diff)
- Add port for lang/stalin, an aggressive optimizing Scheme compiler, which
is able to outperform hand-written C in a number of tests. This is a modified version suitable to use on FreeBSD i386/amd64. It possible to run it on other platfroms as well, but I have not boostrapped/tested it on anything except i386/amd64 yet. Author: Jeffrey Mark Siskind WWW: http://cobweb.ecn.purdue.edu/~qobi/software.html
Notes
Notes: svn path=/head/; revision=243256
Diffstat (limited to 'lang/stalin')
-rw-r--r--lang/stalin/Makefile56
-rw-r--r--lang/stalin/distinfo3
-rw-r--r--lang/stalin/files/stalin.sh.in4
-rw-r--r--lang/stalin/pkg-descr10
-rw-r--r--lang/stalin/pkg-plist18
5 files changed, 91 insertions, 0 deletions
diff --git a/lang/stalin/Makefile b/lang/stalin/Makefile
new file mode 100644
index 000000000000..85bfebb67ca3
--- /dev/null
+++ b/lang/stalin/Makefile
@@ -0,0 +1,56 @@
+# New ports collection makefile for: stalin
+# Date created: 10/23/2009
+# Whom: stas
+#
+# $FreeBSD$
+#
+
+PORTNAME= stalin
+PORTVERSION= 0.11
+CATEGORIES= lang scheme
+MASTER_SITES= ftp://ftp.SpringDaemons.com/soft/
+DISTNAME= stalin-freebsd-${PORTVERSION}
+
+MAINTAINER= stas@FreeBSD.org
+COMMENT= An aggressive optimizing Scheme compiler
+
+LIB_DEPENDS= gc.1:${PORTSDIR}/devel/boehm-gc
+
+USE_BZIP2= yes
+ONLY_FOR_ARCHS= i386 amd64
+ONLY_FOR_ARCHS_REASON= has not been bootstrapped on other platforms yet
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "i386"
+STALIN_SRC= "stalin-IA32.c"
+.elif ${ARCH} == "amd64"
+STALIN_SRC= "stalin-AMD64.c"
+.endif
+STALIN_LIBDIR= ${PREFIX}/lib/stalin
+
+EMACSLISPDIR= ${PREFIX}/share/emacs/site-lisp
+SUB_FILES= stalin.sh
+MAN1= stalin.1
+
+do-build:
+ (cd ${WRKSRC}/ && ${CC} -o stalin -I${LOCALBASE}/include \
+ -L${LOCALBASE}/lib -lgc -lm ${CFLAGS} ${STALIN_SRC})
+ ar -rc ${WRKSRC}/libstalin.a
+
+do-install:
+ ${MKDIR} ${STALIN_LIBDIR}/
+ ${INSTALL_PROGRAM} ${WRKSRC}/stalin ${STALIN_LIBDIR}/
+ (cd ${WRKSRC}/include && ${COPYTREE_SHARE} \* ${STALIN_LIBDIR}/)
+ ${CHMOD} 755 ${STALIN_LIBDIR}
+ ${CHMOD} a+x ${STALIN_LIBDIR}/stalin-architecture-name
+ ${INSTALL_SCRIPT} ${WRKDIR}/stalin.sh ${PREFIX}/bin/stalin
+ ${INSTALL_MAN} ${WRKSRC}/stalin.1 ${MAN1PREFIX}/man/man1/
+ ${INSTALL_DATA} ${WRKSRC}/stalin.el ${EMACSLISPDIR}/
+ ${INSTALL_DATA} ${WRKSRC}/libstalin.a ${STALIN_LIBDIR}/
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}/
+ ${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}/
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/lang/stalin/distinfo b/lang/stalin/distinfo
new file mode 100644
index 000000000000..5552fd08a010
--- /dev/null
+++ b/lang/stalin/distinfo
@@ -0,0 +1,3 @@
+MD5 (stalin-freebsd-0.11.tar.bz2) = 1be6703e341d8746942207a38fb4aa7b
+SHA256 (stalin-freebsd-0.11.tar.bz2) = 2dbe6004cd5bbfe916b470daaffb8e29757d24956919c796c039a95e73426bae
+SIZE (stalin-freebsd-0.11.tar.bz2) = 7094881
diff --git a/lang/stalin/files/stalin.sh.in b/lang/stalin/files/stalin.sh.in
new file mode 100644
index 000000000000..98de76bb2f77
--- /dev/null
+++ b/lang/stalin/files/stalin.sh.in
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+libdir=%%PREFIX%%/lib/stalin
+exec ${libdir}/stalin -I ${libdir} -copt -fno-strict-aliasing -copt -I%%LOCALBASE%%/include -copt -L%%LOCALBASE%%/lib $@
diff --git a/lang/stalin/pkg-descr b/lang/stalin/pkg-descr
new file mode 100644
index 000000000000..ac9020a9b0ad
--- /dev/null
+++ b/lang/stalin/pkg-descr
@@ -0,0 +1,10 @@
+Stalin (STAtic Language ImplementatioN) is an aggressive optimizing batch
+whole-program Scheme compiler written by Jeffrey Mark Siskind. It uses
+advanced flow analysis and type inference and a variety of other optimization
+techniques to produce code (using C as an intermediate language) that is
+extremely fast, particularly for numerical code. In a number of tests it
+has outperformed hand-written C, sometimes by a considerable margin.
+Stalin is intended for production use in generating an optimized executable.
+
+Author: Jeffrey Mark Siskind
+WWW: http://cobweb.ecn.purdue.edu/~qobi/software.html
diff --git a/lang/stalin/pkg-plist b/lang/stalin/pkg-plist
new file mode 100644
index 000000000000..722d66992cbd
--- /dev/null
+++ b/lang/stalin/pkg-plist
@@ -0,0 +1,18 @@
+bin/stalin
+lib/stalin/QobiScheme.sc
+lib/stalin/Scheme-to-C-compatibility.sc
+lib/stalin/Tmk.sc
+lib/stalin/gl-c.c
+lib/stalin/gl.sc
+lib/stalin/libstalin.a
+lib/stalin/parallel-QobiScheme.sc
+lib/stalin/stalin
+lib/stalin/stalin-architecture-name
+lib/stalin/stalin.architectures
+lib/stalin/xlib-c.c
+lib/stalin/xlib-original.sc
+lib/stalin/xlib.sc
+%%PORTDOCS%%%%DOCSDIR%%/README
+share/emacs/site-lisp/stalin.el
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
+@dirrm lib/stalin