mirror_qemu/docs/devel
Markus Armbruster 9d55380b5a qapi: Remove null from schema language
We represent the parse tree as OrderedDict.  We fetch optional dict
members with .get().  So far, so good.

We represent null literals as None.  .get() returns None both for
"absent" and for "present, value is the null literal".  Uh-oh.

Test features-if-invalid exposes this bug: "'if': null" is
misinterpreted as absent "if".

We added null to the schema language to "allow [...] an explicit
default value" (commit e53188ada5 "qapi: Allow true, false and null in
schema json", v2.4.0).  Hasn't happened; null is still unused except
as generic invalid value in tests/.

To fix, we'd have to replace .get() by something more careful, or
represent null differently.  Feasible, but we got more and bigger fish
to fry right now.  Remove the null literal from the schema language.
Replace null in tests by another invalid value.

Test features-if-invalid now behaves as it should.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190914153506.2151-10-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-09-24 14:07:23 +02:00
..
atomics.txt docs: document atomic_load_acquire and atomic_store_release 2018-03-12 16:12:47 +01:00
blkdebug.txt docs: create config/, devel/ and spin/ subdirectories 2017-06-07 18:22:03 +02:00
blkverify.txt docs: create config/, devel/ and spin/ subdirectories 2017-06-07 18:22:03 +02:00
build-system.txt docs/devel/build-system: Update an example 2019-06-06 11:25:00 +02:00
conf.py docs: Provide separate conf.py for each manual we want 2019-03-07 14:26:46 +00:00
decodetree.rst decodetree: Allow !function with no input bits 2019-08-19 08:03:41 -07:00
index.rst Convert "translator internals" docs to RST, move to devel manual 2019-06-17 15:35:30 +01:00
kconfig.rst docs: correct kconfig option 2019-07-24 11:21:59 +02:00
loads-stores.rst Rename cpu_physical_memory_write_rom() to address_space_write_rom() 2018-12-14 13:30:48 +00:00
lockcnt.txt docs: fix broken paths to docs/devel/atomics.txt 2017-07-31 13:12:47 +03:00
memory.rst docs: Convert memory.txt to rst format 2019-03-07 14:26:44 +00:00
migration.rst migration: register_savevm_live doesn't need dev 2019-09-12 11:15:03 +01:00
multi-thread-tcg.txt docs: Grammar and spelling fixes 2018-07-13 10:16:04 +01:00
multiple-iothreads.txt block: Remove bdrv_set_aio_context() 2019-06-04 16:55:58 +02:00
qapi-code-gen.txt qapi: Remove null from schema language 2019-09-24 14:07:23 +02:00
rcu.txt docs: create config/, devel/ and spin/ subdirectories 2017-06-07 18:22:03 +02:00
replay.txt replay: document development rules 2019-08-20 17:26:21 +02:00
s390-dasd-ipl.txt s390-bios: Support booting from real dasd device 2019-04-12 12:40:35 +02:00
secure-coding-practices.rst docs: add Secure Coding Practices to developer docs 2019-05-10 10:53:52 +01:00
stable-process.rst docs: document our stable process 2018-02-19 10:51:16 +01:00
tcg.rst Convert "translator internals" docs to RST, move to devel manual 2019-06-17 15:35:30 +01:00
testing.rst Fix typo, change virtio-rng default to urandom 2019-07-05 16:16:15 +01:00
tracing.txt trace: Forbid event format ending with newline character 2019-09-18 10:20:15 +01:00
virtio-migration.txt docs: create config/, devel/ and spin/ subdirectories 2017-06-07 18:22:03 +02:00
writing-qmp-commands.txt monitor: Move {hmp, qmp}.c to monitor/{hmp, qmp}-cmds.c 2019-06-17 20:36:56 +02:00