Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

NASM 2.15.02 (Announce)

posted by rr Homepage E-mail, Berlin, Germany, 14.07.2020, 22:21

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

 

Complete thread:

Back to the forum
Board view  Mix view
22632 Postings in 2109 Threads, 402 registered users, 419 users online (0 registered, 419 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum