Re: Pari module build failure

Sam Steingold <[email protected]> Mon, 22 Jan 2018 13:26:04 -0500
Newsgroups gmane.lisp.clisp.devel
Message-ID <[email protected]>
> * Bruno Haible <[email protected]> [2018-01-22 18:52:45 +0100]:
>
> Sam Steingold wrote:
>> This is a relatively recent regression, "hg bisect" should be able to
>> pinpoint the commit that broke it.
>
> How do you use 'hg bisect' in practice? I've never used it. When a build
> takes betwen 15 min and 2 h, I'd like to be sure I use the right commands
> before starting a multi-hour build sequence.

    > This command helps to find changesets which introduce problems.
    > To use, mark the earliest changeset you know exhibits the problem
    > as bad, then mark the latest changeset which is free from the
    > problem as good. Bisect will update your working directory to a
    > revision for testing. Once you have performed tests, mark the
    > working directory as bad or good and bisect will either update to
    > another candidate changeset or announce that it has found the bad
    > revision.

iow, you do "hg bisect -b tip" and "hg bisect -g ????" and then "hg
bisect" and "make base && ./clisp -q -norc -x '(regexp:regexp-compile
"abc")'".
it can be automated but probably not worth it.

>> > ;; Loading file /builddir/build/BUILD/clisp-2.49.60/build/pari/desc2lisp.fas ...
>> > *** - EXT:FINALIZE: #<address #x0000000000859E30> is not a function
>> > make[1]: *** [Makefile:35: pari.c] Error 1
>> >
>> > What does that mean?
>> 
>> This stems from
>> 
>> --8<---------------cut here---------------start------------->8---
>> > (regexp:regexp-compile "abc")
>> *** - FINALIZE: #<ADDRESS #x0000000107B75918> is not a function
>> --8<---------------cut here---------------end--------------->8---
>
> Maybe in this case you can compile clisp with "-ggdb -O0" and get a
> stack trace with gdb?

--8<---------------cut here---------------start------------->8---
[1]> (regexp:regexp-compile "abc")

