From owner-svn-ports-head@freebsd.org Sat Sep 3 19:56:56 2016 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED855BCEBB6; Sat, 3 Sep 2016 19:56:56 +0000 (UTC) (envelope-from pi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC4BA8B9; Sat, 3 Sep 2016 19:56:56 +0000 (UTC) (envelope-from pi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u83JutkG018445; Sat, 3 Sep 2016 19:56:55 GMT (envelope-from pi@FreeBSD.org) Received: (from pi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u83JutcM018441; Sat, 3 Sep 2016 19:56:55 GMT (envelope-from pi@FreeBSD.org) Message-Id: <201609031956.u83JutcM018441@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pi set sender to pi@FreeBSD.org using -f From: Kurt Jaeger Date: Sat, 3 Sep 2016 19:56:55 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r421299 - in head/devel: . py-llvmlite X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 19:56:57 -0000 Author: pi Date: Sat Sep 3 19:56:55 2016 New Revision: 421299 URL: https://svnweb.freebsd.org/changeset/ports/421299 Log: New port: devel/py-llvmlite A lightweight LLVM python binding for writing JIT compilers The old llvmpy binding exposes a lot of LLVM APIs but the mapping of C++-style memory management to Python is error prone. Numba and many JIT compilers do not need a full LLVM API. Only the IR builder, optimizer, and JIT compiler APIs are necessary. llvmlite is a project originally tailored for Numba's needs, using the following approach: - A small C wrapper around the parts of the LLVM C++ API we need that are not already exposed by the LLVM C API. - A ctypes Python wrapper around the C API. - A pure Python implementation of the subset of the LLVM IR builder that we need for Numba. WWW: https://github.com/numba/llvmlite PR: 211346 Submitted by: David Kalliecharan Added: head/devel/py-llvmlite/ head/devel/py-llvmlite/Makefile (contents, props changed) head/devel/py-llvmlite/distinfo (contents, props changed) head/devel/py-llvmlite/pkg-descr (contents, props changed) Modified: head/devel/Makefile Modified: head/devel/Makefile ============================================================================== --- head/devel/Makefile Sat Sep 3 19:40:56 2016 (r421298) +++ head/devel/Makefile Sat Sep 3 19:56:55 2016 (r421299) @@ -4229,6 +4229,7 @@ SUBDIR += py-libzfs SUBDIR += py-ll-core SUBDIR += py-llfuse + SUBDIR += py-llvmlite SUBDIR += py-lock_file SUBDIR += py-lockfile SUBDIR += py-log4py Added: head/devel/py-llvmlite/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/py-llvmlite/Makefile Sat Sep 3 19:56:55 2016 (r421299) @@ -0,0 +1,36 @@ +# Created by: David Kalliecharan +# $FreeBSD$ + +PORTNAME= llvmlite +PORTVERSION= 0.13.0 +CATEGORIES= devel python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= dave@dal.ca +COMMENT= Lightweight LLVM python binding for writing JIT compilers + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BROKEN_FreeBSD_9= llvm38 does not find include cmath + +# Python 2.7,3.4+ +USES= python +USE_PYTHON= distutils autoplist + +.include + +# llvmlite-0.13.0 requires devel/llvm38 +LLVM_VER= 38 + +# Python 2.7 requires enum34, unnecessary for Python 3.4+ +.if ${PYTHON_REL} < 3400 +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}enum34>0:devel/py-enum34 +.endif + +BUILD_DEPENDS+= llvm-config${LLVM_VER}:devel/llvm${LLVM_VER} + +MAKE_ENV= LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${LLVM_VER} + +.include Added: head/devel/py-llvmlite/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/py-llvmlite/distinfo Sat Sep 3 19:56:55 2016 (r421299) @@ -0,0 +1,3 @@ +TIMESTAMP = 1472612799 +SHA256 (llvmlite-0.13.0.tar.gz) = f852be3391acb2e77ef484c5d0ff90e7cf2821dcf9575e358a1f08c274c582eb +SIZE (llvmlite-0.13.0.tar.gz) = 92200 Added: head/devel/py-llvmlite/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/py-llvmlite/pkg-descr Sat Sep 3 19:56:55 2016 (r421299) @@ -0,0 +1,17 @@ +A lightweight LLVM python binding for writing JIT compilers + +The old llvmpy binding exposes a lot of LLVM APIs but the mapping +of C++-style memory management to Python is error prone. Numba and +many JIT compilers do not need a full LLVM API. Only the IR builder, +optimizer, and JIT compiler APIs are necessary. + +llvmlite is a project originally tailored for Numba's needs, using +the following approach: + +- A small C wrapper around the parts of the LLVM C++ API we need + that are not already exposed by the LLVM C API. +- A ctypes Python wrapper around the C API. +- A pure Python implementation of the subset of the LLVM IR builder + that we need for Numba. + +WWW: https://github.com/numba/llvmlite