[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-981222 & oo2c_32/64-1.3.13
Hi.
There is some greate news on the portability front.
With the help of Mike Goldman I was able to put together a version of
oo2c that can compile itself on an Alpha processor, and probably on
other 64 bit machines as well. X11 programs won't work, though. This
is probably caused by a problem with the alignment of record fields.
Starting with this release a tar file oo2c_64 can be found in the
directory http://www.uni-kl.de/OOC/files/oo2c/ .
There is now also support for the Win32 API: For the target operating
system "Win32" the calling convention "Pascal" can be selected. The
type flags ALIGN1, ALIGN2, ALIGN4, and ALIGN8 (default) control
alignment of record fields. For pointers to character arrays the flag
"CSTRING" can be set. It makes all character arrays and string
constants assignment compatible to the pointer. Such a pointer is
defined in module C.Mod as "string".
Stewart Greenhill has written (or rather, is still writing) a tool to
create an interface module WinApi.Mod from the Win32 C headers. This
works quite well, although he says it isn't perfect yet. Based on
Stewart's WinApi.Mod, Tim intends to release a preliminary version of
VO for Win32 Real Soon Now(TM).
Also included in oo2c-1.3.13: some text cleanup for Debian, some
bugfixes, and the most recent version of the OOC Reference Manual.
For details check the attached ChangeLog.
-- mva
1998-12-22 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/ParseStatm.Mod (PredefCall):
Fixed run-time exception if argument to LEN is not an
array.
1998-12-19 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/C.Mod:
New pointer type `string', which is assignment compatible with
character arrays and string constants.
* frontend/ParseStatm.Mod (AssignmentCompatible):
Additional rule if the target of the
assignment is a variable of pointer type with `structCArrayAssign'
set. In this case the assigment is valid, if the array types on both
sides have the same number of dimensions and the same base type, or if
the left side is a pointer to character array and the right a string
constant.
* frontend/Data.Mod:
Introduced flag to enable/disable use of system flags in a module.
* backend/ansi-c/SystemFlags.Mod:
Introduced flag to enable/disable use of system flags in a module.
New struct flag CSTRING. With this flag set strings or character
arrays can be assigned to appropriate pointer variables, which will
actually assign the array's address.
* frontend/Data.Mod: New struct flag: structCArrayAssign.
1998-12-17 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/X11.Mod:
Defined `ulongmask' and `uintmask' in terms of `C.longset' and
`C.set'.
* backend/ansi-c/lib/C.Mod: Added types `set' and `longset'.
1998-12-16 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/OakXYplane.Mod (Open):
Fixed types for 64 bit system.
* backend/ansi-c/Build.Mod (LinkProgram):
Removed -allow-undefined from libtool's argument list.
* tools/CNText.Mod (WriteTextSym):
The test for CR+LF was broken, breaking text output
for comments and pragmas.
1998-12-15 Michael van Acken <acken@informatik.uni-kl.de>
* tools/ooef.Mod:
Omit output separator in front of the first file's error list.
* backend/ansi-c/lib/C.Mod: Set size_t=longint.
* tools/ooef.Mod:
Added command variant to pass a module name and file position to the
program instead of reading an error list from stdin. This way one can
translate an exception message to a file position.
* tools/CNHTML.Mod (WriteTextSym):
The test for CR+LF was broken, breaking HTML output
for comments and pragmas.
1998-12-13 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/GenDecl.Mod (Declaration):
Oops, WriteCallConv was called for all type
declarations, not just function types.
1998-12-12 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/SystemFlags.Mod:
Added calling convention "Pascal" for Win32 target. Removed flag
GCC_ATTRIB_STDCALL.
* backend/ansi-c/StdTypes.Mod (StructAlloc):
Extended to deal with ALIGNX flags.
* backend/ansi-c/GenDecl.Mod (LeftTypeExpr):
If only of the ALIGNX flags is set for a record, then
the struct is defined with attribute _NOALIGN (defined in __oo2c.h).
(Declaration): For Win32 target write __stdcall and __cdecl attributes
for procedures. Omit these attributes for type casts.
* backend/ansi-c/lib/__oo2c.h:
New define _NOALIGN to suppress all alignment of record fields by the
C compiler.
1998-12-10 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/SymbolTable.Mod:
Fixed argument types of SHORT/LONG for 64 bit values.
1998-12-09 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/__oo2c.h:
Changed prototype code for alloca() to avoid warnings on Alpha/gcc.
* lib/Log.Mod (Ptr, Adr): Extended code to deal with 64 bit addresses.
* backend/ansi-c/lib/Locales.c:
Removed two redundant type casts which are invalid on a 64 bit system.