1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-19 19:59:43 +00:00

Update lang/pypy-devel to 2.3.

Due to reported regressions, only 2.3.1 will be merged to stable lang/pypy.

ChangeLog:
This release updates the stdlib from 2.7.3, jumping directly to 2.7.6.

This release also contains several bugfixes and performance improvements,
many generated by real users finding corner cases. CFFI has made it easier
than ever to use existing C code with both cpython and PyPy, easing the
transition for packages like cryptography, Pillow(Python Imaging Library
[Fork]), a basic port of pygame-cffi, and others.
This commit is contained in:
David Naylor 2014-05-13 19:01:16 +00:00
parent 5b38eae64f
commit 6cf2ade1f7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=353979
5 changed files with 102 additions and 21 deletions

View File

@ -2,13 +2,11 @@
# $FreeBSD$
PORTNAME= pypy
DISTVERSION= 2.3-alpha${DATE}
PORTREVISION= 1
DISTVERSION= 2.3
CATEGORIES= lang python
MASTER_SITES= https://bitbucket.org/pypy/pypy/get/ LOCAL/dbn/${PORTNAME}
MASTER_SITES= http://cdn.bitbucket.org/pypy/pypy/downloads/ https://bitbucket.org/pypy/pypy/downloads/
PKGNAMESUFFIX= -devel
DISTNAME= ${COMMIT}
DIST_SUBDIR= ${PORTNAME}
DISTNAME= ${PORTNAME}-${DISTVERSION}-src
MAINTAINER= dbn@FreeBSD.org
COMMENT= Fast, compliant implementation of the Python language
@ -41,13 +39,11 @@ CONFLICTS_INSTALL= pypy-[0-9]*
ALL_TARGET= ${PYPY_NAMES}
BUILD_WRKSRC= ${WRKDIR}
COMMIT= 92ff43b19372
DATE= 20131216
USES= compiler:c11 gettext iconv tar:bzip2
MAKEFILE= ${FILESDIR}/Makefile
PKGINSTALL= ${WRKDIR}/pkg-install
PKGDEINSTALL= ${WRKDIR}/pkg-deinstall
WRKSRC= ${WRKDIR}/pypy-pypy-${COMMIT}
WRKSRC= ${WRKDIR}/pypy-pypy-394146e9bb67
PYPY_VER= ${DISTVERSION:C|([0-9])\.([0-9]).*|\1.\2|}
PYTHON_IMPL_VER= 2.7

View File

@ -1,2 +1,2 @@
SHA256 (pypy/92ff43b19372.tar.bz2) = 64f4c31f9f609535fcf33fdf33c71524ef9bd0c0e1abff181cc06c0c25985563
SIZE (pypy/92ff43b19372.tar.bz2) = 14291630
SHA256 (pypy-2.3-src.tar.bz2) = be2c271e7f9d7c0059a551ba1501713c00336e551e7f13107f0f34c721d95b0c
SIZE (pypy-2.3-src.tar.bz2) = 14658373

View File

@ -21,7 +21,7 @@ TOUCH?= touch
REINPLACE_CMD?= ${SED} -i~
BUILDDIR= usession-default-0
BUILDDIR= usession-release-${DISTVERSION}-0
.for inst in ${PYPY_INST}

View File

@ -1,9 +1,9 @@
--- pypy/sandbox/pypy_interact.py.orig 2012-06-07 14:24:48.000000000 +0200
+++ pypy/sandbox/pypy_interact.py 2012-07-02 21:08:19.000000000 +0200
--- pypy/sandbox/pypy_interact.py.orig 2014-05-08 18:36:08.000000000 +0200
+++ pypy/sandbox/pypy_interact.py 2014-05-12 20:20:57.000000000 +0200
@@ -22,11 +22,14 @@
import sys, os
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..', '..')))
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..')))
+from pypy.module.sys.version import PYPY_VERSION
from rpython.translator.sandbox.sandlib import SimpleIOSandboxedProc
from rpython.translator.sandbox.sandlib import VirtualizedSandboxedProc

View File

