|
From: Barton W. <wil...@us...> - 2025-11-06 15:52:50
|
The function `toplevel-$limit` does a check (using the predicate limunknown) for a limit expression that should return a limit nounform. I think this check should be moved to down to the function `limit`. That's because the limit code sometimes calls `limit` without going through `toplevel-$limit`--when that happens limits such as `limit(inf=inf)` confuse the code.
Additionally, I think I'll alter `limunknow` to pass the limit variable instead of using the special.
Just this change, not a modification of `infsimp` is all that is needed for a fix to this bug. It also fixes bug #4603.
The suggestion to change `(or (not (free...)))` with a call to among is good--maybe I'll do that too, but not as a part of this bug fix.
---
**[bugs:#4619] limit(inf = inf) causes stack overflow**
**Status:** open
**Group:** None
**Labels:** limit
**Created:** Thu Oct 09, 2025 06:22 PM UTC by Robert Dodier
**Last Updated:** Sun Oct 12, 2025 02:30 PM UTC
**Owner:** nobody
Looking at bug report #4603, looks like it is triggered by a bug in `limit`. Here is the simplest case I found:
```
(%i1) limit(inf=inf);
INFO: Binding stack guard page unprotected
Binding stack guard page temporarily disabled: proceed with caution
debugger invoked on a SB-KERNEL::BINDING-STACK-EXHAUSTED in thread
#<THREAD tid=4380 "main thread" RUNNING {1001760003}>:
Binding stack exhausted.
```
This other example also causes a stack overflow: `limit(minf = minf)`.
Bug #4603 is triggered by `limit(foo - inf = -inf)`, where `foo` is a gensym (and the bug is also triggered when `foo` is just `foo`).
Looks like the stack overflow originates in INFSIMP2. I didn't investigate beyond that.
When this bug gets fixed, we should go back to #4603 and verify that bug is also fixed.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |