1. 13 Nov, 2019 1 commit
    • Vivien Kraus's avatar
      Remove the "safe" target · 9c592dcc
      Vivien Kraus authored
      There are some parts of the build system that are recursive.  For one,
      the gnulib layer and the gettext build infrastructure.  However, we
      also need to recursively build the library to generate the binding
      code, and we need to recursively build all programs in order to get
      their =--help= output for /help2man/.
      
      For these reasons, it is impossible to go without a recursive build
      system.
      
      This poses an unsolved problem.  Recursive builds and multi-process
      builds do not go well together, because each recursive branch does not
      know what the other branch is touching.  So I had created a list of
      things to get right in that order.  Each item of that list could be
      built with multiple jobs, but the steps had to be taken in order.  I
      had named this list "safe", because it ensured that there would be no
      recursive call (except the safe target itself that would spawn all
      tasks).
      
      However, this is a little troubling because bootstrapping the project
      with multiple jobs meant to run =autogen.sh=, then =configure=, then
      =make safe=, then =make=.
      
      I have found that Automake provides /subdirs/, which already
      implements what I was trying to do.  So there is a subdir for each
      step.
      9c592dcc
  2. 01 Nov, 2019 9 commits
  3. 31 Oct, 2019 6 commits
  4. 27 Oct, 2019 3 commits
    • Vivien Kraus's avatar
      Declare the input parameters for the Guile bindings · eaeaa33e
      Vivien Kraus authored
      The goal is to generate functions of the form:
      #+BEGIN_SRC C
        /* Bind to TarotMachin *function (TarotChose *input_parameter, size_t size, TarotElement *array_rewritten, TarotBidule *output_parameter); */
        static SCM
        tarot_guile_function (SCM g_input_parameter, SCM g_array_rewritten)
        {
          TarotChose *c_input_parameter;
          size_t c_size;
          TarotElement *c_array_rewritten;
          TarotMachin *c_ret;
          TarotBidule c_output_parameter;
          SCM g_ret = SCM_EOL;
          bind_chose (g_input_parameter, c_input_parameter);
          bind_element_array (g_array_rewritten, &c_size, c_array_rewritten);
          c_ret = function (c_input_parameter, c_size, c_array_rewritten, &c_output_parameter);
          clean_chose (&c_input_parameter);
          g_ret = push_machin (g_ret, c_ret);
          g_ret = push_element_array (g_ret, c_size, c_array_rewritten);
          g_ret = push_bidule (g_ret, c_output_parameter);
          return g_ret;
        }
      #+END_SRC
      
      In this commit, we declare the input types.
      eaeaa33e
    • Vivien Kraus's avatar
      Generate the bindings directly in C · 697bf715
      Vivien Kraus authored
      The other options were ot generate scheme code, or use scheme macros
      to generate it at macro expand time.
      
      The latter is not possible in r7rs-small, because syntax-case has been
      removed.  So I will not go down this road.
      
      The former is quite awkward, because we constantly need to jump in the
      XML document in order to get the C type names of things.
      
      So for now everything is XSLT+C.
      697bf715
    • Vivien Kraus's avatar
      f03d90cc
  5. 26 Oct, 2019 1 commit
  6. 21 Oct, 2019 1 commit
  7. 20 Oct, 2019 1 commit
  8. 14 Oct, 2019 2 commits
  9. 13 Oct, 2019 9 commits
  10. 12 Oct, 2019 5 commits
  11. 11 Oct, 2019 2 commits