• Dridi Boukelmoune's avatar
    Add VMOD object methods to the symbol table · 787a505a
    Dridi Boukelmoune authored
    Although at this point we are still using the per-instance symbols from
    the table.
    
    For example with the following:
    
        new fb1 = directors.fallback();
        new fb2 = directors.fallback();
    
    We will get the following entries in the symbol table:
    
        object    directors.fallback  41 41 directors.fallback
        method    VOID                40 41 directors.fallback.add_backend
        method    BACKEND             40 41 directors.fallback.backend
        method    VOID                40 41 directors.fallback.remove_backend
        instance  INSTANCE            41 41 fb1
        func      VOID                40 41 fb1.add_backend
        func      BACKEND             40 41 fb1.backend
        func      VOID                40 41 fb1.remove_backend
        instance  INSTANCE            41 41 fb2
        func      VOID                40 41 fb2.add_backend
        func      BACKEND             40 41 fb2.backend
        func      VOID                40 41 fb2.remove_backend
    
    As long as the func symbols exist, and the instance symbols have the
    generic type INSTANCE, the expression parser will not try to evaluate
    the method symbols.
    
    But the type-based symbols aren't ready to be evaluated yet so we can
    have peaceful cohabitation for now. This makes this part of the code
    even more complicated but it will eventually straighten up once the
    SYM_FUNC symbols are gone.
    787a505a
Name
Last commit
Last update
.circleci Loading commit data...
.github Loading commit data...
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
tools Loading commit data...
.dir-locals.el Loading commit data...
.envrc Loading commit data...
.gitignore Loading commit data...
.lgtm.yml Loading commit data...
.syntastic_c_config Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README.Packaging Loading commit data...
README.rst Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish-legacy.m4 Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...
vtc.am Loading commit data...