ports/126015: New port: lang/ypsilon: Scheme implementation for real-time applications
Vitaly Magerya
vmagerya at gmail.com
Sun Jul 27 22:00:12 UTC 2008
>Number: 126015
>Category: ports
>Synopsis: New port: lang/ypsilon: Scheme implementation for real-time applications
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Jul 27 22:00:07 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Vitaly Magerya
>Release: FreeBSD 7.0-RELEASE
>Organization:
>Environment:
FreeBSD landmine 7.0-RELEASE FreeBSD 7.0-RELEASE #4: Fri Jul 25 00:01:37 EEST 2008
root at landmine:/usr/obj/us/src/sys/T40 i386
>Description:
Ypsilon is an implementation of Scheme programming language for real-time
applications, which conforms to the latest standard R^6RS.
Ypsilon features mostly concurrent garbage collector optimized for systems
with multiple CPUs, and an easy to use FFI.
WWW: http://code.google.com/p/ypsilon/
Note. The port is known to work with GCC 4.2.1 (FreeBSD 7.0 default) and newer.
Older versions may bring problems.
Also the author says it only works for 32-bit systems, but it apparently was built by someone on amd64, so no architecture restrictions are in the makefile.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# ypsilon
# ypsilon/distinfo
# ypsilon/Makefile
# ypsilon/pkg-descr
# ypsilon/files
# ypsilon/files/patch-Makefile
# ypsilon/pkg-plist
#
echo c - ypsilon
mkdir -p ypsilon > /dev/null 2>&1
echo x - ypsilon/distinfo
sed 's/^X//' >ypsilon/distinfo << 'END-of-ypsilon/distinfo'
XMD5 (ypsilon-0.9.5.update2.tar.gz) = 95ef552299cdbe40ce2506a3c0d4b0d2
XSHA256 (ypsilon-0.9.5.update2.tar.gz) = 359a1fe8406c477774f54ba1d73b7ee873870a0afedb7b7c2130c6187620a6aa
XSIZE (ypsilon-0.9.5.update2.tar.gz) = 4524802
END-of-ypsilon/distinfo
echo x - ypsilon/Makefile
sed 's/^X//' >ypsilon/Makefile << 'END-of-ypsilon/Makefile'
X# New ports collection makefile for: ypsilon
X# Date created: 27 July 2008
X# Whom: Vitaly Magerya <vmagerya at gmail.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME= ypsilon
XPORTVERSION= 0.9.5.u2
XCATEGORIES= lang scheme
XMASTER_SITES= ${MASTER_SITE_GOOGLE_CODE}
X
XMAINTAINER= vmagerya at gmail.com
XCOMMENT= Scheme implementation for real-time applications
X
XDISTVERSION= 0.9.5.update2
X
XUSE_GMAKE= yes
XMAKE_ARGS= PTHREAD_LIBS="${PTHREAD_LIBS}"
X
XMAN1= ypsilon.1
X
X.include <bsd.port.mk>
END-of-ypsilon/Makefile
echo x - ypsilon/pkg-descr
sed 's/^X//' >ypsilon/pkg-descr << 'END-of-ypsilon/pkg-descr'
XYpsilon is an implementation of Scheme programming language for real-time
Xapplications, which conforms to the latest standard R^6RS.
XYpsilon features mostly concurrent garbage collector optimized for systems
Xwith multiple CPUs, and an easy to use FFI.
X
XWWW: http://code.google.com/p/ypsilon/
END-of-ypsilon/pkg-descr
echo c - ypsilon/files
mkdir -p ypsilon/files > /dev/null 2>&1
echo x - ypsilon/files/patch-Makefile
sed 's/^X//' >ypsilon/files/patch-Makefile << 'END-of-ypsilon/files/patch-Makefile'
X--- Makefile.orig 2008-07-26 09:53:07.000000000 +0300
X+++ Makefile 2008-07-28 00:46:30.000000000 +0300
X@@ -5,13 +5,13 @@
X
X PROG = ypsilon
X
X-PREFIX = /usr/local
X-
X CPPFLAGS = -DNDEBUG -DSYSTEM_SHARE_PATH='"$(PREFIX)/share/$(PROG)"'
X+CPPFLAGS += -D__LITTLE_ENDIAN__
X
X-CXXFLAGS = -x c++ -pthread -msse -mfpmath=sse -O3 -fstrict-aliasing \
X+#CXXFLAGS = -x c++ -pthread -msse -mfpmath=sse -O3 -fstrict-aliasing
X+CXXFLAGS = -x c++ -pthread -fstrict-aliasing \
X -fomit-frame-pointer -momit-leaf-frame-pointer \
X- -fno-align-labels -fno-align-loops -fno-align-jumps
X+ -fno-align-labels -fno-align-loops -fno-align-jumps ${CFLAGS}
X
X SRCS = file.cpp main.cpp vm0.cpp object_heap_compact.cpp subr_flonum.cpp vm1.cpp object_set.cpp \
X subr_hash.cpp vm2.cpp object_slab.cpp subr_list.cpp \
X@@ -25,6 +25,17 @@
X
X UNAME = $(shell uname)
X
X+ifneq (, $(findstring FreeBSD, $(UNAME)))
X+ ifeq ($(shell $(CXX) -dumpspecs | grep 'march=native')), )
X+ CXXFLAGS += -m32 -march=i386
X+ else
X+ CXXFLAGS += -m32 -march=native
X+ endif
X+ ASFLAGS = --32
X+ LDFLAGS = -m32 ${PTHREAD_LIBS}
X+ SRCS += ffi_stub_linux.s
X+endif
X+
X ifneq (, $(findstring Linux, $(UNAME)))
X ifeq ($(shell $(CXX) -dumpspecs | grep 'march=native')), )
X CXXFLAGS += -m32 -march=i686
X@@ -48,7 +59,6 @@
X .PHONY: all install uninstall sitelib stdlib check bench clean
X
X all: $(PROG)
X- @mkdir -p -m755 $(HOME)/.ypsilon
X
X $(PROG): $(OBJS)
X $(CXX) $(LDFLAGS) -o $@ $^
X@@ -61,16 +71,16 @@
X
X install: all stdlib sitelib
X mkdir -pv -m755 $(PREFIX)/bin
X- mkdir -pv -m755 $(PREFIX)/share/man/man1
X+ mkdir -pv -m755 $(MANPREFIX)/man/man1
X cp $(PROG) $(PREFIX)/bin/$(PROG)
X- cp $(PROG).1 $(PREFIX)/share/man/man1/$(PROG).1
X+ cp $(PROG).1 $(MANPREFIX)/man/man1/$(PROG).1
X chmod 755 $(PREFIX)/bin/$(PROG)
X- chmod 644 $(PREFIX)/share/man/man1/$(PROG).1
X+ chmod 644 $(MANPREFIX)/man/man1/$(PROG).1
X
X uninstall:
X -rm -rf $(PREFIX)/share/$(PROG)/stdlib
X -rm -rf $(PREFIX)/share/$(PROG)/sitelib
X- -rm -f $(PREFIX)/share/man/man1/$(PROG).1
X+ -rm -f $(MANPREFIX)/man/man1/$(PROG).1
X -rm -f $(PREFIX)/bin/$(PROG)
X -rmdir $(PREFIX)/share/$(PROG)
X
END-of-ypsilon/files/patch-Makefile
echo x - ypsilon/pkg-plist
sed 's/^X//' >ypsilon/pkg-plist << 'END-of-ypsilon/pkg-plist'
Xbin/ypsilon
Xshare/ypsilon/sitelib/apropos.scm
Xshare/ypsilon/sitelib/ffi.scm
Xshare/ypsilon/sitelib/gl.scm
Xshare/ypsilon/sitelib/glut.scm
Xshare/ypsilon/sitelib/match.scm
Xshare/ypsilon/sitelib/pregexp.scm
Xshare/ypsilon/sitelib/srfi/srfi-1.scm
Xshare/ypsilon/sitelib/srfi/srfi-26.scm
Xshare/ypsilon/sitelib/srfi/srfi-28.scm
Xshare/ypsilon/sitelib/srfi/srfi-39.scm
Xshare/ypsilon/sitelib/srfi/srfi-42.scm
Xshare/ypsilon/sitelib/srfi/srfi-6.scm
Xshare/ypsilon/sitelib/srfi/srfi-8.scm
Xshare/ypsilon/sitelib/streams.scm
Xshare/ypsilon/sitelib/tidbits/define-inline.scm
Xshare/ypsilon/sitelib/tidbits/dotimes.scm
Xshare/ypsilon/sitelib/tidbits/string-split.scm
Xshare/ypsilon/sitelib/time.scm
Xshare/ypsilon/sitelib/trace.scm
Xshare/ypsilon/stdlib/core.scm
Xshare/ypsilon/stdlib/core/arithmetic.scm
Xshare/ypsilon/stdlib/core/bytevector-transcoders.scm
Xshare/ypsilon/stdlib/core/bytevectors.scm
Xshare/ypsilon/stdlib/core/chkarg.scm
Xshare/ypsilon/stdlib/core/conditions.scm
Xshare/ypsilon/stdlib/core/control.scm
Xshare/ypsilon/stdlib/core/destructuring.scm
Xshare/ypsilon/stdlib/core/enums.scm
Xshare/ypsilon/stdlib/core/exceptions.scm
Xshare/ypsilon/stdlib/core/files.scm
Xshare/ypsilon/stdlib/core/hashtables.scm
Xshare/ypsilon/stdlib/core/io.scm
Xshare/ypsilon/stdlib/core/lists.scm
Xshare/ypsilon/stdlib/core/optargs.scm
Xshare/ypsilon/stdlib/core/optimize.scm
Xshare/ypsilon/stdlib/core/parameters.scm
Xshare/ypsilon/stdlib/core/r5rs.scm
Xshare/ypsilon/stdlib/core/records.scm
Xshare/ypsilon/stdlib/core/sorting.scm
Xshare/ypsilon/stdlib/core/struct.scm
Xshare/ypsilon/stdlib/core/syntax-case.scm
Xshare/ypsilon/stdlib/core/unicode-assistants.scm
Xshare/ypsilon/stdlib/core/unicode.scm
Xshare/ypsilon/stdlib/rnrs.scm
Xshare/ypsilon/stdlib/rnrs/arithmetic/bitwise.scm
Xshare/ypsilon/stdlib/rnrs/arithmetic/fixnums.scm
Xshare/ypsilon/stdlib/rnrs/arithmetic/flonums.scm
Xshare/ypsilon/stdlib/rnrs/base.scm
Xshare/ypsilon/stdlib/rnrs/bytevectors.scm
Xshare/ypsilon/stdlib/rnrs/conditions.scm
Xshare/ypsilon/stdlib/rnrs/control.scm
Xshare/ypsilon/stdlib/rnrs/enums.scm
Xshare/ypsilon/stdlib/rnrs/eval.scm
Xshare/ypsilon/stdlib/rnrs/exceptions.scm
Xshare/ypsilon/stdlib/rnrs/files.scm
Xshare/ypsilon/stdlib/rnrs/hashtables.scm
Xshare/ypsilon/stdlib/rnrs/io/ports.scm
Xshare/ypsilon/stdlib/rnrs/io/simple.scm
Xshare/ypsilon/stdlib/rnrs/lists.scm
Xshare/ypsilon/stdlib/rnrs/mutable-pairs.scm
Xshare/ypsilon/stdlib/rnrs/mutable-strings.scm
Xshare/ypsilon/stdlib/rnrs/programs.scm
Xshare/ypsilon/stdlib/rnrs/r5rs.scm
Xshare/ypsilon/stdlib/rnrs/records/inspection.scm
Xshare/ypsilon/stdlib/rnrs/records/procedural.scm
Xshare/ypsilon/stdlib/rnrs/records/syntactic.scm
Xshare/ypsilon/stdlib/rnrs/sorting.scm
Xshare/ypsilon/stdlib/rnrs/syntax-case.scm
Xshare/ypsilon/stdlib/rnrs/unicode.scm
X at dirrm share/ypsilon/stdlib/rnrs/arithmetic
X at dirrm share/ypsilon/stdlib/rnrs/io
X at dirrm share/ypsilon/stdlib/rnrs/records
X at dirrm share/ypsilon/stdlib/rnrs
X at dirrm share/ypsilon/stdlib/core
X at dirrm share/ypsilon/stdlib
X at dirrm share/ypsilon/sitelib/tidbits
X at dirrm share/ypsilon/sitelib/srfi
X at dirrm share/ypsilon/sitelib
X at dirrm share/ypsilon
END-of-ypsilon/pkg-plist
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list