Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Sep 2016 19:56:55 +0000 (UTC)
From:      Kurt Jaeger <pi@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r421299 - in head/devel: . py-llvmlite
Message-ID:  <201609031956.u83JutcM018441@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <dave@dal.ca>

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 <dave@dal.ca>
+# $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 <bsd.port.pre.mk>
+
+# 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 <bsd.port.post.mk>

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



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