# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# Keep the versions of pure and pure-docs in sync.
github.setup agraef pure-lang 0.68 ${name}-
maintainers {ryandesign @ryandesign} {gmail.com:aggraef @agraef}
license LGPL-3+ GPL-3+ BSD
homepage https://agraef.github.io/pure-lang/
description functional programming language based on term rewriting
long_description Pure is a functional programming language based on \
term rewriting. It has a modern syntax featuring \
curried function applications, lexical closures and \
equational definitions with pattern matching, and \
thus is somewhat similar to languages of the Haskell \
and ML variety. But Pure is also a very dynamic and \
reflective language, and is more like Lisp in this \
respect. The interpreter has an LLVM backend to do \
JIT compilation, hence programs run blazingly fast \
and interfacing to C modules is easy. The libraries \
are licensed under LGPL-3+, the interpreter is GPL-3+, \
and the examples are BSD-licensed.
github.tarball_from releases
distname ${name}-${version}
checksums rmd160 80d85df0d3823edbfd2b8671f8f6597751025c6d \
sha256 cbc793490cc90e43218e177109e96ccaebf0380b39d8f2afb86b35b663e9a65f \
set llvm_prefix ${prefix}/libexec/llvm-${llvm_version}
configure.env PATH=${llvm_prefix}/bin:$env(PATH)
if {${name} eq ${subport}} {
port:llvm-${llvm_version} \
configure.args --without-elisp \
--with-tool-prefix=${llvm_prefix}/bin
# Explicitly disable C++11 support because Pure doesn't need it and the
# auto-detection in the configure script gets it wrong when using clang
# 3.3 or later with libstdc++:
# https://bitbucket.org/purelang/pure-lang/issue/28/pure-fails-to-build-on-os-x-107-and-108
configure.args-append --disable-c++11