git: 66fda47a11b5 - main - lang/colm: New port: Colm Programming Language

From: Yuri Victorovich <yuri_at_FreeBSD.org>
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