Hi Carlo, Thanks for doing this testing. I do not know of anyone who has built Guile with the VM on Windows, so some of these problems are interesting.
I can't speak to all of your issues, but regarding some of them: On Wed 18 Mar 2009 12:05, "carlo.bramix" <carlo.bra...@libero.it> writes: > LIBGUILE/GSUBR.C > ================ > function alloca() is undefined because under Windows the intrinsic > function is called _alloca(). Hm, I thought the Gnulib alloca thing should have fixed this. Does adding #include <alloca.h> in gsubr.c not fix this? > LIBGUILE/OBJCODES.C > =================== > sys/mmap.h is absent. This is unfortunate. But I understand that windows has ways of mapping files to memory, and we should use those. Do you know what those calls are? > 'ulong' is undefined. Ah, I wonder how this got there. Fixed. > compilation of function make_objcode_by_mmap() fails because function > mmap() does not exist. I would rather implement this properly on windows than make a new, hacky function. This is a very important function, actually. > LIBGUILE/VM.C > ============= > I have not really understood this error: > > ../../guile-git/libguile/vm-engine.c: In function `vm_regular_engine': > ../../guile-git/libguile/vm-engine.c:277: error: unable to find a register to > spill in class `SIREG' This is because in the VM we declare some variables to be in registers, but this confuses some gccs, especially on win32. I don't know what the real answer is -- perhaps we shouldn't force register allocation for these variables. > It happens with GCC3.4.5, GCC4.1.3 and GCC4.3.0. That is good to know, thank you for testing with all of these. For the record I have only seen this problem with GCC 4.1.2 on Linux; e.g. 4.3.0 works for me. So there must be more register pressure on windows or something. We can work around it by setting vm-engine.h:72 to be: #if defined(__i386__) && !defined(__windows__) But I need to know the right thing to put there for __windows__. > I hope you will find it useful. Thank you! Andy -- http://wingolog.org/