summaryrefslogtreecommitdiff
path: root/parallel
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2020-07-11 16:15:08 +0000
committernia <nia@pkgsrc.org>2020-07-11 16:15:08 +0000
commit294928870334eaa775a83549ec6dcee14a9a7006 (patch)
tree1f4b1afe214ed514eb3293b21d381e4b041e343e /parallel
parentb5e9665bfcd92df1eb4c69e48a8eb0196a8e59c0 (diff)
downloadpkgsrc-294928870334eaa775a83549ec6dcee14a9a7006.tar.gz
parallel: Add lua-lanes
Lua Lanes is a Lua extension library providing the possibility to run multiple Lua states in parallel. It is intended to be used for optimizing performance on multicore CPUs and to study ways to make Lua programs naturally parallel to begin with.
Diffstat (limited to 'parallel')
-rw-r--r--parallel/Makefile3
-rw-r--r--parallel/lua-lanes/DESCR4
-rw-r--r--parallel/lua-lanes/Makefile40
-rw-r--r--parallel/lua-lanes/PLIST6
-rw-r--r--parallel/lua-lanes/distinfo9
-rw-r--r--parallel/lua-lanes/patches/patch-src_Makefile19
-rw-r--r--parallel/lua-lanes/patches/patch-src_threading.c46
-rw-r--r--parallel/lua-lanes/patches/patch-src_threading.h15
8 files changed, 141 insertions, 1 deletions
diff --git a/parallel/Makefile b/parallel/Makefile
index a1d53cfcc3d..fedd1c196cf 100644
--- a/parallel/Makefile
+++ b/parallel/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.27 2019/08/09 20:25:29 brook Exp $
+# $NetBSD: Makefile,v 1.28 2020/07/11 16:15:08 nia Exp $
#
COMMENT= Applications dealing with parallelism in computing
@@ -11,6 +11,7 @@ SUBDIR+= ganglia-monitor-core
SUBDIR+= gridscheduler
SUBDIR+= hwloc
SUBDIR+= linda
+SUBDIR+= lua-lanes
SUBDIR+= mpi-ch
SUBDIR+= openmp
SUBDIR+= openmpi
diff --git a/parallel/lua-lanes/DESCR b/parallel/lua-lanes/DESCR
new file mode 100644
index 00000000000..96a81dc78da
--- /dev/null
+++ b/parallel/lua-lanes/DESCR
@@ -0,0 +1,4 @@
+Lua Lanes is a Lua extension library providing the possibility to run multiple
+Lua states in parallel. It is intended to be used for optimizing performance
+on multicore CPUs and to study ways to make Lua programs naturally parallel
+to begin with.
diff --git a/parallel/lua-lanes/Makefile b/parallel/lua-lanes/Makefile
new file mode 100644
index 00000000000..45d4632c552
--- /dev/null
+++ b/parallel/lua-lanes/Makefile
@@ -0,0 +1,40 @@
+# $NetBSD: Makefile,v 1.1 2020/07/11 16:15:08 nia Exp $
+
+DISTNAME= lanes-3.13.0
+PKGNAME= ${LUA_PKGPREFIX}-${DISTNAME}
+CATEGORIES= parallel lua
+MASTER_SITES= ${MASTER_SITE_GITHUB:=LuaLanes/}
+GITHUB_PROJECT= lanes
+GITHUB_TAG= v${PKGVERSION_NOREV}
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= https://lualanes.github.io/lanes/
+COMMENT= Lightweight, native, lazy evaluating multithreading library for Lua
+LICENSE= mit
+
+USE_TOOLS+= gmake
+
+BUILD_DIRS+= src
+
+MAKE_FLAGS+= LIBFLAG="${LDFLAGS} -shared"
+
+INSTALLATION_DIRS+= ${LUA_DOCDIR}
+INSTALLATION_DIRS+= ${LUA_LDIR}
+INSTALLATION_DIRS+= ${LUA_CDIR}/lanes
+
+do-install:
+ ${INSTALL_LIB} ${WRKSRC}/src/lanes/core.so \
+ ${DESTDIR}${PREFIX}/${LUA_CDIR}/lanes/core.so
+ ${INSTALL_DATA} ${WRKSRC}/src/lanes.lua \
+ ${DESTDIR}${PREFIX}/${LUA_LDIR}/lanes.lua
+ ${INSTALL_DATA} ${WRKSRC}/docs/*.html ${WRKSRC}/docs/*.png \
+ ${DESTDIR}${PREFIX}/${LUA_DOCDIR}
+
+do-test:
+ cd ${WRKSRC}/tests && \
+ LUA_PATH="${WRKSRC}/src/?.lua;${WRKSRC}/tests/?.lua" \
+ LUA_CPATH="${WRKSRC}/src/?.so" \
+ ${LUA_INTERPRETER} basic.lua
+
+.include "../../lang/lua/module.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/parallel/lua-lanes/PLIST b/parallel/lua-lanes/PLIST
new file mode 100644
index 00000000000..6a80d1d213a
--- /dev/null
+++ b/parallel/lua-lanes/PLIST
@@ -0,0 +1,6 @@
+@comment $NetBSD: PLIST,v 1.1 2020/07/11 16:15:08 nia Exp $
+${LUA_CDIR}/lanes/core.so
+${LUA_DOCDIR}/comparison.html
+${LUA_DOCDIR}/index.html
+${LUA_DOCDIR}/multi.png
+${LUA_LDIR}/lanes.lua
diff --git a/parallel/lua-lanes/distinfo b/parallel/lua-lanes/distinfo
new file mode 100644
index 00000000000..cc7630e215a
--- /dev/null
+++ b/parallel/lua-lanes/distinfo
@@ -0,0 +1,9 @@
+$NetBSD: distinfo,v 1.1 2020/07/11 16:15:08 nia Exp $
+
+SHA1 (lanes-3.13.0.tar.gz) = f9cda1fa99ea042c0645967a4bd573b0ae6762eb
+RMD160 (lanes-3.13.0.tar.gz) = dab59db4717e28e1a248860a9d2441e2bf7e83cc
+SHA512 (lanes-3.13.0.tar.gz) = bb509181757fa2b4f07a55962015b35ca6bb867b18ec89dd655f333babe2e12f56479fa85bc98e0dacf5bec2a523265bbc3a978396dc332dc1fdda4df760b2e5
+Size (lanes-3.13.0.tar.gz) = 247978 bytes
+SHA1 (patch-src_Makefile) = a9f40a821f086574d5debc2ecd434eee1aa93b18
+SHA1 (patch-src_threading.c) = 2daf9d772fbbcd7a04cd41a0b10060c7a97d8b38
+SHA1 (patch-src_threading.h) = 036129d1c9c5e7bf7b6535caff07fbb15f65e23d
diff --git a/parallel/lua-lanes/patches/patch-src_Makefile b/parallel/lua-lanes/patches/patch-src_Makefile
new file mode 100644
index 00000000000..914f67d9531
--- /dev/null
+++ b/parallel/lua-lanes/patches/patch-src_Makefile
@@ -0,0 +1,19 @@
+$NetBSD: patch-src_Makefile,v 1.1 2020/07/11 16:15:09 nia Exp $
+
+Respect CC/CFLAGS.
+
+--- src/Makefile.orig 2018-11-30 12:28:50.000000000 +0000
++++ src/Makefile
+@@ -88,11 +88,10 @@ ifeq "$(LUAROCKS)" ""
+ # Some machines need 'MACOSX_DEPLOYMENT_TARGET=10.3' for using '-undefined dynamic_lookup'
+ # (at least PowerPC running 10.4.11); does not harm the others
+ #
+- CC = MACOSX_DEPLOYMENT_TARGET=10.3 gcc
+ LIBFLAG = -bundle -undefined dynamic_lookup
+ endif
+
+- CFLAGS=-Wall -Werror $(OPT_FLAGS) $(LUA_FLAGS)
++ CFLAGS+=-fPIC -Wall $(OPT_FLAGS) $(LUA_FLAGS)
+ LIBS=$(LUA_LIBS)
+ endif
+
diff --git a/parallel/lua-lanes/patches/patch-src_threading.c b/parallel/lua-lanes/patches/patch-src_threading.c
new file mode 100644
index 00000000000..00c2f3f2525
--- /dev/null
+++ b/parallel/lua-lanes/patches/patch-src_threading.c
@@ -0,0 +1,46 @@
+$NetBSD: patch-src_threading.c,v 1.1 2020/07/11 16:15:09 nia Exp $
+
+NetBSD support.
+
+--- src/threading.c.orig 2018-11-30 12:28:50.000000000 +0000
++++ src/threading.c
+@@ -886,9 +886,16 @@ void THREAD_SET_PRIORITY( int prio)
+
+ void THREAD_SET_AFFINITY( unsigned int aff)
+ {
+- cpu_set_t cpuset;
+ int bit = 0;
++#ifdef __NetBSD__
++ cpuset_t *cpuset = cpuset_create();
++ if( cpuset == NULL)
++ _PT_FAIL( errno, "cpuset_create", __FILE__, __LINE__-2 );
++#define CPU_SET(b, s) cpuset_set(b, *(s))
++#else
++ cpu_set_t cpuset;
+ CPU_ZERO( &cpuset);
++#endif
+ while( aff != 0)
+ {
+ if( aff & 1)
+@@ -900,6 +907,9 @@ void THREAD_SET_AFFINITY( unsigned int a
+ }
+ #ifdef __ANDROID__
+ PT_CALL( sched_setaffinity( pthread_self(), sizeof(cpu_set_t), &cpuset));
++#elif defined(__NetBSD__)
++ PT_CALL( pthread_setaffinity_np( pthread_self(), cpuset_size(cpuset), cpuset));
++ cpuset_destroy( cpuset);
+ #else
+ PT_CALL( pthread_setaffinity_np( pthread_self(), sizeof(cpu_set_t), &cpuset));
+ #endif
+@@ -996,8 +1006,10 @@ bool_t THREAD_WAIT( THREAD_T *ref, doubl
+ {
+ // exact API to set the thread name is platform-dependant
+ // if you need to fix the build, or if you know how to fill a hole, tell me (bnt.germain@gmail.com) so that I can submit the fix in github.
+-#if defined PLATFORM_BSD
++#if defined PLATFORM_BSD && !defined __NetBSD__
+ pthread_set_name_np( pthread_self(), _name);
++#elif defined PLATFORM_BSD && defined __NetBSD__
++ pthread_setname_np( pthread_self(), "%s", (void *)_name);
+ #elif defined PLATFORM_LINUX
+ #if LINUX_USE_PTHREAD_SETNAME_NP
+ pthread_setname_np( pthread_self(), _name);
diff --git a/parallel/lua-lanes/patches/patch-src_threading.h b/parallel/lua-lanes/patches/patch-src_threading.h
new file mode 100644
index 00000000000..b64cc8ee14f
--- /dev/null
+++ b/parallel/lua-lanes/patches/patch-src_threading.h
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_threading.h,v 1.1 2020/07/11 16:15:09 nia Exp $
+
+NetBSD support.
+
+--- src/threading.h.orig 2018-11-30 12:28:50.000000000 +0000
++++ src/threading.h
+@@ -143,7 +143,7 @@ enum e_status { PENDING, RUNNING, WAITIN
+ //
+ #if defined( PLATFORM_OSX)
+ #define YIELD() pthread_yield_np()
+-#elif defined( PLATFORM_WIN32) || defined( PLATFORM_POCKETPC) || defined(__ANDROID__) // no PTHREAD for PLATFORM_XBOX
++#elif defined( PLATFORM_WIN32) || defined( PLATFORM_POCKETPC) || defined(__ANDROID__) || defined(__NetBSD__) // no PTHREAD for PLATFORM_XBOX
+ // for some reason win32-pthread doesn't have pthread_yield(), but sched_yield()
+ #define YIELD() sched_yield()
+ #else