neovim/scripts
Thiago de Arruda 296da85198 channel/msgpack_rpc: Refactor API dispatching
This is how API dispatching worked before this commit:

- The generated `msgpack_rpc_dispatch` function receives a the `msgpack_packer`
  argument.
- The response is incrementally built while validating/calling the API.
- Return values/errors are also packed into the `msgpack_packer` while the
  final response is being calculated.

Now the `msgpack_packer` argument is no longer provided, and the
`msgpack_rpc_dispatch` function returns `Object`/`Error` values to
`msgpack_rpc_call`, which will use those values to build the response in a
single pass.

This was done because the new `channel_send_call` function created the
possibility of having recursive API invocations, and this wasn't possible when
sharing a single `msgpack_sbuffer` across call frames(it was shared implicitly
through the `msgpack_packer` instance).

Since we only start to build the response when the necessary information has
been computed, it's now safe to share a single `msgpack_sbuffer` instance
across all channels and API invocations.

Some other changes also had to be performed:

- Handling of the metadata discover was moved to `msgpack_rpc_call`
- Expose more types as subtypes of `Object`, this was required to forward the
  return value from `msgpack_rpc_dispatch` to `msgpack_rpc_call`
- Added more helper macros for casting API types to `Object`
  any
2014-06-24 13:02:24 -03:00
..
clint.sh Fix clint.sh wrapper script and broken files 2014-04-22 21:56:06 -03:00
finddeclarations.pl Remove remaining declarations with new script: finddeclarations.pl 2014-06-02 11:04:18 -03:00
gendeclarations.lua Make gendeclarations.lua more friendly to incremental builds 2014-06-02 15:53:55 -03:00
movedocs.pl Move documentation from function declarations to definitions 2014-06-02 11:04:04 -03:00
msgpack-gen.lua channel/msgpack_rpc: Refactor API dispatching 2014-06-24 13:02:24 -03:00
run-api-tests.exp build: increase timeout for run-api-tests.exp 2014-06-18 11:36:07 -03:00
stripdecls.py Add automatic generation of headers 2014-06-02 11:04:17 -03:00
travis.sh Avoid ever creating .deps directory 2014-06-18 16:21:11 -04:00