Re: Branch Version_2_7_0pre

Camm Maguire <[email protected]>
Newsgroups gmane.lisp.gcl.devel
Message-ID <[email protected]>
Greetings!

Could you please try configure once more to see if readline is fixed.

Made a commit to hopefully address 2).  Alas your patch will not work
where gprof is enabled.

At some point if you could post a gdb backtrace of the failure in 3)
that would be most helpful.

The pre_gcl compile is slow.  The final build should be about 10min.

Take care,

"Kirill A. Korinsky" <[email protected]> writes:

> I've used f123e3d0df9201082c9168671e103dd8835cb81f as local root.
>
> 1. ./configure still doesn't work well with readline and failed like this:
>
> checking for rl_completion_matches in -lreadline... yes
> checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION... no
> checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T... no
> configure: error: Unknown rl_completion_entry_function return type
>
> I've attached a patch which I've used to bypass it.
>
> 2. anyway, gprof aren't disabled completley; build failed with error:
>
> error: /Library/Developer/CommandLineTools/usr/bin/libtool: file: ../o/gprof.o is not an object file (not allowed in a library)
> make[1]: *** [libpre_gcl.a] Error 1
>
> and here the second patch attached.
>
> 3. after that build failed like this:
>
>>;; Loading "boot.lisp"
> ;; Compiling /opt/local/var/macports/build/_Users_catap_src_macports-ports_lang_gcl/gcl-devel/work/.tmp/gazonk_9510_0.lsp.
> ;; End of Pass 1.  
> ;; End of Pass 2.  
>
> Error: ERROR "Caught fatal error [memory may be damaged]: Segmentation violation."
> Signalled by MULTIPLE-VALUE-BIND.
> Segmentation violation: c stack ok:signalling errorERROR "Caught fatal error [memory may be damaged]: Segmentation violation."
>
> Broken at LET*.  Type :H for Help.
>     1  Return to top level. 
> COMPILER>>make: *** [unixport/saved_gcl0] Error 255
>
> and if I apply patch https://github.com/macports/macports-ports/blob/master/lang/gcl/files/fix-memory-corruption-on-macOS.patch it start to build. 
>
> The build was for about two hours with output like:
>
> OPTIMIZE levels: Safety=3, Space=0, Speed=3
> ;; Finished compiling /opt/local/var/macports/build/_Users_catap_src_macports-ports_lang_gcl/gcl-devel/work/f123e3d0df9201082c9168671e103dd8835cb81f/gcl/lsp/gcl_c.o.
> real time       :     35.360 secs
> run-gbc time    :     27.820 secs
> child run time  :      0.200 secs
> gbc time        :      0.000 secs
> ;; Compiling ../lsp/gcl_listlib.lsp.
> [GC for 85 STRUCTURE pages..(T=304).GC finished]
> [GC for 4171976 CONS pages..(T=273).GC finished]
> [GC for 85 STRUCTURE pages..(T=338).GC finished]
> [GC for 86 STRUCTURE pages..(T=241).GC finished]
> [GC for 97 STRUCTURE pages..(T=257).GC finished]
> [GC for 1653 RELOCATABLE-BLOCKS pages..(T=227).GC finished]
> [GC for 119 STRUCTURE pages..(T=223).GC finished]
> [GC for 130 STRUCTURE pages..(T=244).GC finished]
> [GC for 143 STRUCTURE pages..(T=327).GC finished]
> [GC for 154 STRUCTURE pages..(T=299).GC finished]
> [GC for 164 STRUCTURE pages..(T=265).GC finished]
> [GC for 173 STRUCTURE pages..(T=258).GC finished]
> ;; End of Pass 1.  
> [GC for 4171976 CONS pages..(T=241).GC finished]
> [GC for 1653 RELOCATABLE-BLOCKS pages..(T=244).GC finished]
> [GC for 4171976 CONS pages..(T=383).GC finished]
> [GC for 4171976 SPICE pages..(T=268).GC finished]
> [GC for 4171976 CONS pages..(T=237).GC finished]
> ;; End of Pass 2.  
> OPTIMIZE levels: Safety=3, Space=0, Speed=3
> ;; Finished compiling /opt/local/var/macports/build/_Users_catap_src_macports-ports_lang_gcl/gcl-devel/work/f123e3d0df9201082c9168671e103dd8835cb81f/gcl/lsp/gcl_listlib.o.
> real time       :   1256.190 secs
> run-gbc time    :    921.810 secs
> child run time  :      2.860 secs
> gbc time        :     46.290 secs
> ;; Compiling ../lsp/gcl_predlib.lsp.
>
> I think that increase memory usage may speed up build, am I wrong?
>
> Anyway, the build failed with error:
>
> real time       :      4.590 secs
> run-gbc time    :      3.200 secs
> child run time  :      1.100 secs
> gbc time        :      0.000 secs
> ;; Compiling ../lsp/gcl_mnum.lsp.
>
> Error: ERROR "There is no package with the name \"libc\"."
> Fast links are on: do (si::use-fast-links nil) for debugging
> Signalled by MULTIPLE-VALUE-CALL.
> ERROR "There is no package with the name \"libc\"."
>
> Broken at FUNCALL.  Type :H for Help.
>     1  Return to top level. 
> SYSTEM>>make: *** [unixport/saved_gcl0] Error 255
>
> Thus, the patch about memory corruption contains two hunk. Without the second one build failed as (3), and I've just tested it
>
>>;; Loading "boot.lisp"
> ;; Compiling /opt/local/var/macports/build/_Users_catap_src_macports-ports_lang_gcl/gcl-devel/work/.tmp/gazonk_25122_0.lsp.
> ;; End of Pass 1.  
> ;; End of Pass 2.  
>
> Error: ERROR "Caught fatal error [memory may be damaged]: Segmentation violation."
> Signalled by MULTIPLE-VALUE-BIND.
> Segmentation violation: c stack ok:signalling errorERROR "Caught fatal error [memory may be damaged]: Segmentation violation."
>
> Broken at LET*.  Type :H for Help.
>     1  Return to top level. 
> COMPILER>>make: *** [unixport/saved_gcl0] Error 255
> rm h/mcompdefs.h
>
> and without the first one, if I recall right, it's failed near the similar way but at the end, when it saves the image.
>
> -- 
> wbr, Kirill
>
> From cd996356594e145b15fb93c7db8255b10d2f0b09 Mon Sep 17 00:00:00 2001
> From: "Kirill A. Korinsky" <[email protected]>
> Date: Thu, 21 Dec 2023 18:01:59 +0100
> Subject: [PATCH 1/2] macOS-friendly check for readline
>
> ---
>  gcl/configure    | 4 ++++
>  gcl/configure.in | 4 ++++
>  2 files changed, 8 insertions(+)
>
> diff --git gcl/configure gcl/configure
> index 4d38e9cca..8a6d4e725 100755
> --- gcl/configure
> +++ gcl/configure
> @@ -9841,6 +9841,7 @@ printf %s "checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION... " >&6; }
>                                   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>  /* end confdefs.h.  */
>  
> +                                                  #include <stdio.h>
>                                                    #include <readline/readline.h>
>  						  extern Function *rl_completion_entry_function __attribute__((weak));
>  
> @@ -9867,6 +9868,7 @@ printf %s "checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T... " >
>                                           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>  /* end confdefs.h.  */
>  
> +		                                          #include <stdio.h>
>  		                                          #include <readline/readline.h>
>  							  extern rl_compentry_func_t *rl_completion_entry_function __attribute__((weak));
>  
> @@ -9899,6 +9901,7 @@ printf %s "checking RL_READLINE_NAME_TYPE_CHAR... " >&6; }
>                                   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>  /* end confdefs.h.  */
>  
> +		                                  #include <stdio.h>
>  		                                  #include <readline/readline.h>
>  		                                  extern char *rl_readline_name __attribute__((weak));
>  
> @@ -9925,6 +9928,7 @@ printf %s "checking RL_READLINE_NAME_TYPE_CONST_CHAR... " >&6; }
>                                           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>  /* end confdefs.h.  */
>  
> +		                                          #include <stdio.h>
>  		                                          #include <readline/readline.h>
>  		                                          extern const char *rl_readline_name __attribute__((weak));
>  
> diff --git gcl/configure.in gcl/configure.in
> index cfafd3983..eebbcb2d2 100644
> --- gcl/configure.in
> +++ gcl/configure.in
> @@ -1895,6 +1895,7 @@ if test "$enable_readline" != "no" ; then
>                                   AC_COMPILE_IFELSE(
>                                          [AC_LANG_PROGRAM(
>  	                                       [[
> +                                                  #include <stdio.h>
>                                                    #include <readline/readline.h>
>  						  extern Function *rl_completion_entry_function __attribute__((weak));
>  	    				       ]],
> @@ -1906,6 +1907,7 @@ if test "$enable_readline" != "no" ; then
>                                           AC_COMPILE_IFELSE(
>                                                  [AC_LANG_PROGRAM(
>  	                                               [[
> +		                                          #include <stdio.h>
>  		                                          #include <readline/readline.h>
>  							  extern rl_compentry_func_t *rl_completion_entry_function __attribute__((weak));
>  	                                               ]],
> @@ -1919,6 +1921,7 @@ if test "$enable_readline" != "no" ; then
>                                   AC_COMPILE_IFELSE(
>                                          [AC_LANG_PROGRAM(
>  	                                       [[
> +		                                  #include <stdio.h>
>  		                                  #include <readline/readline.h>
>  		                                  extern char *rl_readline_name __attribute__((weak));
>  	                                       ]],
> @@ -1930,6 +1933,7 @@ if test "$enable_readline" != "no" ; then
>                                           AC_COMPILE_IFELSE(
>                                                  [AC_LANG_PROGRAM(
>  	                                               [[
> +		                                          #include <stdio.h>
>  		                                          #include <readline/readline.h>
>  		                                          extern const char *rl_readline_name __attribute__((weak));
>  	                                               ]],
> -- 
> 2.43.0
>
>
> From 5c7349872d919c2d7ee8ceb055203029b59e3ded Mon Sep 17 00:00:00 2001
> From: "Kirill A. Korinsky" <[email protected]>
> Date: Thu, 21 Dec 2023 18:53:54 +0100
> Subject: [PATCH 2/2] Completley disable gprof
>
> ---
>  gcl/configure.in | 2 +-
>  gcl/o/makefile   | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git gcl/configure.in gcl/configure.in
> index eebbcb2d2..66ee6d4ea 100644
> --- gcl/configure.in
> +++ gcl/configure.in
> @@ -385,7 +385,7 @@ fi
>  AC_SUBST(GCL_CC)
>  
>  
> -GPROF="gprof_objs"
> +GPROF="gprof"
>  AC_ARG_ENABLE([gprof],[  --enable-gprof builds gcl with -pg in CFLAGS to enable profiling with gprof],
>  	      [if test "$enableval" != "yes" ; then GPROF=""; fi])
>  
> diff --git gcl/o/makefile gcl/o/makefile
> index b0625769f..d733e0b9f 100644
> --- gcl/o/makefile
> +++ gcl/o/makefile
> @@ -22,7 +22,7 @@ OBJS:=$(addsuffix .o,typespec alloc gbc bitop boot main eval macros lex bds fram
>  	 hash array string regexpr structure toplevel file read backq print format\
>  	 pathname unixfsys unixfasl error unixtime unixsys unixsave funlink  fat_string\
>  	 run_process nfunlink usig usig2 utils makefun sockets gmp_wrappers clxsocket\
> -	 init_pari nsocket new_init prelink sfasl gprof $(RL_OBJS))
> +	 init_pari nsocket new_init prelink sfasl $(RL_OBJS))
>  OBJS:=$(OBJS) $(EXTRAS)
>  
>  INI_FILES=$(patsubst %.o,%.ini,${OBJS})
> @@ -30,7 +30,7 @@ INI_FILES:=$(filter-out new_init.ini,$(filter-out boot.ini,$(INI_FILES)))
>  
>  OBJECTS:=$(OBJS) $(LIBFILES) new_init.o  $(GCLIB) $(LAST_FILE)  $(FIRST_FILE) 
>  
> -all:  $(OBJECTS) #$(GPROF)
> +all:  $(OBJECTS) $(GPROF)
>  
>  gprof_objs: $(addprefix ../gprof/,$(OBJECTS))

-- 
Camm Maguire			     		    [email protected]
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.