On Thu, Jun 12, 2014 at 03:25:37PM +1000, Anders Jensen-Waud wrote: > On 12 Jun 2014, at 1:35 pm, Anders Jensen-Waud <[email protected]> wrote: > > > Hello, > > > > I have written a new port for Pure -- a functional programming language > > with term rewriting (http://purelang.bitbucket.org/). > > > > The port is attached as a tarball. > > > > Could I kindly ask you to test and provide feedback? > > > > I just realised that there was a make test target available in the base > distribution. It has been included in the attached tarball, so please use > that one instead. > > -- > Anders Jensen-Waud
Hi, Some notes about Makefile: > SHARED_LIBS += pure 8.0 If I remember well, a new port should use 0.0 for version numbering. > WANTLIB += iconv gmp mpfr pthread readline stdc++ termcap z c m > > LIB_DEPENDS= devel/gmp devel/mpfr devel/llvm portcheck(1) complains: LIB_DEPENDS devel/llvm not needed for lang/pure ? Sure it is LIB_DEPENDS ? and not a BUILD_ and/or RUN_DEPENDS ? Else, under i386 the build fail: ===> Building for pure-0.60 c++ -O2 -pipe -I/usr/local/include -I/usr/local/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I. -I/usr/obj/pobj/pure-0.60/pure-0.60 -DLIBDIR='"/usr/local/lib"' -DLIBPURE='"libpure.so.8"' -c -o interpreter.o /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc: In member function 'void interpreter::init()': /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc:285: error: no matching function for call to 'llvm::legacy::FunctionPassManager::add(llvm::DataLayout*)' /usr/local/include/llvm/IR/LegacyPassManager.h:83: note: candidates are: virtual void llvm::legacy::FunctionPassManager::add(llvm::Pass*) /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc: In member function 'bool interpreter::LoadBitcode(bool, const char*, std::string*)': /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc:2427: error: request for member 'empty' in 'M-> llvm::Module::getDataLayout()', which is of non-class type 'const llvm::DataLayout*' /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc:2427: error: no match for 'operator!=' in 'M-> llvm::Module::getDataLayout() != layout' /usr/local/include/llvm/ADT/StringRef.h:532: note: candidates are: bool llvm::operator!=(llvm::StringRef, llvm::StringRef) /usr/local/include/llvm/Target/TargetOptions.h:226: note: bool llvm::operator!=(const llvm::TargetOptions&, const llvm::TargetOptions&) /usr/local/include/llvm/ADT/APInt.h:1715: note: bool llvm::operator!=(uint64_t, const llvm::APInt&) /usr/local/include/llvm/Support/system_error.h:808: note: bool llvm::operator!=(const llvm::error_code&, const llvm::error_code&) /usr/local/include/llvm/Support/system_error.h:812: note: bool llvm::operator!=(const llvm::error_code&, const llvm::error_condition&) /usr/local/include/llvm/Support/system_error.h:816: note: bool llvm::operator!=(const llvm::error_condition&, const llvm::error_code&) /usr/local/include/llvm/Support/system_error.h:820: note: bool llvm::operator!=(const llvm::error_condition&, const llvm::error_condition&) /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc:2435: error: invalid operands of types 'const char [26]' and 'const llvm::DataLayout*' to binary 'operator+' /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc: In member function 'int interpreter::compiler(std::string, std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)': /usr/obj/pobj/pure-0.60/pure-0.60/interpreter.cc:10521: error: 'F_Binary' is not a member of 'llvm::sys::fs' Makefile:249: recipe for target 'interpreter.o' failed gmake: *** [interpreter.o] Error 1 *** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2695 '/usr/obj/pobj/pure-0.60/build-i386/.build_done') *** Error 1 in /usr/ports/mystuff/lang/pure (/usr/ports/infrastructure/mk/bsd.port.mk:2423 'all') -- Sébastien Marie
