components. Changed the handling of local function variables so debugging output is now generated. Partially implemented the FORALL statement. Creation of a driver executable 'g95' analogous to g77. Various tweaks to the gcc build system (config-lang.in/Makefile.in). Implementation of the SUM intrinsic (with runtime library).
Procedure actual and dummy arguments now work. Corrected the sign intrinsic to give the correct behavior for negative zero. Implemented IO of arrays/array sections. Intrinsic functions are now identified using the G95_ISYM_* enumeration, rather than the previous mess of strcmp calls. A few tweaks to the string handling code. Implemented the string length intrinsics.
Arrays of character types not partialy working. Probably fixed a few other recent breakages in the array code. Update to libgforio-0.0.6 Removed reference to gforio-flags.h (no longer needed) Implemented a few more intrinsic functions. Implemented runtime bound and shape checking for array assignments. Improved array dependance resolution. a(:) = a(:) + 1 now scalarizes without the use of a temporary. b(:,1:4) = b(:,4:1:-1) only requires a rank one temporary.
g95_conv_variable). Consecutive constant elements in an array constructor are now merged into a single static constructor in the backend. Reworking of the scalarized and array referencing (g95_array_index_ref) to move some of the array index calculations out of the inner scalarization loops. Implemented ubound and lbound intrinsics. Implemented mathematical intrinsics (sin, cos, etc.) Implemented more type conversion functions. Real constants are now converted with arbitary precision.
Implemented functions with array return values. Started using create_tmp_var rather than g95_create_tmp_var. This should allow more useful names to be used for compiler generated variables. Removed some dead descriptorsave code. Add facility for global constructors. These aren't used yet, but may be in the future (for initialization of module variables). Care must be taken as these may be executed before the runtime library is initialized.
Implemented Non-unit stride array sections. Implemented character strings. Wrote some code to interface to the IO library. The interface for this hasn't been fixed yet, so expect it to change. This code is based on gforio-0.0.4. Hopefully fixed bug which caused f951 to segfault. Implemented type conversion intrinsic operations (__convert_*).
Arrays now work, including a scalarizer. A few small statement translation changes (DO loops and STOP). Removed test.f90 and testprog.c as these shouldn't have been added in the first place. Added -fmax-stack-var-size=<n> to set the maximum size of array that should be placed on the stack. This defaults to -1(unlimited). Arrays who's size is not known at compile time are always placed on the heap.