@ -1,3 +1,4 @@
%%PYPY_INCLUDEDIR%%/PyPy.h
%%PYPY_INCLUDEDIR%%/Python.h
%%PYPY_INCLUDEDIR%%/README
%%PYPY_INCLUDEDIR%%/abstract.h
@ -92,6 +93,8 @@
%%PYPY_LIBDIR%%/__phello__.foo.pyc
%%PYPY_LIBDIR%%/_abcoll.py
%%PYPY_LIBDIR%%/_abcoll.pyc
%%PYPY_LIBDIR%%/_osx_support.py
%%PYPY_LIBDIR%%/_osx_support.pyc
%%PYPY_LIBDIR%%/_pyio.py
%%PYPY_LIBDIR%%/_pyio.pyc
%%PYPY_LIBDIR%%/_strptime.py
@ -371,6 +374,8 @@
%%PYPY_LIBDIR%%/ctypes/test/test_varsize_struct.pyc
%%PYPY_LIBDIR%%/ctypes/test/test_win32.py
%%PYPY_LIBDIR%%/ctypes/test/test_win32.pyc
%%PYPY_LIBDIR%%/ctypes/test/test_wintypes.py
%%PYPY_LIBDIR%%/ctypes/test/test_wintypes.pyc
%%PYPY_LIBDIR%%/ctypes/util.py
%%PYPY_LIBDIR%%/ctypes/util.pyc
%%PYPY_LIBDIR%%/ctypes/wintypes.py
@ -1123,6 +1128,35 @@
%%PYPY_LIBDIR%%/idlelib/idle.py
%%PYPY_LIBDIR%%/idlelib/idle.pyc
%%PYPY_LIBDIR%%/idlelib/idle.pyw
%%PYPY_LIBDIR%%/idlelib/idle_test/README.txt
%%PYPY_LIBDIR%%/idlelib/idle_test/__init__.py
%%PYPY_LIBDIR%%/idlelib/idle_test/__init__.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/mock_idle.py
%%PYPY_LIBDIR%%/idlelib/idle_test/mock_idle.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/mock_tk.py
%%PYPY_LIBDIR%%/idlelib/idle_test/mock_tk.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_calltips.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_calltips.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_config_name.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_config_name.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_delegator.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_delegator.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_formatparagraph.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_formatparagraph.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_grep.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_grep.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_idlehistory.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_idlehistory.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_pathbrowser.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_pathbrowser.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_rstrip.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_rstrip.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_searchengine.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_searchengine.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_text.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_text.pyc
%%PYPY_LIBDIR%%/idlelib/idle_test/test_warning.py
%%PYPY_LIBDIR%%/idlelib/idle_test/test_warning.pyc
%%PYPY_LIBDIR%%/idlelib/idlever.py
%%PYPY_LIBDIR%%/idlelib/idlever.pyc
%%PYPY_LIBDIR%%/idlelib/keybindingDialog.py
@ -1193,6 +1227,8 @@
%%PYPY_LIBDIR%%/json/tests/test_separators.pyc
%%PYPY_LIBDIR%%/json/tests/test_speedups.py
%%PYPY_LIBDIR%%/json/tests/test_speedups.pyc
%%PYPY_LIBDIR%%/json/tests/test_tool.py
%%PYPY_LIBDIR%%/json/tests/test_tool.pyc
%%PYPY_LIBDIR%%/json/tests/test_unicode.py
%%PYPY_LIBDIR%%/json/tests/test_unicode.pyc
%%PYPY_LIBDIR%%/json/tool.py
@ -1411,6 +1447,8 @@
%%PYPY_LIBDIR%%/lib2to3/tests/data/crlf.pyc
%%PYPY_LIBDIR%%/lib2to3/tests/data/different_encoding.py
%%PYPY_LIBDIR%%/lib2to3/tests/data/different_encoding.pyc
%%PYPY_LIBDIR%%/lib2to3/tests/data/false_encoding.py
%%PYPY_LIBDIR%%/lib2to3/tests/data/false_encoding.pyc
%%PYPY_LIBDIR%%/lib2to3/tests/data/fixers/bad_order.py
%%PYPY_LIBDIR%%/lib2to3/tests/data/fixers/bad_order.pyc
%%PYPY_LIBDIR%%/lib2to3/tests/data/fixers/myfixes/__init__.py
@ -1454,9 +1492,9 @@
%%PYPY_LIBDIR%%/lib2to3/tests/test_util.pyc
%%PYPY_LIBDIR%%/lib_pypy/__init__.py
%%PYPY_LIBDIR%%/lib_pypy/__init__.pyc
%%PYPY_LIBDIR%%/lib_pypy/__pycache__/_cffi__g16926e9ax39a3fadd.pypy-%%PYPY_VER%%.so
%%PYPY_LIBDIR%%/lib_pypy/__pycache__/_cffi__g3ed5c373x359e5476.pypy-%%PYPY_VER%%.so
%%PYPY_LIBDIR%%/lib_pypy/__pycache__/_cffi__g8b5895b6x576c1bb2.pypy-%%PYPY_VER%%.so
%%PYPY_LIBDIR%%/lib_pypy/__pycache__/_cffi__gb0420b02x359e5476.pypy-%%PYPY_VER%%.so
%%PYPY_LIBDIR%%/lib_pypy/__pycache__/_cffi__gb1f15f1ex576c1bb2.pypy-%%PYPY_VER%%.so
%%PYPY_LIBDIR%%/lib_pypy/__pycache__/_cffi__gf5132b8x39a3fadd.pypy-%%PYPY_VER%%.so
%%PYPY_LIBDIR%%/lib_pypy/_codecs_cn.py
%%PYPY_LIBDIR%%/lib_pypy/_codecs_cn.pyc
%%PYPY_LIBDIR%%/lib_pypy/_codecs_hk.py
@ -1504,6 +1542,8 @@
%%PYPY_LIBDIR%%/lib_pypy/_curses_panel.pyc
%%PYPY_LIBDIR%%/lib_pypy/_elementtree.py
%%PYPY_LIBDIR%%/lib_pypy/_elementtree.pyc
%%PYPY_LIBDIR%%/lib_pypy/_ffi.py
%%PYPY_LIBDIR%%/lib_pypy/_ffi.pyc
%%PYPY_LIBDIR%%/lib_pypy/_functools.py
%%PYPY_LIBDIR%%/lib_pypy/_functools.pyc
%%PYPY_LIBDIR%%/lib_pypy/_marshal.py
@ -1542,6 +1582,8 @@
%%PYPY_LIBDIR%%/lib_pypy/_tkinter/tclobj.pyc
%%PYPY_LIBDIR%%/lib_pypy/_tkinter/tklib.py
%%PYPY_LIBDIR%%/lib_pypy/_tkinter/tklib.pyc
%%PYPY_LIBDIR%%/lib_pypy/audioop.py
%%PYPY_LIBDIR%%/lib_pypy/audioop.pyc
%%PYPY_LIBDIR%%/lib_pypy/cPickle.py
%%PYPY_LIBDIR%%/lib_pypy/cPickle.pyc
%%PYPY_LIBDIR%%/lib_pypy/cStringIO.py
@ -1549,6 +1591,7 @@
%%PYPY_LIBDIR%%/lib_pypy/cffi.egg-info
%%PYPY_LIBDIR%%/lib_pypy/cffi/__init__.py
%%PYPY_LIBDIR%%/lib_pypy/cffi/__init__.pyc
%%PYPY_LIBDIR%%/lib_pypy/cffi/_pycparser/README
%%PYPY_LIBDIR%%/lib_pypy/cffi/_pycparser/__init__.py
%%PYPY_LIBDIR%%/lib_pypy/cffi/_pycparser/__init__.pyc
%%PYPY_LIBDIR%%/lib_pypy/cffi/_pycparser/_ast_gen.py
@ -1628,8 +1671,6 @@
%%PYPY_LIBDIR%%/lib_pypy/datetime.pyc
%%PYPY_LIBDIR%%/lib_pypy/dbm.py
%%PYPY_LIBDIR%%/lib_pypy/dbm.pyc
%%PYPY_LIBDIR%%/lib_pypy/disassembler.py
%%PYPY_LIBDIR%%/lib_pypy/disassembler.pyc
%%PYPY_LIBDIR%%/lib_pypy/future_builtins.py
%%PYPY_LIBDIR%%/lib_pypy/future_builtins.pyc
%%PYPY_LIBDIR%%/lib_pypy/greenlet.egg-info
@ -2424,7 +2465,22 @@
%%PYPY_LIBDIR%%/test/Sine-1000Hz-300ms.aif
%%PYPY_LIBDIR%%/test/__init__.py
%%PYPY_LIBDIR%%/test/__init__.pyc
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm16.aiff
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm16.au
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm16.wav
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm24.aiff
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm24.wav
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm32.aiff
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm32.au
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm32.wav
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm8.aiff
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm8.au
%%PYPY_LIBDIR%%/test/audiodata/pluck-pcm8.wav
%%PYPY_LIBDIR%%/test/audiodata/pluck-ulaw.aifc
%%PYPY_LIBDIR%%/test/audiodata/pluck-ulaw.au
%%PYPY_LIBDIR%%/test/audiotest.au
%%PYPY_LIBDIR%%/test/audiotests.py
%%PYPY_LIBDIR%%/test/audiotests.pyc
%%PYPY_LIBDIR%%/test/autotest.py
%%PYPY_LIBDIR%%/test/autotest.pyc
%%PYPY_LIBDIR%%/test/bad_coding.py
@ -2481,8 +2537,12 @@
%%PYPY_LIBDIR%%/test/crashers/borrowed_ref_1.pyc
%%PYPY_LIBDIR%%/test/crashers/borrowed_ref_2.py
%%PYPY_LIBDIR%%/test/crashers/borrowed_ref_2.pyc
%%PYPY_LIBDIR%%/test/crashers/buffer_mutate.py
%%PYPY_LIBDIR%%/test/crashers/buffer_mutate.pyc
%%PYPY_LIBDIR%%/test/crashers/compiler_recursion.py
%%PYPY_LIBDIR%%/test/crashers/compiler_recursion.pyc
%%PYPY_LIBDIR%%/test/crashers/decref_before_assignment.py
%%PYPY_LIBDIR%%/test/crashers/decref_before_assignment.pyc
%%PYPY_LIBDIR%%/test/crashers/gc_has_finalizer.py
%%PYPY_LIBDIR%%/test/crashers/gc_has_finalizer.pyc
%%PYPY_LIBDIR%%/test/crashers/gc_inspection.py
@ -2685,7 +2745,10 @@
%%PYPY_LIBDIR%%/test/mapping_tests.py
%%PYPY_LIBDIR%%/test/mapping_tests.pyc
%%PYPY_LIBDIR%%/test/math_testcases.txt
%%PYPY_LIBDIR%%/test/mp_fork_bomb.py
%%PYPY_LIBDIR%%/test/mp_fork_bomb.pyc
%%PYPY_LIBDIR%%/test/nokia.pem
%%PYPY_LIBDIR%%/test/nullbytecert.pem
%%PYPY_LIBDIR%%/test/nullcert.pem
%%PYPY_LIBDIR%%/test/outstanding_bugs.py
%%PYPY_LIBDIR%%/test/outstanding_bugs.pyc
@ -2714,6 +2777,10 @@
%%PYPY_LIBDIR%%/test/reperf.pyc
%%PYPY_LIBDIR%%/test/sample_doctest.py
%%PYPY_LIBDIR%%/test/sample_doctest.pyc
%%PYPY_LIBDIR%%/test/sample_doctest_no_docstrings.py
%%PYPY_LIBDIR%%/test/sample_doctest_no_docstrings.pyc
%%PYPY_LIBDIR%%/test/sample_doctest_no_doctests.py
%%PYPY_LIBDIR%%/test/sample_doctest_no_doctests.pyc
%%PYPY_LIBDIR%%/test/script_helper.py
%%PYPY_LIBDIR%%/test/script_helper.pyc
%%PYPY_LIBDIR%%/test/seq_tests.py
@ -2722,12 +2789,12 @@
%%PYPY_LIBDIR%%/test/sha256.pem
%%PYPY_LIBDIR%%/test/sortperf.py
%%PYPY_LIBDIR%%/test/sortperf.pyc
%%PYPY_LIBDIR%%/test/ssl_cert.pem
%%PYPY_LIBDIR%%/test/ssl_key.pem
%%PYPY_LIBDIR%%/test/string_tests.py
%%PYPY_LIBDIR%%/test/string_tests.pyc
%%PYPY_LIBDIR%%/test/subprocessdata/sigchild_ignore.py
%%PYPY_LIBDIR%%/test/subprocessdata/sigchild_ignore.pyc
%%PYPY_LIBDIR%%/test/symlink_support.py
%%PYPY_LIBDIR%%/test/symlink_support.pyc
%%PYPY_LIBDIR%%/test/test_MimeWriter.py
%%PYPY_LIBDIR%%/test/test_MimeWriter.pyc
%%PYPY_LIBDIR%%/test/test_SimpleHTTPServer.py
@ -2740,6 +2807,8 @@
%%PYPY_LIBDIR%%/test/test___future__.pyc
%%PYPY_LIBDIR%%/test/test__locale.py
%%PYPY_LIBDIR%%/test/test__locale.pyc
%%PYPY_LIBDIR%%/test/test__osx_support.py
%%PYPY_LIBDIR%%/test/test__osx_support.pyc
%%PYPY_LIBDIR%%/test/test_abc.py
%%PYPY_LIBDIR%%/test/test_abc.pyc
%%PYPY_LIBDIR%%/test/test_abstract_numbers.py
@ -2983,6 +3052,8 @@
%%PYPY_LIBDIR%%/test/test_file.pyc
%%PYPY_LIBDIR%%/test/test_file2k.py
%%PYPY_LIBDIR%%/test/test_file2k.pyc
%%PYPY_LIBDIR%%/test/test_file_eintr.py
%%PYPY_LIBDIR%%/test/test_file_eintr.pyc
%%PYPY_LIBDIR%%/test/test_filecmp.py
%%PYPY_LIBDIR%%/test/test_filecmp.pyc
%%PYPY_LIBDIR%%/test/test_fileinput.py
@ -3073,6 +3144,8 @@
%%PYPY_LIBDIR%%/test/test_httplib.pyc
%%PYPY_LIBDIR%%/test/test_httpservers.py
%%PYPY_LIBDIR%%/test/test_httpservers.pyc
%%PYPY_LIBDIR%%/test/test_idle.py
%%PYPY_LIBDIR%%/test/test_idle.pyc
%%PYPY_LIBDIR%%/test/test_imageop.py
%%PYPY_LIBDIR%%/test/test_imageop.pyc
%%PYPY_LIBDIR%%/test/test_imaplib.py
@ -3137,6 +3210,8 @@
%%PYPY_LIBDIR%%/test/test_macostools.pyc
%%PYPY_LIBDIR%%/test/test_macpath.py
%%PYPY_LIBDIR%%/test/test_macpath.pyc
%%PYPY_LIBDIR%%/test/test_macurl2path.py
%%PYPY_LIBDIR%%/test/test_macurl2path.pyc
%%PYPY_LIBDIR%%/test/test_mailbox.py
%%PYPY_LIBDIR%%/test/test_mailbox.pyc
%%PYPY_LIBDIR%%/test/test_marshal.py
@ -3183,6 +3258,8 @@
%%PYPY_LIBDIR%%/test/test_new.pyc
%%PYPY_LIBDIR%%/test/test_nis.py
%%PYPY_LIBDIR%%/test/test_nis.pyc
%%PYPY_LIBDIR%%/test/test_nntplib.py
%%PYPY_LIBDIR%%/test/test_nntplib.pyc
%%PYPY_LIBDIR%%/test/test_normalization.py
%%PYPY_LIBDIR%%/test/test_normalization.pyc
%%PYPY_LIBDIR%%/test/test_ntpath.py
@ -3343,6 +3420,8 @@
%%PYPY_LIBDIR%%/test/test_ssl.pyc
%%PYPY_LIBDIR%%/test/test_startfile.py
%%PYPY_LIBDIR%%/test/test_startfile.pyc
%%PYPY_LIBDIR%%/test/test_stat.py
%%PYPY_LIBDIR%%/test/test_stat.pyc
%%PYPY_LIBDIR%%/test/test_str.py
%%PYPY_LIBDIR%%/test/test_str.pyc
%%PYPY_LIBDIR%%/test/test_strftime.py
@ -3365,6 +3444,8 @@
%%PYPY_LIBDIR%%/test/test_structseq.pyc
%%PYPY_LIBDIR%%/test/test_subprocess.py
%%PYPY_LIBDIR%%/test/test_subprocess.pyc
%%PYPY_LIBDIR%%/test/test_sunau.py
%%PYPY_LIBDIR%%/test/test_sunau.pyc
%%PYPY_LIBDIR%%/test/test_sunaudiodev.py
%%PYPY_LIBDIR%%/test/test_sunaudiodev.pyc
%%PYPY_LIBDIR%%/test/test_sundry.py
@ -3413,6 +3494,8 @@
%%PYPY_LIBDIR%%/test/test_tk.pyc
%%PYPY_LIBDIR%%/test/test_tokenize.py
%%PYPY_LIBDIR%%/test/test_tokenize.pyc
%%PYPY_LIBDIR%%/test/test_tools.py
%%PYPY_LIBDIR%%/test/test_tools.pyc
%%PYPY_LIBDIR%%/test/test_trace.py
%%PYPY_LIBDIR%%/test/test_trace.pyc
%%PYPY_LIBDIR%%/test/test_traceback.py
@ -3723,6 +3806,7 @@
@dirrm %%PYPY_LIBDIR%%/test/data
@dirrm %%PYPY_LIBDIR%%/test/crashers
@dirrm %%PYPY_LIBDIR%%/test/cjkencodings
@dirrm %%PYPY_LIBDIR%%/test/audiodata
@dirrm %%PYPY_LIBDIR%%/test
@dirrm %%PYPY_LIBDIR%%/sqlite3/test
@dirrm %%PYPY_LIBDIR%%/sqlite3
@ -3786,6 +3870,7 @@
@dirrm %%PYPY_LIBDIR%%/json/tests
@dirrm %%PYPY_LIBDIR%%/json
@dirrm %%PYPY_LIBDIR%%/importlib
@dirrm %%PYPY_LIBDIR%%/idlelib/idle_test
@dirrm %%PYPY_LIBDIR%%/idlelib/Icons
@dirrm %%PYPY_LIBDIR%%/idlelib
@dirrm %%PYPY_LIBDIR%%/hotshot