On 27 June 2020 the NASM development team released version 2.15.02.
Home page: https://nasm.us/
Download: https://www.nasm.us/pub/nasm/releasebuilds/2.15.02/
Changes since last announcement (version 2.14.02):
Version 2.15.02
(*) Fix miscompilation when building with `clang'.
(*) Add `db-empty' warning class, see section 2.1.26.
(*) Fix the dependencies in the MSVC NMAKE makefile
(`Mkfiles/msvc.mak').
(*) Some documentation improvements and cleanups.
(*) Fix the handling of macro parameter ranges (`%{:}'), including
with brace-enclosed original arguments.
Version 2.15.01
(*) Fix building the documentation from the release archive. For
2.15, the user has to do `make warnings' manually in the main
directory in order to be able to build the documentation, which
means Perl needs to be installed on the system.
(*) Add instructions for Intel Control Flow Enforcement Technology
(CET).
Version 2.15
(*) The comparison and booleanizing operators can now be used in any
expression context, not just `%if'. See section 3.5.
(*) New operator `?' ... `:'. See section 3.5.1.
(*) Signed shift operators `<<<' and `>>>'. See section 3.5.9.
(*) The MASM `DUP' syntax for data definitions is now supported, in
a somewhat enhanced form. See section 3.2.1.
(*) Warn for strange legacy behavior regarding empty arguments in
multi-line macro expansion, but try to match legacy behavior in
most cases. Legacy behavior can be disabled with the directive
`%pragma preproc sane_empty_expansion', see section 4.3 and
section 4.10.1.
(*) A much more sensible limit to expression evaluation depth. The
previously defined limit would rarely trigger before NASM died
with a stack overrun error on most systems. See section 2.1.31.
(*) The state of warnings can now be saved and restored via the
`[WARNING PUSH]' and `[WARNING POP]' directives. See section
7.13.
(*) The `sectalign on|off' switch does not affect an explicit
directive. See section 5.10.2.
(*) Added `configure' option to enable building with profiling
(`--enable-profiling').
(*) Attempt to support of long path names, up to 32767 of UTF-16
characters, on Windows.
(*) Fixed 'mismatch in operand sizes' error in the `MOVDDUP',
`CMPXCHG8B' and `CMPXCHG16B' instructions.
(*) Improved error messages in the string transformation routine.
(*) Removed obsolete `gnu-elf-extensions' warning about 8- and 16-
bit relocation generation. See section 8.9.8
(*) Added group aliases for all prefixed warnings. See section
2.1.26.
(*) Allowed building with MSVC versions older than 1700.
(*) Added implicitly sized versions of the `K...' instructions,
which allows the `K...' instructions to be specified without a
size suffix as long as the operands are sized.
(*) Added `-L' option for additional listing information. See
section 2.1.4.
(*) Added some warnings for obsolete instructions for a specified
CPU.
(*) Deprecated `-hf' and `-y' options. Use `-h' instead.
(*) Made DWARF as the default debug format for ELF.
(*) Added `%pragma list' _options..._ to set or clear listing
options (see `opt-L').
(*) Allowed immediate syntax for `LEA' instruction (ignore operand
size completely).
(*) Added limited functionality MASM compatibility package. See
section 6.5.
(*) Add single-line macros aliases using `%defalias' or
`%idefalias'. These behave like a kind of "symbolic links" for
single-line macros. See section 4.1.10 and `clear'.
(*) Added support for stringify, nostrip, evaluating, and greedy
single-line macro arguments. See section 4.1.1.
(*) Unused single-line macro arguments no longer need to have a
specified name. See section 4.1.1.
(*) Added conditional comma operator `%,'. See section 4.1.11.
(*) Changed private namespace from `__foo__' to `__?foo?__', so a
user namespace starting from underscore is now clean from
symbols. For backwards compatibility, the previous names are
defined as aliases; see section 4.1.10, section 4.11.3 and
chapter 5.
(*) Added support of ELF weak symbols and external references. See
section 8.9.5.
(*) Changed the behavior of the EXTERN keyword and introduced
REQUIRED keyword. See section 7.6.
(*) Added `%ifusable' and `%ifusing' directives. See chapter 6.
(*) Made various performance improvements and stability fixes in
macro preprocessor engine.
(*) Improved NASM error handling and cleaned up error messages.
(*) Many, many bug fixes.
Version 2.14.03
(*) Suppress nuisance "`label changed during code generation'"
messages after a real error.
(*) Add support for the `merge' and `strings' attributes on ELF
sections. See section 8.9.2.
(*) Add support for the `note', `preinit_array', `init_array', and
`fini_array' sections type in ELF. See section 8.9.2.
(*) Handle more than 32,633 sections in ELF. --- Forum admin |