/* Copyright 1989, 1990 by James Aspnes, David Applegate, and Bennet Yee */
/* See the file COPYING for distribution information */
#include <stdio.h>
#include <ctype.h>
#include "db.h"
#include "globals.h"
#include "bytecode.h"
#include "externs.h"
extern byte *compile (const char *);
datum me;
datum you;
datum text;
datum mtext;
int please_gc = 0;
int please_checkpoint = 0;
int shutdown_flag = 0;
int main (int argc, char **argv)
{
FILE *f;
char buf[2048];
if (argc < 2) {
fprintf (stderr, "Usage: %s db-file\n", argv[0]);
return (1);
}
if ((f = fopen (argv[1], "rb")) == NULL) {
perror ("Couldn't open database.\n");
return (2);
}
if (db_read (f) < 0) {
fprintf (stderr, "Couldn't read database from %s\n", argv[1]);
return (3);
} else {
fclose (f);
}
while (!shutdown_flag && gets (buf)) {
parse_command (1, buf);
if (please_gc) {
full_gc ();
please_gc = 0;
} else {
incremental_gc ();
}
}
db_write (stdout);
return 0;
}
void notify (datum victim, const char *buf)
{
printf ("%ld: %s\n", victim, buf);
}