git: 66fda47a11b5 - main - lang/colm: New port: Colm Programming Language
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 25 Nov 2022 09:37:20 UTC
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=66fda47a11b52b6c31b30016dfde8cfdb1f162a3 commit 66fda47a11b52b6c31b30016dfde8cfdb1f162a3 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2022-11-25 09:18:28 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2022-11-25 09:37:16 +0000 lang/colm: New port: Colm Programming Language --- lang/Makefile | 1 + lang/colm/Makefile | 29 ++++++++++ lang/colm/distinfo | 3 + lang/colm/files/patch-src_bytecode.c | 13 +++++ lang/colm/files/patch-src_main.cc | 13 +++++ lang/colm/files/patch-test_runtests | 11 ++++ lang/colm/pkg-descr | 21 +++++++ lang/colm/pkg-plist | 106 +++++++++++++++++++++++++++++++++++ 8 files changed, 197 insertions(+) diff --git a/lang/Makefile b/lang/Makefile index 622dc1c1ac58..f842ce7afcf2 100644 --- a/lang/Makefile +++ b/lang/Makefile @@ -32,6 +32,7 @@ SUBDIR += clover SUBDIR += cocor SUBDIR += coffeescript + SUBDIR += colm SUBDIR += cparser SUBDIR += crystal SUBDIR += csharp-mode.el diff --git a/lang/colm/Makefile b/lang/colm/Makefile new file mode 100644 index 000000000000..6d66453ba76f --- /dev/null +++ b/lang/colm/Makefile @@ -0,0 +1,29 @@ +PORTNAME= colm +DISTVERSION= 0.14.7-43 +DISTVERSIONSUFFIX= -gd00ef793 +CATEGORIES= lang + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Colm Programming Language +WWW= https://github.com/adrian-thurston/colm + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= bash:shells/bash +RUN_DEPENDS= bash:shells/bash + +USES= autoreconf gmake libtool shebangfix + +USE_GITHUB= yes +GH_ACCOUNT= adrian-thurston + +SHEBANG_GLOB= *.sh +SHEBANG_FILES= test/runtests + +GNU_CONFIGURE= yes + +INSTALL_TARGET= install-strip +TEST_TARGET= check # 1 tests fails, see https://github.com/adrian-thurston/colm/issues/153 + +.include <bsd.port.mk> diff --git a/lang/colm/distinfo b/lang/colm/distinfo new file mode 100644 index 000000000000..2c4f2fd980dd --- /dev/null +++ b/lang/colm/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1669364665 +SHA256 (adrian-thurston-colm-0.14.7-43-gd00ef793_GH0.tar.gz) = 2a2f18b28319b8b4f8a17e58885ee7f5093a531f36da1ac120e7466742076eef +SIZE (adrian-thurston-colm-0.14.7-43-gd00ef793_GH0.tar.gz) = 1764267 diff --git a/lang/colm/files/patch-src_bytecode.c b/lang/colm/files/patch-src_bytecode.c new file mode 100644 index 000000000000..2969302188db --- /dev/null +++ b/lang/colm/files/patch-src_bytecode.c @@ -0,0 +1,13 @@ +- workaround for https://github.com/adrian-thurston/colm/issues/152 + +--- src/bytecode.c.orig 2022-08-23 18:33:46 UTC ++++ src/bytecode.c +@@ -20,6 +20,8 @@ + * SOFTWARE. + */ + ++#include "config.h" ++ + #include <colm/bytecode.h> + + #include <sys/types.h> diff --git a/lang/colm/files/patch-src_main.cc b/lang/colm/files/patch-src_main.cc new file mode 100644 index 000000000000..594de46c7cbd --- /dev/null +++ b/lang/colm/files/patch-src_main.cc @@ -0,0 +1,13 @@ +- use cc as compiler + +--- src/main.cc.orig 2022-11-25 08:45:12 UTC ++++ src/main.cc +@@ -446,7 +446,7 @@ void compileOutput() + { + const char *compiler = getenv( "CC" ); + if ( compiler == 0 ) +- compiler = "gcc"; ++ compiler = "cc"; + + const char *cflags = getenv( "CFLAGS" ); + if ( cflags == 0 ) diff --git a/lang/colm/files/patch-test_runtests b/lang/colm/files/patch-test_runtests new file mode 100644 index 000000000000..d2cca0f2428e --- /dev/null +++ b/lang/colm/files/patch-test_runtests @@ -0,0 +1,11 @@ +--- test/runtests.orig 2022-11-25 08:51:12 UTC ++++ test/runtests +@@ -10,7 +10,7 @@ timed() + if [ -f /proc/cpuinfo ]; then + CORES=$(awk '/cpu cores/ { print $4; exit }' /proc/cpuinfo) + else +- CORES=$(sysctl -n hw.physicalcpu) ++ CORES=$(sysctl -n hw.ncpu) + fi + + diff --git a/lang/colm/pkg-descr b/lang/colm/pkg-descr new file mode 100644 index 000000000000..5e74ad962bf9 --- /dev/null +++ b/lang/colm/pkg-descr @@ -0,0 +1,21 @@ +Colm is COmputer Language Machinery. + +Colm is a programming language designed for the analysis and transformation of +computer languages. +Colm is influenced primarily by TXL. + +Features: +* Colm's main contribution lies in the parsing method. +* Colm's parsing engine is generalized, but it also allows for the construction + of arbitrary global data structures that can be queried during parsing. In + other generalized methods, construction of global data requires some very + careful consideration because of inherent concurrency in the parsing method. + It is such a tricky task that it is often avoided altogether and the problem + is deferred to a post-parse disambiguation of the parse forest. +* By default Colm will create an elf executable that can be used standalone for + that actual transformations. +* Colm is a static and strong typed scripting language. +* Colm is very tiny and fast and can easily be embedded/linked with c/cpp + programs. +* Colm's runtime is a stackbased VM that starts with the bare minimum of the + language and bootstraps itself. diff --git a/lang/colm/pkg-plist b/lang/colm/pkg-plist new file mode 100644 index 000000000000..53f5b40a2a6f --- /dev/null +++ b/lang/colm/pkg-plist @@ -0,0 +1,106 @@ +bin/colm +bin/colm-wrap +include/aapl/astring.h +include/aapl/avlbasic.h +include/aapl/avlcommon.h +include/aapl/avlibasic.h +include/aapl/avlikeyless.h +include/aapl/avlimap.h +include/aapl/avlimel.h +include/aapl/avlimelkey.h +include/aapl/avliset.h +include/aapl/avlitree.h +include/aapl/avlkeyless.h +include/aapl/avlmap.h +include/aapl/avlmel.h +include/aapl/avlmelkey.h +include/aapl/avlset.h +include/aapl/avltree.h +include/aapl/bstcommon.h +include/aapl/bstmap.h +include/aapl/bstset.h +include/aapl/bsttable.h +include/aapl/bubblesort.h +include/aapl/buffer.h +include/aapl/compare.h +include/aapl/dlcommon.h +include/aapl/dlist.h +include/aapl/dlistmel.h +include/aapl/dlistval.h +include/aapl/insertsort.h +include/aapl/mergesort.h +include/aapl/quicksort.h +include/aapl/resize.h +include/aapl/rope.h +include/aapl/sbstmap.h +include/aapl/sbstset.h +include/aapl/sbsttable.h +include/aapl/svector.h +include/aapl/table.h +include/aapl/vector.h +include/colm/bytecode.h +include/colm/colm.h +include/colm/colmex.h +include/colm/config.h +include/colm/debug.h +include/colm/defs.h +include/colm/input.h +include/colm/internal.h +include/colm/map.h +include/colm/pdarun.h +include/colm/pool.h +include/colm/program.h +include/colm/struct.h +include/colm/tree.h +include/colm/type.h +include/libfsm/actexp.h +include/libfsm/action.h +include/libfsm/actloop.h +include/libfsm/asm.h +include/libfsm/binary.h +include/libfsm/binbreak.h +include/libfsm/bingoto.h +include/libfsm/binvar.h +include/libfsm/codegen.h +include/libfsm/common.h +include/libfsm/dot.h +include/libfsm/flat.h +include/libfsm/flatbreak.h +include/libfsm/flatgoto.h +include/libfsm/flatvar.h +include/libfsm/fsmgraph.h +include/libfsm/gendata.h +include/libfsm/goto.h +include/libfsm/gotoexp.h +include/libfsm/gotoloop.h +include/libfsm/idbase.h +include/libfsm/ipgoto.h +include/libfsm/parsedata.h +include/libfsm/ragel.h +include/libfsm/redfsm.h +include/libfsm/switch.h +include/libfsm/switchbreak.h +include/libfsm/switchgoto.h +include/libfsm/switchvar.h +include/libfsm/tables.h +lib/libcolm-0.14.7.so +lib/libcolm.a +lib/libcolm.so +lib/libfsm-0.14.7.so +lib/libfsm.a +lib/libfsm.so +%%DATADIR%%/ril.lm +%%DATADIR%%/rlhc-c.lm +%%DATADIR%%/rlhc-crack.lm +%%DATADIR%%/rlhc-csharp.lm +%%DATADIR%%/rlhc-d.lm +%%DATADIR%%/rlhc-go.lm +%%DATADIR%%/rlhc-java.lm +%%DATADIR%%/rlhc-js.lm +%%DATADIR%%/rlhc-julia.lm +%%DATADIR%%/rlhc-main.lm +%%DATADIR%%/rlhc-ocaml.lm +%%DATADIR%%/rlhc-ruby.lm +%%DATADIR%%/rlhc-rust.lm +%%DATADIR%%/runtests +%%DOCSDIR%%/colm.vim