Go to file
H. Peter Anvin (Intel) 41e9682efe preproc: massive cleanup of smacro expansion
The smacro expansion code was virtually impossible to understand, and
was leading to very strange failures. Clean it up, and do much better
handling of magic macros.  This should also allow for recursive
macros, but recursive macros are extremely tricky in that it is very
hard to keep them from recursing forever, unless there is at least one
argument which is never expanded. They are not currently implemented.

Even so, I believe token pasting makes it possible to create infinite
loops; e.g.:

%define foo foo %+

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2019-04-25 18:00:32 -07:00
asm preproc: massive cleanup of smacro expansion 2019-04-25 18:00:32 -07:00
autoconf autoconf: move aux directory, define AC_CONFIG_AUX_DIR() 2019-02-22 01:18:04 -08:00
common Don't sort opcodes; move all pseudo-ops to the beginning 2017-05-01 21:44:24 -07:00
config Windows: clean up the handling of stat on Windows 2017-04-06 15:48:51 -07:00
contrib
disasm Remove #includes already provided by "compiler.h" 2018-12-27 12:45:44 -08:00
doc Merge branch 'evalmacro' 2019-04-24 11:14:43 -07:00
headers
include preproc: massive cleanup of smacro expansion 2019-04-25 18:00:32 -07:00
macros Merge remote-tracking branch 'origin/nasm-2.14.xx' 2019-04-24 11:15:14 -07:00
misc Move <string.h> inclusion to compiler.h 2018-12-26 06:32:37 -08:00
Mkfiles Mkfiles: run "make cleandist" 2018-12-26 06:31:54 -08:00
nasmlib preproc: massive cleanup of smacro expansion 2019-04-25 18:00:32 -07:00
nsis nsis: use /solid compression for smaller size 2017-04-07 11:05:09 -07:00
output Merge branch 'evalmacro' 2019-04-24 11:14:43 -07:00
perllib perllib/README: delete obsolete file 2017-02-23 20:24:56 -08: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 Merge branch 'evalmacro' 2019-04-24 11:14:43 -07:00
tools tools/release: handle new binary files 2018-12-26 05:11:26 -08:00
travis Warnings: move zeroing reserved space to a separate warning class 2019-01-11 12:27:02 -08:00
x86 Merge tag 'nasm-2.14.01' 2018-12-22 18:53:17 -08:00
.gitignore autoconf: use librarized autoconf setup 2018-12-22 18:17:16 -08:00
.travis.yml travis: Disable osx for a while 2018-10-17 21:40:14 +03:00
AUTHORS Correct name spelling and email address 2015-01-18 20:21:14 +02:00
autogen.sh autoconf: move aux directory, define AC_CONFIG_AUX_DIR() 2019-02-22 01:18:04 -08:00
ChangeLog
CHANGES Move the revision history into the documentation 2008-07-14 02:45:57 -04:00
configure.ac Merge branch 'evalmacro' 2019-04-24 11:14:43 -07:00
INSTALL
LICENSE
Makefile.in Makefile: make doc depend on warnings.src 2018-12-24 12:18:59 -08:00
nasm.spec.in nasm.spec.in: remove obsolete files 2018-12-26 06:13:06 -08:00
nasm.spec.sed nasm.spec: use a sed file to insert perl dependencies 2017-04-23 18:54:23 -07:00
nasm.txt Defer debug format search until after command line parsing 2016-03-07 23:20:00 -08:00
ndisasm.txt ndisasm: man -- Add missing -p option 2013-04-20 20:18:46 +04:00
README.md Add travis status into readme 2018-10-17 21:40:14 +03:00
SubmittingPatches Add SubmittingPatches file 2010-10-03 21:02:08 +04:00
version NASM 2.14.03rc2 2018-12-30 07:56:59 -08:00
version.pl Handle multiple standard macro sets sanely 2016-07-13 14:23:48 -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.