Hello all,

I am French and worked at CEA on GCC, see https://arxiv.org/abs/1109.0779 ...

On a Linux desktop (AMD Ryzen Threadripper 2970WX Debian/trixie with 64Gbytes 
RAM and
 6.16.10+deb14-rt-amd64) I downloaded smalltalk-3.2.91 and configured it with
./configure  --enable-jit  --disable-silent-rules --enable-gtk CC=gcc 
CFLAGS='-O2 -g'


the gcc is a snapshot compiled by me:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-linux-gnu/16/lto-wrapper
Target: x86_64-linux-gnu
Configured with: /usr/src/Lang/gcc-16snap/configure -v --prefix=/usr/local 
--with-gcc-major-version-
only --program-suffix=-16 --enable-shared --enable-plugin --enable-default-pie 
--with-system-zlib --
disable-multilib --with-tune=native --enable-checking=release 
--enable-host-shared --build=x86_64-
linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu CFLAGS='-g -O2' 
CXXFLAGS='-g -O2' --
enable-werror build_alias=x86_64-linux-gnu host_alias=x86_64-linux-gnu 
target_alias=x86_64-linux-gnu
--enable-languages=c,c++,jit,lto
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 16.0.0 20250907 (experimental) (GCC) 

(FWIW, GNU lightning is also installed under /usr/local  ...)


GNU smalltalk failed to compile with:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -O2 -g -Wall 
-Wdeclaration-after-statement -Wno-
format -Wpointer-arith -Wno-pointer-sign -Wno-switch -Wwrite-strings 
-Wno-strict-aliasing -fno-gcse
-fstrict-aliasing -MT regex.lo -MD -MP -MF .deps/regex.Tpo -c regex.c  -fPIC 
-DPIC -o .libs/regex.o
regex.c: In function 'pre_set_casetable':
regex.c:197:1: warning: old-style function definition [-Wold-style-definition]
  197 | pre_set_casetable (table)
      | ^~~~~~~~~~~~~~~~~
regex.c: In function 'calculate_must_string':
regex.c:768:1: warning: old-style function definition [-Wold-style-definition]
  768 | calculate_must_string (start, end)
      | ^~~~~~~~~~~~~~~~~~~~~
regex.c: In function 'read_backslash':
regex.c:891:1: warning: old-style function definition [-Wold-style-definition]
  891 | read_backslash (c)
      | ^~~~~~~~~~~~~~
regex.c: In function 'read_special':
regex.c:924:1: warning: old-style function definition [-Wold-style-definition]
  924 | read_special (p, pend, pp)
      | ^~~~~~~~~~~~
regex.c: In function 'scan_oct':
regex.c:974:1: warning: old-style function definition [-Wold-style-definition]
  974 | scan_oct (start, len, retlen)
      | ^~~~~~~~
regex.c: In function 'scan_hex':
regex.c:992:1: warning: old-style function definition [-Wold-style-definition]
  992 | scan_hex (start, len, retlen)
      | ^~~~~~~~
regex.c: In function 'pre_compile_pattern':
regex.c:1028:1: warning: old-style function definition [-Wold-style-definition]
 1028 | pre_compile_pattern (pattern, size, bufp)
      | ^~~~~~~~~~~~~~~~~~~