Breakpoint 12, prepare_error (errortype=type_error, errorstring=0x653f14 "~S: ~S is not a function", start_driver_p=false) at ../src/error.d:379
379	  begin_error(); /* start error message */
(gdb) where
#0  prepare_error (errortype=type_error, errorstring=0x653f14 "~S: ~S is not a function", start_driver_p=false) at ../src/error.d:379
#1  0x000000000056e62b in check_value (errortype=type_error, errorstring=0x653f14 "~S: ~S is not a function") at ../src/error.d:427
#2  0x0000000000572df0 in check_function_replacement (obj={one_o = 9519792}) at ../src/error.d:1486
#3  0x000000000046d4a1 in check_function (obj={one_o = 9519792}) at ../src/lispbibl.d:17605
#4  0x000000000046d437 in coerce_function (obj={one_o = 9519792}) at ../src/eval.d:2370
#5  0x000000000053bc16 in C_finalize () at ../src/record.d:882
#6  0x0000000000479ba7 in funcall_subr (fun={one_o = 549755849448}, args_on_stack=2) at ../src/eval.d:5259
#7  0x0000000000478b47 in funcall (fun={one_o = 549755849448}, args_on_stack=2) at ../src/eval.d:4892
#8  0x00000000004254d4 in C_subr_regexp_regexp_compile () at /home/sds/src/clisp/current/modules/regexp/regexi.c:52
#9  0x0000000000472ba2 in eval_subr (fun={one_o = 549755876552}) at ../src/eval.d:3630
#10 0x000000000047067c in eval1 (form={one_o = 4398047665440}) at ../src/eval.d:3121
#11 0x0000000000470111 in eval (form={one_o = 4398047665440}) at ../src/eval.d:3003
#12 0x0000000000567d7c in C_read_eval_print () at ../src/debug.d:409
#13 0x0000000000479ba7 in funcall_subr (fun={one_o = 549755823296}, args_on_stack=2) at ../src/eval.d:5259
#14 0x0000000000478bd3 in funcall (fun={one_o = 2199023267312}, args_on_stack=2) at ../src/eval.d:4899
#15 0x000000000047ebfe in interpret_bytecode_ (closure={one_o = 4947802702208}, codeptr=0x9800003b248, byteptr=0x9800003b28f "\037(\a") at ../src/eval.d:6831
#16 0x000000000047ae3d in funcall_closure (closure={one_o = 4947802702208}, args_on_stack=0) at ../src/eval.d:5662
#17 0x0000000000478b76 in funcall (fun={one_o = 4947802702208}, args_on_stack=0) at ../src/eval.d:4894
#18 0x00000000004909bc in C_driver () at ../src/control.d:2008
#19 0x000000000047ede0 in interpret_bytecode_ (closure={one_o = 4947802608256}, codeptr=0x9800003b218, byteptr=0x9800003b245 "\031\003") at ../src/eval.d:6837
#20 0x000000000047ae3d in funcall_closure (closure={one_o = 4947802608256}, args_on_stack=0) at ../src/eval.d:5662
#21 0x0000000000478b76 in funcall (fun={one_o = 4947802608256}, args_on_stack=0) at ../src/eval.d:4894
#22 0x000000000047fb4a in interpret_bytecode_ (closure={one_o = 4947802678584}, codeptr=0x9800003bb38, byteptr=0x9800003bb84 "\031\001\230\016\033l") at ../src/eval.d:6886
#23 0x000000000047ae3d in funcall_closure (closure={one_o = 4947802678584}, args_on_stack=0) at ../src/eval.d:5662
#24 0x0000000000478b76 in funcall (fun={one_o = 4947802678584}, args_on_stack=0) at ../src/eval.d:4894
#25 0x000000000047fb4a in interpret_bytecode_ (closure={one_o = 4947802678768}, codeptr=0x9800003bb38, byteptr=0x9800003bb84 "\031\001\230\016\033l") at ../src/eval.d:6886
#26 0x000000000047ae3d in funcall_closure (closure={one_o = 4947802678768}, args_on_stack=0) at ../src/eval.d:5662
#27 0x0000000000478b76 in funcall (fun={one_o = 4947802678768}, args_on_stack=0) at ../src/eval.d:4894
#28 0x000000000047fb4a in interpret_bytecode_ (closure={one_o = 4947802702024}, codeptr=0x9800003bb38, byteptr=0x9800003bb84 "\031\001\230\016\033l") at ../src/eval.d:6886
#29 0x000000000047ae3d in funcall_closure (closure={one_o = 4947802702024}, args_on_stack=0) at ../src/eval.d:5662
#30 0x0000000000478b76 in funcall (fun={one_o = 4947802702024}, args_on_stack=0) at ../src/eval.d:4894
#31 0x0000000000568267 in driver () at ../src/debug.d:478
#32 0x000000000045e2a1 in main_actions (p=0x944520) at ../src/spvw.d:3938
#33 0x000000000045a53c in main (argc=11, argv=0x7fffffffe0b8) at ../src/spvw.d:4200
(gdb) 
(gdb) br C_finalize
[1]> (regexp:regexp-compile "abc")

Breakpoint 18, C_finalize () at ../src/record.d:882
882	  STACK_1 = coerce_function(STACK_1);
(gdb) xout STACK[-1]
#<UNBOUND>{one_o = 1924162125823}
(gdb) xout STACK[-2]
#<huh?! address=0x9142b0>{one_o = 9519792}
(gdb) xout STACK[-3]
#<FOREIGN-POINTER 0x963b90>{one_o = 6597069897576}
--8<---------------cut here---------------end--------------->8---

I think the problem is somehow with the ``...`` notation in modprep.

-- 
Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1561
http://steingoldpsychology.com http://www.childpsy.net http://honestreporting.com
http://think-israel.org http://americancensorship.org https://jihadwatch.org
A philosophical argument is won by the first to pull the trigger.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel