Gambas IDE no longer starts on my setup

Post

Posted
Rating:
#1 (In Topic #1507)
Regular
JumpyVB is in the usergroup ‘Regular’
Does anyone know what is JIT in GNU/Linux?

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
Online now: No Back to the top

Post

Posted
Rating:
#2
Avatar
Guru
cogier is in the usergroup ‘Guru’
Open Terminal and run this command GB_NO_JIT=1 && gambas3. Let us know if that works for you.
Online now: No Back to the top

Post

Posted
Rating:
#3
Regular
JumpyVB is in the usergroup ‘Regular’
I have Gambas IDE working again  :D

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.
Online now: No Back to the top

Post

Posted
Rating:
#4
Regular
JumpyVB is in the usergroup ‘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.
Online now: No Back to the top

Post

Posted
Rating:
#5
Guru
BruceSteers is in the usergroup ‘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)
Online now: No Back to the top

Post

Posted
Rating:
#6
Guru
BruceSteers is in the usergroup ‘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
Online now: No Back to the top

Post

Posted
Rating:
#7
Regular
JumpyVB is in the usergroup ‘Regular’
Thank you Bruce.
Online now: No Back to the top
1 guest and 0 members have just viewed this.