diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk index 00612272dc0..1e8eab7176c 100644 --- a/mps/code/comm.gmk +++ b/mps/code/comm.gmk @@ -160,7 +160,7 @@ FMTDY = fmtdy.c fmtno.c FMTDYTST = fmtdy.c fmtno.c fmtdytst.c FMTHETST = fmthe.c fmtdy.c fmtno.c fmtdytst.c PLINTH = mpsliban.c mpsioan.c -EVENTPROC = eventcnv.c eventpro.c table.c +EVENTPROC = eventcnv.c table.c MPMCOMMON = abq.c arena.c arenacl.c arenavm.c arg.c boot.c bt.c \ buffer.c cbs.c dbgpool.c dbgpooli.c event.c format.c \ freelist.c global.c ld.c locus.c message.c meter.c mpm.c mpsi.c \ @@ -439,7 +439,7 @@ $(PFM)/$(VARIETY)/zmess: $(PFM)/$(VARIETY)/zmess.o \ $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a $(PFM)/$(VARIETY)/mpseventcnv: $(PFM)/$(VARIETY)/eventcnv.o \ - $(PFM)/$(VARIETY)/eventpro.o $(PFM)/$(VARIETY)/mps.a + $(PFM)/$(VARIETY)/mps.a $(PFM)/$(VARIETY)/mpseventtxt: $(PFM)/$(VARIETY)/eventtxt.o \ $(PFM)/$(VARIETY)/mps.a @@ -449,7 +449,7 @@ $(PFM)/$(VARIETY)/mpseventsql: $(PFM)/$(VARIETY)/eventsql.o \ $(PFM)/$(VARIETY)/replay: $(PFM)/$(VARIETY)/replay.o \ $(PFM)/$(VARIETY)/eventrep.o \ - $(PFM)/$(VARIETY)/eventpro.o $(PFM)/$(VARIETY)/table.o \ + $(PFM)/$(VARIETY)/table.o \ $(PFM)/$(VARIETY)/mps.a $(PFM)/$(VARIETY)/mpsplan.a: $(PLINTHOBJ) diff --git a/mps/code/commpost.nmk b/mps/code/commpost.nmk index c1b86964069..5984a9b4d35 100644 --- a/mps/code/commpost.nmk +++ b/mps/code/commpost.nmk @@ -227,7 +227,7 @@ $(PFM)\$(VARIETY)\zmess.exe: $(PFM)\$(VARIETY)\zmess.obj \ $(TESTLIBOBJ) $(PFM)\$(VARIETY)\mpseventcnv.exe: $(PFM)\$(VARIETY)\eventcnv.obj \ - $(PFM)\$(VARIETY)\eventpro.obj $(PFM)\$(VARIETY)\mps.lib + $(PFM)\$(VARIETY)\mps.lib $(PFM)\$(VARIETY)\mpseventtxt.exe: $(PFM)\$(VARIETY)\eventtxt.obj \ $(PFM)\$(VARIETY)\mps.lib @@ -237,7 +237,7 @@ $(PFM)\$(VARIETY)\mpseventsql.exe: $(PFM)\$(VARIETY)\eventsql.obj \ $(PFM)\$(VARIETY)\replay.exe: $(PFM)\$(VARIETY)\replay.obj \ $(PFM)\$(VARIETY)\eventrep.obj \ - $(PFM)\$(VARIETY)\eventpro.obj $(PFM)\$(VARIETY)\table.obj \ + $(PFM)\$(VARIETY)\table.obj \ $(PFM)\$(VARIETY)\mps.lib # Have to rename the object file, because the names must match, or diff --git a/mps/code/eventcnv.c b/mps/code/eventcnv.c index b583620a032..d381c47e3fc 100644 --- a/mps/code/eventcnv.c +++ b/mps/code/eventcnv.c @@ -37,7 +37,6 @@ #include "config.h" #include "eventdef.h" #include "eventcom.h" -#include "eventpro.h" #include "testlib.h" /* for ulongest_t and associated print formats */ #include /* for size_t */ @@ -183,19 +182,63 @@ static void printParamS(const char *str) putchar('"'); } + +/* EventRead -- read one event from the file */ + +static Res eventRead(Bool *eofOut, EventUnion *event, FILE *stream) +{ + size_t n; + size_t rest; + + /* Read the prefix common to all event structures, in order to decode the + event size. */ + n = fread(&event->any, sizeof(event->any), 1, stream); + if (n < 1) { + if (feof(stream)) { + *eofOut = TRUE; + return ResOK; + } + return ResIO; + } + + /* Read the rest of the event. */ + rest = event->any.size - sizeof(event->any); + if (rest > 0) { + n = fread((char *)event + sizeof(event->any), rest, 1, stream); + if (n < 1) { + if (feof(stream)) + return ResFAIL; /* truncated event */ + else + return ResIO; + } + } + + *eofOut = FALSE; + return ResOK; +} + /* readLog -- read and parse log */ -static void readLog(EventProc proc) +static void readLog(FILE *stream) { - while (TRUE) { /* loop for each event */ - Event event; + for(;;) { /* loop for each event */ + EventUnion eventUnion; + Event event = &eventUnion; EventCode code; Res res; + Bool eof; /* Read and parse event. */ - res = EventRead(&event, proc); - if (res == ResFAIL) break; /* eof */ - if (res != ResOK) everror("Truncated log"); + res = eventRead(&eof, event, stream); + if (res == ResFAIL) + everror("Truncated log"); + else if (res == ResIO) + everror("I/O error reading log"); + else if (res != ResOK) + everror("Unknown error reading log"); + if (eof) + break; + eventTime = event->any.clock; code = event->any.code; @@ -244,22 +287,9 @@ static void readLog(EventProc proc) putchar('\n'); fflush(stdout); - EventDestroy(proc, event); } /* while(!feof(input)) */ } -/* logReader -- reader function for a file log */ - -static FILE *input; - -static Res logReader(void *file, void *p, size_t len) -{ - size_t n; - - n = fread(p, 1, len, (FILE *)file); - return (n < len) ? (feof((FILE *)file) ? ResFAIL : ResIO) : ResOK; -} - /* CHECKCONV -- check t2 can be cast to t1 without loss */ @@ -272,8 +302,7 @@ static Res logReader(void *file, void *p, size_t len) int main(int argc, char *argv[]) { char *filename; - EventProc proc; - Res res; + FILE *input; assert(CHECKCONV(ulongest_t, Word)); assert(CHECKCONV(ulongest_t, Addr)); @@ -295,13 +324,8 @@ int main(int argc, char *argv[]) everror("unable to open \"%s\"\n", filename); } - res = EventProcCreate(&proc, logReader, (void *)input); - if (res != ResOK) - everror("Can't init EventProc module: error %d.", res); + readLog(input); - readLog(proc); - - EventProcDestroy(proc); return EXIT_SUCCESS; } diff --git a/mps/code/eventpro.c b/mps/code/eventpro.c deleted file mode 100644 index 1730397fab8..00000000000 --- a/mps/code/eventpro.c +++ /dev/null @@ -1,463 +0,0 @@ -/* eventpro.c: Event processing routines - * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. - * - * $Id$ - */ - -#include "config.h" -#include "table.h" -#include "eventdef.h" -#include "eventcom.h" -#include "eventpro.h" -#include "misc.h" -#include "mpmtypes.h" -#include "testlib.h" /* for ulongest_t and associated print formats */ - -#include /* assert */ -#include /* size_t */ -#include /* strcmp */ - -struct EventProcStruct { - EventProcReader reader; /* reader fn */ - void *readerP; /* closure pointer for reader fn */ - Table internTable; /* dictionary of intern ids to symbols */ - Table labelTable; /* dictionary of addrs to intern ids */ - void *cachedEvent; -}; - - -/* error -- error signalling - * - * Should integrate with client exceptions, but that'll do for now. - */ - -#define error(fmt, arg) assert(((void)fmt, FALSE)); - - -/* PointerAdd -- add offset to pointer - * - * Copy of the def in mpm.h which we can't include - */ - -#define PointerAdd(p, s) ((void *)((char *)(p) + (s))) - - -/* sizeAlignUp -- align size_t values up */ - -#define sizeAlignUp(w, a) (((w) + (a) - 1) & ~((size_t)(a) - 1)) - - -/* EventSizeAlign -- Calculate actual size of event in the output - * - * Calculates the actual size of an event in the output, given the size - * of the structure. This has to agree with the writing (EVENT_END). - */ - -/* TODO: Should read this and other layout information from an event file - header in order to be able to process events from other architectures. */ - -#define EventSizeAlign(size) sizeAlignUp(size, MPS_PF_ALIGN) - - - -/* Event types */ - - -/* eventTypes -- an array containing info about the event types */ - -typedef struct { - char *name; /* Event name e.g. "TraceStart" */ - EventCode code; - size_t size; /* event record size, rounded up from structure */ - Count count; /* Parameter count */ - char *format; /* string format, e.g. "PPW" */ -} eventRecord; - -#define EVENT_COUNT_PARAM(X, index, sort, ident) + 1 - -#define EVENT_FORMAT_PARAM(X, index, sort, ident) #sort - -#define EVENT_INIT(X, name, code, always, kind) \ - {#name, \ - code, \ - EventSizeAlign(sizeof(Event##name##Struct)), \ - 0 EVENT_##name##_PARAMS(EVENT_COUNT_PARAM, X), \ - "" EVENT_##name##_PARAMS(EVENT_FORMAT_PARAM, X)}, - -static eventRecord eventTypes[] = { - {"(unused)", 0, 0, 0, ""}, - EVENT_LIST(EVENT_INIT, X) -}; - -#define eventTypeCount (sizeof(eventTypes) / sizeof(eventRecord)) - - -/* eventcode2Index -- find index in eventTypes for the given code */ - -static size_t eventCode2Index(EventCode code, Bool errorp) -{ - size_t i; - - for(i = 0; i < eventTypeCount; ++i) - if (eventTypes[i].code == code) - return i; - if (errorp) - error("Unknown event code %0"PRIwWORD PRIXLONGEST, (ulongest_t)code); - return 0; -} - - -/* EventName2Code -- find event code for the given event name */ - -EventCode EventName2Code(char *name) -{ - size_t i; - - for(i = 0; i < eventTypeCount; ++i) - if (strcmp(eventTypes[i].name, name) == 0) { - assert(eventTypes[i].code <= EventCodeMAX); - return eventTypes[i].code; - } - error("Unknown event name %s", name); - return 0; -} - - -/* EventCode2Name -- find event name for the given event code */ - -char *EventCode2Name(EventCode code) -{ - return eventTypes[eventCode2Index(code, TRUE)].name; -} - - -/* EventCode2Format -- find format for the given event code */ - -char *EventCode2Format(EventCode code) -{ - return eventTypes[eventCode2Index(code, TRUE)].format; -} - - -Bool EventCodeIsValid(EventCode code) -{ - return (eventCode2Index(code, FALSE) != 0); -} - - -/* EventStrings */ - - -/* eventStringCopy -- copy an event string */ - -static Res stringCopy(char **str_o, char *str) -{ - char *newStr; - size_t len, size; - - len = strlen(str); - size = len + sizeof('\0'); - newStr = (char *)malloc(size); - if (newStr == NULL) return ResMEMORY; - memcpy(newStr, str, size); - *str_o = newStr; - return ResOK; -} - - -static void eventStringDestroy(char *str) -{ - free(str); -} - - -/* Labels */ - - -/* Symbol -- representation of an interned string */ - -typedef struct symbolStruct { - Word id; - char *name; -} symbolStruct; -typedef struct symbolStruct *Symbol; - - -/* Label -- representation of a labelled address */ - -typedef struct labelStruct { - Word id; - EventClock time; - Addr addr; -} labelStruct; -typedef struct labelStruct *Label; - - -/* AddrLabel -- return intern id for given addr (or 0 if none) */ - -Word AddrLabel(EventProc proc, Addr addr) -{ - void *entry; - - if (TableLookup(&entry, proc->labelTable, (Word)addr)) - return ((Label)entry)->id; - else - return (Word)0; -} - - -/* LabelText -- return text for given intern id (or NULL if none) */ - -char *LabelText(EventProc proc, Word id) -{ - void *entry; - - if (TableLookup(&entry, proc->internTable, id)) - return ((Symbol)entry)->name; - else - return NULL; -} - - -/* Processing */ - - -/* EventRead -- read one event from the file and allocate descriptor */ - -#define internStrOffset (offsetof(EventInternStruct, f1.str)) - -Res EventRead(Event *eventReturn, EventProc proc) -{ - Res res; - EventAnyStruct anyStruct; - Event event; - - /* Read the prefix common to all event structures, in order to decode the - event size. */ - res = proc->reader(proc->readerP, &anyStruct, sizeof(anyStruct)); - if (res != ResOK) - return res; - - /* Get memory for the event. */ - if (proc->cachedEvent != NULL) { - event = proc->cachedEvent; - proc->cachedEvent = NULL; - } else { - /* This is too long for most events, but never mind. */ - event = (Event)malloc(sizeof(EventUnion)); - if (event == NULL) - return ResMEMORY; - } - - /* Copy the event prefix and read the rest of the event into the memory. */ - event->any = anyStruct; - res = proc->reader(proc->readerP, - PointerAdd(event, sizeof(anyStruct)), - anyStruct.size - sizeof(anyStruct)); - if (res != ResOK) - return res; - - *eventReturn = event; - return ResOK; -} - - -/* EventRecord -- record event in databases - * - * Currently only labels are tracked, but perhaps there will be other - * stuff in the future. - */ - -Res EventRecord(EventProc proc, Event event, EventClock etime) -{ - Res res; - - switch(event->any.code) { - case EventInternCode: { /* id, label */ - Symbol sym = malloc(sizeof(symbolStruct)); - - if (sym == NULL) return ResMEMORY; - sym->id = event->Intern.f0; - res = stringCopy(&sym->name, event->Intern.f1); - if (res != ResOK) { - free(sym); - return res; - } - res = TableDefine(proc->internTable, sym->id, sym); - } break; - case EventLabelCode: { /* addr, id */ - Label label = malloc(sizeof(labelStruct)); - void *entry; - - if (label == NULL) return ResMEMORY; - label->id = event->Label.f1; - /* If events were in time order we'd be able to assert that - TableLookup(&entry, proc->internTable, label->id) */ - label->time = etime; - label->addr = event->Label.f0; - if (TableLookup(&entry, proc->labelTable, (Word)label->addr)) - res = TableRedefine(proc->labelTable, (Word)label->addr, label); - else - res = TableDefine(proc->labelTable, (Word)label->addr, label); - } break; - default: - res = ResOK; - break; - } - return res; -} - - -/* EventDestroy -- destroy an event */ - -void EventDestroy(EventProc proc, Event event) -{ - if (proc->cachedEvent == NULL) - proc->cachedEvent = event; - else - free(event); -} - - -/* initialization and finishing */ - - -/* Checking macros, copied from check.h */ - -#define COMPATLVALUE(lv1, lv2) \ - ((void)sizeof((lv1) = (lv2)), (void)sizeof((lv2) = (lv1)), TRUE) - -#define COMPATTYPE(t1, t2) \ - (sizeof(t1) == sizeof(t2) && \ - COMPATLVALUE(*((t1 *)0), *((t2 *)0))) - -#define COMPATFIELDAPPROX(s1, f1, s2, f2) \ - (sizeof(((s1 *)0)->f1) == sizeof(((s2 *)0)->f2) && \ - offsetof(s1, f1) == offsetof(s2, f2)) - -#define COMPATFIELD(s1, f1, s2, f2) \ - (COMPATFIELDAPPROX(s1, f1, s2, f2) && \ - COMPATLVALUE(((s1 *)0)->f1, ((s2 *)0)->f2)) - - -/* EventProcCreate -- initialize the module */ - -static void *tableAlloc(void *closure, size_t size) -{ - UNUSED(closure); - return malloc(size); -} - -static void tableFree(void *closure, void *p, size_t size) -{ - UNUSED(closure); - UNUSED(size); - free(p); -} - -Res EventProcCreate(EventProc *procReturn, - EventProcReader reader, - void *readerP) -{ - Res res; - EventProc proc = malloc(sizeof(struct EventProcStruct)); - - if (proc == NULL) return ResMEMORY; - - /* check event struct access */ - assert(COMPATFIELD(EventUnion, any.code, EventInternStruct, code)); - assert(COMPATFIELD(EventUnion, any.clock, EventInternStruct, clock)); - /* check use of labelTable */ - assert(sizeof(Word) >= sizeof(Addr)); - - proc->reader = reader; proc->readerP = readerP; - res = TableCreate(&proc->internTable, - (size_t)1<<4, - tableAlloc, tableFree, NULL, - (Word)-1, (Word)-2); /* because MPS IDs are serials from zero up */ - if (res != ResOK) goto failIntern; - res = TableCreate(&proc->labelTable, (size_t)1<<7, - tableAlloc, tableFree, NULL, - 0, 1); /* no Addrs down here */ - if (res != ResOK) goto failLabel; - proc->cachedEvent = NULL; - *procReturn = proc; - return ResOK; - -failLabel: - TableDestroy(proc->internTable); -failIntern: - free(proc); - return res; -} - - -/* EventProcDestroy -- finish the module */ - -static void deallocItem(void *closure, Word key, void *value) -{ - UNUSED(key); - UNUSED(closure); - free(value); -} - -static void deallocSym(void *closure, Word key, void *value) -{ - UNUSED(key); - UNUSED(closure); - eventStringDestroy(((Symbol)value)->name); - free(value); -} - -void EventProcDestroy(EventProc proc) -{ - TableMap(proc->labelTable, deallocItem, NULL); - TableMap(proc->internTable, deallocSym, NULL); - TableDestroy(proc->labelTable); - TableDestroy(proc->internTable); - if (proc->cachedEvent != NULL) - free(proc->cachedEvent); - free(proc); -} - - -/* C. COPYRIGHT AND LICENSE - * - * Copyright (C) 2001-2002 Ravenbrook Limited . - * All rights reserved. This is an open source license. Contact - * Ravenbrook for commercial licensing options. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Redistributions in any form must be accompanied by information on how - * to obtain complete source code for this software and any accompanying - * software that uses this software. The source code must either be - * included in the distribution or be available for no more than the cost - * of distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete source - * code means the source code for all modules it contains. It does not - * include source code for modules or files that typically accompany the - * major components of the operating system on which the executable file - * runs. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ diff --git a/mps/code/eventpro.h b/mps/code/eventpro.h deleted file mode 100644 index ff671523d46..00000000000 --- a/mps/code/eventpro.h +++ /dev/null @@ -1,81 +0,0 @@ -/* eventpro.h: Interface for event processing routines - * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. - * - * $Id$ - */ - -#ifndef eventpro_h -#define eventpro_h - -#include "config.h" - -#include "eventcom.h" -#include "mpmtypes.h" - - -typedef struct EventProcStruct *EventProc; -typedef Res (*EventProcReader)(void *, void *, size_t); - - -extern EventCode EventName2Code(char *name); -extern char *EventCode2Name(EventCode code); -extern char *EventCode2Format(EventCode code); -extern Bool EventCodeIsValid(EventCode code); - -extern Word AddrLabel(EventProc proc, Addr addr); -extern char *LabelText(EventProc proc, Word label); - -extern Res EventRead(Event *eventReturn, EventProc proc); -extern void EventDestroy(EventProc proc, Event event); - -extern Res EventRecord(EventProc proc, Event event, EventClock etime); - -extern Res EventProcCreate(EventProc *procReturn, - EventProcReader reader, - void *readerP); -extern void EventProcDestroy(EventProc proc); - - -#endif /* eventpro_h */ - - -/* C. COPYRIGHT AND LICENSE - * - * Copyright (C) 2001-2002 Ravenbrook Limited . - * All rights reserved. This is an open source license. Contact - * Ravenbrook for commercial licensing options. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Redistributions in any form must be accompanied by information on how - * to obtain complete source code for this software and any accompanying - * software that uses this software. The source code must either be - * included in the distribution or be available for no more than the cost - * of distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete source - * code means the source code for all modules it contains. It does not - * include source code for modules or files that typically accompany the - * major components of the operating system on which the executable file - * runs. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ diff --git a/mps/code/mps.xcodeproj/project.pbxproj b/mps/code/mps.xcodeproj/project.pbxproj index d735f470044..65b1ee7d0e7 100644 --- a/mps/code/mps.xcodeproj/project.pbxproj +++ b/mps/code/mps.xcodeproj/project.pbxproj @@ -182,7 +182,6 @@ 3114A6C1156E97B8001E0AA3 /* fmtno.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CACC156BE4C200753214 /* fmtno.c */; }; 3114A6D1156E9829001E0AA3 /* eventcnv.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A6D0156E9829001E0AA3 /* eventcnv.c */; }; 3114A6D7156E9923001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; - 3114A6DA156E9950001E0AA3 /* eventpro.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A6D9156E9950001E0AA3 /* eventpro.c */; }; 3114A6DD156E9A0F001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; 3124CAC3156BE40100753214 /* awlut.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC2156BE40100753214 /* awlut.c */; }; 3124CAC4156BE40D00753214 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; @@ -1178,7 +1177,6 @@ 3114A6BA156E9768001E0AA3 /* walkt0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = walkt0.c; sourceTree = ""; }; 3114A6C6156E9815001E0AA3 /* mpseventcnv */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = mpseventcnv; sourceTree = BUILT_PRODUCTS_DIR; }; 3114A6D0156E9829001E0AA3 /* eventcnv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = eventcnv.c; sourceTree = ""; }; - 3114A6D9156E9950001E0AA3 /* eventpro.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = eventpro.c; sourceTree = ""; }; 311F2F5017398AD500C15B6A /* boot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = boot.h; sourceTree = ""; }; 311F2F5117398AE900C15B6A /* bt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bt.h; sourceTree = ""; }; 311F2F5217398AE900C15B6A /* cbs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cbs.h; sourceTree = ""; }; @@ -1190,7 +1188,6 @@ 311F2F5817398AE900C15B6A /* event.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = event.h; sourceTree = ""; }; 311F2F5917398AE900C15B6A /* eventcom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = eventcom.h; sourceTree = ""; }; 311F2F5A17398AE900C15B6A /* eventdef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = eventdef.h; sourceTree = ""; }; - 311F2F5B17398AE900C15B6A /* eventpro.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = eventpro.h; sourceTree = ""; }; 311F2F5C17398AE900C15B6A /* eventrep.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = eventrep.h; sourceTree = ""; }; 311F2F5D17398B0400C15B6A /* lo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lo.h; sourceTree = ""; }; 311F2F5E17398B0E00C15B6A /* lock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lock.h; sourceTree = ""; }; @@ -1661,7 +1658,6 @@ 3114A6D8156E9942001E0AA3 /* mpseventcnv */ = { isa = PBXGroup; children = ( - 3114A6D9156E9950001E0AA3 /* eventpro.c */, 3114A6D0156E9829001E0AA3 /* eventcnv.c */, ); name = mpseventcnv; @@ -1828,7 +1824,6 @@ 311F2F5817398AE900C15B6A /* event.h */, 311F2F5917398AE900C15B6A /* eventcom.h */, 311F2F5A17398AE900C15B6A /* eventdef.h */, - 311F2F5B17398AE900C15B6A /* eventpro.h */, 311F2F5C17398AE900C15B6A /* eventrep.h */, 31EEAC1A156AB2B200714D05 /* format.c */, 2291A5EE175CB768001D4920 /* freelist.c */, @@ -3020,7 +3015,6 @@ buildActionMask = 2147483647; files = ( 3114A6D1156E9829001E0AA3 /* eventcnv.c in Sources */, - 3114A6DA156E9950001E0AA3 /* eventpro.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5208,6 +5202,7 @@ 31FCAE1217692403008C034C /* WE */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/mps/code/w3mv/eventcnv/eventcnv.vcxproj b/mps/code/w3mv/eventcnv/eventcnv.vcxproj index 42c03ba76ab..fdd75edade6 100755 --- a/mps/code/w3mv/eventcnv/eventcnv.vcxproj +++ b/mps/code/w3mv/eventcnv/eventcnv.vcxproj @@ -136,7 +136,6 @@ - @@ -146,4 +145,4 @@ - \ No newline at end of file +