Go to file
H. Peter Anvin d235408c65 preproc: standard macros now C-safe, %aliases off, fix %? recursion
Enough users expect the namespace starting with underscore to be safe
for symbols. Change our private namespace from __foo__ to
__?foo?__. Use %defalias to provide backwards compatiblity (by using
%defalias instead of %define, we handle the case properly where the
user changes the value.)

Add a preprocessor directive:

%aliases off

... to disable all smacro aliases and thereby making the namespace
clean.

Finally, fix infinite recursion when seeing %? or %?? due to
paste_tokens(). If we don't paste anything, the expansion is done.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2019-08-27 16:42:41 -07:00
asm preproc: standard macros now C-safe, %aliases off, fix %? recursion 2019-08-27 16:42:41 -07:00
autoconf autoconf: update check for gcc inlines 2019-08-16 00:14:17 -07:00
common
config config.h: separate function and function pointer attributes; automate 2019-08-16 00:08:27 -07:00
contrib
disasm Remove #includes already provided by "compiler.h" 2018-12-27 12:45:44 -08:00
doc preproc: standard macros now C-safe, %aliases off, fix %? recursion 2019-08-27 16:42:41 -07:00
headers
include preproc: standard macros now C-safe, %aliases off, fix %? recursion 2019-08-27 16:42:41 -07:00
macros preproc: standard macros now C-safe, %aliases off, fix %? recursion 2019-08-27 16:42:41 -07:00
misc Move <string.h> inclusion to compiler.h 2018-12-26 06:32:37 -08:00
Mkfiles iflags: move definitions to a separate file; auto-generate more 2019-08-06 22:12:11 -07:00
nasmlib BR 3392597: the system malloc() can return NULL 2019-08-16 00:41:29 -07:00
nsis
output preproc: standard macros now C-safe, %aliases off, fix %? recursion 2019-08-27 16:42:41 -07:00
perllib perl files: clean up warnings 2019-08-09 13:30:19 -07:00
rdoff Move <string.h> inclusion to compiler.h 2018-12-26 06:32:37 -08:00
stdlib Remove #includes already provided by "compiler.h" 2018-12-27 12:45:44 -08:00
test preproc: fix varadic macros, add conditional comma operator 2019-08-20 01:32:28 -07:00
tools perl files: clean up warnings 2019-08-09 13:30:19 -07:00
travis travis: update warning output 2019-08-09 16:18:51 -07:00
x86 LEA: allow immediate syntax; ignore operand size entirely 2019-08-14 15:23:00 -07:00
.gitignore config.h: separate function and function pointer attributes; automate 2019-08-16 00:08:27 -07:00
.travis.yml
AUTHORS
autogen.sh autogen.sh: allow overriding autotools location, and handle missing 2019-08-07 17:43:20 -07:00
ChangeLog
CHANGES
configure.ac configure.ac: look for unconfig.h not uninit.h... 2019-08-27 15:13:15 -07:00
INSTALL
LICENSE
Makefile.in Makefile.in: use $(ALL_LDFLAGS) 2019-08-16 01:29:49 -07:00
nasm.spec.in nasm.spec.in: remove obsolete files 2018-12-26 06:13:06 -08:00
nasm.spec.sed
nasm.txt Add group aliases for all prefixed warnings. 2019-06-06 20:53:17 -07:00
ndisasm.txt
README.md
SubmittingPatches
version
version.pl preproc: standard macros now C-safe, %aliases off, fix %? recursion 2019-08-27 16:42:41 -07:00

NASM, the Netwide Assembler

master

Many many developers all over the net respect NASM for what it is: a widespread (thus netwide), portable (thus netwide!), very flexible and mature assembler tool with support for many output formats (thus netwide!!).

Now we have good news for you: NASM is licensed under the "simplified" (2-clause) BSD license. This means its development is open to even wider society of programmers wishing to improve their lovely assembler.

Visit our nasm.us website for more details. We are gradually moving services away from Sourceforge. For our remaining Sourceforge services see here.

With best regards, the NASM crew.