aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Cerutti <gahr@FreeBSD.org>2024-03-06 10:51:57 +0000
committerPietro Cerutti <gahr@FreeBSD.org>2024-03-06 10:54:29 +0000
commit7c937353d3f2a95ada271bee5049ac74dc30eeb4 (patch)
treebae8e7a4d946c678f3ad2f74f26113d6fcea8309
parent6de8754569314aeaae10d0fa719aa50928154750 (diff)
downloadports-7c937353d3f2a95ada271bee5049ac74dc30eeb4.tar.gz
ports-7c937353d3f2a95ada271bee5049ac74dc30eeb4.zip
lang/picolisp: new port
PicoLisp is a minimal Lisp interpreter with a focus on simplicity. https://picolisp.com
-rw-r--r--lang/Makefile1
-rw-r--r--lang/picolisp/Makefile45
-rw-r--r--lang/picolisp/distinfo3
-rw-r--r--lang/picolisp/pkg-descr7
-rw-r--r--lang/picolisp/pkg-plist167
5 files changed, 223 insertions, 0 deletions
diff --git a/lang/Makefile b/lang/Makefile
index e06eab84f296..88e79f415f38 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -280,6 +280,7 @@
SUBDIR += php83
SUBDIR += php83-extensions
SUBDIR += picoc
+ SUBDIR += picolisp
SUBDIR += plexil
SUBDIR += pocl
SUBDIR += polyml
diff --git a/lang/picolisp/Makefile b/lang/picolisp/Makefile
new file mode 100644
index 000000000000..5882a62cf62b
--- /dev/null
+++ b/lang/picolisp/Makefile
@@ -0,0 +1,45 @@
+PORTNAME= picolisp
+PORTVERSION= 23.12
+CATEGORIES= lang
+MASTER_SITES= https://software-lab.de/
+DISTNAME= picoLisp-${PORTVERSION}
+
+MAINTAINER= gahr@FreeBSD.org
+COMMENT= Minimal Lisp interpreter with a focus on simplicity
+WWW= https://picolisp.com
+
+LICENSE= MIT
+
+LIB_DEPENDS= libffi.so:devel/libffi
+
+USES= gmake llvm:17,lib pkgconfig readline ssl tar:tgz
+
+WRKSRC= ${WRKDIR}/pil21/src
+
+post-patch:
+ ${REINPLACE_CMD} \
+ -e 's|clang|clang${LLVM_VERSION}|' \
+ -e 's|opt|opt${LLVM_VERSION}|' \
+ -e 's|llc|llc${LLVM_VERSION}|' \
+ -e 's|llvm-link|llvm-link${LLVM_VERSION}|' \
+ -e 's|llvm-config|${LLVM_CONFIG}|' \
+ -e '/^MAIN/s|$$| -L${LOCALBASE}/lib|' \
+ -e '/^.SILENT:/d' \
+ ${WRKSRC}/Makefile
+ ${REINPLACE_CMD} -i '' -e 's|/usr|${PREFIX}|g' ${WRKSRC}/../bin/*
+
+post-build:
+ ${GZIP_CMD} ${WRKSRC}/../man/man1/picolisp.1 ${WRKSRC}/../man/man1/pil.1
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/picolisp
+ cd ${WRKSRC}/.. && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/picolisp "! -name '*.bak'"
+ ${RM} -r ${STAGEDIR}${PREFIX}/lib/picolisp/src ${STAGEDIR}${PREFIX}/lib/picolisp/test
+ ${FIND} ${STAGEDIR}${PREFIX}/lib/picolisp/bin -exec ${CHMOD} a+x {} \;
+ ${LN} -s ../lib/picolisp/bin/picolisp ${STAGEDIR}${PREFIX}/bin/
+ ${LN} -s ../lib/picolisp/bin/pil ${STAGEDIR}${PREFIX}/bin/
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/man/man1
+ ${LN} -s ../../lib/picolisp/man/man1/picolisp.1.gz ${STAGEDIR}/${PREFIX}/man/man1
+ ${LN} -s ../../lib/picolisp/man/man1/pil.1.gz ${STAGEDIR}/${PREFIX}/man/man1
+
+.include <bsd.port.mk>
diff --git a/lang/picolisp/distinfo b/lang/picolisp/distinfo
new file mode 100644
index 000000000000..2975ab4ed6b4
--- /dev/null
+++ b/lang/picolisp/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1708416014
+SHA256 (picoLisp-23.12.tgz) = a0633c191c813ae7e6b595713b68979273ddd68c4b6508a2fdb02f0c7bb60aae
+SIZE (picoLisp-23.12.tgz) = 1089366
diff --git a/lang/picolisp/pkg-descr b/lang/picolisp/pkg-descr
new file mode 100644
index 000000000000..a912b05091a3
--- /dev/null
+++ b/lang/picolisp/pkg-descr
@@ -0,0 +1,7 @@
+PicoLisp is quite different from other Lisps. The main reason is its focus on
+data. PicoLisp has one single internal data type: The "cell". On the language
+level it has only three data types: Numbers, symbols and cons pairs. They are
+all built from cells. What may sound like a restriction is actually a big
+advantage. The simple internal structure results in high start-up and execution
+speeds. Cells can be manipulated freely in any conceivable way, giving full
+control to the programmer.
diff --git a/lang/picolisp/pkg-plist b/lang/picolisp/pkg-plist
new file mode 100644
index 000000000000..06fcca57ac7f
--- /dev/null
+++ b/lang/picolisp/pkg-plist
@@ -0,0 +1,167 @@
+bin/picolisp
+bin/pil
+lib/picolisp/COPYING
+lib/picolisp/INSTALL
+lib/picolisp/README
+lib/picolisp/bin/balance
+lib/picolisp/bin/httpGate
+lib/picolisp/bin/picolisp
+lib/picolisp/bin/pil
+lib/picolisp/bin/psh
+lib/picolisp/bin/pty
+lib/picolisp/bin/ssl
+lib/picolisp/bin/vip
+lib/picolisp/bin/watchdog
+lib/picolisp/doc/ChangeLog
+lib/picolisp/doc/Tracks
+lib/picolisp/doc/des.html
+lib/picolisp/doc/doc.css
+lib/picolisp/doc/faq.html
+lib/picolisp/doc/httpGate.html
+lib/picolisp/doc/man.html
+lib/picolisp/doc/microTemplates
+lib/picolisp/doc/native.html
+lib/picolisp/doc/rc.sample
+lib/picolisp/doc/ref.html
+lib/picolisp/doc/refA.html
+lib/picolisp/doc/refB.html
+lib/picolisp/doc/refC.html
+lib/picolisp/doc/refD.html
+lib/picolisp/doc/refE.html
+lib/picolisp/doc/refF.html
+lib/picolisp/doc/refG.html
+lib/picolisp/doc/refH.html
+lib/picolisp/doc/refI.html
+lib/picolisp/doc/refJ.html
+lib/picolisp/doc/refK.html
+lib/picolisp/doc/refL.html
+lib/picolisp/doc/refM.html
+lib/picolisp/doc/refN.html
+lib/picolisp/doc/refO.html
+lib/picolisp/doc/refP.html
+lib/picolisp/doc/refQ.html
+lib/picolisp/doc/refR.html
+lib/picolisp/doc/refS.html
+lib/picolisp/doc/refT.html
+lib/picolisp/doc/refU.html
+lib/picolisp/doc/refV.html
+lib/picolisp/doc/refW.html
+lib/picolisp/doc/refX.html
+lib/picolisp/doc/refY.html
+lib/picolisp/doc/refZ.html
+lib/picolisp/doc/ref_.html
+lib/picolisp/doc/search
+lib/picolisp/doc/search.html
+lib/picolisp/doc/select.html
+lib/picolisp/doc/structures
+lib/picolisp/doc/tut.html
+lib/picolisp/doc/viprc.sample
+lib/picolisp/ext.l
+lib/picolisp/img/go.png
+lib/picolisp/img/no.png
+lib/picolisp/lib.css
+lib/picolisp/lib.l
+lib/picolisp/lib/adm.l
+lib/picolisp/lib/android.l
+lib/picolisp/lib/app.l
+lib/picolisp/lib/bash_completion
+lib/picolisp/lib/btree.l
+lib/picolisp/lib/canvas.js
+lib/picolisp/lib/canvas.l
+lib/picolisp/lib/clang.l
+lib/picolisp/lib/complete.l
+lib/picolisp/lib/db.l
+lib/picolisp/lib/dbgc.l
+lib/picolisp/lib/debug.l
+lib/picolisp/lib/ext.so
+lib/picolisp/lib/form.js
+lib/picolisp/lib/form.l
+lib/picolisp/lib/frac.l
+lib/picolisp/lib/gis.js
+lib/picolisp/lib/gis.l
+lib/picolisp/lib/heartbeat.l
+lib/picolisp/lib/ht.so
+lib/picolisp/lib/http.l
+lib/picolisp/lib/json.l
+lib/picolisp/lib/lint.l
+lib/picolisp/lib/map
+lib/picolisp/lib/math.l
+lib/picolisp/lib/misc.l
+lib/picolisp/lib/net.l
+lib/picolisp/lib/pilog.l
+lib/picolisp/lib/plio.js
+lib/picolisp/lib/replica.l
+lib/picolisp/lib/role.l
+lib/picolisp/lib/simul.l
+lib/picolisp/lib/sq.l
+lib/picolisp/lib/svg.l
+lib/picolisp/lib/sysdefs
+lib/picolisp/lib/term.l
+lib/picolisp/lib/test.l
+lib/picolisp/lib/tinymce.l
+lib/picolisp/lib/too.l
+lib/picolisp/lib/user.l
+lib/picolisp/lib/vip.l
+lib/picolisp/lib/vip/draw.l
+lib/picolisp/lib/vip/html.l
+lib/picolisp/lib/xhtml.l
+lib/picolisp/lib/xhtml/area
+lib/picolisp/lib/xhtml/field
+lib/picolisp/lib/xhtml/grid
+lib/picolisp/lib/xhtml/html
+lib/picolisp/lib/xhtml/input
+lib/picolisp/lib/xhtml/layout
+lib/picolisp/lib/xhtml/menu
+lib/picolisp/lib/xhtml/select
+lib/picolisp/lib/xhtml/submit
+lib/picolisp/lib/xhtml/tab
+lib/picolisp/lib/xhtml/table
+lib/picolisp/lib/xm.l
+lib/picolisp/loc/AE.l
+lib/picolisp/loc/AR.l
+lib/picolisp/loc/CH.l
+lib/picolisp/loc/CKB.l
+lib/picolisp/loc/CN.l
+lib/picolisp/loc/DE.l
+lib/picolisp/loc/ES.l
+lib/picolisp/loc/FR.l
+lib/picolisp/loc/GB.l
+lib/picolisp/loc/GR.l
+lib/picolisp/loc/HR.l
+lib/picolisp/loc/IT.l
+lib/picolisp/loc/JP.l
+lib/picolisp/loc/NIL.l
+lib/picolisp/loc/NO.l
+lib/picolisp/loc/RU.l
+lib/picolisp/loc/SE.l
+lib/picolisp/loc/TR.l
+lib/picolisp/loc/UA.l
+lib/picolisp/loc/UK.l
+lib/picolisp/loc/US.l
+lib/picolisp/loc/ar
+lib/picolisp/loc/ca
+lib/picolisp/loc/ch
+lib/picolisp/loc/ckb
+lib/picolisp/loc/cn
+lib/picolisp/loc/de
+lib/picolisp/loc/el
+lib/picolisp/loc/es
+lib/picolisp/loc/fr
+lib/picolisp/loc/gr
+lib/picolisp/loc/hr
+lib/picolisp/loc/it
+lib/picolisp/loc/ja
+lib/picolisp/loc/jp
+lib/picolisp/loc/no
+lib/picolisp/loc/ru
+lib/picolisp/loc/sv
+lib/picolisp/loc/tr
+lib/picolisp/loc/uk
+lib/picolisp/man/man1/picolisp.1.gz
+lib/picolisp/man/man1/pil.1.gz
+lib/picolisp/misc/bigtest
+lib/picolisp/misc/stress.l
+lib/picolisp/pil
+lib/picolisp/vip
+man/man1/picolisp.1.gz
+man/man1/pil.1.gz