Gambas IDE no longer starts on my setup
Posted
#1
(In Topic #1507)
Regular

After weekly updates of my Solus operating system Gambas IDE no longer starts. I get the following error message:
"This application has raised an unexpected error and must abort [6] Type mismatch: wanted String[], got String instead. [gb.jit].CCompilation.Wait.259"
I get similar JIT related errors if I try to compile the latest Gambas sourcecode:
Code
In file included from gbx_exec.h:28,
from gbx_jit.c:30:
gbx_jit.c: In function ‘JIT_call_unknown’:
gb_error.h:139:35: error: assignment to ‘void (*)(void)’ from incompatible pointer type ‘void (*)(JIT_call_unknown_ERROR *)’ [-Wincompatible-pointer-types]
139 | __handler.handler = (_handler); \
| ^
gb_error.h:146:9: note: in expansion of macro ‘ON_ERROR’
146 | ON_ERROR(_handler) \
| ^~~~~~~~
gbx_jit.c:433:9: note: in expansion of macro ‘ON_ERROR_1’
433 | ON_ERROR_1(error_JIT_call_unknown, &save)
| ^~~~~~~~~~
gbx_jit.c:414:13: note: ‘error_JIT_call_unknown’ declared here
414 | static void error_JIT_call_unknown(JIT_call_unknown_ERROR *save)
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from gbx_class.c:30:
gbx_class.c: In function ‘CLASS_free’:
gb_error.h:139:35: error: assignment to ‘void (*)(void)’ from incompatible pointer type ‘void (*)(void *, const EXEC_GLOBAL *)’ [-Wincompatible-pointer-types]
139 | __handler.handler = (_handler); \
| ^
gb_error.h:146:9: note: in expansion of macro ‘ON_ERROR’
146 | ON_ERROR(_handler) \
| ^~~~~~~~
gb_error.h:150:9: note: in expansion of macro ‘ON_ERROR_1’
150 | ON_ERROR_1(_handler, _arg1) \
| ^~~~~~~~~~
gbx_class.c:777:9: note: in expansion of macro ‘ON_ERROR_2’
777 | ON_ERROR_2(error_CLASS_free, object, &save)
| ^~~~~~~~~~
make[4]: *** [Makefile:1188: gbx3-gbx_jit.o] Error 1
gbx_class.c:757:13: note: ‘error_CLASS_free’ declared here
757 | static void error_CLASS_free(void *object, const EXEC_GLOBAL *save)
| ^~~~~~~~~~~~~~~~
make[4]: *** Waiting for unfinished jobs....
CC gbx3-gbx_stream_direct.o
In file included from gbx_exec.h:36,
from gbx_class.c:38:
gbx_class.c: In function ‘CLASS_auto_create’:
gbx_object.h:84:88: error: too many arguments to function ‘((OBJECT *)ob)->class->check’; expected 0, have 1
84 | #define OBJECT_is_valid(_object) ((_object) && !(((OBJECT *)_object)->class->check && (*((OBJECT *)_object)->class->check)(_object)))
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gbx_class.c:1357:21: note: in expansion of macro ‘OBJECT_is_valid’
1357 | if (OBJECT_is_valid(ob))
| ^~~~~~~~~~~~~~~
In file included from gbx_exec.h:30:
gbx_class.h:314:23: note: declared here
314 | int (*check)(); // 44 72 method for checking that an object is valid
| ^~~~~
gbx_class.c: In function ‘CLASS_search_special’:
gbx_class.c:1430:55: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types]
1430 | if (class->must_check && class->check != OBJECT_check_valid)
| ^~
gbx_class.c:1433:30: error: assignment to ‘int (*)(void)’ from incompatible pointer type ‘int (*)(void *)’ [-Wincompatible-pointer-types]
1433 | class->check = OBJECT_check_valid;
| ^
gbx_object.h:90:5: note: ‘OBJECT_check_valid’ declared here
90 | int OBJECT_check_valid(void *object);
| ^~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:1328: gbx3-gbx_class.o] Error 1
In file included from gbx_stream.c:41:
gbx_stream.c: In function ‘STREAM_read_type’:
gb_error.h:139:35: error: assignment to ‘void (*)(void)’ from incompatible pointer type ‘void (*)(void *)’ [-Wincompatible-pointer-types]
139 | __handler.handler = (_handler); \
| ^
gb_error.h:146:9: note: in expansion of macro ‘ON_ERROR’
146 | ON_ERROR(_handler) \
| ^~~~~~~~
gbx_stream.c:1398:25: note: in expansion of macro ‘ON_ERROR_1’
1398 | ON_ERROR_1(error_STREAM_read_type, object)
| ^~~~~~~~~~
gbx_stream.c:1192:13: note: ‘error_STREAM_read_type’ declared here
1192 | static void error_STREAM_read_type(void *object)
| ^~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:1398: gbx3-gbx_stream.o] Error 1
make[3]: *** [Makefile:483: all-recursive] Error 1
make[2]: *** [Makefile:415: all] Error 2
make[1]: *** [Makefile:464: all-recursive] Error 1
make: *** [Makefile:405: all] Error 2
Posted
Guru

Posted
Regular

The main website Gambas - Gambas Almost Means Basic was linking me to an old version https://gitlab.com/gambas/gambas/-/archive/3.20.2/gambas-3.20.2.tar.bz2 which I guess was faulty.
Once I found the latest version https://gitlab.com/gambas/gambas/-/archive/stable/gambas-stable.tar.bz2 from git and now everything works as they normally have been working.
I wonder if something changed with jit compiler and Benoit had to make changes to his code to make it compatible again. I hope long age for Benoit. It would be a shame having to use computers without Gambas.
My bad, sorry.
Posted
Regular

cogier said
Open Terminal and run this command GB_NO_JIT=1 && gambas3. Let us know if that works for you.
Thank you cogier. You guys are always so kind and reliable.
Posted
Guru

JumpyVB said
I wonder if something changed with jit compiler and Benoit had to make changes to his code to make it compatible again. I hope long age for Benoit. It would be a shame having to use computers without Gambas.
Yes, this was discussed in a few different threads at the time.
Gambas One - Gambas ONE
Gambas One - Gambas ONE
Gambas One - Gambas ONE
something changed in gcc and clang (that is used by JIT) that broke JIT.
Benoit worked around the issue as soon as it was identified, so you just need a later version of gambas (or an earlier version of gcc)
Posted
Guru

JumpyVB said
Does anyone know what is JIT in GNU/Linux?
I know what it is in Gambas.
It's a "Just in time" Compiler
gambas can compile "on the fly" c programs.
parts of the code are converted to run as c programs that are natively faster than gambas code.
/doc/jit - Gambas Documentation
Posted
Regular

1 guest and 0 members have just viewed this.


