New features in this release (compared to 0.5.0rc2):
- Support for arithmetic on single-character constants.
- Support for OUTPUT_FORMAT as an alias for YASM_OBJFMT.
- A couple of other bugfixes.
New features in this release (compared to 0.5.0rc1):
- Support for CodeView 8.0 source debugging (as used by Visual Studio
2005).
- Fixed -I support to properly handle relative paths (now the search
pattern is essentially identical to most C compilers). This change is
backwards incompatible (to both NASM and earlier Yasm versions), but
is much more consistent.
- Standard macros that provide version information: __YASM_MAJOR__,
__YASM_MINOR__, __YASM_SUBMINOR__, __YASM_BUILD__, __YASM_VERSION_ID__
and __YASM_VER__.
New features in this release (compared to 0.4.0) include:
- Aliases for AMD64 object formats: "win64" and "elf64" (these
automatically set the machine to "amd64").
- "x64" alias for Win64 object format (for easier use with Visual
Studio).
- DWARF2 debugging format (enable with "-g dwarf2").
- GAS parser good enough to take GCC output for both AMD64 and 32-bit
x86 (including DWARF2 debug information).
- Dozens of bugfixes in x86 and AMD64 support.
- Specifying "amd64" as the machine (or using a 64-bit object format)
automatically sets BITS 64.
Known issues with this release include:
- List output is buggy and often outright wrong.
- The optimizer is a very basic 2-pass style and generates inefficient
(large) code at times.
- The binary object format does not yet support sections other than
.text, .bss, and .data, unlike newer versions of NASM (see Trac bug
#71).
New features since 0.2.2:
* ELF AMD64 and 32-bit shared object support (using the NASM notation
"WRT ..got", etc).
* STABS debugging format (enable with "-g stabs").
* NASM-like list format.
* XDF object format (64-bit basic format, similar in spirit to NASM's RDF).
* Dozens of bugfixes in x86 and AMD64 support.
* Numerous cross-platform build fixes.
* No perl dependencies for standard build.
* New man pages: yasm(1) and yasm_arch(7).
* Full support for ELF, including support for both AMD64 and 32-bit
x86 targets; note: for AMD64 output, the machine type must be set
to "amd64" using the "-m" command line option, e.g.
"yasm -m amd64 -f elf test.asm".
* Full warnings for integer overflow.
* Full support for AMD64 RIP-relative addressing; the two forms supported
are "[rip+val]" (direct index) and "[sym wrt rip]" (relocated relative).
* Many AMD64 bugfixes including correct operand size handling (and o64
override); thanks to the many bug reports to help improve YASM in this area!
Changes in 0.2.2:
* FAR jmp/call support.
Changes in 0.2.1:
# Added support for NASM-like -I and -P options to the preprocessor
to specify include directories and pre-included files respectively
(thanks to Michael Urman for his quick work).
# Fixed a number of issues with libtool/libltdl and module building
(these issues only affected UNIX builds).
# Made the "real" NASM preprocessor the default preprocessor. This was
not the case in the original Milestone 2 release (despite an example
to the contrary in the release notes)
YASM is a complete rewrite of the NASM assembler under the "new" BSD License
(some portions are currently under the GNU General Public License (GPL) or
the GNU Lesser General Public License (LGPL)). It is designed from the ground
up to allow for multiple assembler syntaxes to be supported (eg, NASM, TASM,
GAS, etc.) in addition to multiple output object formats. Another primary
module of the overall design is an optimizer module.
Package provided in pkgsrc-wip by Juan RP.