* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2017-04-23 21:39 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2017-04-23 21:39 UTC (permalink / raw
To: gentoo-commits
commit: 3cf9beab238c015964bb1c8193d9a4394fce3a21
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 23 21:39:02 2017 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Apr 23 21:39:21 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3cf9beab
dev-lang/crystal: Workaround tty corruption in crystal, bug #616256
Patch restores blocking mode of file desriptors in exchange
of potential runtime deadlocks when dealing with stdio.
As it's a potentially invasive patch it's not enabled by default
and is available only under USE=blocking-stdio-hack
Reported-by: Renich Bon Ciric
Bug: https://github.com/crystal-lang/crystal/issues/2065
Bug: https://bugs.gentoo.org/616256
Package-Manager: Portage-2.3.5, Repoman-2.3.2
dev-lang/crystal/crystal-0.22.0.ebuild | 8 +++++++-
.../files/crystal-0.22.0-blocking-stdio-hack.patch | 20 ++++++++++++++++++++
dev-lang/crystal/metadata.xml | 3 +++
3 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/dev-lang/crystal/crystal-0.22.0.ebuild b/dev-lang/crystal/crystal-0.22.0.ebuild
index 91cd89b0f5a..219789c6b1c 100644
--- a/dev-lang/crystal/crystal-0.22.0.ebuild
+++ b/dev-lang/crystal/crystal-0.22.0.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.ta
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="doc debug examples +xml +yaml"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
DEPEND="
@@ -41,6 +41,12 @@ PATCHES=(
"${FILESDIR}"/${PN}-0.20.5-LDFLAGS.patch
)
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
src_compile() {
emake \
$(usex debug "" release=1) \
diff --git a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
new file mode 100644
index 00000000000..07b7dba7be6
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
@@ -0,0 +1,20 @@
+Workaround tty corruption in crystal.
+
+Patch restores blocking mode of file desriptors
+in exchange of potential runtime deadlocks
+when dealing with stdio.
+
+Reported-by: Renich Bon Ciric
+Bug: https://github.com/crystal-lang/crystal/issues/2065
+Bug: https://bugs.gentoo.org/616256
+diff --git a/src/compiler/crystal/stdio.cr b/src/compiler/crystal/stdio.cr
+new file mode 100644
+index 000000000..e65f65089
+--- /dev/null
++++ b/src/compiler/crystal/stdio.cr
+@@ -0,0 +1,5 @@
++module Crystal
++ STDIN.blocking = true
++ STDOUT.blocking=true
++ STDERR.blocking = true
++end
diff --git a/dev-lang/crystal/metadata.xml b/dev-lang/crystal/metadata.xml
index 80b55be2293..8c0dacece65 100644
--- a/dev-lang/crystal/metadata.xml
+++ b/dev-lang/crystal/metadata.xml
@@ -22,6 +22,9 @@
<flag name="debug">
Build each module as a separate object file. Speeds build up.
</flag>
+ <flag name="blocking-stdio-hack">
+ Keep STDIO file descriptors in blocking mode.
+ </flag>
<flag name="yaml">
Use the <pkg>dev-libs/libyaml</pkg> library to enable Crystal yaml
module
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2017-06-30 7:08 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2017-06-30 7:08 UTC (permalink / raw
To: gentoo-commits
commit: 5b0478f68eecd2e5f03a0c63bf1b058e1e91e9eb
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 29 21:58:20 2017 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Jun 30 07:08:06 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b0478f6
dev-lang/crystal: bump up to 0.23.0
Package-Manager: Portage-2.3.6, Repoman-2.3.2
dev-lang/crystal/Manifest | 3 +
dev-lang/crystal/crystal-0.23.0.ebuild | 98 ++++++++++++++++++++++
.../files/crystal-0.23.0-verbose-LDFLAGS.patch | 9 ++
3 files changed, 110 insertions(+)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 35cdba803b4..f1c7ff4d267 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -4,3 +4,6 @@ DIST crystal-0.21.1.tar.gz 1586701 SHA256 eb93de3b388641fd2a09a2d10ab9fe40a58148
DIST crystal-0.22.0-1-linux-i686.tar.gz 18884966 SHA256 c084846d3f9e0c3cfcba6a79fe4e0cf6c6cb6801826a969460ecf2a47abd0fe9 SHA512 b307cc7f91b6d9f1e9a852c96e3d50b54bb5d32fefeb0ed8543c000783d51335ff60b9b4f684fbeb249acd54c1f55aa79ff2d36e2b95d5871aca58090bd03740 WHIRLPOOL fc98c770b754920f93cddb50b3edd4c43096ca605f2c12e93a23c3a0be5c93c5fa89b5cfa8ae1528ed20af63e1733419825af03702f0ffd5eb457bc4c766ad2d
DIST crystal-0.22.0-1-linux-x86_64.tar.gz 18980187 SHA256 789d7b844886133428248605113ede9174c6ea4ba47d96a13f0efd1565b5810d SHA512 466aabf4f875278f5afb3238011e784928dbb234ea58ba1a3a649fca94481804c118639739134a370b5052dce6b17601a5c9d86162264934beb030d5f64f4203 WHIRLPOOL b2ece8a95c9036eebaf62a2d55f11b5010a35149649c56e916153b5596bc8cdb7f62a57ac98d44d553227e56c06fb7cd0a0d7f4637220d7ed94819c93e30f874
DIST crystal-0.22.0.tar.gz 1597215 SHA256 5b9f11d9710ca9bd971a5afb94d369fd8dfaee103d7edf1c9fbebb2f21898547 SHA512 62d484b0c204c7213fc6eb38e59c730f6ba11d30d7b1027dcc5ae2f12a88808cd57628e21619875943714337bf181a8ae6739608c7435fdf18224950151aad21 WHIRLPOOL 6810d08a6284a365b27c86071c5943b072fb0a842157909715bc9de392d584e2b73b190f034dddd47f49b2a47cf730b5530e7d612800175e5b1f0b2dc0b59df0
+DIST crystal-0.23.0-1-linux-i686.tar.gz 18498501 SHA256 0a758770e6cb277bc5ed38fb6edafbf820b99527b65d6a44fd9f3a4c4743b70f SHA512 8745114c4824d2859c569ed1bd1057d6d649d57b10d41d22c17627f623704eb98ec2e3ab2bf06622de624906f53e053975a6b9d852aeaafeae4f43585609de28 WHIRLPOOL 5601fa0fc8d7e3ce2ecfea534135437645bb982a009e4c00349a7b9eb1fdcf193f648d6decbf90b41732d08fd1eb9ba92f4945de97f4138092cdc1efc80f1b92
+DIST crystal-0.23.0-1-linux-x86_64.tar.gz 18729061 SHA256 1d0348e1df3c56f9c29a3a76254c074846389fe5bed659c2cc1051bab83e1a5a SHA512 6a4e427b4ab3c3be6efcfaee5c1a19eff04eaf00db949d1e1ba8f29c3277affe96a7aba4273d93fd05251453d5b5b937aa792bc448ff2f6d6aa7f2b17d175f75 WHIRLPOOL cf9056733e0eea87cf58b7c488c28942a79020a3a5b38ff88eb9f9b04e61678201d647a5821282b4d0c4bb330ca8aced7520c22b19693f5e39533875666fda8e
+DIST crystal-0.23.0.tar.gz 1637983 SHA256 9b65904bb55100994a3b8022b9c553e5aa78979f459c8b10aa64053a65e5d517 SHA512 41ae9391d9183f8bdbffc02350d3aadc22c9c76a4476d55a4f8ec4c4acee80495601077a49e4f6135a80a937767fe39a28044fb6b5c070b05d2ee562fab65bfd WHIRLPOOL fe06c040268a89b1c0cf22fb46e6a938517a41644a7247f83f3a6981b988a7d8fbbc1d2bef019437c1796f148957cf7496a07b5b4e6c9acc881a3f4c06dd2eef
diff --git a/dev-lang/crystal/crystal-0.23.0.ebuild b/dev-lang/crystal/crystal-0.23.0.ebuild
new file mode 100644
index 00000000000..05929f747c3
--- /dev/null
+++ b/dev-lang/crystal/crystal-0.23.0.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multiprocessing toolchain-funcs
+
+BV=0.23.0-1
+BV_AMD64=${BV}-linux-x86_64
+BV_X86=${BV}-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="http://crystal-lang.org"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_AMD64}.tar.gz )
+ x86? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_X86}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
+
+# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
+DEPEND="
+ >=sys-devel/llvm-3.9.0
+ dev-libs/boehm-gc[static-libs,threads]
+ dev-libs/libatomic_ops
+ dev-libs/libevent
+ dev-libs/libpcre
+ sys-libs/libunwind
+ dev-libs/pcl
+ dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+ xml? ( dev-libs/libxml2 )
+ yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.23.0-verbose-LDFLAGS.patch
+)
+
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
+src_compile() {
+ emake \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ use doc && emake doc
+}
+
+src_test() {
+ emake spec \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV}
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+ dobin .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ use examples && dodoc -r samples
+
+ if use doc ; then
+ docinto api
+ dodoc -r doc/.
+ fi
+}
diff --git a/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch b/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch
new file mode 100644
index 00000000000..35eace15dae
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch
@@ -0,0 +1,9 @@
+diff --git a/Makefile b/Makefile
+index eff69e5..5c0c024 100644
+--- a/Makefile
++++ b/Makefile
+@@ -28,3 +28,3 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+-FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )
++FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
+ SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2017-09-16 10:54 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2017-09-16 10:54 UTC (permalink / raw
To: gentoo-commits
commit: a5770fdf734d8d6d4bf95f6778adf0d024efb705
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 16 10:54:30 2017 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Sep 16 10:54:30 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a5770fdf
dev-lang/crystal: add llvm-5 support, bug #630634
Thanks to Renich Bon Ciric who found the problem
and found out the patch!
Reported-by: Renich Bon Ciric
Closes: https://bugs.gentoo.org/630634
Package-Manager: Portage-2.3.8, Repoman-2.3.3
dev-lang/crystal/crystal-0.23.1.ebuild | 1 +
dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch | 837 +++++++++++++++++++++
2 files changed, 838 insertions(+)
diff --git a/dev-lang/crystal/crystal-0.23.1.ebuild b/dev-lang/crystal/crystal-0.23.1.ebuild
index b526f802656..6bf8e74cc81 100644
--- a/dev-lang/crystal/crystal-0.23.1.ebuild
+++ b/dev-lang/crystal/crystal-0.23.1.ebuild
@@ -38,6 +38,7 @@ RDEPEND="${DEPEND}
PATCHES=(
"${FILESDIR}"/${PN}-0.23.0-verbose-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-0.23.1-llvm-5.patch
)
src_prepare() {
diff --git a/dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch b/dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch
new file mode 100644
index 00000000000..bbfd922149e
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch
@@ -0,0 +1,837 @@
+https://bugs.gentoo.org/630634
+diff --git a/.gitignore b/.gitignore
+index 9a883edfd..5f852d930 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -12,5 +12,6 @@ all_spec
+ /tmp
+ /doc/
+ /src/llvm/ext/llvm_ext.o
++/src/llvm/ext/llvm_ext.dwo
+ /src/ext/*.o
+ /src/ext/libcrystal.a
+diff --git a/Makefile b/Makefile
+index a5dc0d7e3..14a21bb86 100644
+--- a/Makefile
++++ b/Makefile
+@@ -37,8 +37,6 @@ LLVM_CONFIG_FINDER := \
+ (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.9*) command -v llvm-config;; *) false;; esac)) || \
+ command -v llvm-config-3.8 || command -v llvm-config38 || \
+ (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.8*) command -v llvm-config;; *) false;; esac)) || \
+- command -v llvm-config-3.6 || command -v llvm-config36 || \
+- command -v llvm-config-3.5 || command -v llvm-config35 || \
+ command -v llvm-config
+ LLVM_CONFIG := $(shell $(LLVM_CONFIG_FINDER))
+ LLVM_EXT_DIR = src/llvm/ext
+diff --git a/src/compiler/crystal/compiler.cr b/src/compiler/crystal/compiler.cr
+index a2bed9a95..afc7976e3 100644
+--- a/src/compiler/crystal/compiler.cr
++++ b/src/compiler/crystal/compiler.cr
+@@ -447,9 +447,6 @@ module Crystal
+
+ protected def optimize(llvm_mod)
+ fun_pass_manager = llvm_mod.new_function_pass_manager
+- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
+- fun_pass_manager.add_target_data target_machine.data_layout
+- {% end %}
+ pass_manager_builder.populate fun_pass_manager
+ fun_pass_manager.run llvm_mod
+ module_pass_manager.run llvm_mod
+@@ -460,9 +457,6 @@ module Crystal
+ private def module_pass_manager
+ @module_pass_manager ||= begin
+ mod_pass_manager = LLVM::ModulePassManager.new
+- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
+- mod_pass_manager.add_target_data target_machine.data_layout
+- {% end %}
+ pass_manager_builder.populate mod_pass_manager
+ mod_pass_manager
+ end
+@@ -554,54 +548,29 @@ module Crystal
+ can_reuse_previous_compilation =
+ !compiler.emit && !@bc_flags_changed && File.exists?(bc_name) && File.exists?(object_name)
+
+- {% if LibLLVM::IS_35 %}
+- # In LLVM 3.5 we can't write a bitcode to memory,
+- # so instead we write it to another file
+- bc_name_new = self.bc_name_new
+- llvm_mod.write_bitcode_to_file(bc_name_new)
+-
+- if can_reuse_previous_compilation
+- if FileUtils.cmp(bc_name, bc_name_new)
+- # If the user cancelled a previous compilation it might be that
+- # the .o file is empty
+- if File.size(object_name) > 0
+- File.delete bc_name_new
+- must_compile = false
+- end
+- end
+- end
++ memory_buffer = llvm_mod.write_bitcode_to_memory_buffer
+
+- if must_compile
+- # Create/overwrite the .bc file (for next compilations)
+- File.rename(bc_name_new, bc_name)
+- compiler.optimize llvm_mod if compiler.release?
+- compiler.target_machine.emit_obj_to_file llvm_mod, object_name
+- end
+- {% else %}
+- memory_buffer = llvm_mod.write_bitcode_to_memory_buffer
+-
+- if can_reuse_previous_compilation
+- memory_io = IO::Memory.new(memory_buffer.to_slice)
+- changed = File.open(bc_name) { |bc_file| !FileUtils.cmp(bc_file, memory_io) }
+-
+- # If the user cancelled a previous compilation
+- # it might be that the .o file is empty
+- if !changed && File.size(object_name) > 0
+- must_compile = false
+- memory_buffer.dispose
+- memory_buffer = nil
+- else
+- # We need to compile, so we'll write the memory buffer to file
+- end
+- end
++ if can_reuse_previous_compilation
++ memory_io = IO::Memory.new(memory_buffer.to_slice)
++ changed = File.open(bc_name) { |bc_file| !FileUtils.cmp(bc_file, memory_io) }
+
+- # If there's a memory buffer, it means we must create a .o from it
+- if memory_buffer
+- # Create the .bc file (for next compilations)
+- File.write(bc_name, memory_buffer.to_slice)
++ # If the user cancelled a previous compilation
++ # it might be that the .o file is empty
++ if !changed && File.size(object_name) > 0
++ must_compile = false
+ memory_buffer.dispose
++ memory_buffer = nil
++ else
++ # We need to compile, so we'll write the memory buffer to file
+ end
+- {% end %}
++ end
++
++ # If there's a memory buffer, it means we must create a .o from it
++ if memory_buffer
++ # Create the .bc file (for next compilations)
++ File.write(bc_name, memory_buffer.to_slice)
++ memory_buffer.dispose
++ end
+
+ if must_compile
+ compiler.optimize llvm_mod if compiler.release?
+diff --git a/src/llvm.cr b/src/llvm.cr
+index 44a03c272..f9b31cf4b 100644
+--- a/src/llvm.cr
++++ b/src/llvm.cr
+@@ -94,11 +94,5 @@ module LLVM
+ string
+ end
+
+- {% if LibLLVM::IS_35 %}
+- DEBUG_METADATA_VERSION = 1
+- {% elsif LibLLVM::IS_36 %}
+- DEBUG_METADATA_VERSION = 2
+- {% else %}
+- DEBUG_METADATA_VERSION = 3
+- {% end %}
++ DEBUG_METADATA_VERSION = 3
+ end
+diff --git a/src/llvm/context.cr b/src/llvm/context.cr
+index 8485eedf1..7d66a4365 100644
+--- a/src/llvm/context.cr
++++ b/src/llvm/context.cr
+@@ -9,9 +9,9 @@ class LLVM::Context
+ end
+
+ def new_module(name : String) : Module
+- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
++ {% if LibLLVM::IS_38 %}
+ Module.new(LibLLVM.module_create_with_name_in_context(name, self), name, self)
+- {% else %}
++ {% else %} # LLVM >= 3.9
+ Module.new(LibLLVM.module_create_with_name_in_context(name, self), self)
+ {% end %}
+ end
+@@ -104,9 +104,9 @@ class LLVM::Context
+ if ret != 0 && msg
+ raise LLVM.string_and_dispose(msg)
+ end
+- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
++ {% if LibLLVM::IS_38 %}
+ Module.new(mod, "unknown", self)
+- {% else %}
++ {% else %} # LLVM >= 3.9
+ Module.new(mod, self)
+ {% end %}
+ end
+diff --git a/src/llvm/di_builder.cr b/src/llvm/di_builder.cr
+index b8c0fd628..79571d2c0 100644
+--- a/src/llvm/di_builder.cr
++++ b/src/llvm/di_builder.cr
+@@ -31,16 +31,8 @@ struct LLVM::DIBuilder
+
+ def create_function(scope, name, linkage_name, file, line, composite_type, is_local_to_unit, is_definition,
+ scope_line, flags, is_optimized, func)
+- {% if LibLLVM::IS_36 || LibLLVM::IS_35 %}
+- LibLLVMExt.di_builder_create_function(self, scope, name, linkage_name, file, line, composite_type,
+- is_local_to_unit ? 1 : 0,
+- is_definition ? 1 : 0,
+- scope_line, flags,
+- is_optimized ? 1 : 0, func)
+- {% else %}
+- LibLLVMExt.di_builder_create_function(self, scope, name, linkage_name, file, line, composite_type,
+- is_local_to_unit, is_definition, scope_line, flags, is_optimized, func)
+- {% end %}
++ LibLLVMExt.di_builder_create_function(self, scope, name, linkage_name, file, line, composite_type,
++ is_local_to_unit, is_definition, scope_line, flags, is_optimized, func)
+ end
+
+ def create_auto_variable(scope, name, file, line, type, align_in_bits)
+@@ -87,19 +79,11 @@ struct LLVM::DIBuilder
+ end
+
+ def create_replaceable_composite_type(scope, name, file, line, context : Context)
+- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
+- LibLLVMExt.temporary_md_node(context, nil, 0).as(LibLLVMExt::Metadata)
+- {% else %}
+- LibLLVMExt.di_builder_create_replaceable_composite_type(self, scope, name, file, line)
+- {% end %}
++ LibLLVMExt.di_builder_create_replaceable_composite_type(self, scope, name, file, line)
+ end
+
+ def replace_temporary(from, to)
+- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
+- LibLLVMExt.metadata_replace_all_uses_with(from, to)
+- {% else %}
+- LibLLVMExt.di_builder_replace_temporary(self, from, to)
+- {% end %}
++ LibLLVMExt.di_builder_replace_temporary(self, from, to)
+ end
+
+ def end
+diff --git a/src/llvm/ext/llvm_ext.cc b/src/llvm/ext/llvm_ext.cc
+index d13446160..3dbdd4220 100644
+--- a/src/llvm/ext/llvm_ext.cc
++++ b/src/llvm/ext/llvm_ext.cc
+@@ -18,35 +18,22 @@ using namespace llvm;
+ #define LLVM_VERSION_LE(major, minor) \
+ (LLVM_VERSION_MAJOR < (major) || LLVM_VERSION_MAJOR == (major) && LLVM_VERSION_MINOR <= (minor))
+
++#if LLVM_VERSION_LE(4, 0)
+ typedef struct LLVMOpaqueDIBuilder *LLVMDIBuilderRef;
+ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(DIBuilder, LLVMDIBuilderRef)
+
+-#if LLVM_VERSION_EQ(3, 5)
+-typedef LLVMValueRef LLVMMetadataRef;
+-typedef Value Metadata;
+-#define DIBuilderRef LLVMDIBuilderRef
+-
+-#else /* LLVM != 3.5 */
+ typedef struct LLVMOpaqueMetadata *LLVMMetadataRef;
+ DEFINE_ISA_CONVERSION_FUNCTIONS(Metadata, LLVMMetadataRef)
+ inline Metadata **unwrap(LLVMMetadataRef *Vals) {
+ return reinterpret_cast<Metadata **>(Vals);
+ }
+-#endif /* LLVM == 3.5 */
+-
+-#if LLVM_VERSION_LE(3, 6)
+-template <typename T> T unwrapDIptr(LLVMMetadataRef v) {
+- return v ? T(unwrap<MDNode>(v)) : T();
+-}
+-#define DIBuilderRef LLVMDIBuilderRef
++#endif
+
+-#else /* LLVM > 3.6 */
+ typedef DIBuilder *DIBuilderRef;
+ #define DIArray DINodeArray
+ template <typename T> T *unwrapDIptr(LLVMMetadataRef v) {
+ return (T *)(v ? unwrap<MDNode>(v) : NULL);
+ }
+-#endif /* LLVM <= 3.6 */
+
+ #if LLVM_VERSION_LE(3, 6)
+ #define OperandBundleDef void
+@@ -66,13 +53,7 @@ void LLVMDIBuilderFinalize(LLVMDIBuilderRef dref) { unwrap(dref)->finalize(); }
+
+ LLVMMetadataRef LLVMDIBuilderCreateFile(DIBuilderRef Dref, const char *File,
+ const char *Dir) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DIFile F = D->createFile(File, Dir);
+- return wrap(F);
+-#else
+ return wrap(Dref->createFile(File, Dir));
+-#endif
+ }
+
+ LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(DIBuilderRef Dref, unsigned Lang,
+@@ -82,20 +63,13 @@ LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(DIBuilderRef Dref, unsigned Lang,
+ int Optimized,
+ const char *Flags,
+ unsigned RuntimeVersion) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DICompileUnit CU = D->createCompileUnit(Lang, File, Dir, Producer, Optimized,
+- Flags, RuntimeVersion);
+- return wrap(CU);
+-#else
+-# if LLVM_VERSION_LE(3, 9)
++#if LLVM_VERSION_LE(3, 9)
+ return wrap(Dref->createCompileUnit(Lang, File, Dir, Producer, Optimized,
+ Flags, RuntimeVersion));
+-# else
++#else
+ DIFile *F = Dref->createFile(File, Dir);
+ return wrap(Dref->createCompileUnit(Lang, F, Producer, Optimized,
+ Flags, RuntimeVersion));
+-# endif
+ #endif
+ }
+
+@@ -111,19 +85,11 @@ LLVMMetadataRef LLVMDIBuilderCreateFunction(
+ #endif
+ bool IsOptimized,
+ LLVMValueRef Func) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DISubprogram Sub = D->createFunction(
+- unwrapDI<DIDescriptor>(Scope), Name, LinkageName, unwrapDI<DIFile>(File),
+- Line, unwrapDI<DICompositeType>(CompositeType), IsLocalToUnit,
+- IsDefinition, ScopeLine, Flags, IsOptimized, unwrap<Function>(Func));
+-#else
+ DISubprogram *Sub = Dref->createFunction(
+ unwrapDI<DIScope>(Scope), Name, LinkageName, unwrapDI<DIFile>(File), Line,
+ unwrapDI<DISubroutineType>(CompositeType), IsLocalToUnit, IsDefinition,
+ ScopeLine, Flags, IsOptimized);
+ unwrap<Function>(Func)->setSubprogram(Sub);
+-#endif
+ return wrap(Sub);
+ }
+
+@@ -132,18 +98,8 @@ LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(DIBuilderRef Dref,
+ LLVMMetadataRef File,
+ unsigned Line,
+ unsigned Column) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+-# if LLVM_VERSION_EQ(3, 5)
+- DILexicalBlock LB = D->createLexicalBlock(unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Line, Column, 0);
+-# else /* LLVM <= 3.6 && LLVM != 3.5 */
+- DILexicalBlock LB = D->createLexicalBlock(unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Line, Column);
+-# endif
+- return wrap(LB);
+-#else /* LLVM > 3.6 */
+ return wrap(Dref->createLexicalBlock(unwrapDI<DIDescriptor>(Scope),
+ unwrapDI<DIFile>(File), Line, Column));
+-#endif /* LLVM <= 3.6 */
+ }
+
+ LLVMMetadataRef LLVMDIBuilderCreateBasicType(DIBuilderRef Dref,
+@@ -151,71 +107,34 @@ LLVMMetadataRef LLVMDIBuilderCreateBasicType(DIBuilderRef Dref,
+ uint64_t SizeInBits,
+ uint64_t AlignInBits,
+ unsigned Encoding) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DIBasicType T = D->createBasicType(Name, SizeInBits, AlignInBits, Encoding);
+- return wrap(T);
+-#else
+-# if LLVM_VERSION_LE(3, 9)
++#if LLVM_VERSION_LE(3, 9)
+ return wrap(Dref->createBasicType(Name, SizeInBits, AlignInBits, Encoding));
+-# else
++#else
+ return wrap(Dref->createBasicType(Name, SizeInBits, Encoding));
+-# endif
+ #endif
+ }
+
+ LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(DIBuilderRef Dref,
+ LLVMMetadataRef *Data,
+ unsigned Length) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+-# if LLVM_VERSION_EQ(3, 5)
+- Value **DataValue = unwrap(Data);
+- ArrayRef<Value *> Elements(DataValue, Length);
+- DIArray A = D->getOrCreateArray(Elements);
+-# else /* LLVM <= 3.6 && LLVM != 3.5 */
+- Metadata **DataValue = unwrap(Data);
+- ArrayRef<Metadata *> Elements(DataValue, Length);
+- DITypeArray A = D->getOrCreateTypeArray(Elements);
+-# endif
+- return wrap(A);
+-#else /* LLVM > 3.6 */
+ Metadata **DataValue = unwrap(Data);
+ return wrap(
+ Dref->getOrCreateTypeArray(ArrayRef<Metadata *>(DataValue, Length))
+ .get());
+-#endif /* LLVM <= 3.6 */
+ }
+
+ LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(DIBuilderRef Dref,
+ LLVMMetadataRef *Data,
+ unsigned Length) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- ArrayRef<Metadata *> elements(unwrap(Data), Length);
+- DIArray a = D->getOrCreateArray(elements);
+-
+- return wrap(a);
+-#else
+ Metadata **DataValue = unwrap(Data);
+ return wrap(
+ Dref->getOrCreateArray(ArrayRef<Metadata *>(DataValue, Length)).get());
+-#endif
+ }
+
+ LLVMMetadataRef
+ LLVMDIBuilderCreateSubroutineType(DIBuilderRef Dref, LLVMMetadataRef File,
+ LLVMMetadataRef ParameterTypes) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+-# if LLVM_VERSION_EQ(3, 5)
+- DICompositeType CT = D->createSubroutineType(unwrapDI<DIFile>(File), unwrapDI<DIArray>(ParameterTypes));
+-# else /* LLVM <= 3.6 && LLVM != 3.5 */
+- DICompositeType CT = D->createSubroutineType(unwrapDI<DIFile>(File), unwrapDI<DITypeArray>(ParameterTypes));
+-# endif
+-#else /* LLVM > 3.6 */
+ DISubroutineType *CT = Dref->createSubroutineType(DITypeRefArray(unwrap<MDTuple>(ParameterTypes)));
+-#endif /* LLVM <= 3.6 */
+ return wrap(CT);
+ }
+
+@@ -229,21 +148,14 @@ LLVMMetadataRef LLVMDIBuilderCreateAutoVariable(
+ DINode::DIFlags Flags,
+ #endif
+ uint32_t AlignInBits) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DIVariable V = D->createLocalVariable(
+- llvm::dwarf::DW_TAG_auto_variable, unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+- unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, 0);
+-#else
+-# if LLVM_VERSION_LE(3, 9)
++#if LLVM_VERSION_LE(3, 9)
+ DILocalVariable *V = Dref->createAutoVariable(
+ unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+ unwrapDI<DIType>(Ty), AlwaysPreserve, Flags);
+-# else
++#else
+ DILocalVariable *V = Dref->createAutoVariable(
+ unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+ unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, AlignInBits);
+-# endif
+ #endif
+ return wrap(V);
+ }
+@@ -258,18 +170,10 @@ LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
+ DINode::DIFlags Flags
+ #endif
+ ) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DIVariable V = D->createLocalVariable(
+- llvm::dwarf::DW_TAG_arg_variable, unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+- unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, ArgNo);
+- return wrap(V);
+-#else
+ DILocalVariable *V = Dref->createParameterVariable
+ (unwrapDI<DIDescriptor>(Scope), Name, ArgNo, unwrapDI<DIFile>(File), Line,
+ unwrapDI<DIType>(Ty), AlwaysPreserve, Flags);
+ return wrap(V);
+-#endif
+ }
+
+ LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(DIBuilderRef Dref,
+@@ -278,46 +182,17 @@ LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(DIBuilderRef Dref,
+ LLVMMetadataRef Expr,
+ LLVMValueRef DL,
+ LLVMBasicBlockRef Block) {
+-#if LLVM_VERSION_EQ(3, 5)
+- DIBuilder *D = unwrap(Dref);
+- Instruction *Instr =
+- D->insertDeclare(unwrap(Storage), unwrapDI<DIVariable>(VarInfo),
+- unwrap(Block));
+- Instr->setDebugLoc(DebugLoc::getFromDILocation(cast<MDNode>(DL)));
+-#endif
+-
+-#if LLVM_VERSION_EQ(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- Instruction *Instr =
+- D->insertDeclare(unwrap(Storage), unwrapDI<DIVariable>(VarInfo),
+- unwrapDI<DIExpression>(Expr), unwrap(Block));
+- Instr->setDebugLoc(DebugLoc::getFromDILocation(cast<MDNode>(unwrap<MetadataAsValue>(DL)->getMetadata())));
+-#endif
+-
+-#if LLVM_VERSION_GE(3, 7)
+ Instruction *Instr =
+ Dref->insertDeclare(unwrap(Storage), unwrap<DILocalVariable>(VarInfo),
+ unwrapDI<DIExpression>(Expr),
+ DebugLoc(cast<MDNode>(unwrap<MetadataAsValue>(DL)->getMetadata())),
+ unwrap(Block));
+-#endif
+-
+ return wrap(Instr);
+ }
+
+ LLVMMetadataRef LLVMDIBuilderCreateExpression(DIBuilderRef Dref, int64_t *Addr,
+ size_t Length) {
+-#if LLVM_VERSION_LE(3, 6)
+-# if LLVM_VERSION_EQ(3, 5)
+- return nullptr;
+-# else /* LLVM <= 3.6 && LLVM != 3.5 */
+- DIBuilder *D = unwrap(Dref);
+- DIExpression Expr = D->createExpression(ArrayRef<int64_t>(Addr, Length));
+- return wrap(Expr);
+-# endif
+-#else /* LLVM > 3.6 */
+ return wrap(Dref->createExpression(ArrayRef<int64_t>(Addr, Length)));
+-#endif
+ }
+
+ LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
+@@ -325,30 +200,16 @@ LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
+ LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
+ uint64_t AlignInBits, LLVMMetadataRef Elements,
+ LLVMMetadataRef UnderlyingType) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DICompositeType enumType = D->createEnumerationType(
+- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
+- SizeInBits, AlignInBits, unwrapDI<DIArray>(Elements),
+- unwrapDI<DIType>(UnderlyingType));
+-#else
+ DICompositeType *enumType = Dref->createEnumerationType(
+ unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
+ SizeInBits, AlignInBits, DINodeArray(unwrapDI<MDTuple>(Elements)),
+ unwrapDI<DIType>(UnderlyingType));
+-#endif
+ return wrap(enumType);
+ }
+
+ LLVMMetadataRef LLVMDIBuilderCreateEnumerator(DIBuilderRef Dref,
+ const char *Name, int64_t Value) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DIEnumerator e = D->createEnumerator(Name, Value);
+- return wrap(e);
+-#else
+ DIEnumerator *e = Dref->createEnumerator(Name, Value);
+-#endif
+ return wrap(e);
+ }
+
+@@ -367,22 +228,13 @@ LLVMDIBuilderCreateStructType(DIBuilderRef Dref,
+ #endif
+ LLVMMetadataRef DerivedFrom,
+ LLVMMetadataRef Elements) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DICompositeType CT = D->createStructType(
+- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+- SizeInBits, AlignInBits, Flags, unwrapDI<DIType>(DerivedFrom),
+- unwrapDI<DIArray>(Elements));
+-#else
+ DICompositeType *CT = Dref->createStructType(
+ unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+ SizeInBits, AlignInBits, Flags, unwrapDI<DIType>(DerivedFrom),
+ DINodeArray(unwrapDI<MDTuple>(Elements)));
+-#endif
+ return wrap(CT);
+ }
+
+-#if LLVM_VERSION_GE(3, 8)
+ LLVMMetadataRef
+ LLVMDIBuilderCreateReplaceableCompositeType(DIBuilderRef Dref,
+ LLVMMetadataRef Scope,
+@@ -409,7 +261,6 @@ LLVMDIBuilderReplaceTemporary(DIBuilderRef Dref,
+ llvm::TempMDNode fwd_decl(Node);
+ Dref->replaceTemporary(std::move(fwd_decl), Type);
+ }
+-#endif
+
+ LLVMMetadataRef
+ LLVMDIBuilderCreateMemberType(DIBuilderRef Dref, LLVMMetadataRef Scope,
+@@ -422,16 +273,9 @@ LLVMDIBuilderCreateMemberType(DIBuilderRef Dref, LLVMMetadataRef Scope,
+ DINode::DIFlags Flags,
+ #endif
+ LLVMMetadataRef Ty) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DIDerivedType DT = D->createMemberType(
+- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+- SizeInBits, AlignInBits, OffsetInBits, Flags, unwrapDI<DIType>(Ty));
+-#else
+ DIDerivedType *DT = Dref->createMemberType(
+ unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
+ SizeInBits, AlignInBits, OffsetInBits, Flags, unwrapDI<DIType>(Ty));
+-#endif
+ return wrap(DT);
+ }
+
+@@ -440,39 +284,24 @@ LLVMMetadataRef LLVMDIBuilderCreatePointerType(DIBuilderRef Dref,
+ uint64_t SizeInBits,
+ uint64_t AlignInBits,
+ const char *Name) {
+-#if LLVM_VERSION_LE(3, 6)
+- DIBuilder *D = unwrap(Dref);
+- DIDerivedType T = D->createPointerType(unwrapDI<DIType>(PointeeType),
+- SizeInBits, AlignInBits, Name);
+-#else
+ DIDerivedType *T = Dref->createPointerType(unwrapDI<DIType>(PointeeType),
+- SizeInBits, AlignInBits, Name);
++ SizeInBits, AlignInBits,
++#if LLVM_VERSION_GE(5, 0)
++ None,
+ #endif
++ Name);
+ return wrap(T);
+ }
+
+ LLVMMetadataRef LLVMTemporaryMDNode(LLVMContextRef C, LLVMMetadataRef *MDs,
+ unsigned Count) {
+-#if LLVM_VERSION_LE(3, 6)
+- return wrap(MDNode::getTemporary(*unwrap(C),
+- ArrayRef<Metadata *>(unwrap(MDs), Count)));
+-#else
+ return wrap(MDTuple::getTemporary(*unwrap(C),
+ ArrayRef<Metadata *>(unwrap(MDs), Count))
+ .release());
+-#endif
+ }
+
+ void LLVMMetadataReplaceAllUsesWith(LLVMMetadataRef MD, LLVMMetadataRef New) {
+-#if LLVM_VERSION_LE(3, 6)
+-# if LLVM_VERSION_EQ(3, 5)
+ auto *Node = unwrap<MDNode>(MD);
+-# else /* LLVM <= 3.6 && LLVM != 3.5 */
+- auto *Node = unwrap<MDNodeFwdDecl>(MD);
+-# endif
+-#else /* LLVM > 3.6 */
+- auto *Node = unwrap<MDNode>(MD);
+-#endif
+ Node->replaceAllUsesWith(unwrap<MDNode>(New));
+ MDNode::deleteTemporary(Node);
+ }
+diff --git a/src/llvm/function_pass_manager.cr b/src/llvm/function_pass_manager.cr
+index 979cb9c97..834d72a20 100644
+--- a/src/llvm/function_pass_manager.cr
++++ b/src/llvm/function_pass_manager.cr
+@@ -2,12 +2,6 @@ class LLVM::FunctionPassManager
+ def initialize(@unwrap : LibLLVM::PassManagerRef)
+ end
+
+- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
+- def add_target_data(target_data)
+- LibLLVM.add_target_data target_data, self
+- end
+- {% end %}
+-
+ def run(mod : Module)
+ changed = false
+ run do |runner|
+diff --git a/src/llvm/lib_llvm.cr b/src/llvm/lib_llvm.cr
+index e2c7a9445..5a0b67cdd 100644
+--- a/src/llvm/lib_llvm.cr
++++ b/src/llvm/lib_llvm.cr
+@@ -6,8 +6,6 @@ lib LibLLVM
+ (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.9*) command -v llvm-config;; *) false;; esac)) || \
+ command -v llvm-config-3.8 || command -v llvm-config38 || \
+ (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.8*) command -v llvm-config;; *) false;; esac)) || \
+- command -v llvm-config-3.6 || command -v llvm-config36 || \
+- command -v llvm-config-3.5 || command -v llvm-config35 || \
+ command -v llvm-config
+ `.chomp.stringify
+ }}
+@@ -32,8 +30,6 @@ end
+ IS_40 = {{LibLLVM::VERSION.starts_with?("4.0")}}
+ IS_39 = {{LibLLVM::VERSION.starts_with?("3.9")}}
+ IS_38 = {{LibLLVM::VERSION.starts_with?("3.8")}}
+- IS_36 = {{LibLLVM::VERSION.starts_with?("3.6")}}
+- IS_35 = {{LibLLVM::VERSION.starts_with?("3.5")}}
+ end
+ {% end %}
+
+@@ -283,9 +279,7 @@ lib LibLLVM
+ fun set_alignment = LLVMSetAlignment(value : ValueRef, bytes : UInt32)
+ fun get_return_type = LLVMGetReturnType(TypeRef) : TypeRef
+
+- {% unless LibLLVM::IS_35 %}
+- fun write_bitcode_to_memory_buffer = LLVMWriteBitcodeToMemoryBuffer(mod : ModuleRef) : MemoryBufferRef
+- {% end %}
++ fun write_bitcode_to_memory_buffer = LLVMWriteBitcodeToMemoryBuffer(mod : ModuleRef) : MemoryBufferRef
+
+ fun dispose_memory_buffer = LLVMDisposeMemoryBuffer(buf : MemoryBufferRef) : Void
+ fun get_buffer_start = LLVMGetBufferStart(buf : MemoryBufferRef) : UInt8*
+@@ -293,26 +287,22 @@ lib LibLLVM
+
+ fun write_bitcode_to_fd = LLVMWriteBitcodeToFD(mod : ModuleRef, fd : LibC::Int, should_close : LibC::Int, unbuffered : LibC::Int) : LibC::Int
+
+- {% if LibLLVM::IS_36 || LibLLVM::IS_35 %}
+- fun add_target_data = LLVMAddTargetData(td : TargetDataRef, pm : PassManagerRef)
+- {% end %}
+-
+- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
++ {% if LibLLVM::IS_38 %}
+ fun copy_string_rep_of_target_data = LLVMCopyStringRepOfTargetData(data : TargetDataRef) : UInt8*
+ fun get_target_machine_data = LLVMGetTargetMachineData(t : TargetMachineRef) : TargetDataRef
+ fun set_data_layout = LLVMSetDataLayout(mod : ModuleRef, data : UInt8*)
+- {% else %}
++ {% else %} # LLVM >= 3.9
+ fun create_target_data_layout = LLVMCreateTargetDataLayout(t : TargetMachineRef) : TargetDataRef
+ fun set_module_data_layout = LLVMSetModuleDataLayout(mod : ModuleRef, data : TargetDataRef)
+ {% end %}
+
+- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
++ {% if LibLLVM::IS_38 %}
+ fun add_attribute = LLVMAddAttribute(arg : ValueRef, attr : LLVM::Attribute)
+ fun add_instr_attribute = LLVMAddInstrAttribute(instr : ValueRef, index : UInt32, attr : LLVM::Attribute)
+ fun add_function_attr = LLVMAddFunctionAttr(fn : ValueRef, pa : LLVM::Attribute)
+ fun get_function_attr = LLVMGetFunctionAttr(fn : ValueRef) : LLVM::Attribute
+ fun get_attribute = LLVMGetAttribute(arg : ValueRef) : LLVM::Attribute
+- {% else %}
++ {% else %} # LLVM >= 3.9
+ type AttributeRef = Void*
+ alias AttributeIndex = UInt
+
+diff --git a/src/llvm/lib_llvm_ext.cr b/src/llvm/lib_llvm_ext.cr
+index 84c65cccb..953567eb8 100644
+--- a/src/llvm/lib_llvm_ext.cr
++++ b/src/llvm/lib_llvm_ext.cr
+@@ -13,19 +13,11 @@ lib LibLLVMExt
+ fun create_di_builder = LLVMNewDIBuilder(LibLLVM::ModuleRef) : DIBuilder
+ fun di_builder_finalize = LLVMDIBuilderFinalize(DIBuilder)
+
+- {% if LibLLVM::IS_36 || LibLLVM::IS_35 %}
+- fun di_builder_create_function = LLVMDIBuilderCreateFunction(
+- builder : DIBuilder, scope : Metadata, name : Char*,
+- linkage_name : Char*, file : Metadata, line : UInt,
+- composite_type : Metadata, is_local_to_unit : Int, is_definition : Int,
+- scope_line : UInt, flags : LLVM::DIFlags, is_optimized : Int, func : LibLLVM::ValueRef) : Metadata
+- {% else %}
+- fun di_builder_create_function = LLVMDIBuilderCreateFunction(
+- builder : DIBuilder, scope : Metadata, name : Char*,
+- linkage_name : Char*, file : Metadata, line : UInt,
+- composite_type : Metadata, is_local_to_unit : Bool, is_definition : Bool,
+- scope_line : UInt, flags : LLVM::DIFlags, is_optimized : Bool, func : LibLLVM::ValueRef) : Metadata
+- {% end %}
++ fun di_builder_create_function = LLVMDIBuilderCreateFunction(
++ builder : DIBuilder, scope : Metadata, name : Char*,
++ linkage_name : Char*, file : Metadata, line : UInt,
++ composite_type : Metadata, is_local_to_unit : Bool, is_definition : Bool,
++ scope_line : UInt, flags : LLVM::DIFlags, is_optimized : Bool, func : LibLLVM::ValueRef) : Metadata
+
+ fun di_builder_create_file = LLVMDIBuilderCreateFile(builder : DIBuilder, file : Char*, dir : Char*) : Metadata
+ fun di_builder_create_compile_unit = LLVMDIBuilderCreateCompileUnit(builder : DIBuilder,
+@@ -94,17 +86,12 @@ lib LibLLVMExt
+ align_in_bits : UInt64,
+ name : Char*) : Metadata
+
+- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
+- fun temporary_md_node = LLVMTemporaryMDNode(context : LibLLVM::ContextRef, mds : Metadata*, count : UInt) : Metadata
+- fun metadata_replace_all_uses_with = LLVMMetadataReplaceAllUsesWith(Metadata, Metadata)
+- {% else %}
+- fun di_builder_create_replaceable_composite_type = LLVMDIBuilderCreateReplaceableCompositeType(builder : DIBuilder,
+- scope : Metadata,
+- name : Char*,
+- file : Metadata,
+- line : UInt) : Metadata
+- fun di_builder_replace_temporary = LLVMDIBuilderReplaceTemporary(builder : DIBuilder, from : Metadata, to : Metadata)
+- {% end %}
++ fun di_builder_create_replaceable_composite_type = LLVMDIBuilderCreateReplaceableCompositeType(builder : DIBuilder,
++ scope : Metadata,
++ name : Char*,
++ file : Metadata,
++ line : UInt) : Metadata
++ fun di_builder_replace_temporary = LLVMDIBuilderReplaceTemporary(builder : DIBuilder, from : Metadata, to : Metadata)
+
+ fun set_current_debug_location = LLVMSetCurrentDebugLocation2(LibLLVM::BuilderRef, Int, Int, Metadata, Metadata)
+
+diff --git a/src/llvm/module.cr b/src/llvm/module.cr
+index cb71e3b21..c15a56e77 100644
+--- a/src/llvm/module.cr
++++ b/src/llvm/module.cr
+@@ -6,7 +6,7 @@ class LLVM::Module
+
+ getter context : Context
+
+- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
++ {% if LibLLVM::IS_38 %}
+ def initialize(@unwrap : LibLLVM::ModuleRef, @name : String, @context : Context)
+ @owned = false
+ end
+@@ -14,7 +14,7 @@ class LLVM::Module
+ def name : String
+ @name
+ end
+- {% else %}
++ {% else %} # LLVM >= 3.9
+ def initialize(@unwrap : LibLLVM::ModuleRef, @context : Context)
+ @owned = false
+ end
+@@ -34,9 +34,9 @@ class LLVM::Module
+ end
+
+ def data_layout=(data : TargetData)
+- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
++ {% if LibLLVM::IS_38 %}
+ LibLLVM.set_data_layout(self, data.to_data_layout_string)
+- {% else %}
++ {% else %} # LLVM >= 3.9
+ LibLLVM.set_module_data_layout(self, data)
+ {% end %}
+ end
+@@ -57,11 +57,9 @@ class LLVM::Module
+ LibLLVM.write_bitcode_to_file self, filename
+ end
+
+- {% unless LibLLVM::IS_35 %}
+- def write_bitcode_to_memory_buffer
+- MemoryBuffer.new(LibLLVM.write_bitcode_to_memory_buffer self)
+- end
+- {% end %}
++ def write_bitcode_to_memory_buffer
++ MemoryBuffer.new(LibLLVM.write_bitcode_to_memory_buffer self)
++ end
+
+ def write_bitcode_to_fd(fd : Int, should_close = false, buffered = false)
+ LibLLVM.write_bitcode_to_fd(self, fd, should_close ? 1 : 0, buffered ? 1 : 0)
+diff --git a/src/llvm/module_pass_manager.cr b/src/llvm/module_pass_manager.cr
+index 10bfa60bd..519227809 100644
+--- a/src/llvm/module_pass_manager.cr
++++ b/src/llvm/module_pass_manager.cr
+@@ -3,12 +3,6 @@ class LLVM::ModulePassManager
+ @unwrap = LibLLVM.pass_manager_create
+ end
+
+- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
+- def add_target_data(target_data)
+- LibLLVM.add_target_data target_data, self
+- end
+- {% end %}
+-
+ def run(mod)
+ LibLLVM.run_pass_manager(self, mod) != 0
+ end
+diff --git a/src/llvm/target_machine.cr b/src/llvm/target_machine.cr
+index e4bb081e9..42e44abe2 100644
+--- a/src/llvm/target_machine.cr
++++ b/src/llvm/target_machine.cr
+@@ -9,9 +9,9 @@ class LLVM::TargetMachine
+
+ def data_layout
+ @layout ||= begin
+- layout = {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
++ layout = {% if LibLLVM::IS_38 %}
+ LibLLVM.get_target_machine_data(self)
+- {% else %}
++ {% else %} # LLVM >= 3.9
+ LibLLVM.create_target_data_layout(self)
+ {% end %}
+ layout ? TargetData.new(layout) : raise "Missing layout for #{self}"
+--
+2.14.1
+
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2017-11-25 19:58 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2017-11-25 19:58 UTC (permalink / raw
To: gentoo-commits
commit: 4262e73b76bb55bf730ebcda9b357512a8588890
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 25 19:57:26 2017 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Nov 25 19:58:19 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4262e73b
dev-lang/crystal: drop old
Package-Manager: Portage-2.3.16, Repoman-2.3.6
dev-lang/crystal/Manifest | 13 +--
dev-lang/crystal/crystal-0.21.1.ebuild | 91 -------------------
dev-lang/crystal/crystal-0.22.0.ebuild | 97 --------------------
dev-lang/crystal/crystal-0.23.0-r1.ebuild | 100 ---------------------
dev-lang/crystal/crystal-0.23.0.ebuild | 98 --------------------
.../crystal/files/crystal-0.20.5-LDFLAGS.patch | 9 --
.../crystal/files/crystal-0.20.5-verbose.patch | 9 --
7 files changed, 3 insertions(+), 414 deletions(-)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 5f9244681b8..c0ba3024244 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,10 +1,3 @@
-DIST crystal-0.21.1-1-linux-i686.tar.gz 18825516 SHA256 8ab875309aa71d4501995e834850d40538fb66dd9890024ed812777f83085f48 SHA512 790043db666d7f65a3cc9e68511eb8fa03c352d2ca044bb38995ca4ab37b731bf612bf36d6efecd7a1763b22930c67315d0ae3b2e087c1a40ac209564492b5b9 WHIRLPOOL 642e4a6ec71cb33042c1dc0da11cd5e231b58f46afc77aa754bc0fa7d8d5104c4c0625b214d4bd48ad62ef6ad6eaeb33ba3e6040ebabb4a37f5fb20f399ae063
-DIST crystal-0.21.1-1-linux-x86_64.tar.gz 18930207 SHA256 e8a7489aba888cc0deec61e9bda5dd27ab600edb102afc17fa11582b90960875 SHA512 ed7860c93e25546e8df311851b6b9a3abf44e6046cf4cb3208555db80d63afc0ce45fdfdb1833f67f2e62f9a6b2d015ba5674d9273d572de15d7515aa481ae1f WHIRLPOOL c70cad45911e5ac4fd62ad42d13507280feccfbae46e682eb5eec81ec49de67e49f7384ad7d127a2d8624c4a1b4a425aded4a2f3a0b6b59025b31f0415864e95
-DIST crystal-0.21.1.tar.gz 1586701 SHA256 eb93de3b388641fd2a09a2d10ab9fe40a58148d888fc48e4583a86ee1ddb1085 SHA512 1deaf696b715efee841b0a07a1dca9e5fad31896a7fbfe8ed69a3fb2dc72cc71c38d003c660ab61c4ab3dcb9e0e2687e714a78ada55b51b42da0e0a0411c2208 WHIRLPOOL 1eaacc4d50b1f5cc0237f9413f54d8cd12837edc348a287951d1cb6a03f3ce29130407ccb9a462dab72f04c369eccf595231127c6aae4c716a8c9f92da36290e
-DIST crystal-0.22.0-1-linux-i686.tar.gz 18884966 SHA256 c084846d3f9e0c3cfcba6a79fe4e0cf6c6cb6801826a969460ecf2a47abd0fe9 SHA512 b307cc7f91b6d9f1e9a852c96e3d50b54bb5d32fefeb0ed8543c000783d51335ff60b9b4f684fbeb249acd54c1f55aa79ff2d36e2b95d5871aca58090bd03740 WHIRLPOOL fc98c770b754920f93cddb50b3edd4c43096ca605f2c12e93a23c3a0be5c93c5fa89b5cfa8ae1528ed20af63e1733419825af03702f0ffd5eb457bc4c766ad2d
-DIST crystal-0.22.0-1-linux-x86_64.tar.gz 18980187 SHA256 789d7b844886133428248605113ede9174c6ea4ba47d96a13f0efd1565b5810d SHA512 466aabf4f875278f5afb3238011e784928dbb234ea58ba1a3a649fca94481804c118639739134a370b5052dce6b17601a5c9d86162264934beb030d5f64f4203 WHIRLPOOL b2ece8a95c9036eebaf62a2d55f11b5010a35149649c56e916153b5596bc8cdb7f62a57ac98d44d553227e56c06fb7cd0a0d7f4637220d7ed94819c93e30f874
-DIST crystal-0.22.0.tar.gz 1597215 SHA256 5b9f11d9710ca9bd971a5afb94d369fd8dfaee103d7edf1c9fbebb2f21898547 SHA512 62d484b0c204c7213fc6eb38e59c730f6ba11d30d7b1027dcc5ae2f12a88808cd57628e21619875943714337bf181a8ae6739608c7435fdf18224950151aad21 WHIRLPOOL 6810d08a6284a365b27c86071c5943b072fb0a842157909715bc9de392d584e2b73b190f034dddd47f49b2a47cf730b5530e7d612800175e5b1f0b2dc0b59df0
-DIST crystal-0.23.0-1-linux-i686.tar.gz 18498501 SHA256 0a758770e6cb277bc5ed38fb6edafbf820b99527b65d6a44fd9f3a4c4743b70f SHA512 8745114c4824d2859c569ed1bd1057d6d649d57b10d41d22c17627f623704eb98ec2e3ab2bf06622de624906f53e053975a6b9d852aeaafeae4f43585609de28 WHIRLPOOL 5601fa0fc8d7e3ce2ecfea534135437645bb982a009e4c00349a7b9eb1fdcf193f648d6decbf90b41732d08fd1eb9ba92f4945de97f4138092cdc1efc80f1b92
-DIST crystal-0.23.0-1-linux-x86_64.tar.gz 18729061 SHA256 1d0348e1df3c56f9c29a3a76254c074846389fe5bed659c2cc1051bab83e1a5a SHA512 6a4e427b4ab3c3be6efcfaee5c1a19eff04eaf00db949d1e1ba8f29c3277affe96a7aba4273d93fd05251453d5b5b937aa792bc448ff2f6d6aa7f2b17d175f75 WHIRLPOOL cf9056733e0eea87cf58b7c488c28942a79020a3a5b38ff88eb9f9b04e61678201d647a5821282b4d0c4bb330ca8aced7520c22b19693f5e39533875666fda8e
-DIST crystal-0.23.0.tar.gz 1637983 SHA256 9b65904bb55100994a3b8022b9c553e5aa78979f459c8b10aa64053a65e5d517 SHA512 41ae9391d9183f8bdbffc02350d3aadc22c9c76a4476d55a4f8ec4c4acee80495601077a49e4f6135a80a937767fe39a28044fb6b5c070b05d2ee562fab65bfd WHIRLPOOL fe06c040268a89b1c0cf22fb46e6a938517a41644a7247f83f3a6981b988a7d8fbbc1d2bef019437c1796f148957cf7496a07b5b4e6c9acc881a3f4c06dd2eef
-DIST crystal-0.23.1.tar.gz 1646650 SHA256 8cf1b9a4eab29fca2f779ea186ae18f7ce444ce189c621925fa1a0c61dd5ff55 SHA512 06ee0d45cc79cc343d04c346e9cd47b6e4ebc79bf21833662f268f9604f7d2080f7696824e1959de341539f801ae8f898fe1d7b18e4c75378d4eb191878668d5 WHIRLPOOL 944d35f0bfe0d567fd51567775c33671895ede8596222a94e89efe349461432565aae4f0cb7483fb696e0a685c25764ac4bcfc16971dd1f2db33c510f1a04059
+DIST crystal-0.23.0-1-linux-i686.tar.gz 18498501 BLAKE2B 7a8e4e5a2b1425b6effe0a634b74b28c340c4d23c4bfccc0abac4e5d47473e10421d025e68e1fb1fa5b0ba8296108e36cd17d393fb143b8012168d595e5852f9 SHA512 8745114c4824d2859c569ed1bd1057d6d649d57b10d41d22c17627f623704eb98ec2e3ab2bf06622de624906f53e053975a6b9d852aeaafeae4f43585609de28
+DIST crystal-0.23.0-1-linux-x86_64.tar.gz 18729061 BLAKE2B bfca07702b2f7c7d6b11aac864475316cabe86bdba90b1819ecd5cb45769b2b7fd9fb4c9f80e46301785209cc5b35fe39bf689163b9376a32b24f8a685a6281b SHA512 6a4e427b4ab3c3be6efcfaee5c1a19eff04eaf00db949d1e1ba8f29c3277affe96a7aba4273d93fd05251453d5b5b937aa792bc448ff2f6d6aa7f2b17d175f75
+DIST crystal-0.23.1.tar.gz 1646650 BLAKE2B 3105a683e61835d1e514d5d403b00d3dfae01100a9862d6346c45201c5fb6cba879255469652463719998e976afc495ee9fd4f14f829a709f832cd323cfc2b3b SHA512 06ee0d45cc79cc343d04c346e9cd47b6e4ebc79bf21833662f268f9604f7d2080f7696824e1959de341539f801ae8f898fe1d7b18e4c75378d4eb191878668d5
diff --git a/dev-lang/crystal/crystal-0.21.1.ebuild b/dev-lang/crystal/crystal-0.21.1.ebuild
deleted file mode 100644
index 19dbdc212a5..00000000000
--- a/dev-lang/crystal/crystal-0.21.1.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multiprocessing toolchain-funcs
-
-BV=0.21.1-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug examples +xml +yaml"
-
-# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
-DEPEND="
- >=sys-devel/llvm-3.9.0
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- sys-libs/libunwind
- dev-libs/pcl
- dev-libs/gmp:0
-"
-RDEPEND="${DEPEND}
- xml? ( dev-libs/libxml2 )
- yaml? ( dev-libs/libyaml )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.20.5-verbose.patch
- "${FILESDIR}"/${PN}-0.20.5-LDFLAGS.patch
-)
-
-src_compile() {
- emake \
- $(usex debug "" release=1) \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- use doc && emake doc
-}
-
-src_test() {
- emake spec \
- $(usex debug "" release=1) \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV}
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- use examples && dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r doc/.
- fi
-}
diff --git a/dev-lang/crystal/crystal-0.22.0.ebuild b/dev-lang/crystal/crystal-0.22.0.ebuild
deleted file mode 100644
index 534a8852b6f..00000000000
--- a/dev-lang/crystal/crystal-0.22.0.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multiprocessing toolchain-funcs
-
-BV=0.22.0-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
-
-# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
-DEPEND="
- >=sys-devel/llvm-3.9.0
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- sys-libs/libunwind
- dev-libs/pcl
- dev-libs/gmp:0
-"
-RDEPEND="${DEPEND}
- xml? ( dev-libs/libxml2 )
- yaml? ( dev-libs/libyaml )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.20.5-verbose.patch
- "${FILESDIR}"/${PN}-0.20.5-LDFLAGS.patch
-)
-
-src_prepare() {
- default
-
- use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
-}
-
-src_compile() {
- emake \
- $(usex debug "" release=1) \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- use doc && emake doc
-}
-
-src_test() {
- emake spec \
- $(usex debug "" release=1) \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV}
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- use examples && dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r doc/.
- fi
-}
diff --git a/dev-lang/crystal/crystal-0.23.0-r1.ebuild b/dev-lang/crystal/crystal-0.23.0-r1.ebuild
deleted file mode 100644
index b526f802656..00000000000
--- a/dev-lang/crystal/crystal-0.23.0-r1.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit bash-completion-r1 multiprocessing toolchain-funcs
-
-BV=0.23.0-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
-
-# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
-DEPEND="
- >=sys-devel/llvm-3.9.0
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- sys-libs/libunwind
- dev-libs/pcl
- dev-libs/gmp:0
-"
-RDEPEND="${DEPEND}
- xml? ( dev-libs/libxml2 )
- yaml? ( dev-libs/libyaml )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.23.0-verbose-LDFLAGS.patch
-)
-
-src_prepare() {
- default
-
- use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
-}
-
-src_compile() {
- emake \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- use doc && emake doc
-}
-
-src_test() {
- emake spec \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV}
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- use examples && dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r doc/.
- fi
-
- newbashcomp etc/completion.bash ${PN}
-}
diff --git a/dev-lang/crystal/crystal-0.23.0.ebuild b/dev-lang/crystal/crystal-0.23.0.ebuild
deleted file mode 100644
index 5df6f0b6440..00000000000
--- a/dev-lang/crystal/crystal-0.23.0.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multiprocessing toolchain-funcs
-
-BV=0.23.0-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
-
-# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
-DEPEND="
- >=sys-devel/llvm-3.9.0
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- sys-libs/libunwind
- dev-libs/pcl
- dev-libs/gmp:0
-"
-RDEPEND="${DEPEND}
- xml? ( dev-libs/libxml2 )
- yaml? ( dev-libs/libyaml )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.23.0-verbose-LDFLAGS.patch
-)
-
-src_prepare() {
- default
-
- use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
-}
-
-src_compile() {
- emake \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- use doc && emake doc
-}
-
-src_test() {
- emake spec \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV}
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- use examples && dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r doc/.
- fi
-}
diff --git a/dev-lang/crystal/files/crystal-0.20.5-LDFLAGS.patch b/dev-lang/crystal/files/crystal-0.20.5-LDFLAGS.patch
deleted file mode 100644
index 42970a84a7c..00000000000
--- a/dev-lang/crystal/files/crystal-0.20.5-LDFLAGS.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git a/Makefile b/Makefile
-index fa71479..d316bbc 100644
---- a/Makefile
-+++ b/Makefile
-@@ -24,3 +24,3 @@ SOURCES := $(shell find src -name '*.cr')
- SPEC_SOURCES := $(shell find spec -name '*.cr')
--FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose )
-+FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
- VERBOSE := $(if $(verbose),-v )
diff --git a/dev-lang/crystal/files/crystal-0.20.5-verbose.patch b/dev-lang/crystal/files/crystal-0.20.5-verbose.patch
deleted file mode 100644
index 6a0a301b5c0..00000000000
--- a/dev-lang/crystal/files/crystal-0.20.5-verbose.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 1f53d40..fa71479 100644
---- a/Makefile
-+++ b/Makefile
-@@ -24,3 +24,3 @@ SOURCES := $(shell find src -name '*.cr')
- SPEC_SOURCES := $(shell find spec -name '*.cr')
--FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(threads),--threads $(threads) )$(if $(debug),-d )
-+FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose )
- VERBOSE := $(if $(verbose),-v )
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2017-12-11 20:03 Michał Górny
0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2017-12-11 20:03 UTC (permalink / raw
To: gentoo-commits
commit: e4e28b774ec066428e0116b94af8baad3e95c559
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 11 20:01:09 2017 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Dec 11 20:03:38 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4e28b77
dev-lang/crystal: [QA] Move patches to a distfile
dev-lang/crystal/Manifest | 1 +
dev-lang/crystal/crystal-0.23.1.ebuild | 7 +-
.../files/crystal-0.22.0-blocking-stdio-hack.patch | 20 -
.../files/crystal-0.23.0-verbose-LDFLAGS.patch | 9 -
dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch | 837 ---------------------
5 files changed, 5 insertions(+), 869 deletions(-)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index c0ba3024244..29524660167 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,3 +1,4 @@
DIST crystal-0.23.0-1-linux-i686.tar.gz 18498501 BLAKE2B 7a8e4e5a2b1425b6effe0a634b74b28c340c4d23c4bfccc0abac4e5d47473e10421d025e68e1fb1fa5b0ba8296108e36cd17d393fb143b8012168d595e5852f9 SHA512 8745114c4824d2859c569ed1bd1057d6d649d57b10d41d22c17627f623704eb98ec2e3ab2bf06622de624906f53e053975a6b9d852aeaafeae4f43585609de28
DIST crystal-0.23.0-1-linux-x86_64.tar.gz 18729061 BLAKE2B bfca07702b2f7c7d6b11aac864475316cabe86bdba90b1819ecd5cb45769b2b7fd9fb4c9f80e46301785209cc5b35fe39bf689163b9376a32b24f8a685a6281b SHA512 6a4e427b4ab3c3be6efcfaee5c1a19eff04eaf00db949d1e1ba8f29c3277affe96a7aba4273d93fd05251453d5b5b937aa792bc448ff2f6d6aa7f2b17d175f75
+DIST crystal-0.23.1-patchset.tar.bz2 7268 BLAKE2B 135990ac9f1a225f169dbc5bb6034d2194d9fc917954764564d68afec09af703382743965a801c9ce54a5866af60847b4c4fc0b9daf2cf5ea99052fbeb771b2a SHA512 68896fc5d1772eeb3dd263f1615fc8031a63d0f3eebca1feb35165adf14a610157302541c84cbc9031a3070fd5566ffe88ad03a8c523f55980520e5614b00b89
DIST crystal-0.23.1.tar.gz 1646650 BLAKE2B 3105a683e61835d1e514d5d403b00d3dfae01100a9862d6346c45201c5fb6cba879255469652463719998e976afc495ee9fd4f14f829a709f832cd323cfc2b3b SHA512 06ee0d45cc79cc343d04c346e9cd47b6e4ebc79bf21833662f268f9604f7d2080f7696824e1959de341539f801ae8f898fe1d7b18e4c75378d4eb191878668d5
diff --git a/dev-lang/crystal/crystal-0.23.1.ebuild b/dev-lang/crystal/crystal-0.23.1.ebuild
index 08967bd554f..41f26d88e36 100644
--- a/dev-lang/crystal/crystal-0.23.1.ebuild
+++ b/dev-lang/crystal/crystal-0.23.1.ebuild
@@ -12,6 +12,7 @@ BV_X86=${BV}-linux-i686
DESCRIPTION="The Crystal Programming Language"
HOMEPAGE="https://crystal-lang.org"
SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~mgorny/dist/${P}-patchset.tar.bz2
amd64? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_AMD64}.tar.gz )
x86? ( https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_X86}.tar.gz )"
@@ -37,14 +38,14 @@ RDEPEND="${DEPEND}
"
PATCHES=(
- "${FILESDIR}"/${PN}-0.23.0-verbose-LDFLAGS.patch
- "${FILESDIR}"/${PN}-0.23.1-llvm-5.patch
+ "${WORKDIR}"/${P}-patchset/${PN}-0.23.0-verbose-LDFLAGS.patch
+ "${WORKDIR}"/${P}-patchset/${PN}-0.23.1-llvm-5.patch
)
src_prepare() {
default
- use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+ use blocking-stdio-hack && eapply "${WORKDIR}"/${P}-patchset/${PN}-0.22.0-blocking-stdio-hack.patch
}
src_compile() {
diff --git a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
deleted file mode 100644
index 07b7dba7be6..00000000000
--- a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Workaround tty corruption in crystal.
-
-Patch restores blocking mode of file desriptors
-in exchange of potential runtime deadlocks
-when dealing with stdio.
-
-Reported-by: Renich Bon Ciric
-Bug: https://github.com/crystal-lang/crystal/issues/2065
-Bug: https://bugs.gentoo.org/616256
-diff --git a/src/compiler/crystal/stdio.cr b/src/compiler/crystal/stdio.cr
-new file mode 100644
-index 000000000..e65f65089
---- /dev/null
-+++ b/src/compiler/crystal/stdio.cr
-@@ -0,0 +1,5 @@
-+module Crystal
-+ STDIN.blocking = true
-+ STDOUT.blocking=true
-+ STDERR.blocking = true
-+end
diff --git a/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch b/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch
deleted file mode 100644
index 35eace15dae..00000000000
--- a/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git a/Makefile b/Makefile
-index eff69e5..5c0c024 100644
---- a/Makefile
-+++ b/Makefile
-@@ -28,3 +28,3 @@ SOURCES := $(shell find src -name '*.cr')
- SPEC_SOURCES := $(shell find spec -name '*.cr')
--FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )
-+FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
- SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
diff --git a/dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch b/dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch
deleted file mode 100644
index bbfd922149e..00000000000
--- a/dev-lang/crystal/files/crystal-0.23.1-llvm-5.patch
+++ /dev/null
@@ -1,837 +0,0 @@
-https://bugs.gentoo.org/630634
-diff --git a/.gitignore b/.gitignore
-index 9a883edfd..5f852d930 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -12,5 +12,6 @@ all_spec
- /tmp
- /doc/
- /src/llvm/ext/llvm_ext.o
-+/src/llvm/ext/llvm_ext.dwo
- /src/ext/*.o
- /src/ext/libcrystal.a
-diff --git a/Makefile b/Makefile
-index a5dc0d7e3..14a21bb86 100644
---- a/Makefile
-+++ b/Makefile
-@@ -37,8 +37,6 @@ LLVM_CONFIG_FINDER := \
- (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.9*) command -v llvm-config;; *) false;; esac)) || \
- command -v llvm-config-3.8 || command -v llvm-config38 || \
- (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.8*) command -v llvm-config;; *) false;; esac)) || \
-- command -v llvm-config-3.6 || command -v llvm-config36 || \
-- command -v llvm-config-3.5 || command -v llvm-config35 || \
- command -v llvm-config
- LLVM_CONFIG := $(shell $(LLVM_CONFIG_FINDER))
- LLVM_EXT_DIR = src/llvm/ext
-diff --git a/src/compiler/crystal/compiler.cr b/src/compiler/crystal/compiler.cr
-index a2bed9a95..afc7976e3 100644
---- a/src/compiler/crystal/compiler.cr
-+++ b/src/compiler/crystal/compiler.cr
-@@ -447,9 +447,6 @@ module Crystal
-
- protected def optimize(llvm_mod)
- fun_pass_manager = llvm_mod.new_function_pass_manager
-- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
-- fun_pass_manager.add_target_data target_machine.data_layout
-- {% end %}
- pass_manager_builder.populate fun_pass_manager
- fun_pass_manager.run llvm_mod
- module_pass_manager.run llvm_mod
-@@ -460,9 +457,6 @@ module Crystal
- private def module_pass_manager
- @module_pass_manager ||= begin
- mod_pass_manager = LLVM::ModulePassManager.new
-- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
-- mod_pass_manager.add_target_data target_machine.data_layout
-- {% end %}
- pass_manager_builder.populate mod_pass_manager
- mod_pass_manager
- end
-@@ -554,54 +548,29 @@ module Crystal
- can_reuse_previous_compilation =
- !compiler.emit && !@bc_flags_changed && File.exists?(bc_name) && File.exists?(object_name)
-
-- {% if LibLLVM::IS_35 %}
-- # In LLVM 3.5 we can't write a bitcode to memory,
-- # so instead we write it to another file
-- bc_name_new = self.bc_name_new
-- llvm_mod.write_bitcode_to_file(bc_name_new)
--
-- if can_reuse_previous_compilation
-- if FileUtils.cmp(bc_name, bc_name_new)
-- # If the user cancelled a previous compilation it might be that
-- # the .o file is empty
-- if File.size(object_name) > 0
-- File.delete bc_name_new
-- must_compile = false
-- end
-- end
-- end
-+ memory_buffer = llvm_mod.write_bitcode_to_memory_buffer
-
-- if must_compile
-- # Create/overwrite the .bc file (for next compilations)
-- File.rename(bc_name_new, bc_name)
-- compiler.optimize llvm_mod if compiler.release?
-- compiler.target_machine.emit_obj_to_file llvm_mod, object_name
-- end
-- {% else %}
-- memory_buffer = llvm_mod.write_bitcode_to_memory_buffer
--
-- if can_reuse_previous_compilation
-- memory_io = IO::Memory.new(memory_buffer.to_slice)
-- changed = File.open(bc_name) { |bc_file| !FileUtils.cmp(bc_file, memory_io) }
--
-- # If the user cancelled a previous compilation
-- # it might be that the .o file is empty
-- if !changed && File.size(object_name) > 0
-- must_compile = false
-- memory_buffer.dispose
-- memory_buffer = nil
-- else
-- # We need to compile, so we'll write the memory buffer to file
-- end
-- end
-+ if can_reuse_previous_compilation
-+ memory_io = IO::Memory.new(memory_buffer.to_slice)
-+ changed = File.open(bc_name) { |bc_file| !FileUtils.cmp(bc_file, memory_io) }
-
-- # If there's a memory buffer, it means we must create a .o from it
-- if memory_buffer
-- # Create the .bc file (for next compilations)
-- File.write(bc_name, memory_buffer.to_slice)
-+ # If the user cancelled a previous compilation
-+ # it might be that the .o file is empty
-+ if !changed && File.size(object_name) > 0
-+ must_compile = false
- memory_buffer.dispose
-+ memory_buffer = nil
-+ else
-+ # We need to compile, so we'll write the memory buffer to file
- end
-- {% end %}
-+ end
-+
-+ # If there's a memory buffer, it means we must create a .o from it
-+ if memory_buffer
-+ # Create the .bc file (for next compilations)
-+ File.write(bc_name, memory_buffer.to_slice)
-+ memory_buffer.dispose
-+ end
-
- if must_compile
- compiler.optimize llvm_mod if compiler.release?
-diff --git a/src/llvm.cr b/src/llvm.cr
-index 44a03c272..f9b31cf4b 100644
---- a/src/llvm.cr
-+++ b/src/llvm.cr
-@@ -94,11 +94,5 @@ module LLVM
- string
- end
-
-- {% if LibLLVM::IS_35 %}
-- DEBUG_METADATA_VERSION = 1
-- {% elsif LibLLVM::IS_36 %}
-- DEBUG_METADATA_VERSION = 2
-- {% else %}
-- DEBUG_METADATA_VERSION = 3
-- {% end %}
-+ DEBUG_METADATA_VERSION = 3
- end
-diff --git a/src/llvm/context.cr b/src/llvm/context.cr
-index 8485eedf1..7d66a4365 100644
---- a/src/llvm/context.cr
-+++ b/src/llvm/context.cr
-@@ -9,9 +9,9 @@ class LLVM::Context
- end
-
- def new_module(name : String) : Module
-- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
-+ {% if LibLLVM::IS_38 %}
- Module.new(LibLLVM.module_create_with_name_in_context(name, self), name, self)
-- {% else %}
-+ {% else %} # LLVM >= 3.9
- Module.new(LibLLVM.module_create_with_name_in_context(name, self), self)
- {% end %}
- end
-@@ -104,9 +104,9 @@ class LLVM::Context
- if ret != 0 && msg
- raise LLVM.string_and_dispose(msg)
- end
-- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
-+ {% if LibLLVM::IS_38 %}
- Module.new(mod, "unknown", self)
-- {% else %}
-+ {% else %} # LLVM >= 3.9
- Module.new(mod, self)
- {% end %}
- end
-diff --git a/src/llvm/di_builder.cr b/src/llvm/di_builder.cr
-index b8c0fd628..79571d2c0 100644
---- a/src/llvm/di_builder.cr
-+++ b/src/llvm/di_builder.cr
-@@ -31,16 +31,8 @@ struct LLVM::DIBuilder
-
- def create_function(scope, name, linkage_name, file, line, composite_type, is_local_to_unit, is_definition,
- scope_line, flags, is_optimized, func)
-- {% if LibLLVM::IS_36 || LibLLVM::IS_35 %}
-- LibLLVMExt.di_builder_create_function(self, scope, name, linkage_name, file, line, composite_type,
-- is_local_to_unit ? 1 : 0,
-- is_definition ? 1 : 0,
-- scope_line, flags,
-- is_optimized ? 1 : 0, func)
-- {% else %}
-- LibLLVMExt.di_builder_create_function(self, scope, name, linkage_name, file, line, composite_type,
-- is_local_to_unit, is_definition, scope_line, flags, is_optimized, func)
-- {% end %}
-+ LibLLVMExt.di_builder_create_function(self, scope, name, linkage_name, file, line, composite_type,
-+ is_local_to_unit, is_definition, scope_line, flags, is_optimized, func)
- end
-
- def create_auto_variable(scope, name, file, line, type, align_in_bits)
-@@ -87,19 +79,11 @@ struct LLVM::DIBuilder
- end
-
- def create_replaceable_composite_type(scope, name, file, line, context : Context)
-- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
-- LibLLVMExt.temporary_md_node(context, nil, 0).as(LibLLVMExt::Metadata)
-- {% else %}
-- LibLLVMExt.di_builder_create_replaceable_composite_type(self, scope, name, file, line)
-- {% end %}
-+ LibLLVMExt.di_builder_create_replaceable_composite_type(self, scope, name, file, line)
- end
-
- def replace_temporary(from, to)
-- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
-- LibLLVMExt.metadata_replace_all_uses_with(from, to)
-- {% else %}
-- LibLLVMExt.di_builder_replace_temporary(self, from, to)
-- {% end %}
-+ LibLLVMExt.di_builder_replace_temporary(self, from, to)
- end
-
- def end
-diff --git a/src/llvm/ext/llvm_ext.cc b/src/llvm/ext/llvm_ext.cc
-index d13446160..3dbdd4220 100644
---- a/src/llvm/ext/llvm_ext.cc
-+++ b/src/llvm/ext/llvm_ext.cc
-@@ -18,35 +18,22 @@ using namespace llvm;
- #define LLVM_VERSION_LE(major, minor) \
- (LLVM_VERSION_MAJOR < (major) || LLVM_VERSION_MAJOR == (major) && LLVM_VERSION_MINOR <= (minor))
-
-+#if LLVM_VERSION_LE(4, 0)
- typedef struct LLVMOpaqueDIBuilder *LLVMDIBuilderRef;
- DEFINE_SIMPLE_CONVERSION_FUNCTIONS(DIBuilder, LLVMDIBuilderRef)
-
--#if LLVM_VERSION_EQ(3, 5)
--typedef LLVMValueRef LLVMMetadataRef;
--typedef Value Metadata;
--#define DIBuilderRef LLVMDIBuilderRef
--
--#else /* LLVM != 3.5 */
- typedef struct LLVMOpaqueMetadata *LLVMMetadataRef;
- DEFINE_ISA_CONVERSION_FUNCTIONS(Metadata, LLVMMetadataRef)
- inline Metadata **unwrap(LLVMMetadataRef *Vals) {
- return reinterpret_cast<Metadata **>(Vals);
- }
--#endif /* LLVM == 3.5 */
--
--#if LLVM_VERSION_LE(3, 6)
--template <typename T> T unwrapDIptr(LLVMMetadataRef v) {
-- return v ? T(unwrap<MDNode>(v)) : T();
--}
--#define DIBuilderRef LLVMDIBuilderRef
-+#endif
-
--#else /* LLVM > 3.6 */
- typedef DIBuilder *DIBuilderRef;
- #define DIArray DINodeArray
- template <typename T> T *unwrapDIptr(LLVMMetadataRef v) {
- return (T *)(v ? unwrap<MDNode>(v) : NULL);
- }
--#endif /* LLVM <= 3.6 */
-
- #if LLVM_VERSION_LE(3, 6)
- #define OperandBundleDef void
-@@ -66,13 +53,7 @@ void LLVMDIBuilderFinalize(LLVMDIBuilderRef dref) { unwrap(dref)->finalize(); }
-
- LLVMMetadataRef LLVMDIBuilderCreateFile(DIBuilderRef Dref, const char *File,
- const char *Dir) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DIFile F = D->createFile(File, Dir);
-- return wrap(F);
--#else
- return wrap(Dref->createFile(File, Dir));
--#endif
- }
-
- LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(DIBuilderRef Dref, unsigned Lang,
-@@ -82,20 +63,13 @@ LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(DIBuilderRef Dref, unsigned Lang,
- int Optimized,
- const char *Flags,
- unsigned RuntimeVersion) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DICompileUnit CU = D->createCompileUnit(Lang, File, Dir, Producer, Optimized,
-- Flags, RuntimeVersion);
-- return wrap(CU);
--#else
--# if LLVM_VERSION_LE(3, 9)
-+#if LLVM_VERSION_LE(3, 9)
- return wrap(Dref->createCompileUnit(Lang, File, Dir, Producer, Optimized,
- Flags, RuntimeVersion));
--# else
-+#else
- DIFile *F = Dref->createFile(File, Dir);
- return wrap(Dref->createCompileUnit(Lang, F, Producer, Optimized,
- Flags, RuntimeVersion));
--# endif
- #endif
- }
-
-@@ -111,19 +85,11 @@ LLVMMetadataRef LLVMDIBuilderCreateFunction(
- #endif
- bool IsOptimized,
- LLVMValueRef Func) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DISubprogram Sub = D->createFunction(
-- unwrapDI<DIDescriptor>(Scope), Name, LinkageName, unwrapDI<DIFile>(File),
-- Line, unwrapDI<DICompositeType>(CompositeType), IsLocalToUnit,
-- IsDefinition, ScopeLine, Flags, IsOptimized, unwrap<Function>(Func));
--#else
- DISubprogram *Sub = Dref->createFunction(
- unwrapDI<DIScope>(Scope), Name, LinkageName, unwrapDI<DIFile>(File), Line,
- unwrapDI<DISubroutineType>(CompositeType), IsLocalToUnit, IsDefinition,
- ScopeLine, Flags, IsOptimized);
- unwrap<Function>(Func)->setSubprogram(Sub);
--#endif
- return wrap(Sub);
- }
-
-@@ -132,18 +98,8 @@ LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(DIBuilderRef Dref,
- LLVMMetadataRef File,
- unsigned Line,
- unsigned Column) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
--# if LLVM_VERSION_EQ(3, 5)
-- DILexicalBlock LB = D->createLexicalBlock(unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Line, Column, 0);
--# else /* LLVM <= 3.6 && LLVM != 3.5 */
-- DILexicalBlock LB = D->createLexicalBlock(unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Line, Column);
--# endif
-- return wrap(LB);
--#else /* LLVM > 3.6 */
- return wrap(Dref->createLexicalBlock(unwrapDI<DIDescriptor>(Scope),
- unwrapDI<DIFile>(File), Line, Column));
--#endif /* LLVM <= 3.6 */
- }
-
- LLVMMetadataRef LLVMDIBuilderCreateBasicType(DIBuilderRef Dref,
-@@ -151,71 +107,34 @@ LLVMMetadataRef LLVMDIBuilderCreateBasicType(DIBuilderRef Dref,
- uint64_t SizeInBits,
- uint64_t AlignInBits,
- unsigned Encoding) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DIBasicType T = D->createBasicType(Name, SizeInBits, AlignInBits, Encoding);
-- return wrap(T);
--#else
--# if LLVM_VERSION_LE(3, 9)
-+#if LLVM_VERSION_LE(3, 9)
- return wrap(Dref->createBasicType(Name, SizeInBits, AlignInBits, Encoding));
--# else
-+#else
- return wrap(Dref->createBasicType(Name, SizeInBits, Encoding));
--# endif
- #endif
- }
-
- LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(DIBuilderRef Dref,
- LLVMMetadataRef *Data,
- unsigned Length) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
--# if LLVM_VERSION_EQ(3, 5)
-- Value **DataValue = unwrap(Data);
-- ArrayRef<Value *> Elements(DataValue, Length);
-- DIArray A = D->getOrCreateArray(Elements);
--# else /* LLVM <= 3.6 && LLVM != 3.5 */
-- Metadata **DataValue = unwrap(Data);
-- ArrayRef<Metadata *> Elements(DataValue, Length);
-- DITypeArray A = D->getOrCreateTypeArray(Elements);
--# endif
-- return wrap(A);
--#else /* LLVM > 3.6 */
- Metadata **DataValue = unwrap(Data);
- return wrap(
- Dref->getOrCreateTypeArray(ArrayRef<Metadata *>(DataValue, Length))
- .get());
--#endif /* LLVM <= 3.6 */
- }
-
- LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(DIBuilderRef Dref,
- LLVMMetadataRef *Data,
- unsigned Length) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- ArrayRef<Metadata *> elements(unwrap(Data), Length);
-- DIArray a = D->getOrCreateArray(elements);
--
-- return wrap(a);
--#else
- Metadata **DataValue = unwrap(Data);
- return wrap(
- Dref->getOrCreateArray(ArrayRef<Metadata *>(DataValue, Length)).get());
--#endif
- }
-
- LLVMMetadataRef
- LLVMDIBuilderCreateSubroutineType(DIBuilderRef Dref, LLVMMetadataRef File,
- LLVMMetadataRef ParameterTypes) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
--# if LLVM_VERSION_EQ(3, 5)
-- DICompositeType CT = D->createSubroutineType(unwrapDI<DIFile>(File), unwrapDI<DIArray>(ParameterTypes));
--# else /* LLVM <= 3.6 && LLVM != 3.5 */
-- DICompositeType CT = D->createSubroutineType(unwrapDI<DIFile>(File), unwrapDI<DITypeArray>(ParameterTypes));
--# endif
--#else /* LLVM > 3.6 */
- DISubroutineType *CT = Dref->createSubroutineType(DITypeRefArray(unwrap<MDTuple>(ParameterTypes)));
--#endif /* LLVM <= 3.6 */
- return wrap(CT);
- }
-
-@@ -229,21 +148,14 @@ LLVMMetadataRef LLVMDIBuilderCreateAutoVariable(
- DINode::DIFlags Flags,
- #endif
- uint32_t AlignInBits) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DIVariable V = D->createLocalVariable(
-- llvm::dwarf::DW_TAG_auto_variable, unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
-- unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, 0);
--#else
--# if LLVM_VERSION_LE(3, 9)
-+#if LLVM_VERSION_LE(3, 9)
- DILocalVariable *V = Dref->createAutoVariable(
- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
- unwrapDI<DIType>(Ty), AlwaysPreserve, Flags);
--# else
-+#else
- DILocalVariable *V = Dref->createAutoVariable(
- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
- unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, AlignInBits);
--# endif
- #endif
- return wrap(V);
- }
-@@ -258,18 +170,10 @@ LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
- DINode::DIFlags Flags
- #endif
- ) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DIVariable V = D->createLocalVariable(
-- llvm::dwarf::DW_TAG_arg_variable, unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
-- unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, ArgNo);
-- return wrap(V);
--#else
- DILocalVariable *V = Dref->createParameterVariable
- (unwrapDI<DIDescriptor>(Scope), Name, ArgNo, unwrapDI<DIFile>(File), Line,
- unwrapDI<DIType>(Ty), AlwaysPreserve, Flags);
- return wrap(V);
--#endif
- }
-
- LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(DIBuilderRef Dref,
-@@ -278,46 +182,17 @@ LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(DIBuilderRef Dref,
- LLVMMetadataRef Expr,
- LLVMValueRef DL,
- LLVMBasicBlockRef Block) {
--#if LLVM_VERSION_EQ(3, 5)
-- DIBuilder *D = unwrap(Dref);
-- Instruction *Instr =
-- D->insertDeclare(unwrap(Storage), unwrapDI<DIVariable>(VarInfo),
-- unwrap(Block));
-- Instr->setDebugLoc(DebugLoc::getFromDILocation(cast<MDNode>(DL)));
--#endif
--
--#if LLVM_VERSION_EQ(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- Instruction *Instr =
-- D->insertDeclare(unwrap(Storage), unwrapDI<DIVariable>(VarInfo),
-- unwrapDI<DIExpression>(Expr), unwrap(Block));
-- Instr->setDebugLoc(DebugLoc::getFromDILocation(cast<MDNode>(unwrap<MetadataAsValue>(DL)->getMetadata())));
--#endif
--
--#if LLVM_VERSION_GE(3, 7)
- Instruction *Instr =
- Dref->insertDeclare(unwrap(Storage), unwrap<DILocalVariable>(VarInfo),
- unwrapDI<DIExpression>(Expr),
- DebugLoc(cast<MDNode>(unwrap<MetadataAsValue>(DL)->getMetadata())),
- unwrap(Block));
--#endif
--
- return wrap(Instr);
- }
-
- LLVMMetadataRef LLVMDIBuilderCreateExpression(DIBuilderRef Dref, int64_t *Addr,
- size_t Length) {
--#if LLVM_VERSION_LE(3, 6)
--# if LLVM_VERSION_EQ(3, 5)
-- return nullptr;
--# else /* LLVM <= 3.6 && LLVM != 3.5 */
-- DIBuilder *D = unwrap(Dref);
-- DIExpression Expr = D->createExpression(ArrayRef<int64_t>(Addr, Length));
-- return wrap(Expr);
--# endif
--#else /* LLVM > 3.6 */
- return wrap(Dref->createExpression(ArrayRef<int64_t>(Addr, Length)));
--#endif
- }
-
- LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
-@@ -325,30 +200,16 @@ LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
- LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
- uint64_t AlignInBits, LLVMMetadataRef Elements,
- LLVMMetadataRef UnderlyingType) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DICompositeType enumType = D->createEnumerationType(
-- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
-- SizeInBits, AlignInBits, unwrapDI<DIArray>(Elements),
-- unwrapDI<DIType>(UnderlyingType));
--#else
- DICompositeType *enumType = Dref->createEnumerationType(
- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
- SizeInBits, AlignInBits, DINodeArray(unwrapDI<MDTuple>(Elements)),
- unwrapDI<DIType>(UnderlyingType));
--#endif
- return wrap(enumType);
- }
-
- LLVMMetadataRef LLVMDIBuilderCreateEnumerator(DIBuilderRef Dref,
- const char *Name, int64_t Value) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DIEnumerator e = D->createEnumerator(Name, Value);
-- return wrap(e);
--#else
- DIEnumerator *e = Dref->createEnumerator(Name, Value);
--#endif
- return wrap(e);
- }
-
-@@ -367,22 +228,13 @@ LLVMDIBuilderCreateStructType(DIBuilderRef Dref,
- #endif
- LLVMMetadataRef DerivedFrom,
- LLVMMetadataRef Elements) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DICompositeType CT = D->createStructType(
-- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
-- SizeInBits, AlignInBits, Flags, unwrapDI<DIType>(DerivedFrom),
-- unwrapDI<DIArray>(Elements));
--#else
- DICompositeType *CT = Dref->createStructType(
- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
- SizeInBits, AlignInBits, Flags, unwrapDI<DIType>(DerivedFrom),
- DINodeArray(unwrapDI<MDTuple>(Elements)));
--#endif
- return wrap(CT);
- }
-
--#if LLVM_VERSION_GE(3, 8)
- LLVMMetadataRef
- LLVMDIBuilderCreateReplaceableCompositeType(DIBuilderRef Dref,
- LLVMMetadataRef Scope,
-@@ -409,7 +261,6 @@ LLVMDIBuilderReplaceTemporary(DIBuilderRef Dref,
- llvm::TempMDNode fwd_decl(Node);
- Dref->replaceTemporary(std::move(fwd_decl), Type);
- }
--#endif
-
- LLVMMetadataRef
- LLVMDIBuilderCreateMemberType(DIBuilderRef Dref, LLVMMetadataRef Scope,
-@@ -422,16 +273,9 @@ LLVMDIBuilderCreateMemberType(DIBuilderRef Dref, LLVMMetadataRef Scope,
- DINode::DIFlags Flags,
- #endif
- LLVMMetadataRef Ty) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DIDerivedType DT = D->createMemberType(
-- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
-- SizeInBits, AlignInBits, OffsetInBits, Flags, unwrapDI<DIType>(Ty));
--#else
- DIDerivedType *DT = Dref->createMemberType(
- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line,
- SizeInBits, AlignInBits, OffsetInBits, Flags, unwrapDI<DIType>(Ty));
--#endif
- return wrap(DT);
- }
-
-@@ -440,39 +284,24 @@ LLVMMetadataRef LLVMDIBuilderCreatePointerType(DIBuilderRef Dref,
- uint64_t SizeInBits,
- uint64_t AlignInBits,
- const char *Name) {
--#if LLVM_VERSION_LE(3, 6)
-- DIBuilder *D = unwrap(Dref);
-- DIDerivedType T = D->createPointerType(unwrapDI<DIType>(PointeeType),
-- SizeInBits, AlignInBits, Name);
--#else
- DIDerivedType *T = Dref->createPointerType(unwrapDI<DIType>(PointeeType),
-- SizeInBits, AlignInBits, Name);
-+ SizeInBits, AlignInBits,
-+#if LLVM_VERSION_GE(5, 0)
-+ None,
- #endif
-+ Name);
- return wrap(T);
- }
-
- LLVMMetadataRef LLVMTemporaryMDNode(LLVMContextRef C, LLVMMetadataRef *MDs,
- unsigned Count) {
--#if LLVM_VERSION_LE(3, 6)
-- return wrap(MDNode::getTemporary(*unwrap(C),
-- ArrayRef<Metadata *>(unwrap(MDs), Count)));
--#else
- return wrap(MDTuple::getTemporary(*unwrap(C),
- ArrayRef<Metadata *>(unwrap(MDs), Count))
- .release());
--#endif
- }
-
- void LLVMMetadataReplaceAllUsesWith(LLVMMetadataRef MD, LLVMMetadataRef New) {
--#if LLVM_VERSION_LE(3, 6)
--# if LLVM_VERSION_EQ(3, 5)
- auto *Node = unwrap<MDNode>(MD);
--# else /* LLVM <= 3.6 && LLVM != 3.5 */
-- auto *Node = unwrap<MDNodeFwdDecl>(MD);
--# endif
--#else /* LLVM > 3.6 */
-- auto *Node = unwrap<MDNode>(MD);
--#endif
- Node->replaceAllUsesWith(unwrap<MDNode>(New));
- MDNode::deleteTemporary(Node);
- }
-diff --git a/src/llvm/function_pass_manager.cr b/src/llvm/function_pass_manager.cr
-index 979cb9c97..834d72a20 100644
---- a/src/llvm/function_pass_manager.cr
-+++ b/src/llvm/function_pass_manager.cr
-@@ -2,12 +2,6 @@ class LLVM::FunctionPassManager
- def initialize(@unwrap : LibLLVM::PassManagerRef)
- end
-
-- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
-- def add_target_data(target_data)
-- LibLLVM.add_target_data target_data, self
-- end
-- {% end %}
--
- def run(mod : Module)
- changed = false
- run do |runner|
-diff --git a/src/llvm/lib_llvm.cr b/src/llvm/lib_llvm.cr
-index e2c7a9445..5a0b67cdd 100644
---- a/src/llvm/lib_llvm.cr
-+++ b/src/llvm/lib_llvm.cr
-@@ -6,8 +6,6 @@ lib LibLLVM
- (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.9*) command -v llvm-config;; *) false;; esac)) || \
- command -v llvm-config-3.8 || command -v llvm-config38 || \
- (command -v llvm-config > /dev/null && (case "$(llvm-config --version)" in 3.8*) command -v llvm-config;; *) false;; esac)) || \
-- command -v llvm-config-3.6 || command -v llvm-config36 || \
-- command -v llvm-config-3.5 || command -v llvm-config35 || \
- command -v llvm-config
- `.chomp.stringify
- }}
-@@ -32,8 +30,6 @@ end
- IS_40 = {{LibLLVM::VERSION.starts_with?("4.0")}}
- IS_39 = {{LibLLVM::VERSION.starts_with?("3.9")}}
- IS_38 = {{LibLLVM::VERSION.starts_with?("3.8")}}
-- IS_36 = {{LibLLVM::VERSION.starts_with?("3.6")}}
-- IS_35 = {{LibLLVM::VERSION.starts_with?("3.5")}}
- end
- {% end %}
-
-@@ -283,9 +279,7 @@ lib LibLLVM
- fun set_alignment = LLVMSetAlignment(value : ValueRef, bytes : UInt32)
- fun get_return_type = LLVMGetReturnType(TypeRef) : TypeRef
-
-- {% unless LibLLVM::IS_35 %}
-- fun write_bitcode_to_memory_buffer = LLVMWriteBitcodeToMemoryBuffer(mod : ModuleRef) : MemoryBufferRef
-- {% end %}
-+ fun write_bitcode_to_memory_buffer = LLVMWriteBitcodeToMemoryBuffer(mod : ModuleRef) : MemoryBufferRef
-
- fun dispose_memory_buffer = LLVMDisposeMemoryBuffer(buf : MemoryBufferRef) : Void
- fun get_buffer_start = LLVMGetBufferStart(buf : MemoryBufferRef) : UInt8*
-@@ -293,26 +287,22 @@ lib LibLLVM
-
- fun write_bitcode_to_fd = LLVMWriteBitcodeToFD(mod : ModuleRef, fd : LibC::Int, should_close : LibC::Int, unbuffered : LibC::Int) : LibC::Int
-
-- {% if LibLLVM::IS_36 || LibLLVM::IS_35 %}
-- fun add_target_data = LLVMAddTargetData(td : TargetDataRef, pm : PassManagerRef)
-- {% end %}
--
-- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
-+ {% if LibLLVM::IS_38 %}
- fun copy_string_rep_of_target_data = LLVMCopyStringRepOfTargetData(data : TargetDataRef) : UInt8*
- fun get_target_machine_data = LLVMGetTargetMachineData(t : TargetMachineRef) : TargetDataRef
- fun set_data_layout = LLVMSetDataLayout(mod : ModuleRef, data : UInt8*)
-- {% else %}
-+ {% else %} # LLVM >= 3.9
- fun create_target_data_layout = LLVMCreateTargetDataLayout(t : TargetMachineRef) : TargetDataRef
- fun set_module_data_layout = LLVMSetModuleDataLayout(mod : ModuleRef, data : TargetDataRef)
- {% end %}
-
-- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
-+ {% if LibLLVM::IS_38 %}
- fun add_attribute = LLVMAddAttribute(arg : ValueRef, attr : LLVM::Attribute)
- fun add_instr_attribute = LLVMAddInstrAttribute(instr : ValueRef, index : UInt32, attr : LLVM::Attribute)
- fun add_function_attr = LLVMAddFunctionAttr(fn : ValueRef, pa : LLVM::Attribute)
- fun get_function_attr = LLVMGetFunctionAttr(fn : ValueRef) : LLVM::Attribute
- fun get_attribute = LLVMGetAttribute(arg : ValueRef) : LLVM::Attribute
-- {% else %}
-+ {% else %} # LLVM >= 3.9
- type AttributeRef = Void*
- alias AttributeIndex = UInt
-
-diff --git a/src/llvm/lib_llvm_ext.cr b/src/llvm/lib_llvm_ext.cr
-index 84c65cccb..953567eb8 100644
---- a/src/llvm/lib_llvm_ext.cr
-+++ b/src/llvm/lib_llvm_ext.cr
-@@ -13,19 +13,11 @@ lib LibLLVMExt
- fun create_di_builder = LLVMNewDIBuilder(LibLLVM::ModuleRef) : DIBuilder
- fun di_builder_finalize = LLVMDIBuilderFinalize(DIBuilder)
-
-- {% if LibLLVM::IS_36 || LibLLVM::IS_35 %}
-- fun di_builder_create_function = LLVMDIBuilderCreateFunction(
-- builder : DIBuilder, scope : Metadata, name : Char*,
-- linkage_name : Char*, file : Metadata, line : UInt,
-- composite_type : Metadata, is_local_to_unit : Int, is_definition : Int,
-- scope_line : UInt, flags : LLVM::DIFlags, is_optimized : Int, func : LibLLVM::ValueRef) : Metadata
-- {% else %}
-- fun di_builder_create_function = LLVMDIBuilderCreateFunction(
-- builder : DIBuilder, scope : Metadata, name : Char*,
-- linkage_name : Char*, file : Metadata, line : UInt,
-- composite_type : Metadata, is_local_to_unit : Bool, is_definition : Bool,
-- scope_line : UInt, flags : LLVM::DIFlags, is_optimized : Bool, func : LibLLVM::ValueRef) : Metadata
-- {% end %}
-+ fun di_builder_create_function = LLVMDIBuilderCreateFunction(
-+ builder : DIBuilder, scope : Metadata, name : Char*,
-+ linkage_name : Char*, file : Metadata, line : UInt,
-+ composite_type : Metadata, is_local_to_unit : Bool, is_definition : Bool,
-+ scope_line : UInt, flags : LLVM::DIFlags, is_optimized : Bool, func : LibLLVM::ValueRef) : Metadata
-
- fun di_builder_create_file = LLVMDIBuilderCreateFile(builder : DIBuilder, file : Char*, dir : Char*) : Metadata
- fun di_builder_create_compile_unit = LLVMDIBuilderCreateCompileUnit(builder : DIBuilder,
-@@ -94,17 +86,12 @@ lib LibLLVMExt
- align_in_bits : UInt64,
- name : Char*) : Metadata
-
-- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
-- fun temporary_md_node = LLVMTemporaryMDNode(context : LibLLVM::ContextRef, mds : Metadata*, count : UInt) : Metadata
-- fun metadata_replace_all_uses_with = LLVMMetadataReplaceAllUsesWith(Metadata, Metadata)
-- {% else %}
-- fun di_builder_create_replaceable_composite_type = LLVMDIBuilderCreateReplaceableCompositeType(builder : DIBuilder,
-- scope : Metadata,
-- name : Char*,
-- file : Metadata,
-- line : UInt) : Metadata
-- fun di_builder_replace_temporary = LLVMDIBuilderReplaceTemporary(builder : DIBuilder, from : Metadata, to : Metadata)
-- {% end %}
-+ fun di_builder_create_replaceable_composite_type = LLVMDIBuilderCreateReplaceableCompositeType(builder : DIBuilder,
-+ scope : Metadata,
-+ name : Char*,
-+ file : Metadata,
-+ line : UInt) : Metadata
-+ fun di_builder_replace_temporary = LLVMDIBuilderReplaceTemporary(builder : DIBuilder, from : Metadata, to : Metadata)
-
- fun set_current_debug_location = LLVMSetCurrentDebugLocation2(LibLLVM::BuilderRef, Int, Int, Metadata, Metadata)
-
-diff --git a/src/llvm/module.cr b/src/llvm/module.cr
-index cb71e3b21..c15a56e77 100644
---- a/src/llvm/module.cr
-+++ b/src/llvm/module.cr
-@@ -6,7 +6,7 @@ class LLVM::Module
-
- getter context : Context
-
-- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
-+ {% if LibLLVM::IS_38 %}
- def initialize(@unwrap : LibLLVM::ModuleRef, @name : String, @context : Context)
- @owned = false
- end
-@@ -14,7 +14,7 @@ class LLVM::Module
- def name : String
- @name
- end
-- {% else %}
-+ {% else %} # LLVM >= 3.9
- def initialize(@unwrap : LibLLVM::ModuleRef, @context : Context)
- @owned = false
- end
-@@ -34,9 +34,9 @@ class LLVM::Module
- end
-
- def data_layout=(data : TargetData)
-- {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
-+ {% if LibLLVM::IS_38 %}
- LibLLVM.set_data_layout(self, data.to_data_layout_string)
-- {% else %}
-+ {% else %} # LLVM >= 3.9
- LibLLVM.set_module_data_layout(self, data)
- {% end %}
- end
-@@ -57,11 +57,9 @@ class LLVM::Module
- LibLLVM.write_bitcode_to_file self, filename
- end
-
-- {% unless LibLLVM::IS_35 %}
-- def write_bitcode_to_memory_buffer
-- MemoryBuffer.new(LibLLVM.write_bitcode_to_memory_buffer self)
-- end
-- {% end %}
-+ def write_bitcode_to_memory_buffer
-+ MemoryBuffer.new(LibLLVM.write_bitcode_to_memory_buffer self)
-+ end
-
- def write_bitcode_to_fd(fd : Int, should_close = false, buffered = false)
- LibLLVM.write_bitcode_to_fd(self, fd, should_close ? 1 : 0, buffered ? 1 : 0)
-diff --git a/src/llvm/module_pass_manager.cr b/src/llvm/module_pass_manager.cr
-index 10bfa60bd..519227809 100644
---- a/src/llvm/module_pass_manager.cr
-+++ b/src/llvm/module_pass_manager.cr
-@@ -3,12 +3,6 @@ class LLVM::ModulePassManager
- @unwrap = LibLLVM.pass_manager_create
- end
-
-- {% if LibLLVM::IS_35 || LibLLVM::IS_36 %}
-- def add_target_data(target_data)
-- LibLLVM.add_target_data target_data, self
-- end
-- {% end %}
--
- def run(mod)
- LibLLVM.run_pass_manager(self, mod) != 0
- end
-diff --git a/src/llvm/target_machine.cr b/src/llvm/target_machine.cr
-index e4bb081e9..42e44abe2 100644
---- a/src/llvm/target_machine.cr
-+++ b/src/llvm/target_machine.cr
-@@ -9,9 +9,9 @@ class LLVM::TargetMachine
-
- def data_layout
- @layout ||= begin
-- layout = {% if LibLLVM::IS_38 || LibLLVM::IS_36 || LibLLVM::IS_35 %}
-+ layout = {% if LibLLVM::IS_38 %}
- LibLLVM.get_target_machine_data(self)
-- {% else %}
-+ {% else %} # LLVM >= 3.9
- LibLLVM.create_target_data_layout(self)
- {% end %}
- layout ? TargetData.new(layout) : raise "Missing layout for #{self}"
---
-2.14.1
-
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2017-12-21 10:13 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2017-12-21 10:13 UTC (permalink / raw
To: gentoo-commits
commit: c0192cdd4f44c25ba6d7c3261a48b522ba4a5ca5
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 21 10:04:41 2017 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Dec 21 10:13:19 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c0192cdd
Revert "dev-lang/crystal: [QA] Move patches to a distfile"
This reverts commit e4e28b774ec066428e0116b94af8baad3e95c559.
There is no policy about patches in distfiles:
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Policies
dev-lang/crystal/crystal-0.23.1.ebuild | 4 ++--
.../files/crystal-0.22.0-blocking-stdio-hack.patch | 20 ++++++++++++++++++++
.../files/crystal-0.23.0-verbose-LDFLAGS.patch | 9 +++++++++
3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/dev-lang/crystal/crystal-0.23.1.ebuild b/dev-lang/crystal/crystal-0.23.1.ebuild
index 41f26d88e36..c1b0b885924 100644
--- a/dev-lang/crystal/crystal-0.23.1.ebuild
+++ b/dev-lang/crystal/crystal-0.23.1.ebuild
@@ -38,14 +38,14 @@ RDEPEND="${DEPEND}
"
PATCHES=(
- "${WORKDIR}"/${P}-patchset/${PN}-0.23.0-verbose-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-0.23.0-verbose-LDFLAGS.patch
"${WORKDIR}"/${P}-patchset/${PN}-0.23.1-llvm-5.patch
)
src_prepare() {
default
- use blocking-stdio-hack && eapply "${WORKDIR}"/${P}-patchset/${PN}-0.22.0-blocking-stdio-hack.patch
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
}
src_compile() {
diff --git a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
new file mode 100644
index 00000000000..07b7dba7be6
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
@@ -0,0 +1,20 @@
+Workaround tty corruption in crystal.
+
+Patch restores blocking mode of file desriptors
+in exchange of potential runtime deadlocks
+when dealing with stdio.
+
+Reported-by: Renich Bon Ciric
+Bug: https://github.com/crystal-lang/crystal/issues/2065
+Bug: https://bugs.gentoo.org/616256
+diff --git a/src/compiler/crystal/stdio.cr b/src/compiler/crystal/stdio.cr
+new file mode 100644
+index 000000000..e65f65089
+--- /dev/null
++++ b/src/compiler/crystal/stdio.cr
+@@ -0,0 +1,5 @@
++module Crystal
++ STDIN.blocking = true
++ STDOUT.blocking=true
++ STDERR.blocking = true
++end
diff --git a/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch b/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch
new file mode 100644
index 00000000000..35eace15dae
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.23.0-verbose-LDFLAGS.patch
@@ -0,0 +1,9 @@
+diff --git a/Makefile b/Makefile
+index eff69e5..5c0c024 100644
+--- a/Makefile
++++ b/Makefile
+@@ -28,3 +28,3 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+-FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )
++FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
+ SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2018-08-09 22:34 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2018-08-09 22:34 UTC (permalink / raw
To: gentoo-commits
commit: a90b30e0ed07c7844a8f79b7a995be8ab03143b5
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 9 20:55:43 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Aug 9 22:34:32 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a90b30e0
dev-lang/crystal: bump up to 0.26.0
Package-Manager: Portage-2.3.45, Repoman-2.3.10
dev-lang/crystal/Manifest | 3 +
dev-lang/crystal/crystal-0.26.0.ebuild | 105 +++++++++++++++++++++
...tal-0.26.0-gentoo-tests-network-sandbox-2.patch | 23 +++++
3 files changed, 131 insertions(+)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 6f848b551cd..eacede05b48 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -7,3 +7,6 @@ DIST crystal-0.24.2-1-linux-i686.tar.gz 17667007 BLAKE2B 73104ce088e161f03a7b4a1
DIST crystal-0.24.2-1-linux-x86_64.tar.gz 35022853 BLAKE2B 5b101a27fef0dfbbf61920d826689a45f400c28afe7383320b69f8887512bcab65cbfe8a2cf35b0c598b06083d1ea5e338f4e2b910db03226ba05195483e4c89 SHA512 21d8e7fc34fc24ccb7e8e2c7aade0c3d6fe17e385f0f00534bb91e886788da0b27ff8276b634f7ae13d6342c7e22c6acd609562bcf1af8fddfdee5e256e1bcf0
DIST crystal-0.24.2.tar.gz 1745462 BLAKE2B 8f3d5cf9e274558a5622aae44c6f7d54d0b3042d08810ddc650f181b91a536a3d0cc2d8fa726b677cce1f8a946319a55b803823596cef0d4d3e63832bfcea720 SHA512 db9fb973eeb2bc72ef91bb894b7c5aea73e727ff46e739aa431d68e556238f346a688a7a43de284afb4667b49366afce3ca423a523bea521180fa8f19ba6862d
DIST crystal-0.25.0.tar.gz 1957613 BLAKE2B 4c2467e39a9bc6745b74c00f755490a2f726e775c2a0d15562af27d2a6771c95c44f79e6b59ad45f61a59566529854d75c980c55a6886538fa98663879477258 SHA512 20f2864919c7710e5aee8112e1c6ab54a2e50b244ac63d374edfed41ab659b11c062f76dbfc38e763a08bdbea9e0a39f3b5cac5e00bf453be3a31d3b0a023917
+DIST crystal-0.25.1-1-linux-i686.tar.gz 39882213 BLAKE2B 35d0045a72ced6ba7348105c9b88e564f85b075af78decd52c40b47b338cd1c7c1b01565430f9aa21251cfd1266041268e037eb616a24475acfa22b1b8ae1448 SHA512 79601b6c586184e064798c4daca3de77f7c81fbc4d0062a558824533f9272f04899c0041b17dce072757f20f7940c99303c6ff1143448b6452e8216ca4bb43dd
+DIST crystal-0.25.1-1-linux-x86_64.tar.gz 38004788 BLAKE2B 580ccad2227e6467c4c61ce9adf4aeb99c55f694c71a02b9d959c31deba66e428f5c5e7d920dd42d01524ccaef04b9eae3b068f2c6ff16414fa3fd36f462414f SHA512 ec33781b767f8f9f0a6d00f73109fbe9d683a23fca9cc8b462acda3eb024fc970d0daf8c36fb2239297f77510d2e3f544f58ec1cf53d08ea856bc6307f81d1dd
+DIST crystal-0.26.0.tar.gz 1992091 BLAKE2B dfc96e3e9a71dbec07235a982bbb34ea81bb3adbb39f6c8f8c9bb855ac97e5faf4d47d4a78901317798941b84117399aeee6af53c6c06ae21b9504ca617a2899 SHA512 45a62a2496d477cd72666e98b36bdcbfff958a8f5f0e71f04101f2ba72fc87117d53c8c098a72edb55e9be192b68b73529d5f76e4c660033332ed6e88a372519
diff --git a/dev-lang/crystal/crystal-0.26.0.ebuild b/dev-lang/crystal/crystal-0.26.0.ebuild
new file mode 100644
index 00000000000..033b3eb6c94
--- /dev/null
+++ b/dev-lang/crystal/crystal-0.26.0.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+BV=0.25.1
+BV_AMD64=${BV}-1-linux-x86_64
+BV_X86=${BV}-1-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/}/crystal-${BV_AMD64}.tar.gz )
+ x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV}/crystal-${BV_X86}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
+
+LLVM_MAX_SLOT=6
+
+# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
+DEPEND="
+ sys-devel/llvm:${LLVM_MAX_SLOT}
+ dev-libs/boehm-gc[static-libs,threads]
+ dev-libs/libatomic_ops
+ dev-libs/libevent
+ dev-libs/libpcre
+ sys-libs/libunwind
+ dev-libs/pcl
+ dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+ xml? ( dev-libs/libxml2 )
+ yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.25.0-verbose.patch
+ "${FILESDIR}"/${PN}-0.24.2-gentoo-tests-sandbox.patch
+ "${FILESDIR}"/${PN}-0.24.2-gentoo-tests-network-sandbox.patch
+ "${FILESDIR}"/${PN}-0.26.0-gentoo-tests-network-sandbox-2.patch
+)
+
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
+src_compile() {
+ emake \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ use doc && emake docs
+}
+
+src_test() {
+ emake spec \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV}
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+ dobin .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ use examples && dodoc -r samples
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+
+ newbashcomp etc/completion.bash ${PN}
+}
diff --git a/dev-lang/crystal/files/crystal-0.26.0-gentoo-tests-network-sandbox-2.patch b/dev-lang/crystal/files/crystal-0.26.0-gentoo-tests-network-sandbox-2.patch
new file mode 100644
index 00000000000..bfe23f9ade8
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.26.0-gentoo-tests-network-sandbox-2.patch
@@ -0,0 +1,23 @@
+--- a/spec/std/http/server/server_spec.cr
++++ b/spec/std/http/server/server_spec.cr
+@@ -381,7 +381,9 @@ module HTTP
+ end
+
+ describe "#bind_ssl" do
+- it "binds SSL server context" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # connect: Connection timed out (Errno)
++ pending "binds SSL server context" do
+ server = Server.new do |context|
+ context.response.puts "Test Server (#{context.request.headers["Host"]?})"
+ context.response.close
+--- a/spec/std/http/web_socket_spec.cr
++++ b/spec/std/http/web_socket_spec.cr
+@@ -335,4 +335,6 @@ describe HTTP::WebSocket do
+ end
+
+- it "negotiates over HTTPS correctly" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # connect: Connection timed out (Errno)
++ pending "negotiates over HTTPS correctly" do
+ address_chan = Channel(Socket::IPAddress).new
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2018-09-02 10:53 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2018-09-02 10:53 UTC (permalink / raw
To: gentoo-commits
commit: d3dd554487c3b4517f5e7c4b6cfdb12fe1b19c0f
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 2 09:53:10 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Sep 2 10:53:24 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3dd5544
dev-lang/crystal: bump up to 0.26.1
Package-Manager: Portage-2.3.48, Repoman-2.3.10
dev-lang/crystal/Manifest | 3 +
dev-lang/crystal/crystal-0.26.1.ebuild | 106 +++++++++++++++++++++
...tal-0.26.1-gentoo-tests-network-sandbox-3.patch | 26 +++++
.../crystal-0.26.1-gentoo-tests-sandbox.patch | 22 +++++
4 files changed, 157 insertions(+)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 7eda964d98e..04860184158 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -6,4 +6,7 @@ DIST crystal-0.24.2.tar.gz 1745462 BLAKE2B 8f3d5cf9e274558a5622aae44c6f7d54d0b30
DIST crystal-0.25.0.tar.gz 1957613 BLAKE2B 4c2467e39a9bc6745b74c00f755490a2f726e775c2a0d15562af27d2a6771c95c44f79e6b59ad45f61a59566529854d75c980c55a6886538fa98663879477258 SHA512 20f2864919c7710e5aee8112e1c6ab54a2e50b244ac63d374edfed41ab659b11c062f76dbfc38e763a08bdbea9e0a39f3b5cac5e00bf453be3a31d3b0a023917
DIST crystal-0.25.1-1-linux-i686.tar.gz 39882213 BLAKE2B 35d0045a72ced6ba7348105c9b88e564f85b075af78decd52c40b47b338cd1c7c1b01565430f9aa21251cfd1266041268e037eb616a24475acfa22b1b8ae1448 SHA512 79601b6c586184e064798c4daca3de77f7c81fbc4d0062a558824533f9272f04899c0041b17dce072757f20f7940c99303c6ff1143448b6452e8216ca4bb43dd
DIST crystal-0.25.1-1-linux-x86_64.tar.gz 38004788 BLAKE2B 580ccad2227e6467c4c61ce9adf4aeb99c55f694c71a02b9d959c31deba66e428f5c5e7d920dd42d01524ccaef04b9eae3b068f2c6ff16414fa3fd36f462414f SHA512 ec33781b767f8f9f0a6d00f73109fbe9d683a23fca9cc8b462acda3eb024fc970d0daf8c36fb2239297f77510d2e3f544f58ec1cf53d08ea856bc6307f81d1dd
+DIST crystal-0.26.0-1-linux-i686.tar.gz 39814913 BLAKE2B 8c73e33b52a7c5d9ae24ead5d5adbd038f63fc76f904b20ec8dc4da1b1ed6f53283970b06ec7af7ecac7f58c55dc911fe56bcb9897a44a86fc88deb43249a5af SHA512 f0ba602a07b608ac7b3c0f841cbcc70b44d42ce87f405ce9d1a09df7b8c1764e13bca9471b2499a51d22cebc8228e949086893fd3c946d17e7b36ae4e8ac4f75
+DIST crystal-0.26.0-1-linux-x86_64.tar.gz 37986465 BLAKE2B dc8e05519653f82d09d8bd3a84fedd9f4720880bc61a110709643850bbcfa95738292cca8168a8c5c550abe9b178ce28fd59321c66862a1cc81007cc1cb22223 SHA512 c252d2d585fe49c755397b8f8c7965c855e8f8102598b34a83cc6e5ae821a22f3dccce8b7787dd0f00fa39fad3d2dffc23c6105c9cefe525da7855550c790ab2
DIST crystal-0.26.0.tar.gz 1992091 BLAKE2B dfc96e3e9a71dbec07235a982bbb34ea81bb3adbb39f6c8f8c9bb855ac97e5faf4d47d4a78901317798941b84117399aeee6af53c6c06ae21b9504ca617a2899 SHA512 45a62a2496d477cd72666e98b36bdcbfff958a8f5f0e71f04101f2ba72fc87117d53c8c098a72edb55e9be192b68b73529d5f76e4c660033332ed6e88a372519
+DIST crystal-0.26.1.tar.gz 1994987 BLAKE2B 2292fbdf119e181313000e035802581ae206083aa5c9651a01e131d74e701ea75dc713b44274769decfc9f0f300d8fc2e6c24a94f60380b79c3cdb1a10e73369 SHA512 5e020b0f262f9bedaaae60010f669d7987a77d3416bf0dd057e29eb11adbe8fceb1c4f55a822e623d32e302a01ccc99218d2c3fe474d4ce0dde4312c196ccfa6
diff --git a/dev-lang/crystal/crystal-0.26.1.ebuild b/dev-lang/crystal/crystal-0.26.1.ebuild
new file mode 100644
index 00000000000..d02b47f0788
--- /dev/null
+++ b/dev-lang/crystal/crystal-0.26.1.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+BV=0.26.0
+BV_AMD64=${BV}-1-linux-x86_64
+BV_X86=${BV}-1-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/}/crystal-${BV_AMD64}.tar.gz )
+ x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV}/crystal-${BV_X86}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
+
+LLVM_MAX_SLOT=6
+
+# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
+DEPEND="
+ sys-devel/llvm:${LLVM_MAX_SLOT}
+ dev-libs/boehm-gc[static-libs,threads]
+ dev-libs/libatomic_ops
+ dev-libs/libevent
+ dev-libs/libpcre
+ sys-libs/libunwind
+ dev-libs/pcl
+ dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+ xml? ( dev-libs/libxml2 )
+ yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.25.0-verbose.patch
+ "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
+ "${FILESDIR}"/${PN}-0.24.2-gentoo-tests-network-sandbox.patch
+ "${FILESDIR}"/${PN}-0.26.0-gentoo-tests-network-sandbox-2.patch
+ "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-network-sandbox-3.patch
+)
+
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
+src_compile() {
+ emake \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ use doc && emake docs
+}
+
+src_test() {
+ emake spec \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV}
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+ dobin .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ use examples && dodoc -r samples
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+
+ newbashcomp etc/completion.bash ${PN}
+}
diff --git a/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-network-sandbox-3.patch b/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-network-sandbox-3.patch
new file mode 100644
index 00000000000..eb1b84ce618
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-network-sandbox-3.patch
@@ -0,0 +1,26 @@
+diff --git a/spec/std/http/server/server_spec.cr b/spec/std/http/server/server_spec.cr
+index 9de0c3f..59882db 100644
+--- a/spec/std/http/server/server_spec.cr
++++ b/spec/std/http/server/server_spec.cr
+@@ -400,7 +400,9 @@ module HTTP
+ end
+
+ describe "#bind_tls" do
+- it "binds SSL server context" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # connect: Connection timed out (Errno)
++ pending "binds SSL server context" do
+ server = Server.new do |context|
+ context.response.puts "Test Server (#{context.request.headers["Host"]?})"
+ context.response.close
+@@ -512,7 +514,9 @@ module HTTP
+ end
+ {% end %}
+
+- it "handles exception during SSL handshake (#6577)" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # connect: Connection timed out (Errno)
++ pending "handles exception during SSL handshake (#6577)" do
+ server = SilentErrorHTTPServer.new do |context|
+ context.response.print "ok"
+ context.response.close
diff --git a/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch b/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch
new file mode 100644
index 00000000000..cab165c3905
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch
@@ -0,0 +1,22 @@
+--- a/spec/std/file_spec.cr
++++ b/spec/std/file_spec.cr
+@@ -1164,3 +1164,4 @@ describe "File" do
+ # TODO: there is no file which is reliably unwritable on windows
+- pending_win32 "raises if file cannot be accessed" do
++ # On linux(or sandbox?) it's "Permission denied", not "Operation not permitted"
++ pending "raises if file cannot be accessed" do
+ expect_raises Errno, "Operation not permitted" do
+--- a/spec/std/process_spec.cr
++++ b/spec/std/process_spec.cr
+@@ -135,3 +135,4 @@ describe Process do
+ describe "environ" do
+- it "clears the environment" do
++ #gentoo's sandbox keeps sandbox environment
++ pending "clears the environment" do
+ value = Process.run("env", clear_env: true) do |proc|
+@@ -142,3 +143,4 @@ describe Process do
+
+- it "sets an environment variable" do
++ #gentoo's sandbox keeps sandbox environment
++ pending "sets an environment variable" do
+ env = {"FOO" => "bar"}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2018-12-23 13:26 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2018-12-23 13:26 UTC (permalink / raw
To: gentoo-commits
commit: ce14d2a533200d2917090e18b324d3bbf914ea18
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 23 13:25:47 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Dec 23 13:26:04 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce14d2a5
dev-lang/crystal: disable broken tests
networking tests don't work with FEATURES=network-sandbox
unix tests don't work on paths more than 107 bytes (crystal limitation)
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
dev-lang/crystal/crystal-0.27.0.ebuild | 3 +
.../crystal-0.27.0-gentoo-tests-long-unix.patch | 90 ++++++++++++++++++++++
...ystal-0.27.0-gentoo-tests-network-sandbox.patch | 44 +++++++++++
.../files/crystal-0.27.0-max-age-0-test.patch | 14 ++++
4 files changed, 151 insertions(+)
diff --git a/dev-lang/crystal/crystal-0.27.0.ebuild b/dev-lang/crystal/crystal-0.27.0.ebuild
index b7dcd5f70cf..763582835a2 100644
--- a/dev-lang/crystal/crystal-0.27.0.ebuild
+++ b/dev-lang/crystal/crystal-0.27.0.ebuild
@@ -44,6 +44,9 @@ PATCHES=(
"${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
"${FILESDIR}"/${PN}-0.26.1-gentoo-tests-network-sandbox-3.patch
"${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
+ "${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-network-sandbox.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
)
src_prepare() {
diff --git a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch
new file mode 100644
index 00000000000..51b049ee980
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch
@@ -0,0 +1,90 @@
+--- a/spec/std/socket/unix_server_spec.cr
++++ b/spec/std/socket/unix_server_spec.cr
+@@ -14,7 +14,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "creates the socket file" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "creates the socket file" do
+ with_tempfile("unix_server.sock") do |path|
+ UNIXServer.open(path) do
+ File.exists?(path).should be_true
+@@ -24,7 +26,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "deletes socket file on close" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "deletes socket file on close" do
+ with_tempfile("unix_server-close.sock") do |path|
+ server = UNIXServer.new(path)
+ server.close
+@@ -33,7 +37,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "raises when socket file already exists" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "raises when socket file already exists" do
+ with_tempfile("unix_server-twice.sock") do |path|
+ server = UNIXServer.new(path)
+
+@@ -45,7 +51,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "won't delete existing file on bind failure" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "won't delete existing file on bind failure" do
+ with_tempfile("unix_server-exist.sock") do |path|
+ File.write(path, "")
+ File.exists?(path).should be_true
+@@ -60,7 +68,9 @@ describe UNIXServer do
+ end
+
+ describe "accept" do
+- it "returns the client UNIXSocket" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "returns the client UNIXSocket" do
+ with_tempfile("unix_server-accept.sock") do |path|
+ UNIXServer.open(path) do |server|
+ UNIXSocket.open(path) do |_|
+@@ -72,7 +82,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "raises when server is closed" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "raises when server is closed" do
+ with_tempfile("unix_server-closed.sock") do |path|
+ server = UNIXServer.new(path)
+ exception = nil
+@@ -97,7 +109,9 @@ describe UNIXServer do
+ end
+
+ describe "accept?" do
+- it "returns the client UNIXSocket" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "returns the client UNIXSocket" do
+ with_tempfile("unix_server-accept_.sock") do |path|
+ UNIXServer.open(path) do |server|
+ UNIXSocket.open(path) do |_|
+@@ -109,7 +123,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "returns nil when server is closed" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "returns nil when server is closed" do
+ with_tempfile("unix_server-accept2.sock") do |path|
+ server = UNIXServer.new(path)
+ ret = :initial
diff --git a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch
new file mode 100644
index 00000000000..0ba0f18f73d
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch
@@ -0,0 +1,44 @@
+--- a/spec/std/socket/tcp_server_spec.cr
++++ b/spec/std/socket/tcp_server_spec.cr
+@@ -76,13 +76,17 @@ describe TCPServer do
+ TCPServer.new("localhost", unused_local_port)
+ end
+
+- it "raises when host doesn't exist" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises when host doesn't exist" do
+ expect_raises(Socket::Error, "No address") do
+ TCPServer.new("doesnotexist.example.org.", 12345)
+ end
+ end
+
+- it "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
+ expect_raises(Socket::Error, "No address") do
+ TCPServer.new("doesnotexist.example.org.", 0)
+ end
+--- a/spec/std/socket/tcp_socket_spec.cr
++++ b/spec/std/socket/tcp_socket_spec.cr
+@@ -56,13 +56,17 @@ describe TCPSocket do
+ end
+ end
+
+- it "raises when host doesn't exist" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises when host doesn't exist" do
+ expect_raises(Socket::Error, "No address") do
+ TCPSocket.new("doesnotexist.example.org.", 12345)
+ end
+ end
+
+- it "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
+ expect_raises(Socket::Error, "No address") do
+ TCPSocket.new("doesnotexist.example.org.", 0)
+ end
diff --git a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
new file mode 100644
index 00000000000..d78927ab3ee
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
@@ -0,0 +1,14 @@
+--- a/spec/std/http/cookie_spec.cr
++++ b/spec/std/http/cookie_spec.cr
+@@ -150,7 +150,10 @@ module HTTP
+ parse_set_cookie("a=1; domain=127.0.0.1; path=/; HttpOnly").domain.should eq "127.0.0.1"
+ end
+
+- it "parse max-age as seconds from Time.now" do
++ # unstable test: sometimes 'now - max-age=0' == 0.0:
++ # Failure/Error: delta.should be > 0.seconds
++ # Expected 00:00:00 to be > 00:00:00
++ pending "parse max-age as seconds from Time.now" do
+ cookie = parse_set_cookie("a=1; max-age=10")
+ delta = cookie.expires.not_nil! - Time.now
+ delta.should be > 9.seconds
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2018-12-23 14:23 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2018-12-23 14:23 UTC (permalink / raw
To: gentoo-commits
commit: d913d22dc3c9b4fb2f13461be4fd26c76fbc7a76
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 23 14:23:27 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Dec 23 14:23:46 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d913d22d
dev-lang/crystal: duisable more unix socket tests
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
dev-lang/crystal/crystal-0.27.0.ebuild | 2 ++
.../files/crystal-0.27.0-gentoo-tests-long-unix-2.patch | 13 +++++++++++++
dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch | 12 ++++++++++++
3 files changed, 27 insertions(+)
diff --git a/dev-lang/crystal/crystal-0.27.0.ebuild b/dev-lang/crystal/crystal-0.27.0.ebuild
index 763582835a2..cb040059d96 100644
--- a/dev-lang/crystal/crystal-0.27.0.ebuild
+++ b/dev-lang/crystal/crystal-0.27.0.ebuild
@@ -47,6 +47,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
"${FILESDIR}"/${PN}-0.27.0-gentoo-tests-network-sandbox.patch
"${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
+ "${FILESDIR}"/${PN}-0.27.0-tcp-server-test.patch
)
src_prepare() {
diff --git a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix-2.patch b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix-2.patch
new file mode 100644
index 00000000000..61cec14afcb
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix-2.patch
@@ -0,0 +1,13 @@
+--- a/spec/std/socket/unix_socket_spec.cr
++++ b/spec/std/socket/unix_socket_spec.cr
+@@ -37,7 +37,9 @@ describe UNIXSocket do
+ end
+ end
+
+- it "sync flag after accept" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "sync flag after accept" do
+ with_tempfile("unix_socket-accept.sock") do |path|
+ UNIXServer.open(path) do |server|
+ UNIXSocket.open(path) do |client|
diff --git a/dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch b/dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch
new file mode 100644
index 00000000000..8f61c8aeef4
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch
@@ -0,0 +1,12 @@
+--- a/spec/std/http/server/server_spec.cr
++++ b/spec/std/http/server/server_spec.cr
+@@ -524,7 +524,8 @@ module HTTP
+ end
+
+ describe "#close" do
+- it "closes gracefully" do
++ # fails under gentoo's sandbox
++ pending "closes gracefully" do
+ server = Server.new do |context|
+ context.response.flush
+ context.response.puts "foo"
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2019-01-31 7:21 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2019-01-31 7:21 UTC (permalink / raw
To: gentoo-commits
commit: fd96ea70c618437312b122ae3cf5c9922f1f2565
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 30 22:49:03 2019 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Jan 31 07:20:25 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd96ea70
dev-lang/crystal: bump up to 0.27.1
Package-Manager: Portage-2.3.59, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
dev-lang/crystal/Manifest | 1 +
dev-lang/crystal/crystal-0.27.1.ebuild | 121 +++++++++++++++++++++
.../crystal/files/crystal-0.27.1-verbose.patch | 7 ++
3 files changed, 129 insertions(+)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 7c76aef7d30..db092cd4722 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -13,3 +13,4 @@ DIST crystal-0.26.1.tar.gz 1994987 BLAKE2B 2292fbdf119e181313000e035802581ae2060
DIST crystal-0.27.0-1-linux-i686.tar.gz 39751745 BLAKE2B 22adf22a2e423f4b0fddda1d8d9bbfb68a4b51f18da9705b6515a500610781251561577dd25c6509aa2b6860b1b329bc7e3d213743330b91206b50239e053a89 SHA512 4fb819a67f3e2c965b454af53cf0bad9606a6a13f85f1bfbe59057291ea293099892344cd31127f5b35e3b25fc6e3f591bda508587fc32f5ef1433aeff0ca706
DIST crystal-0.27.0-1-linux-x86_64.tar.gz 37933811 BLAKE2B 76bb57b556f14ae8ce219ef490e58ff03571f36fcb4343672ff10ddd6e275e9c5c26a028d63f0592c1a081f2f5dc8241106d8a99add1a7936f52b9e3a57f96e6 SHA512 c403c4080830b928621da07f409ba5433109ee0fc81589f87e79d2e04fcbce8facfa205b7e8c78ab9bb772b4444c938b3bcf691596ee0b2d54c3f3d97150e008
DIST crystal-0.27.0.tar.gz 2025777 BLAKE2B 0a5cc02a516586b033c65efd8e28a13ac0ed67fddbd1a1f0a88a484dff825bec8f6b03b16938c750e99e0c7c1c12a3fd3fc87e61d038b25b7707e0e7f2913fae SHA512 02b0e1d43d699d1dd91f4b979c8ab8909264e5f1fcc344f6110bebb808c0ee764a943368cce9d33a258adb9631ed4f445e1f771d5a9e50fcd337fc8b319616cf
+DIST crystal-0.27.1.tar.gz 2061304 BLAKE2B 1776525925a25f72cf83f1a6076ab8b2bf1602c9d8c6a1fff8869c200faa35de008655f046ff60fb3733c8c3577f3544184080ee39acedfde006b9fd63d6c844 SHA512 8c6dd9489aff5d4b3e119ef6f531a3248c20f3da97c44dd3febe551adc67f5d87aa4f7679cbcc0dcde0374f3f5a3c523da6dff32a7ac95a9db1406102e980822
diff --git a/dev-lang/crystal/crystal-0.27.1.ebuild b/dev-lang/crystal/crystal-0.27.1.ebuild
new file mode 100644
index 00000000000..d1888dfde89
--- /dev/null
+++ b/dev-lang/crystal/crystal-0.27.1.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+BV=0.27.0-1
+BV_AMD64=${BV}-linux-x86_64
+BV_X86=${BV}-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
+ x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
+
+# Not compatible with llvm-7
+LLVM_MAX_SLOT=6
+
+# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
+DEPEND="
+ sys-devel/llvm:${LLVM_MAX_SLOT}
+ dev-libs/boehm-gc[static-libs,threads]
+ dev-libs/libatomic_ops
+ dev-libs/libevent
+ dev-libs/libpcre
+ sys-libs/libunwind
+ dev-libs/pcl
+ dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+ xml? ( dev-libs/libxml2 )
+ yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.27.1-verbose.patch
+ "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
+ "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-network-sandbox-3.patch
+ "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
+ "${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
+ "${FILESDIR}"/${PN}-0.27.0-tcp-server-test.patch
+)
+
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
+src_compile() {
+ local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
+ if [[ ! -d ${bootstrap_path} ]]; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ emake \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ PATH="${bootstrap_path}:${PATH}" \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ use doc && emake docs
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake spec \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ \
+ "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+ dobin .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ use examples && dodoc -r samples
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+
+ newbashcomp etc/completion.bash ${PN}
+}
diff --git a/dev-lang/crystal/files/crystal-0.27.1-verbose.patch b/dev-lang/crystal/files/crystal-0.27.1-verbose.patch
new file mode 100644
index 00000000000..33c3c5d61c4
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.1-verbose.patch
@@ -0,0 +1,7 @@
+--- a/Makefile
++++ b/Makefile
+@@ -29,3 +29,3 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+-override FLAGS += -D preview_overflow -D compiler_rt $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
++override FLAGS += -D preview_overflow -D compiler_rt $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(verbose),--verbose )
+ SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2020-04-07 21:47 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2020-04-07 21:47 UTC (permalink / raw
To: gentoo-commits
commit: e638e3d755bdd6c83363824ee282295cf28cb644
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 7 21:46:43 2020 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Apr 7 21:47:20 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e638e3d7
dev-lang/crystal: bump up to 0.34.0
Package-Manager: Portage-2.3.96, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
dev-lang/crystal/Manifest | 3 +
dev-lang/crystal/crystal-0.34.0.ebuild | 121 +++++++++++++++++++++
.../crystal/files/crystal-0.34.0-no-usr-lib.patch | 14 +++
3 files changed, 138 insertions(+)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index f2003bb9de6..d0d69e11e9a 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -4,3 +4,6 @@ DIST crystal-0.32.1.tar.gz 2225383 BLAKE2B 81cdda508945ebea481c3ad784ecdccffe25e
DIST crystal-0.33.0-1-linux-i686.tar.gz 29627750 BLAKE2B 284c300eb57e9192c367b1692c95a8da584820ecd068515cf59174106bdcd4341033e68ecdcc64a263dcf1c69ca58f9403e9b4b8e166c86b1b6747e4e0d2ea92 SHA512 8ff065555e5782a84575ddc8210f92bc6d5702692e2674be4fcef470dfeff3ec325954eb665b222cb3f332e335cae4ae49cc06ffe4ce939519d0947225b452b4
DIST crystal-0.33.0-1-linux-x86_64.tar.gz 27553242 BLAKE2B c24ab3e1577c33de9e9de2fa03f0fe831821b70b72ee9fb421eab9aed8b0ba357547160be9fff20c30b2d52e6c6d75bbde19dc322638c5c3f33ba2aa14dbf4c4 SHA512 7c815335ff882effd9dfc22cbeec6cee6e014805bf048bedf4476b1ecdf3a87bd8d53543c78be3493f937659a88041cd5370814eba043c81f23e7ef707ccd834
DIST crystal-0.33.0.tar.gz 2242162 BLAKE2B 0d9dbdd230bb190209772fafaeb1d59008cbe90b0bd33f851886bf90e7ac497c0bcef7609d6295dd4a4bad213fb687dea3d16c42ebe3bc92b3e06df156c53570 SHA512 41f518ec5c8f2f2cffb84105e0cc5096d4ba7ef64887ad0089aa37109fa5fa8e28747fe4f4ca8a74012e7b77d8c7a9d72cd9da787a330a4a62b5e55b40f0e57b
+DIST crystal-0.34.0-1-linux-i686.tar.gz 30161592 BLAKE2B b53dd3c3fb36ae7654396bcca305dbdd32c90f72e3e549fd054517230df3fdadcc07056d4a53c600e1fbae14ce79b66268191a3a01f27e1d625451865a414774 SHA512 47874a6a349dcf42b92532c4d454f8c65f2f94d78240f2a5baa865063ed373410be0ff5e457d4d1c3483ce8965e894fa918973fa03ee934f226a56a8a544f8d0
+DIST crystal-0.34.0-1-linux-x86_64.tar.gz 28036344 BLAKE2B dbd9305cadfda3a9d072672c91a0a7e9b230507d69c84735af900c40e602dbd6777b48ddce679935b87cff669d0534a8d65b09dc0fa6d8167f66117ba8468f8a SHA512 291713acb6291c106e60c2b7bcdab33a6df3d6f464c81392ea340b25d01d301c743c0d81f29eb9b32a2099203775a8fc2df9617f90c28699e4864bee16f4252e
+DIST crystal-0.34.0.tar.gz 2270363 BLAKE2B bef2f09ef45ed9c7c9ffc5bcc9e8d6516c799b60ae3d87d5512fcd36634231091c1c534a708059362c3e5bc9db36a377dffd2dbca4290964362ea8740345e4f2 SHA512 6167ca5974d02167fe695cc51fe8ef95e56076a2af88eae39a12b07930b96ca0b30d53fd7c6e2296139d89a1c7eacfce5326f25a8fa3487cdb446ab592723f66
diff --git a/dev-lang/crystal/crystal-0.34.0.ebuild b/dev-lang/crystal/crystal-0.34.0.ebuild
new file mode 100644
index 00000000000..65305e025a7
--- /dev/null
+++ b/dev-lang/crystal/crystal-0.34.0.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+BV=${PV}-1
+BV_AMD64=${BV}-linux-x86_64
+BV_X86=${BV}-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
+ x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
+
+RESTRICT=test # not stable for day-to-day runs
+
+LLVM_MAX_SLOT=10
+
+# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382
+DEPEND="
+ sys-devel/llvm:${LLVM_MAX_SLOT}
+ dev-libs/boehm-gc[static-libs,threads]
+ dev-libs/libatomic_ops
+ dev-libs/libevent
+ dev-libs/libpcre
+ sys-libs/libunwind
+ dev-libs/pcl
+ dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+ xml? ( dev-libs/libxml2 )
+ yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.31.0-verbose.patch
+ "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
+ "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
+ #"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
+ "${FILESDIR}"/${PN}-0.34.0-no-usr-lib.patch
+)
+
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
+src_compile() {
+ local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
+ if [[ ! -d ${bootstrap_path} ]]; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ emake \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ PATH="${bootstrap_path}:${PATH}" \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ use doc && emake docs
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake spec \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ \
+ "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+ dobin .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ use examples && dodoc -r samples
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+
+ newbashcomp etc/completion.bash ${PN}
+}
diff --git a/dev-lang/crystal/files/crystal-0.34.0-no-usr-lib.patch b/dev-lang/crystal/files/crystal-0.34.0-no-usr-lib.patch
new file mode 100644
index 00000000000..4dc0b42d90a
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.34.0-no-usr-lib.patch
@@ -0,0 +1,14 @@
+On amd64 linux /usr/lib does not match default 64-bit ABI.
+
+Let's rely on default compiler and linker paths instead.
+--- a/src/compiler/crystal/codegen/link.cr
++++ b/src/compiler/crystal/codegen/link.cr
+@@ -106,7 +106,7 @@ module Crystal
+
+ private def lib_flags_posix
+ library_path = ENV["LIBRARY_PATH"]?.try(&.split(':', remove_empty: true)) ||
+- ["/usr/lib", "/usr/local/lib"]
++ [] of String
+ has_pkg_config = nil
+
+ String.build do |flags|
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2021-07-15 9:28 Sergei Trofimovich
0 siblings, 0 replies; 16+ messages in thread
From: Sergei Trofimovich @ 2021-07-15 9:28 UTC (permalink / raw
To: gentoo-commits
commit: 2a04c24cc9a3d663e0690d2aaddedcc27b54d750
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 15 09:23:08 2021 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Jul 15 09:28:53 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a04c24c
dev-lang/crystal: bump up to 1.1.0
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
dev-lang/crystal/Manifest | 3 +
dev-lang/crystal/crystal-1.1.0.ebuild | 123 +++++++++++++++++++++
dev-lang/crystal/files/crystal-1.1.0-verbose.patch | 7 ++
3 files changed, 133 insertions(+)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 297894012d7..fde8c31a896 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,3 +1,6 @@
DIST crystal-1.0.0-1-linux-i686.tar.gz 30753871 BLAKE2B 247d8327c001ef8e847d981ab771964faa90b5acb1dc1336288b4c401cd039bb259e22945aabae73b6e23cf6babec288a25e4490a860e9a6c5cc8076afb2e7d3 SHA512 36f48fbc44f254588b449c6c80dd47e8152e1e31785ce0111dcd4da9eed57c12aac7427807f4a60d86a9841726e197a6d08582438bffcc4ed16eaad35e6ea886
DIST crystal-1.0.0-1-linux-x86_64.tar.gz 28189455 BLAKE2B 8313d201e8b8363f3f5025ab2bf2d44a981ca7185686474aa677d38986428b54e9d28fef01e12205ab58db67b516a043582a9965f31972bfa2ece5ff8bd640a0 SHA512 bbfe5010d2e620a58b25a3f7133f0f15c212ed085f020bbb8da39aca882d89c077068343fe182995ec09b436daaf8d252db232bf7fe3af087a5ab0728e0a758f
DIST crystal-1.0.0.tar.gz 2435212 BLAKE2B 3204162abae8ef2e3e7a7a294f001b3906562c17121bb3646c1d1bac0d7b98433c77d9c8101bae9b3041996794784b8fce5dd3dfded33a27c8d229bc3b557c0c SHA512 aa56eb0131aecad15bebc6ef0ce2f34f0992a8362441dd662a518ddbc5e3818762c1c7228bc5b06aafdb8815e59d791654add9da8ba9a47a6a4fd34f6b039a8b
+DIST crystal-1.1.0-1-linux-i686.tar.gz 30747190 BLAKE2B 7fe29248ae69c81cb0c79419488c5b544bb55810894ac1d7f276ccdf2d2d98c7c2bc4f8c007214e5ffd18ee39bdf6983f33b13c08f012105fce714eeaa18fac9 SHA512 df267250971c11d1e2f4f869a14f7b2f1e5a32cf15c407a0ee9291aeb4ddc21241c3f21c7706ee2305dfbf4ac645681a06bb70a6ee9246968a30f59b7595ea8a
+DIST crystal-1.1.0-1-linux-x86_64.tar.gz 27998777 BLAKE2B 06be8a51b28266b25f1a3629b1a1ac6f3878aacdd4ca4019ac201369ca0507f3ed27bfea46ea7d8d4dfa67888268a8e027586bb32e9964d4754661f43e36ac12 SHA512 8c4542ce0623e459b61591b7bd13f416ee30c89913ce827830e570225c72ec79ad5466d414b05f520d384f04363f11964ff8bf158f0ae798da3864208655319e
+DIST crystal-1.1.0.tar.gz 2476748 BLAKE2B 2874da651a8b4454c6a34b00ac4ef93be6beaabe01ff66aaac86583a9d9c1baccde9473358d70d78490b367db3a307af3b5219af6751c1d83cb5084e74955197 SHA512 fcd14338c4c6cb9189cfb9d4d93af7feab806a49e10b9c83399f9252f0c5f3488605141f09adef82d48343eab5653b754b9196fb659590df8d4deb2c4b6499f4
diff --git a/dev-lang/crystal/crystal-1.1.0.ebuild b/dev-lang/crystal/crystal-1.1.0.ebuild
new file mode 100644
index 00000000000..7af64a71141
--- /dev/null
+++ b/dev-lang/crystal/crystal-1.1.0.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+BV=${PV}-1
+BV_AMD64=${BV}-linux-x86_64
+BV_X86=${BV}-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
+ x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
+
+RESTRICT=test # not stable for day-to-day runs
+
+LLVM_MAX_SLOT=11
+
+DEPEND="
+ sys-devel/llvm:${LLVM_MAX_SLOT}
+ dev-libs/boehm-gc[static-libs,threads]
+ dev-libs/libatomic_ops
+ dev-libs/libevent
+ dev-libs/libpcre
+ sys-libs/libunwind
+ dev-libs/pcl
+ dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+ xml? ( dev-libs/libxml2 )
+ yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.0-verbose.patch
+ "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
+ "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
+ #"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
+)
+
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
+src_compile() {
+ local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
+ if [[ ! -d ${bootstrap_path} ]]; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ # crystal uses 'LLVM_TARGETS' to override default list of targets
+ unset LLVM_TARGETS
+ emake \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" \
+ \
+ PATH="${bootstrap_path}:${PATH}" \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ use doc && emake docs
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake spec \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" \
+ \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ \
+ "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+ dobin .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ use examples && dodoc -r samples
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+
+ newbashcomp etc/completion.bash ${PN}
+}
diff --git a/dev-lang/crystal/files/crystal-1.1.0-verbose.patch b/dev-lang/crystal/files/crystal-1.1.0-verbose.patch
new file mode 100644
index 00000000000..4e68afd1a94
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-1.1.0-verbose.patch
@@ -0,0 +1,7 @@
+--- a/Makefile
++++ b/Makefile
+@@ -29,3 +29,3 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+-override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )
++override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )$(if $(verbose),--verbose )
+ SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2022-04-24 14:41 Michał Górny
0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2022-04-24 14:41 UTC (permalink / raw
To: gentoo-commits
commit: 545d07c5a64b7e67867dc7cb42140609fa2b231b
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 24 13:45:44 2022 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Apr 24 14:40:46 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=545d07c5
dev-lang/crystal: Remove old
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
dev-lang/crystal/Manifest | 6 -
dev-lang/crystal/crystal-1.1.0.ebuild | 123 ---------------------
dev-lang/crystal/crystal-1.1.1.ebuild | 107 ------------------
.../files/crystal-0.22.0-blocking-stdio-hack.patch | 20 ----
.../files/crystal-0.27.0-max-age-0-test.patch | 14 ---
dev-lang/crystal/metadata.xml | 11 --
6 files changed, 281 deletions(-)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 318e44303475..18941e5a07b9 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,9 +1,3 @@
-DIST crystal-1.1.0-1-linux-i686.tar.gz 30747190 BLAKE2B 7fe29248ae69c81cb0c79419488c5b544bb55810894ac1d7f276ccdf2d2d98c7c2bc4f8c007214e5ffd18ee39bdf6983f33b13c08f012105fce714eeaa18fac9 SHA512 df267250971c11d1e2f4f869a14f7b2f1e5a32cf15c407a0ee9291aeb4ddc21241c3f21c7706ee2305dfbf4ac645681a06bb70a6ee9246968a30f59b7595ea8a
-DIST crystal-1.1.0-1-linux-x86_64.tar.gz 27998777 BLAKE2B 06be8a51b28266b25f1a3629b1a1ac6f3878aacdd4ca4019ac201369ca0507f3ed27bfea46ea7d8d4dfa67888268a8e027586bb32e9964d4754661f43e36ac12 SHA512 8c4542ce0623e459b61591b7bd13f416ee30c89913ce827830e570225c72ec79ad5466d414b05f520d384f04363f11964ff8bf158f0ae798da3864208655319e
-DIST crystal-1.1.0.tar.gz 2476748 BLAKE2B 2874da651a8b4454c6a34b00ac4ef93be6beaabe01ff66aaac86583a9d9c1baccde9473358d70d78490b367db3a307af3b5219af6751c1d83cb5084e74955197 SHA512 fcd14338c4c6cb9189cfb9d4d93af7feab806a49e10b9c83399f9252f0c5f3488605141f09adef82d48343eab5653b754b9196fb659590df8d4deb2c4b6499f4
-DIST crystal-1.1.1-1-linux-i686.tar.gz 30749110 BLAKE2B d79113bc616685b30a80bb8632593c1b0a24d770ee9fa50810e771996f9ca95cdb5cdab64a7c445bc461e27e77e457b8334877e3a62281a3f9cbe59975518eae SHA512 eecd485fe06642a534aee2f837ac9ad6eeb5b52fa5fb4ab0f36bcf167535b784b5e306c0bb578a3198b58552efd3f0afc356b2711b0b7dc00f25fb1a2f4fe43f
-DIST crystal-1.1.1-1-linux-x86_64.tar.gz 27999355 BLAKE2B 115d9002973d9e0e1ad2edac55a10d4275176f95352634eee00f29d6ebeef2e3538f30a26904a1c6b68fa5b42e70b4cf54bb50ed4aa1097bb2d2dc716ff83427 SHA512 f27277af810f295c8ee4f5fedc3b7f1ffb06d166970fcc25d2de43e1c41e0af01de2a508292b44aac48a1583ac9892058f54fa3a7c361fc56dd483265f8bc36c
-DIST crystal-1.1.1.tar.gz 2477825 BLAKE2B 4e1b06c831a22447a4d1f065be64b12642ee4b4a75f24b0b73b990944afe6e2a6fca95189b46ea0656b8d13bd7c6a83a23452779b494822803a0264e02b9d4ce SHA512 6e9e977792c863d17ae94aa285a65a453da581a71c3fd9c57cc606ae20813504d675faffa74f78e7c4cf863b6334c4a63ab5356c04fb11d3267dd516e060fe74
DIST crystal-1.2.1-1-linux-x86_64.tar.gz 28586682 BLAKE2B 4d7847cdc6263c369de0926055569986cece1302d2251e4b2d25308609e45c0aa3afe7cdfecba3b7909d7568b1e81aafe69f9976a90c8980684a92231cc3857c SHA512 23cfb2389c65202dc70ebadb85cf0390ba2366520fbfd4b7bb0683c5194cd2b5c87b6b4142dd251471ec4146a5c1046ec86bcafa50c66389a41c9cb394ee6f5d
DIST crystal-1.2.1.tar.gz 2618956 BLAKE2B e9ffd8b9114af419ee433093066dcf69f86e2f3293a6eeafee20f00c982dcd78774b3faf64d1e2568ba3141e24ef751cb2b5e0b2a2c57dac92d0039e6e224971 SHA512 a6acfac36a8a0d93e39947f2e35238f9cfc43485994fd6caf102f1d62ebc4d71d13d96801e998dbbff9541b76a8eb4fade7b998b179807ed49c1c338207a4720
DIST crystal-1.2.2-1-linux-x86_64.tar.gz 28611412 BLAKE2B 95593120b00b09b0a250917cbfd0841a77ead5e768ad483a900452678be5b231408017c4ac668df4de675612a008a385ed0dbf6ea216aec0343f8b5e8ede3e98 SHA512 7fdb247074723f52f8dfb9d2e18eef1ceb6fcf595bd12ec7304eb292716c4462ee34d2d87eac56302053dd4d8cd2beccde3dc5bfa3c75e6e832813afecfadcde
diff --git a/dev-lang/crystal/crystal-1.1.0.ebuild b/dev-lang/crystal/crystal-1.1.0.ebuild
deleted file mode 100644
index a435a4600025..000000000000
--- a/dev-lang/crystal/crystal-1.1.0.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
-
-BV=${PV}-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
-
-RESTRICT=test # not stable for day-to-day runs
-
-LLVM_MAX_SLOT=11
-
-DEPEND="
- sys-devel/llvm:${LLVM_MAX_SLOT}
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- sys-libs/libunwind
- dev-libs/pcl
- dev-libs/gmp:0
-"
-RDEPEND="${DEPEND}
- xml? ( dev-libs/libxml2 )
- yaml? ( dev-libs/libyaml )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-verbose.patch
- "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
- "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
- #"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
-)
-
-src_prepare() {
- default
-
- use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
-}
-
-src_compile() {
- local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
- if [[ ! -d ${bootstrap_path} ]]; then
- eerror "Binary tarball does not contain expected directory:"
- die "'${bootstrap_path}' path does not exist."
- fi
-
- # crystal uses 'LLVM_TARGETS' to override default list of targets
- unset LLVM_TARGETS
- emake \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- AR="$(tc-getAR)" \
- LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" \
- \
- PATH="${bootstrap_path}:${PATH}" \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- use doc && emake docs
-}
-
-src_test() {
- # EXTRA_SPEC_FLAGS is useful to debug individual tests
- # as part of full build:
- # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
- emake spec \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" \
- \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- \
- "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- use examples && dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r docs/.
- fi
-
- newbashcomp etc/completion.bash ${PN}
-}
diff --git a/dev-lang/crystal/crystal-1.1.1.ebuild b/dev-lang/crystal/crystal-1.1.1.ebuild
deleted file mode 100644
index f21d7749e7a5..000000000000
--- a/dev-lang/crystal/crystal-1.1.1.ebuild
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
-
-BV=${PV}-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug"
-
-# Upstream test suite not reliable
-RESTRICT=test
-
-# See https://github.com/crystal-lang/crystal/issues/10434
-LLVM_MAX_SLOT=11
-
-DEPEND="
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/gmp:=
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- dev-libs/pcl:=
- sys-devel/llvm:${LLVM_MAX_SLOT}
- sys-libs/libunwind:=
-"
-RDEPEND="${DEPEND}
- dev-libs/libxml2
- dev-libs/libyaml
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-verbose.patch
- "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
- "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
-)
-
-src_configure() {
- local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
- if [[ ! -d ${bootstrap_path} ]]; then
- eerror "Binary tarball does not contain expected directory:"
- die "'${bootstrap_path}' path does not exist."
- fi
-
- MY_EMAKE_COMMON_ARGS=(
- $(usex debug "" release=1)
- progress=true
- stats=1
- threads=$(makeopts_jobs)
- verbose=1
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
- AR="$(tc-getAR)"
- LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- PATH="${bootstrap_path}:${PATH}"
- CRYSTAL_PATH=src
- CRYSTAL_CONFIG_VERSION=${PV}
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- )
-
- # crystal uses 'LLVM_TARGETS' to override default list of targets
- unset LLVM_TARGETS
-}
-
-src_compile() {
- emake "${MY_EMAKE_COMMON_ARGS[@]}"
- use doc && emake docs
-}
-
-src_test() {
- # EXTRA_SPEC_FLAGS is useful to debug individual tests
- # as part of full build:
- # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
- emake std_spec "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r docs/.
- fi
-
- newbashcomp etc/completion.bash ${PN}
-}
diff --git a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
deleted file mode 100644
index 07b7dba7be65..000000000000
--- a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Workaround tty corruption in crystal.
-
-Patch restores blocking mode of file desriptors
-in exchange of potential runtime deadlocks
-when dealing with stdio.
-
-Reported-by: Renich Bon Ciric
-Bug: https://github.com/crystal-lang/crystal/issues/2065
-Bug: https://bugs.gentoo.org/616256
-diff --git a/src/compiler/crystal/stdio.cr b/src/compiler/crystal/stdio.cr
-new file mode 100644
-index 000000000..e65f65089
---- /dev/null
-+++ b/src/compiler/crystal/stdio.cr
-@@ -0,0 +1,5 @@
-+module Crystal
-+ STDIN.blocking = true
-+ STDOUT.blocking=true
-+ STDERR.blocking = true
-+end
diff --git a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
deleted file mode 100644
index d78927ab3eef..000000000000
--- a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/spec/std/http/cookie_spec.cr
-+++ b/spec/std/http/cookie_spec.cr
-@@ -150,7 +150,10 @@ module HTTP
- parse_set_cookie("a=1; domain=127.0.0.1; path=/; HttpOnly").domain.should eq "127.0.0.1"
- end
-
-- it "parse max-age as seconds from Time.now" do
-+ # unstable test: sometimes 'now - max-age=0' == 0.0:
-+ # Failure/Error: delta.should be > 0.seconds
-+ # Expected 00:00:00 to be > 00:00:00
-+ pending "parse max-age as seconds from Time.now" do
- cookie = parse_set_cookie("a=1; max-age=10")
- delta = cookie.expires.not_nil! - Time.now
- delta.should be > 9.seconds
diff --git a/dev-lang/crystal/metadata.xml b/dev-lang/crystal/metadata.xml
index 233928bcc797..456e61401b3b 100644
--- a/dev-lang/crystal/metadata.xml
+++ b/dev-lang/crystal/metadata.xml
@@ -18,17 +18,6 @@
<flag name="debug">
Build each module as a separate object file. Speeds build up.
</flag>
- <flag name="blocking-stdio-hack">
- Keep STDIO file descriptors in blocking mode.
- </flag>
- <flag name="yaml">
- Use the <pkg>dev-libs/libyaml</pkg> library to enable Crystal yaml
- module
- </flag>
- <flag name="xml">
- Use the <pkg>dev-libs/libxml2</pkg> library to enable Crystal xml
- module
- </flag>
</use>
<upstream>
<remote-id type="github">crystal-lang/crystal</remote-id>
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2022-09-09 9:24 Sam James
0 siblings, 0 replies; 16+ messages in thread
From: Sam James @ 2022-09-09 9:24 UTC (permalink / raw
To: gentoo-commits
commit: 3b0b8194323dc29c5bcd661dce675ce428470e81
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 9 09:23:59 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep 9 09:23:59 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b0b8194
dev-lang/crystal: drop 1.2.2
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-lang/crystal/Manifest | 2 -
dev-lang/crystal/crystal-1.2.2.ebuild | 104 ---------------------
dev-lang/crystal/files/crystal-1.1.0-verbose.patch | 7 --
3 files changed, 113 deletions(-)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 308c8788f58f..b5467f407fad 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,4 +1,2 @@
-DIST crystal-1.2.2-1-linux-x86_64.tar.gz 28611412 BLAKE2B 95593120b00b09b0a250917cbfd0841a77ead5e768ad483a900452678be5b231408017c4ac668df4de675612a008a385ed0dbf6ea216aec0343f8b5e8ede3e98 SHA512 7fdb247074723f52f8dfb9d2e18eef1ceb6fcf595bd12ec7304eb292716c4462ee34d2d87eac56302053dd4d8cd2beccde3dc5bfa3c75e6e832813afecfadcde
-DIST crystal-1.2.2.tar.gz 2621720 BLAKE2B abd196aab8d874e7a26116b92b046893c5f03d3ad7a28902fd2bbc3fe8e801f4c5d6766397583864bc3b7642f5c508e7ea0beb82661f87943c8a9914e014e71b SHA512 855f9c103f05d1ebb03d146d93362849a15ea67a64c993219f7c66438585b590caa53a9482daf81810920b39795c9f5c3e2a0caf316b3d62826e2540fd5fb60e
DIST crystal-1.5.0-1-linux-x86_64.tar.gz 29749716 BLAKE2B f1a84e89bb1c92349dc6e66088cd60298a7de25a5b42876b06ab8460e277db8fe53fa5477e8189f5382ad98b571df25978437c5619260f58ac721d1235882025 SHA512 49ff065bd084c4d8ad4835e79bd7679d76f4ee641ad8955c110f585429297a3343a6e7406fbacfbea18d91fd7ebbef40f61e1db66c249ca653d43b46dce68636
DIST crystal-1.5.0.tar.gz 2909586 BLAKE2B beb6bf0b8950317fa1883fa5c281ecf205f3a2c545b99e489ab07420534fa14ff1feb2a506a961304280cfcae1142faffd42acedd6845b96f439a6407e09106b SHA512 9f1915834c0218b05c6197325df1fc52d5d6a94ba1b83629ac07df4073271d777c1f6acfa7286eafb645e9118702ff856dfe590c8b2a3d91eb6929e88275f7f0
diff --git a/dev-lang/crystal/crystal-1.2.2.ebuild b/dev-lang/crystal/crystal-1.2.2.ebuild
deleted file mode 100644
index 7758bb838f9a..000000000000
--- a/dev-lang/crystal/crystal-1.2.2.ebuild
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LLVM_MAX_SLOT=13
-inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
-
-BV=${PV}-1
-BV_AMD64=${BV}-linux-x86_64
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug llvm-libunwind"
-
-# Upstream test suite not reliable
-RESTRICT=test
-
-DEPEND="
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/gmp:=
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- dev-libs/pcl:=
- <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- !llvm-libunwind? ( sys-libs/libunwind:= )
-"
-RDEPEND="${DEPEND}
- dev-libs/libxml2
- dev-libs/libyaml
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-verbose.patch
- "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
- "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
-)
-
-src_configure() {
- local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
- if [[ ! -d ${bootstrap_path} ]]; then
- eerror "Binary tarball does not contain expected directory:"
- die "'${bootstrap_path}' path does not exist."
- fi
-
- MY_EMAKE_COMMON_ARGS=(
- $(usex debug "" release=1)
- progress=true
- stats=1
- threads=$(makeopts_jobs)
- verbose=1
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
- AR="$(tc-getAR)"
- LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- PATH="${bootstrap_path}:${PATH}"
- CRYSTAL_PATH=src
- CRYSTAL_CONFIG_VERSION=${PV}
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- )
-
- # crystal uses 'LLVM_TARGETS' to override default list of targets
- unset LLVM_TARGETS
-}
-
-src_compile() {
- emake "${MY_EMAKE_COMMON_ARGS[@]}"
- use doc && emake docs
-}
-
-src_test() {
- # EXTRA_SPEC_FLAGS is useful to debug individual tests
- # as part of full build:
- # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
- emake std_spec "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r docs/.
- fi
-
- newbashcomp etc/completion.bash ${PN}
-}
diff --git a/dev-lang/crystal/files/crystal-1.1.0-verbose.patch b/dev-lang/crystal/files/crystal-1.1.0-verbose.patch
deleted file mode 100644
index 4e68afd1a94d..000000000000
--- a/dev-lang/crystal/files/crystal-1.1.0-verbose.patch
+++ /dev/null
@@ -1,7 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -29,3 +29,3 @@ SOURCES := $(shell find src -name '*.cr')
- SPEC_SOURCES := $(shell find spec -name '*.cr')
--override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )
-+override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )$(if $(verbose),--verbose )
- SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/
@ 2023-02-12 0:48 Maciej Barć
0 siblings, 0 replies; 16+ messages in thread
From: Maciej Barć @ 2023-02-12 0:48 UTC (permalink / raw
To: gentoo-commits
commit: 91052710f9301696ff7368529e5a19069ba0e49e
Author: Maciej Barć <xgqt <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 12 00:29:06 2023 +0000
Commit: Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Sun Feb 12 00:47:00 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91052710
dev-lang/crystal: bump to 1.7.2
Closes: https://bugs.gentoo.org/889541
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>
dev-lang/crystal/Manifest | 2 +
dev-lang/crystal/crystal-1.7.2.ebuild | 108 +++++++++++++++++++++
| 11 +++
3 files changed, 121 insertions(+)
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index b5467f407fad..beb47f106a07 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,2 +1,4 @@
DIST crystal-1.5.0-1-linux-x86_64.tar.gz 29749716 BLAKE2B f1a84e89bb1c92349dc6e66088cd60298a7de25a5b42876b06ab8460e277db8fe53fa5477e8189f5382ad98b571df25978437c5619260f58ac721d1235882025 SHA512 49ff065bd084c4d8ad4835e79bd7679d76f4ee641ad8955c110f585429297a3343a6e7406fbacfbea18d91fd7ebbef40f61e1db66c249ca653d43b46dce68636
DIST crystal-1.5.0.tar.gz 2909586 BLAKE2B beb6bf0b8950317fa1883fa5c281ecf205f3a2c545b99e489ab07420534fa14ff1feb2a506a961304280cfcae1142faffd42acedd6845b96f439a6407e09106b SHA512 9f1915834c0218b05c6197325df1fc52d5d6a94ba1b83629ac07df4073271d777c1f6acfa7286eafb645e9118702ff856dfe590c8b2a3d91eb6929e88275f7f0
+DIST crystal-1.7.2-1-linux-x86_64.tar.gz 41103664 BLAKE2B 399f5703fe907bed55b002d3d85873871c55e5d091c6342c3dc8356b219d5190ee3bf94456c0d4f169f4e2dee1f62cb42acbe707db9ee46c12a6ac4d60c4b5a4 SHA512 374e1a26f4540a0b368edd280dbab77d39237104432d4998f067e042de05bc58340d6a80ce569d5089b73e0d9b79fa5c65c04ea51f88ac5b0294af81d54d81ca
+DIST crystal-1.7.2.tar.gz 3121696 BLAKE2B 425d03a5ab34d885c6115582ae4aea3684fb088aeb3e8480087a14ff1963032e6ff4baa3022313d418dae5dce4a533786ee3993d19c81ed281b5a75411e5a4e8 SHA512 d278bc9a54c822e6c72269505158085bc7854b0f33c91a2adc24c656b310d20f5b49c633ec6216fbdee4dd17e9fb262d3315bf522c1c88e1ddbcb0dc386ce6c8
diff --git a/dev-lang/crystal/crystal-1.7.2.ebuild b/dev-lang/crystal/crystal-1.7.2.ebuild
new file mode 100644
index 000000000000..5a6e1e59917a
--- /dev/null
+++ b/dev-lang/crystal/crystal-1.7.2.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+BV=${PV}-1
+BV_AMD64=${BV}-linux-x86_64
+LLVM_MAX_SLOT=14
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org/
+ https://github.com/crystal-lang/crystal/"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug llvm-libunwind"
+
+# Upstream test suite not reliable
+RESTRICT="test"
+
+DEPEND="
+ dev-libs/boehm-gc:=[threads]
+ dev-libs/gmp:=
+ dev-libs/libatomic_ops:=
+ dev-libs/libevent:=
+ dev-libs/libpcre:=
+ dev-libs/pcl:=
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ !llvm-libunwind? ( sys-libs/libunwind:= )
+"
+RDEPEND="
+ ${DEPEND}
+ dev-libs/libxml2
+ dev-libs/libyaml
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-extra-spec-flags.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
+)
+
+src_configure() {
+ local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
+ if [[ ! -d ${bootstrap_path} ]] ; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ # crystal uses 'LLVM_TARGETS' to override default list of targets
+ unset LLVM_TARGETS
+
+ MY_EMAKE_COMMON_ARGS=(
+ $(usex debug "" release=1)
+ progress=true
+ stats=1
+ threads=$(makeopts_jobs)
+ verbose=1
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ AR="$(tc-getAR)"
+ LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ PATH="${bootstrap_path}:${PATH}"
+ CRYSTAL_PATH="${S}"/src
+ CRYSTAL_CONFIG_VERSION=${PV}
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ )
+}
+
+src_compile() {
+ emake "${MY_EMAKE_COMMON_ARGS[@]}"
+
+ use doc && emake docs "${MY_EMAKE_COMMON_ARGS[@]}"
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake std_spec \
+ "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+
+ exeinto /usr/bin
+ doexe .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ dodoc -r samples
+ doman man/${PN}.1
+ newbashcomp etc/completion.bash ${PN}
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+}
--git a/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch b/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch
new file mode 100644
index 000000000000..cc9e21abcbd6
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -33,7 +33,7 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+ override FLAGS += -D strict_multi_assign -D preview_overload_order $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )$(if $(interpreter),,-Dwithout_interpreter )
+ SPEC_WARNINGS_OFF := --exclude-warnings spec/std --exclude-warnings spec/compiler --exclude-warnings spec/primitives
+-SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) )
++SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) )$(EXTRA_SPEC_FLAGS)
+ CRYSTAL_CONFIG_LIBRARY_PATH := '$$ORIGIN/../lib/crystal'
+ CRYSTAL_CONFIG_BUILD_COMMIT := $(shell git rev-parse --short HEAD 2> /dev/null)
+ CRYSTAL_CONFIG_PATH := '$$ORIGIN/../share/crystal/src'
^ permalink raw reply related [flat|nested] 16+ messages in thread
end of thread, other threads:[~2023-02-12 0:48 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-21 10:13 [gentoo-commits] repo/gentoo:master commit in: dev-lang/crystal/files/, dev-lang/crystal/ Sergei Trofimovich
-- strict thread matches above, loose matches on Subject: below --
2023-02-12 0:48 Maciej Barć
2022-09-09 9:24 Sam James
2022-04-24 14:41 Michał Górny
2021-07-15 9:28 Sergei Trofimovich
2020-04-07 21:47 Sergei Trofimovich
2019-01-31 7:21 Sergei Trofimovich
2018-12-23 14:23 Sergei Trofimovich
2018-12-23 13:26 Sergei Trofimovich
2018-09-02 10:53 Sergei Trofimovich
2018-08-09 22:34 Sergei Trofimovich
2017-12-11 20:03 Michał Górny
2017-11-25 19:58 Sergei Trofimovich
2017-09-16 10:54 Sergei Trofimovich
2017-06-30 7:08 Sergei Trofimovich
2017-04-23 21:39 Sergei Trofimovich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox