1. 17 Feb, 2021 4 commits
  2. 16 Feb, 2021 5 commits
  3. 15 Feb, 2021 9 commits
    • Guillaume Quintard's avatar
      [cci] download fixed package in /tmp · 47a9ae00
      Guillaume Quintard authored
      47a9ae00
    • Poul-Henning Kamp's avatar
    • Poul-Henning Kamp's avatar
      49f4f916
    • Poul-Henning Kamp's avatar
      Extend -p(ass) mode also to argv mode. · eb3c0e11
      Poul-Henning Kamp authored
      eb3c0e11
    • Guillaume Quintard's avatar
      [cci] work around glibc bug · 1d5c0aae
      Guillaume Quintard authored
      1d5c0aae
    • Nils Goroll's avatar
      Enable calling a dynamic sub · 7ec28f1a
      Nils Goroll authored
      that is,
      
      	call vmod.returning_sub();
      
      in VCL.
      
      Background:
      
      The existing
      
      	call sub;
      
      is special in that it instantiates "sub", if it does not exist
      already, enabling use-before-definition semantics.
      
      The doctrine of this change is to preserve this behaviour and to not
      make existing, static calls any less efficient.
      
      Implementation:
      
      To support calling both literal SUBs as well as SUB expressions, we
      peek into the symbol table to check if the called expression is a
      function, based on the knowledge that, as of now, only functions can
      have a non-literal SUB return. We also know that no other expression
      can yield a SUB. So if peeking ahead tells us that a function follows,
      we call into expression evaluation.
      
      Otherwise, we expect a literal SUB as before.
      
      Null check:
      
      For dynamic SUB calls from vmods via VRT_call(), we require the SUB
      argument be non-NULL. But we can not for call: To signal error with a
      SUB return, a vmod function needs to be allowed to return NULL,
      otherwise it would need to have a dummy return value available for the
      VRT_fail() case. So we need to check for NULL in VGC.
      
      Alternatives considered:
      
      - We could make expression evaluation return SUB also for literal SUB
      symbols, turning all calls into sub->func(ctx, ...) C statements. I
      tried this path and it resulted in a change of behaviour with
      cc_command="clang -g -O2 ...": Where, previously, sub code was
      inlined, it would now generate an explicit C function call always,
      despite the fact that the C function is known at compile time (because
      all named VCL_SUB structs are).
      
      So this option was dismissed for violating the doctrine.
      
      - The null check could go to VPI, via a VPI_call(), basically identical
      to VRT_call(), but checking for NULL. This option was dismissed because
      it would foreclose the requirement to allow for SUB arguments in the
      future.
      
      Acknowledgements:
      
      reza mentioned the idea of call SUB at one point, and I can not remember
      if I had it before or not, so when in doubt, it was his idea.
      
      Dridi helped with ideas on the implementation and spotted a bug.
      7ec28f1a
    • Dridi Boukelmoune's avatar
      param: New vary_notice parameter · e74abf89
      Dridi Boukelmoune authored
      To control the threshold used to warn.
      e74abf89
    • Dridi Boukelmoune's avatar
      lookup: Add a notice for high numbers of variants · ce9fbe44
      Dridi Boukelmoune authored
      As a recurring pitfall sometimes hard to identify, it deserves its own
      notice. The accounting of variants reuses the worker's strangelove field
      since it doesn't conflict where other parts of the code base use it.
      ce9fbe44
    • Poul-Henning Kamp's avatar
  4. 12 Feb, 2021 5 commits
  5. 11 Feb, 2021 5 commits
  6. 10 Feb, 2021 5 commits
  7. 09 Feb, 2021 7 commits