From 0728a4dc7f589c4204f654a7e21948dff6bf6170 Mon Sep 17 00:00:00 2001 From: bcallah Date: Wed, 5 Sep 2018 18:11:26 +0000 Subject: [PATCH] Import lang/ponyc, an actor-model, capabilities-secure, high performance programming language. ok rsadowski@ Pony is an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language. Pony is type safe, memory sage, exception safe, and can natively call C libraries. The overall philosophy of Pony is to get stuff done, and to guarantee the result is correct. --- lang/ponyc/Makefile | 43 +++++ lang/ponyc/distinfo | 2 + lang/ponyc/patches/patch-Makefile | 40 +++++ lang/ponyc/pkg/DESCR | 5 + lang/ponyc/pkg/PLIST | 251 ++++++++++++++++++++++++++++++ 5 files changed, 341 insertions(+) create mode 100644 lang/ponyc/Makefile create mode 100644 lang/ponyc/distinfo create mode 100644 lang/ponyc/patches/patch-Makefile create mode 100644 lang/ponyc/pkg/DESCR create mode 100644 lang/ponyc/pkg/PLIST diff --git a/lang/ponyc/Makefile b/lang/ponyc/Makefile new file mode 100644 index 00000000000..58e707d2259 --- /dev/null +++ b/lang/ponyc/Makefile @@ -0,0 +1,43 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2018/09/05 18:11:26 bcallah Exp $ + +ONLY_FOR_ARCHS = ${LLVM_ARCHS} + +COMMENT = actor-model, capabilities-secure, high performance language +DISTNAME = ${GH_PROJECT}-0.24.4.1 +CATEGORIES = lang + +# OpenBSD support officially comes out in 0.24.5 +GH_ACCOUNT = ponylang +GH_PROJECT = ponyc +#GH_TAGNAME = 0.24.5 +GH_COMMIT = b73b4c4c5b13530e39918fc11ef1643c5736b680 + +HOMEPAGE = https://www.ponylang.org/ +MAINTAINER = Brian Callahan + +# BSD +PERMIT_PACKAGE_CDROM = Yes + +# Also links -lLLVM-6.0 +WANTLIB += ${COMPILER_LIBCXX} c curses execinfo m z + +# C11, clang only +COMPILER = base-clang ports-clang + +BUILD_DEPENDS = ${RUN_DEPENDS} \ + devel/pcre2 + +LIB_DEPENDS = devel/libexecinfo + +RUN_DEPENDS = devel/llvm>=6.0,<6.1 + +USE_GMAKE = Yes +MAKE_ENV = verbose=true default_pic=true + +.if ${MACHINE_ARCH:Marm} || ${MACHINE_ARCH:Mi386} +MAKE_ENV += bits=32 +.else +MAKE_ENV += bits=64 +.endif + +.include diff --git a/lang/ponyc/distinfo b/lang/ponyc/distinfo new file mode 100644 index 00000000000..262d9094608 --- /dev/null +++ b/lang/ponyc/distinfo @@ -0,0 +1,2 @@ +SHA256 (ponyc-0.24.4.1-b73b4c4c.tar.gz) = Sealz0Mo2+bGWs8dfYuo8HnVmJfXUkodgO5bWu7Fn0U= +SIZE (ponyc-0.24.4.1-b73b4c4c.tar.gz) = 1371862 diff --git a/lang/ponyc/patches/patch-Makefile b/lang/ponyc/patches/patch-Makefile new file mode 100644 index 00000000000..9c8e5bf9c89 --- /dev/null +++ b/lang/ponyc/patches/patch-Makefile @@ -0,0 +1,40 @@ +$OpenBSD: patch-Makefile,v 1.1.1.1 2018/09/05 18:11:26 bcallah Exp $ + +Remove hardcoded -O3 and -Werror flags. +Remove -march and -mtune flags. + +Index: Makefile +--- Makefile.orig ++++ Makefile +@@ -106,9 +106,9 @@ else + endif + + LIB_EXT ?= a +-BUILD_FLAGS = -march=$(arch) -mtune=$(tune) -Werror -Wconversion \ ++BUILD_FLAGS = -Wconversion \ + -Wno-sign-conversion -Wextra -Wall +-LINKER_FLAGS = -march=$(arch) -mtune=$(tune) $(LDFLAGS) ++LINKER_FLAGS = $(LDFLAGS) + AR_FLAGS ?= rcs + ALL_CFLAGS = -std=gnu11 -fexceptions \ + -DPONY_VERSION=\"$(tag)\" -DLLVM_VERSION=\"$(llvm_version)\" \ +@@ -201,8 +201,8 @@ ifdef config + endif + + ifeq ($(config),release) +- BUILD_FLAGS += -O3 -DNDEBUG +- LL_FLAGS += -O3 ++ BUILD_FLAGS += -DNDEBUG ++ LL_FLAGS += -O2 + + ifeq ($(lto),yes) + BUILD_FLAGS += -flto -DPONY_USE_LTO +@@ -819,7 +819,7 @@ $($(1))/libponyrt.bc: $(depends) $(bcfiles) + @echo 'Generating bitcode for libponyrt' + $(SILENT)$(LLVM_LINK) -o $$@ $(bcfiles) + ifeq ($(config),release) +- $(SILENT)$(LLVM_OPT) -O3 -o $$@ $$@ ++ $(SILENT)$(LLVM_OPT) -o $$@ $$@ + endif + libponyrt: $($(1))/libponyrt.bc $($(1))/libponyrt.$(LIB_EXT) + else diff --git a/lang/ponyc/pkg/DESCR b/lang/ponyc/pkg/DESCR new file mode 100644 index 00000000000..de5943c0b34 --- /dev/null +++ b/lang/ponyc/pkg/DESCR @@ -0,0 +1,5 @@ +Pony is an open-source, object-oriented, actor-model, +capabilities-secure, high-performance programming language. Pony is type +safe, memory sage, exception safe, and can natively call C libraries. +The overall philosophy of Pony is to get stuff done, and to guarantee +the result is correct. diff --git a/lang/ponyc/pkg/PLIST b/lang/ponyc/pkg/PLIST new file mode 100644 index 00000000000..21acfed4201 --- /dev/null +++ b/lang/ponyc/pkg/PLIST @@ -0,0 +1,251 @@ +@comment $OpenBSD: PLIST,v 1.1.1.1 2018/09/05 18:11:26 bcallah Exp $ +bin/ponyc +include/pony/ +include/pony.h +include/pony/detail/ +include/pony/detail/atomics.h +lib/libponyc.a +lib/libponyrt.a +lib/pony/ +lib/pony/0.24.4/ +lib/pony/0.24.4/bin/ +@bin lib/pony/0.24.4/bin/ponyc +lib/pony/0.24.4/include/ +lib/pony/0.24.4/include/pony/ +lib/pony/0.24.4/include/pony.h +lib/pony/0.24.4/include/pony/detail/ +lib/pony/0.24.4/include/pony/detail/atomics.h +lib/pony/0.24.4/lib/ +lib/pony/0.24.4/lib/native/ +lib/pony/0.24.4/lib/native/libponyc.a +lib/pony/0.24.4/lib/native/libponyrt.a +lib/pony/0.24.4/packages/ +lib/pony/0.24.4/packages/assert/ +lib/pony/0.24.4/packages/assert/assert.pony +lib/pony/0.24.4/packages/backpressure/ +lib/pony/0.24.4/packages/backpressure/auth.pony +lib/pony/0.24.4/packages/backpressure/backpressure.pony +lib/pony/0.24.4/packages/buffered/ +lib/pony/0.24.4/packages/buffered/_test.pony +lib/pony/0.24.4/packages/buffered/buffered.pony +lib/pony/0.24.4/packages/buffered/reader.pony +lib/pony/0.24.4/packages/buffered/writer.pony +lib/pony/0.24.4/packages/builtin/ +lib/pony/0.24.4/packages/builtin/_partial_arithmetic.pony +lib/pony/0.24.4/packages/builtin/_to_string.pony +lib/pony/0.24.4/packages/builtin/ambient_auth.pony +lib/pony/0.24.4/packages/builtin/any.pony +lib/pony/0.24.4/packages/builtin/array.pony +lib/pony/0.24.4/packages/builtin/asio_event.pony +lib/pony/0.24.4/packages/builtin/bool.pony +lib/pony/0.24.4/packages/builtin/builtin.pony +lib/pony/0.24.4/packages/builtin/compare.pony +lib/pony/0.24.4/packages/builtin/do_not_optimise.pony +lib/pony/0.24.4/packages/builtin/env.pony +lib/pony/0.24.4/packages/builtin/float.pony +lib/pony/0.24.4/packages/builtin/iterator.pony +lib/pony/0.24.4/packages/builtin/maybe_pointer.pony +lib/pony/0.24.4/packages/builtin/none.pony +lib/pony/0.24.4/packages/builtin/platform.pony +lib/pony/0.24.4/packages/builtin/pointer.pony +lib/pony/0.24.4/packages/builtin/read_seq.pony +lib/pony/0.24.4/packages/builtin/real.pony +lib/pony/0.24.4/packages/builtin/seq.pony +lib/pony/0.24.4/packages/builtin/signed.pony +lib/pony/0.24.4/packages/builtin/source_loc.pony +lib/pony/0.24.4/packages/builtin/std_stream.pony +lib/pony/0.24.4/packages/builtin/stdin.pony +lib/pony/0.24.4/packages/builtin/string.pony +lib/pony/0.24.4/packages/builtin/stringable.pony +lib/pony/0.24.4/packages/builtin/unsigned.pony +lib/pony/0.24.4/packages/builtin_test/ +lib/pony/0.24.4/packages/builtin_test/_test.pony +lib/pony/0.24.4/packages/builtin_test/_test_valtrace.pony +lib/pony/0.24.4/packages/bureaucracy/ +lib/pony/0.24.4/packages/bureaucracy/_test.pony +lib/pony/0.24.4/packages/bureaucracy/custodian.pony +lib/pony/0.24.4/packages/bureaucracy/registrar.pony +lib/pony/0.24.4/packages/capsicum/ +lib/pony/0.24.4/packages/capsicum/cap.pony +lib/pony/0.24.4/packages/capsicum/cap_rights.pony +lib/pony/0.24.4/packages/cli/ +lib/pony/0.24.4/packages/cli/_test.pony +lib/pony/0.24.4/packages/cli/cli.pony +lib/pony/0.24.4/packages/cli/command.pony +lib/pony/0.24.4/packages/cli/command_help.pony +lib/pony/0.24.4/packages/cli/command_parser.pony +lib/pony/0.24.4/packages/cli/command_spec.pony +lib/pony/0.24.4/packages/cli/env_vars.pony +lib/pony/0.24.4/packages/collections/ +lib/pony/0.24.4/packages/collections/_test.pony +lib/pony/0.24.4/packages/collections/flag.pony +lib/pony/0.24.4/packages/collections/hashable.pony +lib/pony/0.24.4/packages/collections/list.pony +lib/pony/0.24.4/packages/collections/list_node.pony +lib/pony/0.24.4/packages/collections/map.pony +lib/pony/0.24.4/packages/collections/persistent/ +lib/pony/0.24.4/packages/collections/persistent/_bits.pony +lib/pony/0.24.4/packages/collections/persistent/_map_node.pony +lib/pony/0.24.4/packages/collections/persistent/_test.pony +lib/pony/0.24.4/packages/collections/persistent/_vec_node.pony +lib/pony/0.24.4/packages/collections/persistent/benchmarks/ +lib/pony/0.24.4/packages/collections/persistent/benchmarks/main.pony +lib/pony/0.24.4/packages/collections/persistent/list.pony +lib/pony/0.24.4/packages/collections/persistent/map.pony +lib/pony/0.24.4/packages/collections/persistent/persistent.pony +lib/pony/0.24.4/packages/collections/persistent/set.pony +lib/pony/0.24.4/packages/collections/persistent/vec.pony +lib/pony/0.24.4/packages/collections/range.pony +lib/pony/0.24.4/packages/collections/reverse.pony +lib/pony/0.24.4/packages/collections/ring_buffer.pony +lib/pony/0.24.4/packages/collections/set.pony +lib/pony/0.24.4/packages/collections/sort.pony +lib/pony/0.24.4/packages/crypto/ +lib/pony/0.24.4/packages/crypto/_test.pony +lib/pony/0.24.4/packages/crypto/constant_time_compare.pony +lib/pony/0.24.4/packages/crypto/crypto.pony +lib/pony/0.24.4/packages/crypto/digest.pony +lib/pony/0.24.4/packages/crypto/hash_fn.pony +lib/pony/0.24.4/packages/debug/ +lib/pony/0.24.4/packages/debug/debug.pony +lib/pony/0.24.4/packages/encode/ +lib/pony/0.24.4/packages/encode/base64/ +lib/pony/0.24.4/packages/encode/base64/_test.pony +lib/pony/0.24.4/packages/encode/base64/base64.pony +lib/pony/0.24.4/packages/files/ +lib/pony/0.24.4/packages/files/_file_des.pony +lib/pony/0.24.4/packages/files/_test.pony +lib/pony/0.24.4/packages/files/directory.pony +lib/pony/0.24.4/packages/files/file.pony +lib/pony/0.24.4/packages/files/file_caps.pony +lib/pony/0.24.4/packages/files/file_info.pony +lib/pony/0.24.4/packages/files/file_lines.pony +lib/pony/0.24.4/packages/files/file_mode.pony +lib/pony/0.24.4/packages/files/file_path.pony +lib/pony/0.24.4/packages/files/file_stream.pony +lib/pony/0.24.4/packages/files/files.pony +lib/pony/0.24.4/packages/files/path.pony +lib/pony/0.24.4/packages/format/ +lib/pony/0.24.4/packages/format/_format_float.pony +lib/pony/0.24.4/packages/format/_format_int.pony +lib/pony/0.24.4/packages/format/_test.pony +lib/pony/0.24.4/packages/format/align.pony +lib/pony/0.24.4/packages/format/format.pony +lib/pony/0.24.4/packages/format/format_spec.pony +lib/pony/0.24.4/packages/format/prefix_spec.pony +lib/pony/0.24.4/packages/glob/ +lib/pony/0.24.4/packages/glob/_test.pony +lib/pony/0.24.4/packages/glob/glob.pony +lib/pony/0.24.4/packages/ini/ +lib/pony/0.24.4/packages/ini/_test.pony +lib/pony/0.24.4/packages/ini/ini.pony +lib/pony/0.24.4/packages/ini/ini_map.pony +lib/pony/0.24.4/packages/itertools/ +lib/pony/0.24.4/packages/itertools/_test.pony +lib/pony/0.24.4/packages/itertools/iter.pony +lib/pony/0.24.4/packages/itertools/itertools.pony +lib/pony/0.24.4/packages/json/ +lib/pony/0.24.4/packages/json/_json_print.pony +lib/pony/0.24.4/packages/json/_test.pony +lib/pony/0.24.4/packages/json/json.pony +lib/pony/0.24.4/packages/json/json_doc.pony +lib/pony/0.24.4/packages/json/json_type.pony +lib/pony/0.24.4/packages/logger/ +lib/pony/0.24.4/packages/logger/_test.pony +lib/pony/0.24.4/packages/logger/logger.pony +lib/pony/0.24.4/packages/math/ +lib/pony/0.24.4/packages/math/fibonacci.pony +lib/pony/0.24.4/packages/net/ +lib/pony/0.24.4/packages/net/_test.pony +lib/pony/0.24.4/packages/net/auth.pony +lib/pony/0.24.4/packages/net/dns.pony +lib/pony/0.24.4/packages/net/net.pony +lib/pony/0.24.4/packages/net/net_address.pony +lib/pony/0.24.4/packages/net/ossocket.pony +lib/pony/0.24.4/packages/net/ossockopt.pony +lib/pony/0.24.4/packages/net/ssl/ +lib/pony/0.24.4/packages/net/ssl/_ssl_init.pony +lib/pony/0.24.4/packages/net/ssl/_ssl_versions.pony +lib/pony/0.24.4/packages/net/ssl/_test.pony +lib/pony/0.24.4/packages/net/ssl/alpn.pony +lib/pony/0.24.4/packages/net/ssl/ssl.pony +lib/pony/0.24.4/packages/net/ssl/ssl_connection.pony +lib/pony/0.24.4/packages/net/ssl/ssl_context.pony +lib/pony/0.24.4/packages/net/ssl/ssl_versions.pony +lib/pony/0.24.4/packages/net/ssl/x509.pony +lib/pony/0.24.4/packages/net/tcp_connection.pony +lib/pony/0.24.4/packages/net/tcp_connection_notify.pony +lib/pony/0.24.4/packages/net/tcp_listen_notify.pony +lib/pony/0.24.4/packages/net/tcp_listener.pony +lib/pony/0.24.4/packages/net/udp_notify.pony +lib/pony/0.24.4/packages/net/udp_socket.pony +lib/pony/0.24.4/packages/options/ +lib/pony/0.24.4/packages/options/_test.pony +lib/pony/0.24.4/packages/options/env_vars.pony +lib/pony/0.24.4/packages/options/options.pony +lib/pony/0.24.4/packages/ponybench/ +lib/pony/0.24.4/packages/ponybench/_aggregator.pony +lib/pony/0.24.4/packages/ponybench/_output_manager.pony +lib/pony/0.24.4/packages/ponybench/_results.pony +lib/pony/0.24.4/packages/ponybench/_runner.pony +lib/pony/0.24.4/packages/ponybench/benchmark.pony +lib/pony/0.24.4/packages/ponybench/pony_bench.pony +lib/pony/0.24.4/packages/ponytest/ +lib/pony/0.24.4/packages/ponytest/_color.pony +lib/pony/0.24.4/packages/ponytest/_group.pony +lib/pony/0.24.4/packages/ponytest/_test_record.pony +lib/pony/0.24.4/packages/ponytest/_test_runner.pony +lib/pony/0.24.4/packages/ponytest/pony_test.pony +lib/pony/0.24.4/packages/ponytest/test_helper.pony +lib/pony/0.24.4/packages/ponytest/test_list.pony +lib/pony/0.24.4/packages/ponytest/unit_test.pony +lib/pony/0.24.4/packages/process/ +lib/pony/0.24.4/packages/process/_test.pony +lib/pony/0.24.4/packages/process/auth.pony +lib/pony/0.24.4/packages/process/process_monitor.pony +lib/pony/0.24.4/packages/process/process_notify.pony +lib/pony/0.24.4/packages/promises/ +lib/pony/0.24.4/packages/promises/_test.pony +lib/pony/0.24.4/packages/promises/_then.pony +lib/pony/0.24.4/packages/promises/fulfill.pony +lib/pony/0.24.4/packages/promises/promise.pony +lib/pony/0.24.4/packages/random/ +lib/pony/0.24.4/packages/random/_test.pony +lib/pony/0.24.4/packages/random/dice.pony +lib/pony/0.24.4/packages/random/mt.pony +lib/pony/0.24.4/packages/random/random.pony +lib/pony/0.24.4/packages/random/xoroshiro.pony +lib/pony/0.24.4/packages/random/xorshift.pony +lib/pony/0.24.4/packages/regex/ +lib/pony/0.24.4/packages/regex/_test.pony +lib/pony/0.24.4/packages/regex/match.pony +lib/pony/0.24.4/packages/regex/match_iterator.pony +lib/pony/0.24.4/packages/regex/regex.pony +lib/pony/0.24.4/packages/serialise/ +lib/pony/0.24.4/packages/serialise/_test.pony +lib/pony/0.24.4/packages/serialise/serialise.pony +lib/pony/0.24.4/packages/signals/ +lib/pony/0.24.4/packages/signals/_test.pony +lib/pony/0.24.4/packages/signals/sig.pony +lib/pony/0.24.4/packages/signals/signal_handler.pony +lib/pony/0.24.4/packages/signals/signal_notify.pony +lib/pony/0.24.4/packages/stdlib/ +lib/pony/0.24.4/packages/stdlib/_test.pony +lib/pony/0.24.4/packages/strings/ +lib/pony/0.24.4/packages/strings/_test.pony +lib/pony/0.24.4/packages/strings/common_prefix.pony +lib/pony/0.24.4/packages/term/ +lib/pony/0.24.4/packages/term/ansi.pony +lib/pony/0.24.4/packages/term/ansi_notify.pony +lib/pony/0.24.4/packages/term/ansi_term.pony +lib/pony/0.24.4/packages/term/readline.pony +lib/pony/0.24.4/packages/term/readline_notify.pony +lib/pony/0.24.4/packages/time/ +lib/pony/0.24.4/packages/time/_test.pony +lib/pony/0.24.4/packages/time/_timing_wheel.pony +lib/pony/0.24.4/packages/time/nanos.pony +lib/pony/0.24.4/packages/time/posix_date.pony +lib/pony/0.24.4/packages/time/time.pony +lib/pony/0.24.4/packages/time/timer.pony +lib/pony/0.24.4/packages/time/timer_notify.pony +lib/pony/0.24.4/packages/time/timers.pony