regex.c:1243:15: error: too many arguments to function 'store_jump'; expected 
0, have 3
 1243 |               store_jump (b, greedy ? maybe_finalize_jump : 
finalize_push,
      |               ^~~~~~~~~~  ~
regex.c:153:13: note: declared here
  153 | static void store_jump _((char *, int, char *));
      |             ^~~~~~~~~~
regex.c:1251:11: error: too many arguments to function 'insert_jump'; expected 
0, have 4
 1251 |           insert_jump (on_failure_jump, laststart, b + 3, b);
      |           ^~~~~~~~~~~  ~~~~~~~~~~~~~~~
regex.c:154:13: note: declared here
  154 | static void insert_jump _((int, char *, char *, char *));
      |             ^~~~~~~~~~~
regex.c:1259:19: error: too many arguments to function 'insert_jump'; expected 
0, have 4
 1259 |                   insert_jump (try_next, laststart, b + 3, b);
      |                   ^~~~~~~~~~~  ~~~~~~~~
regex.c:154:13: note: declared here
  154 | static void insert_jump _((int, char *, char *, char *));
      |             ^~~~~~~~~~~
regex.c:1271:15: error: too many arguments to function 'insert_jump'; expected 
0, have 4
 1271 |               insert_jump (dummy_failure_jump, laststart, laststart + 
6, b);
      |               ^~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~
regex.c:154:13: note: declared here
  154 | static void insert_jump _((int, char *, char *, char *));
      |             ^~~~~~~~~~~
regex.c:1392:27: error: too many arguments to function 'scan_hex'; expected 0, 
have 3
 1392 |                       c = scan_hex (p, 2, &numlen);
      |                           ^~~~~~~~  ~
regex.c:992:1: note: declared here
  992 | scan_hex (start, len, retlen)
      | ^~~~~~~~
regex.c:1408:27: error: too many arguments to function 'scan_oct'; expected 0, 
have 3
 1408 |                       c = scan_oct (p, 3, &numlen);
      |                           ^~~~~~~~  ~
regex.c:974:1: note: declared here
  974 | scan_oct (start, len, retlen)
      | ^~~~~~~~
regex.c:1742:15: error: too many arguments to function 'store_jump'; expected 
0, have 3
 1742 |               store_jump (fixup_alt_jump, jump, b);
      |               ^~~~~~~~~~  ~~~~~~~~~~~~~~
regex.c:153:13: note: declared here
  153 | static void store_jump _((char *, int, char *));
      |             ^~~~~~~~~~
regex.c:1805:11: error: too many arguments to function 'insert_jump'; expected 
0, have 4
 1805 |           insert_jump (on_failure_jump, begalt, b + 6, b);
      |           ^~~~~~~~~~~  ~~~~~~~~~~~~~~~
regex.c:154:13: note: declared here
  154 | static void insert_jump _((int, char *, char *, char *));
      |             ^~~~~~~~~~~
regex.c:1825:13: error: too many arguments to function 'store_jump'; expected 
0, have 3
 1825 |             store_jump (fixup_alt_jump, jump_past_alt, b);
      |             ^~~~~~~~~~  ~~~~~~~~~~~~~~
regex.c:153:13: note: declared here
  153 | static void store_jump _((char *, int, char *));
      |             ^~~~~~~~~~
regex.c:1923:15: error: too many arguments to function 'insert_jump'; expected 
0, have 4
 1923 |               insert_jump (jump, laststart, b + 3, b);
      |               ^~~~~~~~~~~  ~~~~
regex.c:154:13: note: declared here
  154 | static void insert_jump _((int, char *, char *, char *));
      |             ^~~~~~~~~~~
regex.c:1994:13: error: too many arguments to function 'insert_jump_n'; 
expected 0, have 5
 1994 |             insert_jump_n (succeed_n, laststart, b + (nbytes / 2),
      |             ^~~~~~~~~~~~~  ~~~~~~~~~
regex.c:156:13: note: declared here
  156 | static void insert_jump_n _((int, char *, char *, char *, unsigned));
      |             ^~~~~~~~~~~~~
regex.c:2002:13: error: too many arguments to function 'insert_op_2'; expected 
0, have 5
 2002 |             insert_op_2 (set_number_at, laststart, b, 5, lower_bound);
      |             ^~~~~~~~~~~  ~~~~~~~~~~~~~
regex.c:157:13: note: declared here
  157 | static void insert_op_2 _((int, char *, char *, int, int));


What did I do wrongly?




By the way, can I reuse some of the C code of GNU smalltalk in a GPL licensed 
inference engine project (RefPerSys on github, C++ mostly)


-- 
Basile STARYNKEVITCH                            <bas...@starynkevitch.net>
8 rue de la Faïencerie                       http://starynkevitch.net/Basile/  
92340 Bourg-la-Reine                         https://github.com/bstarynk
France                                https://github.com/RefPerSys/RefPerSys

Reply via email to