diff options
author | Stanislav Sedov <stas@FreeBSD.org> | 2009-10-24 10:28:02 +0000 |
---|---|---|
committer | Stanislav Sedov <stas@FreeBSD.org> | 2009-10-24 10:28:02 +0000 |
commit | 0eb557b841201e60583d492b2def06b176f5bd97 (patch) | |
tree | c53cbd5ef10e37d9ae3622fe3dc7533db10f5710 /lang/stalin | |
parent | Update 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/Makefile | 56 | ||||
-rw-r--r-- | lang/stalin/distinfo | 3 | ||||
-rw-r--r-- | lang/stalin/files/stalin.sh.in | 4 | ||||
-rw-r--r-- | lang/stalin/pkg-descr | 10 | ||||
-rw-r--r-- | lang/stalin/pkg-plist | 18 |
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 |