Functions are now analyzed when they are defined so they aren't
erroneously marked as dead code. This led to some weird typechecking
issues that ended up pushing me to clean up some of the typechecking
code.
the new names are TYPE_TAG_GLOB TYPE_TAG_LISTIFY which better reflect
that they are type "tags" (i.e. not real types) and line up with the
typechecking syntax naming
- wip "unencapsulated" module. This just means that the module is
loaded into the global scope. You could then write functions like
`vcs_tag` in this global module to be used by all meson files. This
might be removed.
- remove export() function and instead use a lua-like return to export
from the module.
- track language mode in function definitions. Necessary for functions
to use internal-only functions.
- use assigned function name in error messages
- fix embedded source reopening in error messages
- reduce number of node types that get marked as dead code
- create true/false bools on workspace initialization with known ids.
Future code should use these rather than making new boolean objects to
save memory.
- add a new test script-module
python_installation is an external_program with a couple of extra
methods related to the Python installation. Right now, we only add the
type.
Signed-off-by: Filipe Laíns <lains@riseup.net>
Signed-off-by: Seedo Paul <seedoeldhopaul@gmail.com>
This will be required for find_program('meson') to return an external
program with the command ['muon', 'meson']. It also allows muon to
return ['muon', 'samu'] as the result for find_program('ninja'), which
is kind of neat.
The invocation:
meson setup -Dlibdir=/usr/lib64 -Dprefix=/usr build
sets libdir to `lib64` because meson detects that it is an absolute path
that is a subdir of prefix. This commit adds the same functionality to
muon.
Currently all compat.h does is define the appropriate POSIX macro unless
you are on windows, as well as conditionally enabling
__attribute__(format...).