Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Jul 2008 21:56:39 GMT
From:      Vitaly Magerya <vmagerya@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/126015: New port: lang/ypsilon: Scheme implementation for real-time applications
Message-ID:  <200807272156.m6RLudRU014863@www.freebsd.org>
Resent-Message-ID: <200807272200.m6RM07rw076553@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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@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@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@dirrm share/ypsilon/stdlib/rnrs/arithmetic
X@dirrm share/ypsilon/stdlib/rnrs/io
X@dirrm share/ypsilon/stdlib/rnrs/records
X@dirrm share/ypsilon/stdlib/rnrs
X@dirrm share/ypsilon/stdlib/core
X@dirrm share/ypsilon/stdlib
X@dirrm share/ypsilon/sitelib/tidbits
X@dirrm share/ypsilon/sitelib/srfi
X@dirrm share/ypsilon/sitelib
X@dirrm share/ypsilon
END-of-ypsilon/pkg-plist
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



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