Re: Building Chicken 6 on Debian stable / MX Linux

Mario Domenech Goulart via Chicken-users <[email protected]>
Newsgroups gmane.lisp.scheme.chicken
Message-ID <[email protected]>
Hi Artyom,

On Tue, 18 Aug 2026 04:00:55 +0400 Artyom Bologov via Chicken-users <[email protected]> wrote:

> I’m trying to build Chicken 6 on my MX Linux (= Debian stable)
> machine. I encountered a bit of errors and decided to share these and my
> fixes to them. I also encountered a set of grave errors that I do not
> know how to fix, so any help will be appreciated!
>
> So, the story is: Debian stable only has Chicken 5.3.0 in its
> repos. While current Chicken is already at 6.0. Which is a big
> gap. Chicken also requires another instance of Chicken installed to
> bootstrap itself. Which causes all manners of problems when trying to
> build 6.0 with 5.3 on my machine. I won’t even list the error messages
> here, as there are too many.
>
> My approach was to checkout the 5.4.0rc1 branch and try building
> that. The errors I got were mostly related to bwp type:
>
> Error: invalid argument type in specialization
> (or symbol keyword char eof bwp null undefined)
> (((or symbol keyword char eof bwp null undefined) *) (scheme#eq? #(1) #(2)))
> chicken.base#equal=?
>
> No sweat, just remove “bwp” from the respective signatures (there are
> multiple) in types.db. After that, Chicken does compile and install
> fine.
>
> Now to 6.0. I tried checking out 6.0.0-bootstrap, 6.0.0pre1, and
> 6.0.0rc2, and build errors were mostly identical, so let’s try with
> 6.0.0pre1 first:
>
> Syntax error (import): cannot import from undefined module
>
> 	scheme.base
>
> This is solvable by editing library.scm and removing all imports from
> (scheme base) which seems to be absent in Chicken 5.4.0 used for the
> build. After that, a new error emerges:
>
> Error: invalid argument type in specialization
> bytevector
> ((bytevector) (##core#inline "C_u_i_8vector_length" #(1)))
> chicken.number-vector#u8vector-length
>
> Okay, this is fine too—bytevectors are only added in Chicken 6, so 5.4.0
> does not know the type. Just change the “bytevector” to “*” in the
> offending signatures and recompile.
>
> Compilation progresses, but suddenly litters the screen with a bunch of
> errors like:
>
> library.c:80937:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘f_41848’
> 80937 | static void C_fcall f_41848(C_word t0,C_word t1,C_word t2,C_word t3,C_word t4,C_word t5,C_word t6){
>       |                     ^~~~~~~
> library.c: In function ‘f_41915’:
> library.c:81114:200: error: ‘li681’ undeclared (first use in this function)
> 81114 |
> 0)[4],a[4]=((C_word*)t0)[5],a[5]=((C_word*)t0)[6],a[6]=((C_word*)t0)[7],a[7]=t5,a[8]=((C_word*)t0)[8],a[9]=((C_word)li681),tmp=(C_word)a,a+=10,tmp);
> library.c:82960:41: error: ‘f_11427’ undeclared here (not in a function); did you mean ‘f_21427’?
> 82960 | {C_text("f_11427:library_2escm"),(void*)f_11427},
>       |                                         ^~~~~~~
>       |                                         f_21427
> library.c: In function ‘f_40745’:
> library.c:78043:46: warning: ‘noreturn’ function does return
> 78043 | ((C_proc)(void*)(*((C_word*)t4+1)))(4,av2);}}}
>       |                                              ^
>
> There are thousands of them, and I’m not sure I understand the reason
> behind them. That’s where I’m stuck.
>
> Any help?

To build releases, the only requirements are a POSIX shell, a decent C
toolchain and GNU make.  You don't need to go through the bootstrapping
process.  It's basically fetching the release tarball, extracting it and
running:

$ ./configure
$ make
$ make install

You can select the installation directory with the --prefix parameter
for configure, and build parallelization options with the -j parameter
for make.

Only building from git requires an available chicken executable, and
normally the code from git expects a minimum CHICKEN version.  Currently
you can use the 6.0.0 release to build the code from git (but you don't
have to build the code from git -- you can simply build the release
tarball, which doesn't require a pre-installed chicken).

All the best.
Mario
-- 
https://parenteses.org/mario
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.