I modified i-coerce.boot, then in FRICASsys,
)read i-coerce
)lisp (defun GLESSEQP (X Y) (BREAK))
series(sin x)
The above has no problem in Linux, but fails under
windows, backtrace is in attachment.
- Qian
On 5/13/24 18:10, Waldek Hebisch wrote:
On Mon, May 13, 2024 at 05:07:56PM +0800, Qian Yun wrote:
Some other updates:
This happens for Clozure CL as well.
This does not happen for fricas0, either compile-mode or
interpret-mode.
Very strange indeed.
I'll compare call stack to interpreter later.
On Linux I can do the following and the example still works:
1) Disable 'canCoercePermute' and 'coerceIntPermute' by adding
true => nil
as first line
2) Replace GLESSEQP by the following:
(defun GLESSEQP (X Y) (BREAK))
Which means that 'coerceIntPermute' is the only place using
'GLESSEQP' to handle the example (in fact cases when it is used
are quite rare).
I wonder if on Windows there are extra uses of GLESSEQP? The above
would allow to find them.
--
You received this message because you are subscribed to the Google Groups "FriCAS -
computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/5c3233a1-e2c5-4936-987b-8119dd064aa4%40gmail.com.
(1) -> series(sin x)
debugger invoked on a SIMPLE-CONDITION in thread
#<THREAD tid=4992 "main thread" RUNNING {1000FE8003}>:
break
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [CONTINUE] Return from BREAK.
1: [ABORT ] Exit from the current thread.
(SB-EVAL::EVAL-BLOCK (GLESSEQP (BREAK)) #<SB-EVAL::ENV {10055357D3}>)
0] :backtrace
Backtrace for: #<SB-THREAD:THREAD tid=4992 "main thread" RUNNING {1000FE8003}>
0: (SB-EVAL::EVAL-BLOCK (GLESSEQP (BREAK)) #<SB-EVAL::ENV {10055357D3}>)
1: (|mergeSort| #<INTERPRETED-FUNCTION GLESSEQP> #<FUNCTION |Identity|>
((|OMwrite| ((|Void|) (|OpenMathDevice|) % (|Boolean|)) . T) (|OMwrite|
((|Void|) (|OpenMathDevice|) %) . T)) 2)
2: (|mergeSort| #<INTERPRETED-FUNCTION GLESSEQP> #<FUNCTION |Identity|>
#<unavailable argument> 4)
3: (|categoryParts1| |category| (|OpenMath|) (|Join| (CATEGORY |domain|
(SIGNATURE |OMwrite| ((|String|) %)) (SIGNATURE |OMwrite| ((|String|) %
(|Boolean|))) (SIGNATURE |OMwrite| ((|Void|)
(|OpenMathDevice|) %)) (SIGNATURE |OMwrite| ((|Void|) (|OpenMathDevice|) %
(|Boolean|))))) T)
4: (|mkCategoryExtensionAlist| (|OpenMath|))
5: (|getCategoryExtensionAlist0| (|OpenMath|))
6: (|addDomainToTable| |Integer| ((|IntegerNumberSystem|)
(|LinearlyExplicitOver| (|Integer|)) (|PolynomialFactorizationExplicit|)
(|ConvertibleTo| (|String|)) (|OpenMath|) (|Canonical|) (|
canonicalsClosed|) (|Hashable|)))
7: (|updateCategoryTableForDomain| |Integer| ((|IntegerNumberSystem|)
(|LinearlyExplicitOver| (|Integer|)) (|PolynomialFactorizationExplicit|)
(|ConvertibleTo| (|String|)) (|OpenMath|) (|Ca
nonical|) (|canonicalsClosed|) (|Hashable|)))
8: (|updateCategoryTable| |Integer| |domain|)
9: (|loadLib| |Integer|)
10: ((LAMBDA (&REST ARGS) :IN |mkAutoLoad|))
11: (SB-EVAL::EVAL-ARGS ((|Integer|)) #<SB-EVAL::ENV {100546F623}>)
12: (SB-EVAL::%EVAL (|Expression| (|Integer|)) #<SB-EVAL::ENV {100546F623}>)
13: (SB-EVAL:EVAL-IN-NATIVE-ENVIRONMENT (|Expression| (|Integer|))
#<NULL-LEXENV>)
14: (EVAL (|Expression| (|Integer|)))
15: (|eval| (|Expression| (|Integer|)))
16: (|evalDomain| (|Expression| (|Integer|)))
17: (|interpLookup;| |coerce| (% (|Symbol|)) (|Expression| (|Integer|)))
18: (|interpLookup| |coerce| (% (|Symbol|)) (|Expression| (|Integer|)))
19: (|coerceByFunction| ((|Symbol|) WRAPPED . |x|) (|Expression| (|Integer|)))
20: (|coerceIntTower| ((|Symbol|) WRAPPED . |x|) (|Expression| (|Integer|)))
21: (|coerceInt1| ((|Symbol|) WRAPPED . |x|) (|Expression| (|Integer|)))
22: (|coerceInt| ((|Symbol|) WRAPPED . |x|) (|Expression| (|Integer|)))
23: (|coerceInt0| ((|Variable| |x|) WRAPPED . |x|) (|Expression| (|Integer|)))
24: (|coerceInteractive| ((|Variable| |x|) WRAPPED . |x|) (|Expression|
(|Integer|)))
25: (|coerceOrRetract| ((|Variable| |x|) WRAPPED . |x|) (|Expression|
(|Integer|)))
26: (|getArgValue1| #(|x| NIL (#1=(|Variable| |x|) WRAPPED . |x|) (#1#)
((|totalArgs| . 1) (|argumentNumber| . 1) (|callingFunction| . |sin|)))
(|Expression| (|Integer|)))
27: (|getArgValue| #(|x| NIL (#1=(|Variable| |x|) WRAPPED . |x|) (#1#)
((|totalArgs| . 1) (|argumentNumber| . 1) (|callingFunction| . |sin|)))
(|Expression| (|Integer|)))
28: (|evalForm| #(|sin| NIL NIL NIL ((|totalArgs| . 1) (|argumentNumber| . 1)
(|callingFunction| . |series|))) |sin| (#(|x| NIL (#1=(|Variable| |x|) WRAPPED
. |x|) (#1#) ((|totalArgs| . 1)
(|argumentNumber| . 1) (|callingFunction| . |sin|)))) (((#1=(|Expression|
(|Integer|)) #1# #1#) (% %) (NIL))))
29: (|bottomUpForm2| (#(|sin| NIL NIL NIL ((|totalArgs| . 1) (|argumentNumber|
. 1) (|callingFunction| . |series|))) #(|x| NIL (#1=(|Variable| |x|) WRAPPED .
|x|) (#1#) ((|totalArgs| . 1) (
|argumentNumber| . 1) (|callingFunction| . |sin|)))) #(|sin| NIL NIL NIL
((|totalArgs| . 1) (|argumentNumber| . 1) (|callingFunction| . |series|)))
|sin| (#(|x| NIL (#1=(|Variable| |x|) WRA
PPED . |x|) (#1#) ((|totalArgs| . 1) (|argumentNumber| . 1) (|callingFunction|
. |sin|)))) (((|Variable| |x|))))
30: (|bottomUpForm3| (#(|sin| NIL NIL NIL ((|totalArgs| . 1) (|argumentNumber|
. 1) (|callingFunction| . |series|))) #(|x| NIL (#1=(|Variable| |x|) WRAPPED .
|x|) (#1#) ((|totalArgs| . 1) (
|argumentNumber| . 1) (|callingFunction| . |sin|)))) #(|sin| NIL NIL NIL
((|totalArgs| . 1) (|argumentNumber| . 1) (|callingFunction| . |series|)))
|sin| (#(|x| NIL (#1=(|Variable| |x|) WRA
PPED . |x|) (#1#) ((|totalArgs| . 1) (|argumentNumber| . 1) (|callingFunction|
. |sin|)))) (((|Variable| |x|))))
31: (|bottomUp| (#(|sin| NIL NIL NIL ((|totalArgs| . 1) (|argumentNumber| . 1)
(|callingFunction| . |series|))) #(|x| NIL (#1=(|Variable| |x|) WRAPPED . |x|)
(#1#) ((|totalArgs| . 1) (|argu
mentNumber| . 1) (|callingFunction| . |sin|)))))
32: (|bottomUp| (#(|series| NIL NIL NIL NIL) (#(|sin| NIL NIL NIL ((|totalArgs|
. 1) (|argumentNumber| . 1) (|callingFunction| . |series|))) #(|x| NIL
(#1=(|Variable| |x|) WRAPPED . |x|) (#
1#) ((|totalArgs| . 1) (|argumentNumber| . 1) (|callingFunction| . |sin|))))))
33: (|interpret1| (|series| (|sin| |x|)) NIL (|Application| ((|id| (|posn|
#1=(0 "series(sin x)" 1 1 "strings") . 0)) . |series|) (|Application| ((|id|
(|posn| #1# . 7)) . |sin|) ((|id| (|p
osn| #1# . 11)) . |x|))))
34: (|interpret| (|series| (|sin| |x|)) (|Application| ((|id| (|posn| #1=(0
"series(sin x)" 1 1 "strings") . 0)) . |series|) (|Application| ((|id| (|posn|
#1# . 7)) . |sin|) ((|id| (|posn|
#1# . 11)) . |x|))))
35: (|interpretTopLevel| (|series| (|sin| |x|)) (|Application| ((|id| (|posn|
#1=(0 "series(sin x)" 1 1 "strings") . 0)) . |series|) (|Application| ((|id|
(|posn| #1# . 7)) . |sin|) ((|id|
(|posn| #1# . 11)) . |x|))))
36: (|processInteractive1| (|series| (|sin| |x|)) (|Application| ((|id| (|posn|
#1=(0 "series(sin x)" 1 1 "strings") . 0)) . |series|) (|Application| ((|id|
(|posn| #1# . 7)) . |sin|) ((|id
| (|posn| #1# . 11)) . |x|))))
37: (|processInteractive0| (|series| (|sin| |x|)) (|Application| ((|id| (|posn|
#1=(0 "series(sin x)" 1 1 "strings") . 0)) . |series|) (|Application| ((|id|
(|posn| #1# . 7)) . |sin|) ((|id
| (|posn| #1# . 11)) . |x|))))
38: (|processInteractive| (|series| (|sin| |x|)) (|Application| ((|id| (|posn|
#1=(0 "series(sin x)" 1 1 "strings") . 0)) . |series|) (|Application| ((|id|
(|posn| #1# . 7)) . |sin|) ((|id|
(|posn| #1# . 11)) . |x|))))
39: (|intInterpretPform| (|Application| ((|id| (|posn| #1=(0 "series(sin x)" 1
1 "strings") . 0)) . |series|) (|Application| ((|id| (|posn| #1# . 7)) . |sin|)
((|id| (|posn| #1# . 11)) . |x
|))))
40: (|phInterpret| ((|carrier| (|ok?| . T) (|ptreePremacro| . #1=(|Application|
(# . |series|) (|Application| # #))) (|ptree| . #1#) (|lines| ((# . 1) .
"series(sin x)")) (|messages|) (|ste
pNumber| . 1))))
41: (|ncConversationPhase| #<FUNCTION |phInterpret|> (((|carrier| (|ok?| . T)
(|ptreePremacro| . #1=(|Application| # #)) (|ptree| . #1#) (|lines| (# .
"series(sin x)")) (|messages|) (|stepN
umber| . 1)))))
42: (|intloopSpadProcess,interp| ((|carrier| (|ok?| . T) (|ptreePremacro| .
#1=(|Application| (# . |series|) (|Application| # #))) (|ptree| . #1#) (|lines|
((# . 1) . "series(sin x)")) (|me
ssages|) (|stepNumber| . 1))) (|Application| ((|id| (|posn| #1=(0 "series(sin
x)" 1 1 "strings") . 0)) . |series|) (|Application| ((|id| (|posn| #1# . 7)) .
|sin|) ((|id| (|posn| #1# . 11))
. |x|))) T)
43: (|intloopSpadProcess| 1 ((((0 #1="series(sin x)" 1 1 "strings") . 1) .
#1#)) (|Application| ((|id| (|posn| #1=(0 "series(sin x)" 1 1 "strings") . 0))
. |series|) (|Application| ((|id| (
|posn| #1# . 7)) . |sin|) ((|id| (|posn| #1# . 11)) . |x|))) T)
44: (|intloopProcess| 1 T (((((# . 1) . "series(sin x)")) (|Application| ((|id|
#) . |series|) (|Application| (# . |sin|) (# . |x|)))) |nonnullstream|
#1=#<FUNCTION |next1|> #<FUNCTION |ncl
oopParse|> (|nonnullstream| #1# #<FUNCTION |fakepile|> (|nullstream|))))
45: (|intloopReadConsole| #<unavailable argument> #<unavailable argument>)
46: (|SpadInterpretStream| 1 NIL T)
47: (|int_loop|)
48: (|ncTopLevel|)
49: (|runspad|)
50: (|spad|)
51: (|fricas_restart2|)
52: ((LAMBDA NIL :IN FRICAS-LISP::SAVE-CORE-RESTART))
53: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
54: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
55: (SB-IMPL::%START-LISP)
56: ("foreign function: #x1400447C5")
57: ("foreign function: #x140009C00")