mirror of
https://github.com/byteworksinc/ORCA-C.git
synced 2024-06-12 20:29:45 +00:00
Compare commits
3 Commits
9a56a50f5f
...
4d8eaf93bc
Author | SHA1 | Date | |
---|---|---|---|
|
4d8eaf93bc | ||
|
7e5023844a | ||
|
1aa654628a |
42
C.Read.Me
Normal file
42
C.Read.Me
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
Welcome to ORCA/C 2.2.0! This is a release containing updates from
|
||||||
|
community members (Stephen Heumann and Kelvin Sherlock).
|
||||||
|
|
||||||
|
ORCA/C 2.2.0 adds support for almost all of the new language and library
|
||||||
|
features required by the C17 standard. It also has several other new
|
||||||
|
features, such as additional lint checks to help identify bugs and
|
||||||
|
portability problems. In addition to these new features, ORCA/C 2.2.0
|
||||||
|
includes hundreds of bug fixes in the compiler and libraries.
|
||||||
|
|
||||||
|
The ORCA/C manual has been fully updated to cover ORCA/C 2.2.0, so new
|
||||||
|
users should simply refer to that. Users familiar with older versions
|
||||||
|
of ORCA/C can refer to the cc.notes file in the Release.Notes directory
|
||||||
|
for a description of the changes between ORCA/C 2.0 and ORCA/C 2.2.0.
|
||||||
|
|
||||||
|
ORCA/C 2.2.0 requires a real or emulated Apple IIGS with at least the
|
||||||
|
following specifications:
|
||||||
|
|
||||||
|
* 2 MB of RAM (3 MB or more recommended)
|
||||||
|
* a hard drive or SSD
|
||||||
|
* System 6.0.1 or later
|
||||||
|
|
||||||
|
ORCA/C can also be run on modern Mac, Windows, or Linux systems as a
|
||||||
|
cross compiler by using Golden Gate, a specialized emulation tool by
|
||||||
|
Kelvin Sherlock. It is available separately from Juiced.GS:
|
||||||
|
https://juiced.gs/store/golden-gate/
|
||||||
|
|
||||||
|
If you have any questions, or if you want to get involved in ORCA/C
|
||||||
|
development, please get in touch. The ORCA/C development project is
|
||||||
|
hosted on GitHub, and bug reports or patches can be submitted there:
|
||||||
|
https://github.com/byteworksinc/ORCA-C
|
||||||
|
|
||||||
|
Thanks to:
|
||||||
|
* Mike Westerfield, for writing ORCA/C, releasing the source code,
|
||||||
|
and permitting it to be updated by the community.
|
||||||
|
* Kelvin Sherlock, for providing several patches and bug reports, and
|
||||||
|
for writing several useful tools for modern Apple II development.
|
||||||
|
* Soenke Behrens, for compiling a list of ORCA/C bug reports and test
|
||||||
|
cases, which has helped me to identify and fix a number of bugs.
|
||||||
|
* The developers of Csmith (http://embed.cs.utah.edu/csmith/), an
|
||||||
|
automated compiler testing tool that has helped to find several bugs.
|
||||||
|
|
||||||
|
--Stephen Heumann (stephenheumann@gmail.com)
|
|
@ -1,15 +1,25 @@
|
||||||
Welcome to ORCA/C 2.2.0 B7! This is an update release containing
|
This is an update package that can be used to update ORCA/C 2.1.0 to
|
||||||
patches from community members (Stephen Heumann and Kelvin Sherlock),
|
ORCA/C 2.2.0. You must have an existing copy of ORCA/C 2.1.0 in order
|
||||||
which add new features and fix bugs. For details on these changes,
|
to use this update. If you do not already have a copy, you can get it
|
||||||
see the cc.notes file in the Release.Notes directory.
|
as part of Opus ][: The Software, a collection of Byte Works software
|
||||||
|
which is sold by Juiced.GS:
|
||||||
|
https://juiced.gs/store/opus-ii-software/
|
||||||
|
|
||||||
This package is designed to be applied as an update to an existing
|
This update must be applied to an existing ORCA installation containing
|
||||||
ORCA installation containing ORCA/C 2.1.0 or later (including the one
|
ORCA/C 2.1.0 or an ORCA/C 2.2.0 beta (including the one provided on
|
||||||
provided on Opus ][: The Software). To apply the update, simply copy
|
Opus ][: The Software). To apply the update, you just need to copy
|
||||||
the files from this distribution into the corresponding locations in
|
the files from this distribution into the corresponding locations in
|
||||||
your ORCA installation, replacing any older versions. (One easy way
|
your ORCA installation, replacing any older versions.
|
||||||
to do this is to extract the archive containing this update directly
|
|
||||||
on top of your ORCA installation, overwriting all modified files.)
|
If you received this update as a SHK file, you can simply extract the
|
||||||
|
the files from it directly on top of your ORCA installation.
|
||||||
|
|
||||||
|
If you received this update as a disk image, you can apply the update
|
||||||
|
by copying the files into place using the Finder, or by running the
|
||||||
|
following command within the root directory of your ORCA installation
|
||||||
|
using the text-based ORCA shell:
|
||||||
|
|
||||||
|
COPY -C :ORCAC.220:=
|
||||||
|
|
||||||
In addition to the ORCA shell environment, this update can also be
|
In addition to the ORCA shell environment, this update can also be
|
||||||
used under other environments that are compatible with ORCA/C, such as
|
used under other environments that are compatible with ORCA/C, such as
|
||||||
|
@ -18,20 +28,3 @@ into the directory containing files from a standard ORCA installation
|
||||||
(normally /lang/orca for GNO). An updated version of ORCALib suitable
|
(normally /lang/orca for GNO). An updated version of ORCALib suitable
|
||||||
for use under GNO is available as a separate download at:
|
for use under GNO is available as a separate download at:
|
||||||
https://github.com/byteworksinc/ORCALib/releases
|
https://github.com/byteworksinc/ORCALib/releases
|
||||||
|
|
||||||
If you have any questions, or if you want to get involved in ORCA/C
|
|
||||||
development, please get in touch. The ORCA/C development project is
|
|
||||||
hosted on GitHub, and bug reports or patches can be submitted there:
|
|
||||||
https://github.com/byteworksinc/ORCA-C
|
|
||||||
|
|
||||||
Thanks to:
|
|
||||||
* Mike Westerfield, for writing ORCA/C, releasing the source code,
|
|
||||||
and permitting it to be updated by the community.
|
|
||||||
* Kelvin Sherlock, for providing several patches and bug reports, and
|
|
||||||
for writing several useful tools for modern Apple II development.
|
|
||||||
* Soenke Behrens, for compiling a list of ORCA/C bug reports and test
|
|
||||||
cases, which has helped me to identify and fix a number of bugs.
|
|
||||||
* The developers of Csmith (http://embed.cs.utah.edu/csmith/), an
|
|
||||||
automated compiler testing tool that has helped to find several bugs.
|
|
||||||
|
|
||||||
--Stephen Heumann (stephenheumann@gmail.com)
|
|
||||||
|
|
4
CC.rez
4
CC.rez
|
@ -5,8 +5,8 @@ resource rVersion(1) {
|
||||||
2, /* Major revision */
|
2, /* Major revision */
|
||||||
2, /* Minor revision */
|
2, /* Minor revision */
|
||||||
0, /* Bug version */
|
0, /* Bug version */
|
||||||
beta, /* Release stage */
|
release, /* Release stage */
|
||||||
8, /* Non-final release # */
|
0, /* Non-final release # */
|
||||||
},
|
},
|
||||||
verUS, /* Region code */
|
verUS, /* Region code */
|
||||||
"ORCA/C", /* Short version number */
|
"ORCA/C", /* Short version number */
|
||||||
|
|
|
@ -112,7 +112,7 @@ const
|
||||||
flag_t = $00001000; {treat all errors as terminal?}
|
flag_t = $00001000; {treat all errors as terminal?}
|
||||||
flag_w = $00000200; {wait when an error is found?}
|
flag_w = $00000200; {wait when an error is found?}
|
||||||
|
|
||||||
versionStr = '2.2.0 B8 dev'; {compiler version}
|
versionStr = '2.2.0'; {compiler version}
|
||||||
|
|
||||||
type
|
type
|
||||||
{Misc.}
|
{Misc.}
|
||||||
|
|
BIN
Manual.docx
BIN
Manual.docx
Binary file not shown.
12
Tech.Support
Normal file
12
Tech.Support
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
As with all Byte Works programs, if you have questions or are
|
||||||
|
experiencing problems, we want to hear from you. You can contact us
|
||||||
|
through the channels below.
|
||||||
|
|
||||||
|
E-mail: support@byteworks.us
|
||||||
|
|
||||||
|
Web Site: https://www.byteworks.us
|
||||||
|
|
||||||
|
ORCA/C is now maintained on GitHub by community members. Bug reports
|
||||||
|
or support requests can be submitted on its issues page:
|
||||||
|
|
||||||
|
https://github.com/byteworksinc/ORCA-C/issues
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
int main (void)
|
int main (void)
|
||||||
{
|
{
|
||||||
char sstr [] = " 23 -3.8E20 - e- +25e- 00002.00008e000049.9 ";
|
char sstr [] = " 23 -3.8E20 -0 0e-9 +25e-0 00002.00008e000049.9 ";
|
||||||
float f1, f2, f3, f4;
|
float f1, f2, f3, f4;
|
||||||
double d1, d2, d3;
|
double d1, d2, d3;
|
||||||
int i;
|
int i;
|
||||||
|
@ -15,6 +15,7 @@ int main (void)
|
||||||
d1 = d2 = d3 = 1.0;
|
d1 = d2 = d3 = 1.0;
|
||||||
i = sscanf (&sstr[0], "%*07f %e %E %lg %30lG %17lf%e", &f2, &f3, &d1, &d2,
|
i = sscanf (&sstr[0], "%*07f %e %E %lg %30lG %17lf%e", &f2, &f3, &d1, &d2,
|
||||||
&d3, &f4);
|
&d3, &f4);
|
||||||
|
printf("%d\n", i);
|
||||||
if (i != 6)
|
if (i != 6)
|
||||||
goto Fail;
|
goto Fail;
|
||||||
if ((fabs(f1 - 1.0) > 0.00001) ||
|
if ((fabs(f1 - 1.0) > 0.00001) ||
|
||||||
|
|
14
cc.notes
14
cc.notes
|
@ -1,10 +1,12 @@
|
||||||
ORCA/C 2.2.0 B8
|
ORCA/C 2.2.0
|
||||||
Copyright 1997, Byte Works Inc.
|
Copyright 1997, Byte Works Inc.
|
||||||
Updated by Stephen Heumann and Kelvin Sherlock, 2017-2023
|
Updated by Stephen Heumann and Kelvin Sherlock, 2017-2023
|
||||||
|
|
||||||
|
These release notes document the changes between ORCA/C 2.0 and ORCA/C 2.2.0. They are intended mainly for users familiar with earlier versions of ORCA/C. New users should simply refer to the ORCA/C 2.2 manual, which has been fully updated to document the new features and other changes in ORCA/C 2.2.0.
|
||||||
|
|
||||||
-- Change List --------------------------------------------------------------
|
-- Change List --------------------------------------------------------------
|
||||||
|
|
||||||
2.2.0 B8 1. Bugs squashed. See bug notes, below.
|
2.2.0 1. Bugs squashed. See bug notes, below.
|
||||||
|
|
||||||
2. New language features added (mainly features from C99 and C11).
|
2. New language features added (mainly features from C99 and C11).
|
||||||
See "New Language Features," below.
|
See "New Language Features," below.
|
||||||
|
@ -84,7 +86,9 @@ Updated by Stephen Heumann and Kelvin Sherlock, 2017-2023
|
||||||
|
|
||||||
2.0.1 1. Bugs squashed. See bug notes, below.
|
2.0.1 1. Bugs squashed. See bug notes, below.
|
||||||
|
|
||||||
-- Manual Errata ------------------------------------------------------------
|
-- Manual Errata in the ORCA/C 2.0 Manual -----------------------------------
|
||||||
|
|
||||||
|
(These errata have been corrected in the ORCA/C 2.2 manual.)
|
||||||
|
|
||||||
p. 40
|
p. 40
|
||||||
|
|
||||||
|
@ -199,7 +203,7 @@ If precompiled headers are being used, #pragma expand will not print the tokens
|
||||||
|
|
||||||
p. 258
|
p. 258
|
||||||
|
|
||||||
The slot parameter to #pragma float is now used to set the FPE slot. See "Changes to #pragma float," below.
|
The slot parameter to #pragma float is now optional, and if present is used to set the FPE slot. See "Changes to #pragma float," below.
|
||||||
|
|
||||||
The #pragma ignore directive supports several new bits.
|
The #pragma ignore directive supports several new bits.
|
||||||
|
|
||||||
|
@ -2191,7 +2195,7 @@ int foo(int[42]);
|
||||||
|
|
||||||
241. When using the large memory model, functions registered with atexit() (or at_quick_exit(), in ORCA/C 2.2 betas) might be called with the data bank set incorrectly, potentially causing memory corruption or other incorrect behavior.
|
241. When using the large memory model, functions registered with atexit() (or at_quick_exit(), in ORCA/C 2.2 betas) might be called with the data bank set incorrectly, potentially causing memory corruption or other incorrect behavior.
|
||||||
|
|
||||||
(Bug fixes below here were added in ORCA/C 2.2.0 B8.)
|
(Bug fixes below here were added in the final release of ORCA/C 2.2.0.)
|
||||||
|
|
||||||
242. In the fprintf() family of functions, the '0' flag should be ignored if '-' was also specified.
|
242. In the fprintf() family of functions, the '0' flag should be ignored if '-' was also specified.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user