This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: MySQL and guile


Just after writing that message, it occurred to me to try the snapshot
release.  It still crashes in pretty much the same place, though the
snapshot may actually crash with a slightly smaller number of vector
elements than the 1.2 release did.

I've actually narrowed down the bug a bit.  Guile only seems to puke
when I fill the vectors with empty lists.  Replacing 
	gh_make_vector(gh_int2scm(x), gh_list(SCM_EOL));
with
	gh_make_vector(gh_int2scm(x), gh_int2scm(0));
fixed the problem.  

I've included a trivial program at the end of this letter that
demonstrates the problem.  The only difference between this program and
the sql interface one is that the sql interface will actually create up
to a certain number (it seems to be around 5,000) of vector elements
using gh_list(SCM_EOL) before crashing.  The program below crashes
regardless of how many elements the null filled vector has.  I can
include the code for the other program if you like, but it requires a
mysql installation to work.

It could be that I'm mucking up the gh_list call.  There was no
documented gh_null() function, so I assumed that gh_list(SCM_EOL) was
what I was supposed to use instead.	

I hope this helps.

-hal

****
#include <stdio.h>
#include <guile/gh.h>

void main_prog(int argc, char *argv[])
{

  fprintf(stderr, "begin int vector allocation\n");
  fflush(stderr);

  gh_make_vector(gh_int2scm(10), gh_int2scm(0));

  fprintf(stderr, "end int vector allocation\n");
  fflush(stderr);

  fprintf(stderr, "begin null vector allocation\n");
  fflush(stderr);

  gh_make_vector(gh_int2scm(100), gh_list(SCM_EOL));

  fprintf(stderr, "end null vector allocation\n");
  fflush(stderr);



  exit(0);
}

int main(int argc, char *argv[])
{
  gh_enter(argc, argv, main_prog);

  return 0;
}

****

Mark Galassi wrote:
> 
> Hi Hal,
> 
> Have you found the same problem with the Guile snapshots?
> 
> Try getting the latest snapshot from ftp://ftp.red-bean.com/pub/guile/
> and if it still crashes, please send me a program which produces the
> failure and which I can compile.