./emulators/py-unicorn, Python bindings for unicorn

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.1.1, Package name: py312-unicorn-2.1.1, Maintainer: pkgsrc-users

Unicorn 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)


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) | Package updated
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) | Package updated
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) | Package updated
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.