Hi Jan,
I experience the same issue. The attached patch works for me. I'm not
sure why it worked for Sjoerd here, so I'm not committing.
On 02-05-2007 09:52:24 +0200, Jan Flokstra wrote:
> I have great compilation troubles with the last lesson from the master:-) The
> compiler doesn not know the realloc() and the malloc() function() in the
> current setting. When I change them into PFrealloc() and PFmalloc() it
> compiles. But then I still have problems with the "free(buf);" line. There is
> no PFfree(); and I think GDKfree() will not always work,
>
> JanF.
>
> On Tuesday 01 May 2007 17:58, Sjoerd Mullender wrote:
> > Update of /cvsroot/monetdb/pathfinder/compiler/mil
> > In directory sc8-pr-cvs16:/tmp/cvs-serv17830
> >
> > Modified Files:
> > milprint_summer.c
> > Log Message:
> > When you want to use a library function, make sure the appropriate
> > include file is included. For alloca there is an extra twist: for the
> > way to include alloca.h see e.g. monet_utils.mx. Do not hide the lack
> > of a declaration with a cast. The compiler then thinks the function
> > returns an int which may well be smaller in space than the actual
> > value, and hence some bytes of the value may get lost.
> >
> > Having said this, alloca should *not* be used in a loop. It allocates
> > memory in each iteration which is only freed at the end of the
> > function. If the loop loops many times, that can be a lot of memory
> > which is allocated on the stack (which is a very finite resource!).
> >
> > Here ends today's lesson.
> >
> >
> > Index: milprint_summer.c
> > ===================================================================
> > RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
> > retrieving revision 1.367
> > retrieving revision 1.368
> > diff -u -d -r1.367 -r1.368
> > --- milprint_summer.c 27 Apr 2007 18:22:40 -0000 1.367
> > +++ milprint_summer.c 1 May 2007 15:57:59 -0000 1.368
> > @@ -11140,12 +11140,18 @@
> > /* ============================= */
> > /* initialize function variables */
> > /* ============================= */
> > + size_t maxbufsize = 0;
> > + char *buf = NULL;
> > while (args->kind != c_nil)
> > {
> > /* get the type name, and assure there *is* a namespace */
> > char *tpe = PFty_str(TY(LR(args)));
> > - char *buf = (char*) alloca(4+strlen(tpe));
> > - char *nme = buf;
> > + char *nme;
> > + if (maxbufsize < strlen(tpe) + 4) {
> > + maxbufsize = strlen(tpe) + 4;
> > + buf = buf ? realloc(buf, maxbufsize) : malloc(maxbufsize);
> > + }
> > + nme = buf;
> > if (strchr(tpe, ':') == NULL) {
> > *buf++ = 'x';
> > *buf++ = 's';
> > @@ -11171,6 +11177,8 @@
> >
> > args = R(args);
> > }
> > + if (buf)
> > + free(buf);
> > /* create the full signature that also is a valid MIL identifier
> > */ c->sem.fun->sig = PFmalloc(12+3*(strlen(sig)+strlen(p)));
> >
> >
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Monetdb-pf-checkins mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Monetdb-developers mailing list
> Monetdb-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-developers
Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.368
diff -u -r1.368 milprint_summer.c
--- milprint_summer.c 1 May 2007 15:57:59 -0000 1.368
+++ milprint_summer.c 2 May 2007 08:08:22 -0000
@@ -58,6 +58,7 @@
#include "pathfinder.h"
#include <stdio.h>
+#include <stdlib.h>
#include <assert.h>
#include <string.h>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Monetdb-developers mailing list
Monetdb-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/monetdb-developers