Feature #2533

Tools should load data type definitions lazily

Added by J. Moringen about 6 years ago. Updated about 6 years ago.

Status:ResolvedStart date:04/15/2016
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Common Lisp Tools
Target version:rsb-0.14

Description

I.e. it should be possible to do something like

rsb logger -I ${prefix}/share/rst0.14/proto/stable:${prefix}/share/rst0.14/proto/sandbox --lazy-idl-loading=blocking --style detailed

TODO
  • Implement IDL-loading converter
  • Add commandline options to tools
  • Document in manual

Associated revisions

Revision c33fa20c
Added by J. Moringen about 6 years ago

Added find-and-load-idl, ensure-idl-loaded in src/common/idl-loading.lisp

refs #2533

  • src/common/idl-loading.lisp (find-and-load-idl): new function; locate
    and load a IDL file
    (load-idl-on-demand?): new variable; controls whether
    `ensure-idl-loaded' calls `find-and-load-idl'
    (ensure-idl-loaded): new function; find a descriptor for a given data
    type name, potentially loading the definition
  • src/common/package.lisp (package rsb.tools.common): added exported
    symbols find-and-load-idl, ensure-idl-loaded
  • test/common/idl-loading.lisp: new file; tests for IDL loading
    functionality
  • rsb-tools-common.asd (system rsb-tools-common-test): added file
    test/common/idl-loading.lisp
  • test/data/test/Simple.proto: new file; simple protocol buffer message
    definition for IDL loading test

Revision 7902dd5f
Added by J. Moringen about 6 years ago

Mention --on-demand-idl-loading in{common-command-line-options,tool-send,tool-call,news}.rst

refs #2533

  • common-command-line-options.rst (IDL-related Commandline Options):
    added description of on-demand-idl-loading option
  • tool-send.rst (Description): mention that protocol buffer definition
    can be loaded on-demand
    (Examples): demonstrate on-demand loading for protocol buffer
    arguments
  • tool-call.rst (Description): mention that protocol buffer definition
    can be loaded on-demand
    (Examples): demonstrate on-demand loading for protocol buffer
    arguments
  • news.rst (RSB 0.14): mention on-demand IDL loading

Revision bf695b77
Added by J. Moringen about 6 years ago

Added IDL loading converter in src/common/idl-loading-converter.lisp

refs #2533

  • src/common/idl-loading-converter.lisp: new file; contains IDL loading
    converter
  • rsb-tools-common.asd (system rsb-tools-common): added file
    src/common/idl-loading-converter.lisp

Revision f8e3c9ad
Added by J. Moringen about 6 years ago

Maybe use IDL-loading converter in src/commands/*.lisp

refs #2533

  • src/commands/bridge/command.lisp (command-execute bridge): call
    `maybe-ensure-idl-loading-converter' to obtain converters for bridge
    participant
  • src/commands/logger.lisp (command-execute logger): similar
  • src/commands/call.lisp (header): updated copyright
    (command-execute call): call `maybe-ensure-idl-loading-converter' to
    obtain converters for remote-server participant
  • src/commands/send.lisp (header): updated copyright
    (command-execute send): call `maybe-ensure-idl-loading-converter' to
    obtain converters for informer participant

Revision 266ab739
Added by J. Moringen about 6 years ago

Maybe load IDL in src/common/protocol-buffer-payload.lisp

refs #2533

  • src/common/protocol-buffer-payload.lisp
    (shared-initialize :after context t): when given a descriptor name,
    turn it into a descriptor via `ensure-idl-loaded', thereby potentially
    loading the definition
  • CMakeLists.txt: added tests for the on-demand-idl-loading commandline
    option

Revision 4cf16c58
Added by J. Moringen about 6 years ago

Added options for IDL loading in src/common/[idl-]options.lisp

fixes #2533

  • src/common/options.lisp (make-idl-options): added
    on-demand-idl-loading option
  • src/common/idl-options.lisp (process-idl-options): set
    `*load-idl-on-demand?*' if requested
  • CMakeLists.txt: added test for --on-demand-idl-loading option

History

#1 Updated by J. Moringen about 6 years ago

  • Description updated (diff)
  • % Done changed from 0 to 20

#2 Updated by J. Moringen about 6 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 20 to 100

Also available in: Atom PDF