65 lines
2.3 KiB
Ruby
65 lines
2.3 KiB
Ruby
class Clisp < Formula
|
|
desc "GNU CLISP, a Common Lisp implementation"
|
|
homepage "https://clisp.sourceforge.io/"
|
|
license "GPL-2.0-or-later"
|
|
head "https://gitlab.com/gnu-clisp/clisp.git", branch: "master"
|
|
|
|
stable do
|
|
url "https://alpha.gnu.org/gnu/clisp/clisp-2.49.92.tar.bz2"
|
|
sha256 "bd443a94aa9b02da4c4abbcecfc04ffff1919c0a8b0e7e35649b86198cd6bb89"
|
|
|
|
# Fix build on ARM
|
|
# Remove once https://gitlab.com/gnu-clisp/clisp/-/commit/39b68a14d9a1fcde8a357c088c7317b19ff598ad is released,
|
|
# which contains the necessary patch to the bundled gnulib
|
|
# https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commit;h=00e688fc22c7bfb0bba2bd8a7b2a7d22d21d31ef
|
|
patch :DATA
|
|
end
|
|
|
|
livecheck do
|
|
url "https://ftp.gnu.org/gnu/clisp/release/?C=M&O=D"
|
|
strategy :page_match
|
|
regex(%r{href=.*?v?(\d+(?:\.\d+)+)/?["' >]}i)
|
|
end
|
|
|
|
bottle do
|
|
sha256 cellar: :any, arm64_big_sur: "47b8617bc92bfcef6ce59ddb16ce923c49807d342c6086c41130def364f68bcd"
|
|
sha256 cellar: :any, big_sur: "ddb6cb44d70ff18bd12bd186679112e8f4fa1f33d4849697fa2564c51195b5fe"
|
|
sha256 cellar: :any, catalina: "2011ba42953cd6363aab0b23154947d364197fb28305efdb08ebe4640447d311"
|
|
sha256 cellar: :any, mojave: "2e74f9680f7b060a0d6a71b2fdae0d00fa6e6009af104f9fb7839368b109ae1f"
|
|
sha256 x86_64_linux: "80d7aa1e12fb3af6a08d6a5f53c5696cfdd0d277e54fdfb18108b13c4cee55f2"
|
|
end
|
|
|
|
depends_on "libsigsegv"
|
|
depends_on "readline"
|
|
|
|
def install
|
|
system "./configure", *std_configure_args,
|
|
"--with-readline=yes",
|
|
"--elispdir=#{elisp}"
|
|
|
|
cd "src" do
|
|
system "make"
|
|
system "make", "install"
|
|
end
|
|
end
|
|
|
|
test do
|
|
(testpath/"main.lisp").write <<~EOS
|
|
(format t "Hello, World!")
|
|
EOS
|
|
assert_equal "Hello, World!", shell_output(bin/"clisp main.lisp").chomp
|
|
end
|
|
end
|
|
|
|
__END__
|
|
--- a/src/gllib/vma-iter.c
|
|
+++ b/src/gllib/vma-iter.c
|
|
@@ -1327,7 +1327,7 @@
|
|
In 64-bit processes, we could use vm_region_64 or mach_vm_region.
|
|
I choose vm_region_64 because it uses the same types as vm_region,
|
|
resulting in less conditional code. */
|
|
-# if defined __ppc64__ || defined __x86_64__
|
|
+# if defined __aarch64__ || defined __ppc64__ || defined __x86_64__
|
|
struct vm_region_basic_info_64 info;
|
|
mach_msg_type_number_t info_count = VM_REGION_BASIC_INFO_COUNT_64;
|