Well, that was easy! Stack limit now working.

This commit is contained in:
Simon Brooke 2026-03-14 16:58:55 +00:00
parent d1ce893633
commit 7f34601523
4 changed files with 14 additions and 3 deletions

View file

@ -44,7 +44,7 @@ test: $(TESTS) Makefile $(TARGET)
.PHONY: clean
clean:
$(RM) $(TARGET) $(OBJS) $(DEPS) $(SRC_DIRS)/*~ $(SRC_DIRS)/*/*~ $(TMP_DIR)/* *~ core
$(RM) $(TARGET) $(OBJS) $(DEPS) $(SRC_DIRS)/*~ $(SRC_DIRS)/*/*~ $(TMP_DIR)/* *~ core.*
repl:
$(TARGET) -p 2> psse.log

View file

@ -1,5 +1,16 @@
# State of Play
## 20260314
When I put a debugger on it, the stack limit bug proved shallow.
I'm tempted to further exercise my debugging skills by having another go at
the bignum arithmetic problems.
However, I've been rethinking the roadmap of the project, and written a long
[blog post about it](https://www.journeyman.cc/blog/posts-output/2026-03-13-The-worlds-slowest-ever-rapid-prototype/).
This isn't a finalised decision yet, but it is something I'm thinking about.
## 20260311
I've still been having trouble with runaway recursion — in `member`, but

View file

@ -12,7 +12,7 @@
(item collection)
"`(member item collection)`: Return `t` if this `item` is a member of this `collection`, else `nil`."
(print (list "In member? item is " item "; collection is " collection))
;; (println)
(println)
(cond
((= 0 (count collection)) nil)
((= item (car collection)) t)

View file

@ -130,7 +130,7 @@ struct cons_pointer make_empty_frame( struct cons_pointer previous ) {
uint32_t depth =
( nilp( previous ) ) ? 0 : ( get_stack_frame( previous ) )->depth + 1;
if ( stack_limit > 0 && stack_limit > depth ) {
if ( stack_limit == 0 || stack_limit > depth ) {
result = in_make_empty_frame( previous, depth );
} else {
result =