Path to this page:
./
emulators/py-unicorn,
Python bindings for unicorn
Branch: CURRENT,
Version: 2.1.1,
Package name: py312-unicorn-2.1.1,
Maintainer: pkgsrc-usersUnicorn is a lightweight, multi-platform, multi-architecture CPU emulator
framework based on QEMU.
Unicorn offers some unparalleled features:
- Multi-architecture: ARM, AMM64 (ARMv8), M68K, MIPS, SPARC, and X86 (16, 32,
64-bit)
- Clean/simple/lightweight/intuitive architecture-neutral API
- Implemented in pure C language, with bindings for Python, Java, and Go
- Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris
confirmed)
- High performance via Just-In-Time compilation
- Support for fine-grained instrumentation at various levels
- Thread-safety by design
This package contains the Python bindings for Unicorn.
Required to run:[
devel/py-setuptools] [
lang/python27] [
emulators/unicorn]
Required to build:[
pkgtools/cwrappers]
Master sites:
Filesize: 4078.293 KB
Version history: (Expand)
- (2024-11-04) Updated to version: py312-unicorn-2.1.1
- (2023-05-11) Updated to version: py310-unicorn-2.0.1.post1
- (2023-05-10) Updated to version: py310-unicorn-1.0.3
- (2023-02-09) Updated to version: py310-unicorn-1.0.2nb1
- (2022-01-05) Updated to version: py39-unicorn-1.0.2nb1
- (2021-12-01) Updated to version: py39-unicorn-1.0.2
CVS history: (Expand)
2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862) |
Log message:
py-*: remove unused tool dependency
py-setuptools includes the py-wheel functionality nowadays
|
2024-11-04 20:05:18 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message:
unicorn py-unicorn: updated to 2.1.1
Version v2.1.1
This is a small release to fix a few urgent issues.
Remove pkg_resources usage
Fix wheels distribution for x86_64 macos
Fix redundant wheel hacks
Support musllinux distribution
Version v2.1.0
It has been a while since the last release, and 2.1.0 brings several exciting \
features. Below is the changelog from the latest to the oldest (though not \
strictly).
Highlights
Revive QEMU logs, now we have -DUNICORN_LOGGING=yes to enable all qemu logs. \
@BitMaskMixer
Faster (up to 40x) write performance by not always doing store_helper and \
cleaning page locks. @tunz @boborjan2
Brand new python bindings, with strongly typed and many improvements. @elicn
Fix to a long-standing MinGW random segfault bug.
We bring python2 compatibility back.
We now fully support M1, both building and a pre-built wheel.
We support snapshot memory now, with a very low overhead copy-on-write fashion. \
@PhilippTakacs
An option to bypass MMU is also added, check our FAQ. @PhilippTakacs
A brand new (and modern) java bindings. We are also working to publish it to \
maven. @nneonneo
We have zig integrated. @kassane @atipls
Now Unicorn no longer allocates 2GB memory for every instance. The memory will \
be only committed once used and the upper limit can be adjusted with uc_ctl.
New DotNet binding, with published to both Github and Nuget. @TSRBerry
The release will attach all binaries, thanks to @marameref
Fixes & Improvements
RISCV improvements, but we still have a long way to go. @apparentlymart @ks0777
cmake improvements @scribam @es3n1n
Various python bindings fix and improvements @bet4it @rhelmot
Docs. @gerph @BitMaskMixer
Rust bindings. @lockbox @mlgiraud @deadash
TCG backend fixes. @redoste @StalkR @dglynos
PPC32 fixes. @dotCirill
Haiku fixes. @kallisti5
Improvements to avoid simulator detection.
|
2023-05-16 20:51:11 by Thomas Klausner | Files touched by this commit (1) |
Log message:
py-unicorn: mark as not for Python 2
|
2023-05-11 08:47:11 by Adam Ciarcinski | Files touched by this commit (10) | |
Log message:
unicorn py-unicorn: updated to 2.0.1.post1
Version 2.0.1
Features:
- Support building & running on BE hosts.
- Fix and support `clang-cl` on Windows.
- Fix python `sdist` and add aarch64 Linux wheels. Note `pip` can build Unicorn2 \
on M1 now!
- C# binding is refined and upgraded to .Net 6.
Fix/Improvements:
- Various bindings improvements.
- Improvements for tests.
- Fail explicitly when VEX.L is set.
- Fix endianness when writing PPC32 CR register.
- Fix a bug in `uc_ctl_set_cpu_model` check.
- Fix Tricore PC not updating.
- Fix the mapping not updated if users modify the mappings in the hooks.
- Handle pathological cases consistently.
- Fix memory leaks in PPC target.
- Fix memory leaks in Tricore target.
- Fix MSVC handling in cmake.
- Fix PC sync-ing problems for `UC_HOOK_BLOCK` hooks.
- Fix PC sync-ed twice when users request a soft restart.
- Prevent overflow with pre-allocated RAM blocks.
- Add FPCR and FPSR registers
- Fix ARM CPU state not deep copied.
- Fix PC not sync-ed for memory operation on aarch64.
- Exit invalid store operations early to avoid the target registers being \
overwritten.
- Improve the support for ARM BE32.
Version 2.0.0
Features:
- TriCore Support
Fixes/Improvements:
- Build both shared library and static archive as unicorn1 does.
- Misc bindings improvements.
- Make sure setjmp-setjmp-wrapper-win32 participates in the build.
- Improve Rust bindings build logic.
- Fix wrong python binding for UC_CTL_TB_REMOVE_CACHE
- Flush translation blocks when the count hook is removed.
- Fix unicorn crash when nested `uc_emu_start` deletes a hook
- Fix CPU not fully resumed when writing PC.
- Don't quit TB if `uc_mem_protect` doesn't change the protection of current TB \
memory.
- Add type annotations for python bindings.
- Add CPUID hook for python bindings.
- Don't repeat memory hooks if there is already an unhandled error.
- Support reads and writes over all Arm SIMD registers
- Fix wrong registers range in python bindings.
- Fix uc_mem_protect on mmio regions
- Fix a UAF caused by hook cache.
- Fix the value collision between UC_MODE_ARMBE8 and UC_MODE_ARM926
|
2023-05-10 21:14:51 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message:
unicorn py-unicorn: updated to 1.0.3
Version 1.0.3
Fix some building issues
- Fix build with LLVM on Powerpc64(le)
- cmake: enable UNICORN_HAS_ARMEB when ARM is on
- Better support MingW building
- Better support FreeBSD host
- Better support VS2008/VS2010
Fix some issues in the core:
- Fix wrong sync after UC_ERR_[READ, WRITE, FETCH]_[UNMAPPED, PROT]
- Support querying architecture mode besides arm
- Fix pausing within Thumb2 ITE blocks
Arm:
- Support Arm BE8 mode
X86:
- Fix FPIP & FTST instructions
Bindings:
- Java: remove deprecated javah and build with javac
- Python: handle exceptions raised in hook functions
- Rust binding
|
2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595) |
Log message:
*: bump PKGREVISION for egg.mk users
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
2021-02-25 20:47:51 by Leonardo Taccari | Files touched by this commit (8) |
Log message:
{,py-}unicorn: Update to 1.0.2
Changes:
1.0.2
-----
- Fix Java binding compilation
- Enable building for ARM little-endian only (ignore big-endian)
- Add uc_context_free() API
- Fix context saving/retoring API (core & Python binding)
- Add cmake option to build Unicorn as a static library
- Fix error handling of mmap()
- uc_emu_start() can be reentrant
- Fix naming conflicts when built with systemd
- Fix setjmp/longjmp on native Windows
- Fix enabled hooks even after deleting them
- X86:
- Fix 64bit fstenv
- Fix IP value of 16bit mode
- ARM:
- Fix APSR handling
- Python: Remove UC_ERR_TIMEOUT
- No longer require Python to build
- Fix recursive UC_HOOK_MEM callbacks for cross pages access
- Remove UC_ERR_TIMEOUT, so timeout on uc_emu_start() is not considered error
- Added UC_QUERY_TIMEOUT to query exit reason
- Fix UAF when deleting hook while in hook callback
- Ensure that hooks are unaffected by a request to stop emulation.
- Fix block hooks being called twice after an early exit from execution.
- Fix binding install on python2 (MacOS)
- X86:
- Support read/write STn registers
- Support read/write X64 base regs
- ARM64:
- Support some new registers
|
2018-03-24 18:09:34 by Joerg Sonnenberger | Files touched by this commit (6) |
Log message:
Don't rebuild unicorn locally for the Python binding.
Fix doesn't fix unicorn itself as it still depends on RWX mappings to
work.
|