<div dir="ltr"><div>Hi,</div><div><br></div><div>It seems that I found a bug concerning the autoload.</div><div>The following test fails:</div><div>- autoloads for aod.lib1, aod.lib2, aod.extra.foo<br></div><div>- OK:   loading aod.lib1 &amp; aod.lib2</div><div>- FAIL: loading aod.extra.foo</div><div><br></div><div><br></div><div>TEST(s7_environments, autoloads_bug) {<br>    const char *autoloads[6] = {<br>        // each pair of entries is entity name + file name<br>        &quot;aod.lib1&quot;, &quot;aod/lib1.scm&quot;,<br>        &quot;aod.lib2&quot;, &quot;aod/lib2.scm&quot;,<br>        &quot;aod.extra.foo&quot;, &quot;aod/extra/foo.scm&quot;,<br>    };<br><br>    s7_scheme* sc1 = s7_init();<br>    s7_autoload_set_names(sc1, autoloads, 3);<br>    char* sexp = &quot;(begin &quot;<br>                 &quot;(require aod.lib1)&quot;<br>                 &quot;(require aod.lib2)&quot;<br>                 &quot;1)&quot;;<br>    // ok that works<br>    ASSERT_EQ(1, s7_integer(s7_eval_c_string(sc1, sexp)));<br><br>    s7_scheme* sc2 = s7_init();<br>    s7_autoload_set_names(sc2, autoloads, 3);<br>    char* sexp2 = &quot;(begin &quot;<br>                  &quot;(require aod.extra.foo)&quot;<br>                  &quot;2)&quot;;<br>    // THAT FAILS!!<br>    ASSERT_EQ(2, s7_integer(s7_eval_c_string(sc2, sexp2)));<br>    /**<br>     * ----------<br>    ;require: no autoload info for aod.extra.foo<br>    ; (require aod.extra.foo)<br>    ; ((lambda (hook lst) (if (do ((p lst (cdr ...<br>    ; (2)<br>    * -----------<br>    */<br>}</div></div>