M2
M2 copied to clipboard
Crash when lifting from RR to ZZ
one-line crash:
i1 : lift( matrix {{1.}}, ZZ)
error!! lift called with no ZZ lifting method
-- SIGSEGV
-* stack trace, pid: 632942
0# std::vector<boost::stacktrace::frame, std::allocator<boost::stacktrace::frame> >::size() const at /usr/include/c++/11/bits/stl_vector.h:919
1# segv_handler at /home/pzinn/M2/M2/Macaulay2/bin/main.cpp:244
2# 0x00007FCE3FFF4750 in /lib64/libc.so.6
3# RingZZ::is_zero(ring_elem) const at /home/pzinn/M2/M2/Macaulay2/e/ZZ.cpp:149
4# Ring::set_entry(vecterm*&, int, ring_elem) const at /home/pzinn/M2/M2/Macaulay2/e/ring-vecs.cpp:605
5# Matrix::iterator::next() at /home/pzinn/M2/M2/Macaulay2/e/matrix.hpp:254
6# interface_rawLift at /home/pzinn/M2/M2/Macaulay2/d/interface.dd:1461
7# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
8# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263
9# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263 (discriminator 2)
10# evaluate_applyFCCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:839 (discriminator 5)
11# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1299
12# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:529 (discriminator 1)
13# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1307
14# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
15# iteratedApply at /home/pzinn/M2/M2/Macaulay2/d/actors3.d:2247 (discriminator 6)
16# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
17# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
18# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1310
19# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263 (discriminator 2)
20# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:529 (discriminator 1)
21# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1307
22# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
23# iteratedApply at /home/pzinn/M2/M2/Macaulay2/d/actors3.d:2247 (discriminator 6)
24# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
25# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
26# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1310
27# evaluate_evalexcept at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1444
28# readeval3(parse_TokenFile_struct*, char, parse_DictionaryClosure_struct*, char, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:180
29# loadprint(M2_string_struct*, parse_DictionaryClosure_struct*, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:346 (discriminator 1)
30# commandInterpreter_2(tagged_union*) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:466 (discriminator 1)
31# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
32# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263
33# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263 (discriminator 2)
34# evaluate_evalexcept at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1444
35# readeval3(parse_TokenFile_struct*, char, parse_DictionaryClosure_struct*, char, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:180
36# readeval(parse_TokenFile_struct*, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:284
37# interp_process at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:614
38# interpFunc(ArgCell*) at /home/pzinn/M2/M2/Macaulay2/bin/main.cpp:196
39# ThreadTask::run(SupervisorThread*) at /home/pzinn/M2/M2/Macaulay2/system/supervisor.cpp:377
40# SupervisorThread::threadEntryPoint() at /home/pzinn/M2/M2/Macaulay2/system/supervisor.cpp:426
41# SupervisorThread::threadEntryPoint(void*) at /home/pzinn/M2/M2/Macaulay2/system/supervisor.hpp:100
42# 0x00007FCE40BF69A8 in /lib64/libgc.so.1
43# GC_call_with_stack_base in /lib64/libgc.so.1
44# 0x00007FCE4003FB1A in /lib64/libc.so.6
45# 0x00007FCE400C4660 in /lib64/libc.so.6
-- end stack trace *-
Process M2 exited abnormally with code 1
The code is in aring-glue.hpp:
if (R == globalZZ)
{
printf("error!! lift called with no ZZ lifting method\n");
// MES:TODO!! WRITE ME
return true;
}
@mikestillman -- should it return "false" instead?
I'm not sure. Let me look at it. We want to be able to lift from real numbers that are close to integer, to ZZ, I think...