lang/picolisp: new port

PicoLisp is a minimal Lisp interpreter with a focus on simplicity.

https://picolisp.com
This commit is contained in:
Pietro Cerutti 2024-03-06 10:51:57 +00:00
parent 6de8754569
commit 7c937353d3
5 changed files with 223 additions and 0 deletions

View file

@ -280,6 +280,7 @@
SUBDIR += php83
SUBDIR += php83-extensions
SUBDIR += picoc
SUBDIR += picolisp
SUBDIR += plexil
SUBDIR += pocl
SUBDIR += polyml

45
lang/picolisp/Makefile Normal file
View file

@ -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>

3
lang/picolisp/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1708416014
SHA256 (picoLisp-23.12.tgz) = a0633c191c813ae7e6b595713b68979273ddd68c4b6508a2fdb02f0c7bb60aae
SIZE (picoLisp-23.12.tgz) = 1089366

7
lang/picolisp/pkg-descr Normal file
View file

@ -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.

167
lang/picolisp/pkg-plist Normal file
View file

@ -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