Date: Sun, 13 Apr 2008 14:24:00 GMT From: Tassilo Philipp <tphilipp@potion-studios.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/122720: New port: devel/dyncall - dynamic/foreign function call interface library Message-ID: <200804131424.m3DEO0u9041135@www.freebsd.org> Resent-Message-ID: <200804131430.m3DEU1Q3051492@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 122720 >Category: ports >Synopsis: New port: devel/dyncall - dynamic/foreign function call interface library >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 Apr 13 14:30:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Tassilo Philipp >Release: 6.3-RELEASE >Organization: Potion Studios >Environment: FreeBSD 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Wed Jan 16 01:43:02 UTC 2008 root@palmer.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP amd64 >Description: >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: # # dyncall # dyncall/pkg-plist # dyncall/pkg-descr # dyncall/distinfo # dyncall/Makefile # echo c - dyncall mkdir -p dyncall > /dev/null 2>&1 echo x - dyncall/pkg-plist sed 's/^X//' >dyncall/pkg-plist << 'END-of-dyncall/pkg-plist' Xinclude/dyncall.h Xinclude/dyncall_callf.h Xinclude/dyncall_config.h Xinclude/dyncall_macros.h Xinclude/dyncall_signature.h Xinclude/dyncall_types.h Xinclude/dyncall_value.h Xinclude/dynload.h Xlib/libdyncall_s.a Xlib/libdynload_s.a END-of-dyncall/pkg-plist echo x - dyncall/pkg-descr sed 's/^X//' >dyncall/pkg-descr << 'END-of-dyncall/pkg-descr' XThe dyncall library encapsulates architecture-, OS- and compiler-specific Xfunction call semantics in a virtual "bind parameters from left to right Xand then call" interface allowing programmers to call C functions in a Xcompletely dynamic manner. In other workds, instead of calling a function Xdirectly, the dyncall library provides a mechanism to push the function Xparameters manually and to issue the call afterwards. XThis means, that a program can determine at runtime what function to Xcall, and what parameters to pass to it. The library is written in C and Xassembly and provides a very simple C interface to program against. X XThe library comes in very handy to power flexible message systems, Xdynamic function call dispatch mechanisms, closure implementations or Xeven to bridge different programming languages. XWhen it comes to language bindings, the dyncall library provides a clean Xand portable C interface to dynamically issue calls to foreign code using Xsmall kernels written in assembly. Instead of providing code for every Xbridged function call, which unnecessarily results in code bloat, only a Xcouple of instructions are used to invoke every possible call. X XWWW: http://www.dyncall.org END-of-dyncall/pkg-descr echo x - dyncall/distinfo sed 's/^X//' >dyncall/distinfo << 'END-of-dyncall/distinfo' XMD5 (dyncall-0.1.tar.gz) = aaa539cca71f9584df83deae50303198 XSHA256 (dyncall-0.1.tar.gz) = 3c063b272d08818b514b62042166010dcafacb617befad175ce374ed2efc31ef XSIZE (dyncall-0.1.tar.gz) = 112182 END-of-dyncall/distinfo echo x - dyncall/Makefile sed 's/^X//' >dyncall/Makefile << 'END-of-dyncall/Makefile' X# New ports collection makefile for: dyncall X# Date created: 05 April 2008 X# Whom: Tassilo Philipp <tphilipp@potion-studios.com> X# X# $FreeBSD$ X# X XPORTNAME= dyncall XPORTVERSION= 0.1 XCATEGORIES= devel XMASTER_SITES= http://www.dyncall.org/r0.1/ X XMAINTAINER= tphilipp@potion-studios.com XCOMMENT= Highly dynamic multi-platform foreign function call interface library X XHAS_CONFIGURE= yes X XMAKEFILE= ${WRKSRC}/BSDmakefile X X# There is no install target in the BSD makefile of version 0.1 of the dyncall library, so X# install it manually. X Xdo-install: X ${CP} ${WRKSRC}/dyncall/dyncall.h ${PREFIX}/include/dyncall.h X ${CP} ${WRKSRC}/dyncall/dyncall_callf.h ${PREFIX}/include/dyncall_callf.h X ${CP} ${WRKSRC}/dyncall/dyncall_config.h ${PREFIX}/include/dyncall_config.h X ${CP} ${WRKSRC}/dyncall/dyncall_macros.h ${PREFIX}/include/dyncall_macros.h X ${CP} ${WRKSRC}/dyncall/dyncall_signature.h ${PREFIX}/include/dyncall_signature.h X ${CP} ${WRKSRC}/dyncall/dyncall_types.h ${PREFIX}/include/dyncall_types.h X ${CP} ${WRKSRC}/dyncall/dyncall_value.h ${PREFIX}/include/dyncall_value.h X ${CP} ${WRKSRC}/dynload/dynload.h ${PREFIX}/include/dynload.h X ${CP} ${WRKSRC}/dyncall/libdyncall_s.a ${PREFIX}/lib/libdyncall_s.a X ${CP} ${WRKSRC}/dynload/libdynload_s.a ${PREFIX}/lib/libdynload_s.a X X.include <bsd.port.mk> END-of-dyncall/Makefile exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804131424.m3DEO0u9041135>