Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Thanks ! Could you try compiling as c instead of cxx as well?  What was that variable again......

On my openbsd machines, I'm using ecl21.2 and I know other people have been compiling on more modern stock linux distributions successfully at least sometimes. So my guess is that maybe I did something that didn't play well with C++ compilation? Since it looks like cxx files are being generated instead of .c .

No probs. I’m not sure how to force ECL’s build process to use plain C instead of CXX, but I might investigate later, ’cause again ECL looks to me like a very interesting option in terms of FFI with low-level libraries like SDL. I use Gentoo btw :) Same ECL version, 21.2.1.

I forgot what we are allowed to do with

> (ext:install-c-compiler)
> c:*cc*
"gcc"
> (setf c:*cc* "g++") ;and vice versa? Can we do it?

Something I learned from this jam was definitely the value of kinda known-working templates like you made, since it's a bit scattershot what's going to work on how-old what-distribution of linux !

On my recent phlog I speculated about targetting gentoo ebuild(1) / openbsd ports(7) for distribution in the future, since I don't like the style of every-program-with-its-own-redundant-deps-in-its-own-chroot dependency bundling.

(3 edits) (+1)

Oh I tried setfing c:*cc* but looks like the errors are the same:

;;; Internal error:
;;;   ** Error code 1 when executing
;;; (EXT:RUN-PROGRAM "gcc" ("-I." "-I/usr/include/" "-D_GNU_SOURCE" "-D_FILE_OFFSET_BITS=64" "-march=native" "-mtune=native" "-O2" "-fomit-frame-pointer" "-pipe" "-ggdb" "-fPIC" "-D_THREAD_SAFE" "-Dlinux" "-O2" "-c" "/var/tmp/cache/andrew/common-lisp/ecl-21.2.1-linux-x64/tmp/jam-no-theme/jam-no-theme.cxx" "-o" "/var/tmp/cache/andrew/common-lisp/ecl-21.2.1-linux-x64/tmp/jam-no-theme/jam-no-theme.o")):
;;; /var/tmp/cache/andrew/common-lisp/ecl-21.2.1-linux-x64/tmp/jam-no-theme/jam-no-theme.cxx: In function 'cl_lispunion* L2set_color(cl_narg, cl_object, cl_object, cl_object, ...)':
;;; /var/tmp/cache/andrew/common-lisp/ecl-21.2.1-linux-x64/tmp/jam-no-theme/jam-no-theme.cxx:114:34: error: invalid conversion from 'int' to 'cl_object' {aka 'cl_lispunion*'} [-fpermissive]
;;;   114 |   value0 = SDL_SetRenderDrawColor(renderer, ecl_to_int(v1r), ecl_to_int(v2g), ecl_to_int(v3b), ecl_to_int(v4a));
;;;       |            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;;;       |                                  |
;;;       |                                  int
;;; /var/tmp/cache/andrew/common-lisp/ecl-21.2.1-linux-x64/tmp/jam-no-theme/jam-no-theme.cxx: In function 'cl_lispunion* L3fill_rectangle(cl_object, cl_object, cl_object, cl_object)':
;;; /var/tmp/cache/andrew/common-lisp/ecl-21.2.1-linux-x64/tmp/jam-no-theme/jam-no-theme.cxx:136:26: error: taking address of rvalue [-fpermissive]
;;;   136 |        &(struct SDL_Rect){.x = ecl_to_int(T0), .y = ecl_to_int(T1),
;;;       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;;;   137 |                           .w = ecl_to_int(T2), .h = ecl_to_int(T3)});
;;;       |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;;; /var/tmp/cache/andrew/common-lisp/ecl-21.2.1-linux-x64/tmp/jam-no-theme/jam-no-theme.cxx:135:22: error: invalid conversion from 'int' to 'cl_object' {aka 'cl_lispunion*'} [-fpermissive]
;;;   135 |    SDL_RenderFillRect(renderer,
;;;       |    ~~~~~~~~~~~~~~~~~~^~~~~~~~~~
;;;       |                      |
;;;       |                      int
;;;   136 |        &(struct SDL_Rect){.x = ecl_to_int(T0), .y = ecl_to_int(T1),
;;;       |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;;;   137 |                           .w = ecl_to_int(T2), .h = ecl_to_int(T3)});
;;;       |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~An error occurred during initialization:
COMPILE-FILE-ERROR while
compiling #<cl-source-file "jam-no-theme" "jam-no-theme">.

Yeah, I’ve learned importance of pre-developed scaffolding the hard way, on Lisp Game Jam 2019 :)

I don’t like the style of every-program-with-its-own-redundant-deps-in-its-own-chroot dependency bundling

I feel you bro, I don’t really like AppImage as well, but haven’t stumbled upon better alternatives. Unfortunately not all people use Gentoo or *BSD :)

Guix looks interesting though, since it could be installed on top of any distribution, but I haven’t had the time to dig deeper into it.

(2 edits) (+1)

In about 10 hours from now I'll write some smaller ecl programs (compile ecl at all, link against sdl2, open an sdl2 window, render an sdl2 window and a few other singular ecl compilation tests/examples. For now, I sleep.