From: Sam S. <sd...@gn...> - 2018-01-22 18:26:09
|
> * Bruno Haible <oe...@py...t> [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. |