XIRASM 0.2.15
Source

PRODUCT HISTORY / LATEST FIRST

Release notes

Features, fixes, performance work, libraries, tools, and documentation changes that affect how you use XIRASM.

0.2.x LATEST FIRST
FIX

Constant immediates and multiline parameters fixed.

Constant expressions now resolve correctly when used as x86 immediate operands, and function declarations can split parameter lists across multiple lines.

VIEW CHANGE
PERFORMANCE

Buffered streams move data faster.

Bulk stream write, read, and flush paths now use compact x86-64 block copies. The public IO surface and ABI behavior remain unchanged.

  • Faster buffered transfersMeasured 64 to 4096 byte copies improved by roughly 2.5 to 50 times on a Ryzen 5 5600.
  • Smaller generated loopsEach stream expansion emits about 17 fewer bytes by replacing byte-at-a-time loops with rep movsb.
  • Keep byte operations for single bytesUse io_stream_write_byte and io_stream_read_byte for one-byte operations. The IO library remains experimental.
FEATURE

Executable formats, without the ceremony.

XIRASM 0.2.15 focuses on the format DSL, Win32 development support, and shorter practical documentation. ISA encoders and the assembler core remain unchanged.

  • Executable formats start with a mutable planPE, COFF, and ELF now use direct mutable plans. Batch imports and exports replace image0/image1 chains and repeated const rebinding, while Win32 API selections plug directly into PE imports.
  • Win32, GUID, and COM support is built inPartitioned includes provide 339 DLLs, 17,105 APIs, 93,534 constants, and 21,717 ABI aggregate types. Structures preserve signed fields; GUID, IID, CLSID bytes, and COM vtable offsets are ready to use.
  • Five practical chapters replace the large format manualStart with template choice, PE, ELF, object files, and common rules. Advanced construction remains separate for users who need direct control.
BACK TO XIRASM