26 |
|
|
27 |
#include <string.h> |
#include <string.h> |
28 |
#include <signal.h> |
#include <signal.h> |
29 |
|
#include <stdlib.h> |
30 |
#define NEED_MP_H |
#define NEED_MP_H |
31 |
#include "include.h" |
#include "include.h" |
32 |
#define dcheck_type(a,b) check_type(a,b) |
#define dcheck_type(a,b) check_type(a,b) |
453 |
{printf("loading %s\n",file); fflush(stdout); load(file);} |
{printf("loading %s\n",file); fflush(stdout); load(file);} |
454 |
} |
} |
455 |
|
|
456 |
|
DEFUN_NEW("INIT-CMP-ANON", object, fSinit_cmp_anon, SI, 0, 0, |
457 |
|
NONE, OO, OO, OO,OO,(void), |
458 |
|
"Initialize previously compiled and linked anonymous function from the |
459 |
|
.text section of the running executable. This function is inherently |
460 |
|
dangerous, and is meant as a work-around to facilitate the production |
461 |
|
of an ansi GCL image on systems which must currently link using |
462 |
|
dlopen. On such systems, it is imposible to compile and load |
463 |
|
anonymous functions as part of the initialization sequence of the lisp |
464 |
|
image, as is done in pcl, and preserve that function across a |
465 |
|
save-system call. The approach here is to provide a flag to GCL's |
466 |
|
compile function which will direct the algorithm to forgo |
467 |
|
recompilation and loading in favor of initialization via this |
468 |
|
function.") |
469 |
|
{ |
470 |
|
|
471 |
|
int i; |
472 |
|
|
473 |
|
i=init_cmp_anon(); |
474 |
|
if (i<0) |
475 |
|
FEerror("No such anonymous function",0); |
476 |
|
|
477 |
|
return i ? Cnil : Ct; |
478 |
|
|
479 |
|
} |