Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r54432:b11776235fa9 Date: 2012-04-16 18:04 +0200 http://bitbucket.org/pypy/pypy/changeset/b11776235fa9/
Log: merge heads diff --git a/pypy/rlib/parsing/test/test_ebnfparse.py b/pypy/rlib/parsing/test/test_ebnfparse.py --- a/pypy/rlib/parsing/test/test_ebnfparse.py +++ b/pypy/rlib/parsing/test/test_ebnfparse.py @@ -103,6 +103,7 @@ """) parse = make_parse_function(regexs, rules) tree = parse("prefix(\n\tlonger(and_nested(term(X))), Xya, _, X0, _).") + assert tree.children[0].children[0].children[2].children[0].getsourcepos().lineno == 1 assert tree is not None tree = parse(""" foo(X, Y) :- bar(Y, X), bar(Y, X) ; foobar(X, Y, 1234, atom).""") diff --git a/pypy/rlib/parsing/tree.py b/pypy/rlib/parsing/tree.py --- a/pypy/rlib/parsing/tree.py +++ b/pypy/rlib/parsing/tree.py @@ -23,6 +23,9 @@ self.symbol = symbol self.additional_info = additional_info self.token = token + + def getsourcepos(self): + return self.token.source_pos def __repr__(self): return "Symbol(%r, %r)" % (self.symbol, self.additional_info) @@ -49,6 +52,9 @@ self.children = children self.symbol = symbol + def getsourcepos(self): + return self.children[0].getsourcepos() + def __str__(self): return "%s(%s)" % (self.symbol, ", ".join([str(c) for c in self.children])) diff --git a/pypy/rlib/ropenssl.py b/pypy/rlib/ropenssl.py --- a/pypy/rlib/ropenssl.py +++ b/pypy/rlib/ropenssl.py @@ -3,8 +3,9 @@ from pypy.translator.platform import platform from pypy.translator.tool.cbuild import ExternalCompilationInfo -import sys +import sys, os +link_files = [] if sys.platform == 'win32' and platform.name != 'mingw32': libraries = ['libeay32', 'ssleay32', 'user32', 'advapi32', 'gdi32', 'msvcrt', 'ws2_32'] @@ -17,8 +18,17 @@ # so that openssl/ssl.h can repair this nonsense. 'wincrypt.h'] else: - libraries = ['ssl', 'crypto'] + libraries = ['z'] includes = [] + if (sys.platform.startswith('linux') and + os.path.exists('/usr/lib/libssl.a') and + os.path.exists('/usr/lib/libcrypto.a')): + # use static linking to avoid the infinite + # amount of troubles due to symbol versions + # and 0.9.8/1.0.0 + link_files += ['/usr/lib/libssl.a', '/usr/lib/libcrypto.a'] + else: + libraries += ['ssl', 'crypto'] includes += [ 'openssl/ssl.h', @@ -30,6 +40,7 @@ eci = ExternalCompilationInfo( libraries = libraries, + link_files = link_files, includes = includes, export_symbols = [], post_include_bits = [ _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit