<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><p class="p1"><span style="font-size: 14px;"><font face="Menlo">Hi,</font></span></p><p class="p2"><span style="font-size: 14px;"><font face="Menlo"><br></font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">I’ve encountered a segmentation fault in&nbsp;<span class="s1">s7</span>&nbsp;triggered by the following code:</font></span></p><p class="p1"><span style="font-size: 14px;"><br></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">```</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">;; This is a `filter` function from SRFI-1</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">(define (filter pred l)</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; (let recur ((l l))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; (if (null? l) l</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; &nbsp; &nbsp; (let ((head (car l))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (tail (cdr l)))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (if (pred head)</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (let ((new-tail (recur tail)))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (if (eq? tail new-tail) l</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (cons head new-tail)))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (recur tail))))))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo"><br></font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">(define func (lambda (x) #t))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">(filter func (make-list 100000 1))</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">```</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo"><br></font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">I’ve looked into it a bit. When s7 is compiled with `<span class="s1">S7_DEBUGGING=1`</span>, the issue doesn’t occur—presumably because an additional&nbsp;`<span class="s1">resize_stack_unchecked`</span>&nbsp;call is made before&nbsp;actually `<span class="s1">push_stack`</span>, which seems to prevent the crash.</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo"><br></font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">Let me know if you’d like any additional info or if I can help further.</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo"><br></font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">Regards,</font></span></p><p class="p1"><span style="font-size: 14px;"><font face="Menlo">Jim Zhou</font></span></p></body></html>