Silverfrost Logo About Us | Contact Us
 

See also: Plato Revision History

Version 8.20

New Features:

  • 64 bit FTN95 now stores large static arrays in the same way as automatic arrays.
  • 64 bit FTN95 now implements the /PROFILE option. This produces an output file that lists the number of times each statement was executed.
  • SLINK64 now accepts system .ocx and .drv files as well as .dll files.
  • SLINK64 now has a rlo command. This is for DLLs and delays the binding until the first call of a routine in the DLL.
  • SLINK now reports a clear error report when supplied with 64 bit object code.
  • The FTN95 option /SIZE32 has been renamed /SIZE_ISO and /ISO now implies /SIZE_ISO.
  • A new FTN95 option /ECHO_OPTIONS has been added.
  • The standard intrinsics SIZE, UBOUND and LBOUND now have an optional KIND argument.
  • A new routine WINSTYLE@ has been added to ClearWin+.
  • A new format code %wi has be added to ClearWin+. This allows you to interactively design a window in order to fix the exact position and size of each control.
  • A new format code %mb has been added to ClearWin+. This "multi-button" toolbar provides an alterative to %tb and %ib that is simpler to set up and has more functionality.
  • A new format code %cm has been added. It provides a popup menu for the next control in the winio@ list and is constructed in exactly the same way as %pm
  • Two new routines GETTEXTSIZE@ and GETFONTSIZE@ have been added to ClearWin+.
  • The 64 bit FTN95 runtime checking (/CHECK) now traps recursive function calls for functions that have not been given the RECURSIVE attribute.
  • A new routine SET_MAXIMUM_IO_BUFFER_SIZE@ has been added to the library
  • The native %pl has been improved.

Outline summary of bugs that have been fixed:

  • Microsoft changed some of the .NET debugger interfaces in Visual Studio 2013 that meant it was impossible to see COMMON blocks. This has been 'worked around' in dbk_link.
  • Various issues relating to using INTEGER*2 as the default integer kind have been fixed.
  • Some false /CHECK error reports that occurred when passing functions as arguments have been fixed.
  • The logical IF statement was not working for 64 bit code and LOGICAL*2 variables.
  • A regression relating to "integer,pointer::j=>NULL()" in 64 bit code has been fixed.
  • A problem with INTEGER*8 variables in /64 common blocks has been fixed.
  • A failure with list-directed input of logical data has been fixed.
  • A failure with the /64 addressing of TYPE members of a TYPE has been fixed.
  • READFA@ was not processing end-of-line characters correctly for 64 bits.
  • SLINK64 was failing with insufficient memory when building very large projects.
  • The format descriptor F0.0 was not giving the correct results.
  • SDBG64 has had various fixes and enhancements

Version 8.10

New Features:

  • The FTN95 option /CHECK is now available in 64-bit mode.
  • The FTN95 option /OPTIMISE is now available in 64-bit mode but is still under development.
  • 64-bit /CHECK includes a compile time check on winio@ arguments - that they have the correct type. Initially this feature is only available with /64 /CHECK.
  • SET_TRAP@, TRAP_EXCEPTION@, LABEL@ and JUMP@ are now available in 64-bit mode.
  • A new FTN95 option /BINARY_FOLDER has been added. This allows the user to specify the path for the object code (for example .obj or .dbk file). It provides an alternative to specifying the full path via /BINARY.
  • ClearWin+: A native form of the winio@ graph control %pl is now available. See cwplus.enh for details.
  • ClearWin+: Functions like COPY_TO_CLIPBOARD@ now have 64 bit equivalents COPY_TO_CLIPBOARD64@. See cwplus.enh for details.
  • ClearWin+: The subroutine GET_FILTERED_FILE@ and the function GET_MULTIPLE_FILENAMES@ have been updated. See cwplus.enh for details
  • ClearWin+: A tilde modifier can now be used with %ga in which case the list of "state controls" is replaced by a single array.
  • ClearWin+: A tilde modifier can now be used with %ps in which case the list of "sheet handles" is replaced by a single array.
  • ClearWin+: A new routine PROGRESS_BAR@ has been added that can be called before each call to DISPLAY_DIB_BLOCK@
  • ClearWin+: A window with a %LW control variable CTRL has CTRL initially set to -1. Setting CTRL to zero or a positive value causes the window to close when WINDOW_UPDATE@(CTRL) is called. A new alternative is to set CTRL to -2 before a call to WINDOW_UPDATE@(CTRL) and this causes the window to close after a short delay. This can be used to seamlessly modify a window by closing the window and then recreating it with similar features and the same position and size.
  • ClearWin+: CLEARWIN_INFO@("EXTENDED_ERROR") has been added. It provides the result of a call to the Windows API function CommDlgExtendedError().
  • A new function called ProcessMemoryInfo@ has been added to the library. This provides easy access to the Windows API function GetProcessMemoryInfo.
  • Microsoft Visual Studio 2015 plug-in.

Outline summary of bugs that have been fixed:

  • SDBG64 has had many issues fixed and features added
  • A regression that limited a 64-bit ALLOCATE statement to 2GB size blocks has been fixed
  • INTEGER*2 and INTEGER*1 division were failing in 64-bit mode.
  • display_dib_block@ and get_dib_block@ were failing when used with very large arrays.
  • The standard intrinsic GET_COMMAND_ARGUMENT was not giving a correct status in 32 bit mode and could omit the final character in 64 bit mode.
  • Problems calling DLLs that reside above 4GB in 64-bit mode have been fixed

Version 8.05

New Features:

  • FTN95 provides some Fortran 2003/2008 features that required the command line option /F2K. These features are now provided by default. In order to restrict the code to Fortran 95 use /-F2K.
  • CODE/EDOC is now available in 64-bit mode
  • The following Fortran 2008 standard intrinsics are now available: ERF,ERFC,ERFC_SCALED,GAMMA,LOG_GAMMA,BESSEL_J0,BESSEL_J1,BESSEL_Y0,BESSEL_Y1,BESSEL_JN,BESSEL_YN. See for example http://fortranwiki.org/fortran/show/bessel_j0.
  • _WIN32 and _WIN64 are prefined for use in conditional compilation CIF. For example, the CIF(_WIN64) block of code will be compiled when the options /64 /fpp are applied on the FTN95 command line. This is particularly useful for CODE/EDOC blocks that require conditional compilation when implemented for both 32 and 64 bit code. In other contexts, an equivalent run-time condition is "IF(KIND(1_7) == 4)THEN".
  • The following undocumented Win32 routines have now been ported to 64 bits: FPOSLONG@, RFPOSLONG@ and FPOS_EOFLONG@. These are similar to FPOS@, RFPOS@ and FPOS_EOF@ but take INTEGER*8 position arguments. Note that other arguments are still INTEGER*2.
  • ClearWin+ can now be used to generate SVG files by calling OPEN_SVG@ before drawing the graphics (this is analogous to generating printer output). SVG is a vector graphics format.

Outline summary of bugs that have been fixed:

  • Compile time array bounds check failure has been elevated from WARNING to ERROR when using /CHECK or /BOUNDS_CHECK
  • The SUM intrinsic with a scalar MASK was giving incorrect results
  • The UBOUND intrinsic, when used as an array index was being treated as a vector subscript
  • A substring of an element of a character array was causing a backend failure. (64-bit only)
  • A regression caused the compiler to crash when raising a complex value to the power 0.5. This has been fixed
  • GET_DIB_SIZE@ when used with USE_GDIPLUS_IMAGE_FILES@ was giving a SUCCESS report when attempting to access a non-existent file.
  • Error number 612 was being appied out of context
  • INTENT(OUT) arguments with TYPE initialisation were causing runtime failures when OPTIONAL and not present
  • The WHERE construct was sometimes failing when the body contained an assignment to a temporary array
  • A GO TO statement within an IF construct was giving incorrect results with /OPT
  • A local COMMON block that duplicates a USEd MODULE COMMON block now produces a compile time error report
  • NAMELIST was failing when used in an internal (CONTAINS) subprogram
  • In a certain context a USEd MODULE user TYPE was falsely reported as not being defined
  • A stack leak was causing WRITE statements involving multiple calls to TRIM to fail with /FULL_UNDEF
  • Personal Edition did not allow /64 compile time switch
  • ClearWin+: %ac[Shift+Tab] was not responding as expected.
  • ClearWin+: A standard callback SETF has been added. This is equivalent to the standard callback SET but takes double precision values
  • ClearWin+: The property sheet control %ps was not working correctly when [hot_track] or [ms_style] was used together with a callback function
  • ClearWin+: %ss and browse_for_folder@ were not working for 64-bit applications.

Version 8.00

New Features:

  • FTN95 can now generate 64 bit executables and DLLs. For details see the 64 bit release notes.
  • The display resulting from the FTN95 command line option /CONFIG has been simplified and now only edits the global FTN95 configuration file. Use a new option /CFG to edit the local FTN95 configuration file
  • ClearWin+: A new function called GlobalMemoryStatus@ has been added to the library. This provides easy access to the Windows API function GlobalMemoryStatusEx.
  • ClearWin+ now makes use of the "DPI awareness" features first available with Windows 8.1. This means that, where possible, ClearWin+ will take advantage of the Windows API features designed to handle high DPI display settings which otherwise can lead to clipped text and blurry images.

Version 7.20

New Features:

  • A new KIND value has been introduced for integers. INTEGER(KIND=7) has the size of an address which depends on the type of the executable (32 bit or 64 bit). The same kind value is to be used when /ALT_KINDS is applied
  • ClearWin+: GET_DIB_SIZE@, GET_DIB_BLOCK@ and IMPORT_IMAGE@ have been extended in order to provide access to a wider range of image files via the Microsoft GDI+ library.
  • ClearWin+: A tilde modifier (~) can now be used with %wp with the result that plain text placed on top of the wallpaper will be transparent. In other words the text will have the wallpaper as background.
  • ClearWin+: The previously undocumented function browse_for_folder1@ can be used to open a dialog box with the option to create a new folder.

Outline summary of bugs that have been fixed:

  • FTN95 was calling the wrong library function when the standard intrinsic EXP was used with an extended precision (KIND=3) argument.
  • The PACK and UNPACK standard intrinsics where not working correctly for INTEGER types other than the default.
  • MAXLOC and MINLOC with DIM arguments were not working correctly in a number of contexts.
  • The resource compiler SRC was not handling the VERSION_INFO resource correctly.
  • INTENT(OUT) arguments with TYPE initialisation were not being reset on entry.
  • FTN95 was not reporting an error when the subscript of a subscript-triple was an array.
  • FTN95 was treating an assumed shape INTENT(INOUT) array as INTENT(IN) in certain contexts.
  • FTN95 with /CHECK was not reporting a run time error when assigning a value to a dummy argument where the actual argument was a simple parenthesis e.g. call zzz((A)).
  • An ENTRY routine with no arguments and defined within a MODULE SUBROUTINE was not accessible.
  • /NO_TRUNCATE was giving a false error report for comments beginning with ! or &.
  • A FORMAT statement at the beginning of subroutine with local (CONTAINS) subprograms was falsely reported as missing.
  • An error condition was not being reported when an expression was used as the value of an INTENT(OUT) argument.
  • OPTIONS(NOOPTIMISE) was behaving like OPTIONS(OPTIMISE) whilst OPTIONS(OPTIMISE) with /UNDEF was causing an internal compiler failure.
  • Empty character format and list directed write statement output a line with a single space rather than an empty line.
  • The REC specifier was allowed for READ and WRITE statements on a unit opened for sequential access.
  • Writes starting with '1' on units opened with FORM='PRINTER' didn't output a form feed.
  • A certain PARAMETER initialisation was failing with /ALT_KINDS.
  • A star-sized array argument in an internal function was giving a false run-time bounds check error.
  • The SHAPE intrinsic is now available within a PARAMETER initialisation.
  • Arrays declared with the PARAMETER attribute where not protected from run-time changes.
  • ClearWin+: %ac[Shift+Ins] was over-riding the typing of an underscore character in an edit box. This has been fixed.
  • ClearWin+: %dr (dropped files) has been tidied up so that the clearwin_string@ data is correctly reset and a crash is avoided.
  • ClearWin+: Various reported problems when using UTF8 characters have been resolved.
  • ClearWin+: Previously undocumented functions set_integer_limits@ and set_float_limits@ have been improved. These routines correspond to %il and %fl respectively and allow changes to be made at run time.
  • ClearWin+: The routine set_control_back_colour@ was not working for combinations like %dd%rd. This has been fixed.

Version 7.10

New Features:

  • Microsoft Visual Studio 2013 plugin
  • Anti-aliasing and opacity effects can now be included in ClearWin+ %gr line drawing (see ClearWin+ enhancements file for details).
  • A new web browser control %wb has been added to ClearWin+, providing full access to the Internet Explorer engine.
  • The IMPORT statement has been added as part of the Fortran 2003 standard.
  • ClearWin+: %ob now takes the options [rounded] and [thin_margin]
  • ClearWin+: clearwin_info@("TOOLTIP_HWND") now returns the HWND for Microsoft style tooltips (but not infotips)
  • ClearWin+: An new subroutine CLEARWIN_OPTION@ has been added in order to gather together various ClearWin+ options into one routine.
  • ClearWin+: %ch can now take the options [vscrollbar] and/or [hscrollbar] in order to display a scrolling window containing controls.
  • ClearWin+: A new format code %id has been added in order to specify the button number (ID) of the next %bt, %tt or %bb button.

Outline summary of bugs that have been fixed:

  • The /ISO command line option previously did not generate an error report when a TYPE or PARAMETER within an INTERFACE was inherited from the host.
  • Using /UNDEF with certain CHARACTER variable members of a user TYPE was causing an access violation.
  • The intrinsic function ISHFT was producing incorrect results for INTEGER*2 arguments.
  • Some duplicated double precision value arguments where not being passed correctly.
  • ALLOCATE was using the wrong address for the STAT variable when it was presented as an array element.
  • UBOUND was giving an incorrect result for zero-sized array sections.
  • /CHECK was giving a false run time error when a module function was passed as an argument.
  • TYPE initialisation in certain multiple MODULEs caused the compiler to crash.
  • A SEQUENCEd TYPE was giving a type mis-match error in a user ASSIGNMENT procedure.
  • Win32 MOD intrinsic was failing when the first argument was LOC(a).
  • /DUMP when used with /NO_OFFSETS was not dumping the variables in the best place.
  • /CHECK was giving a false run time error for functions returning an array.
  • An incomplete TYPE definition was not being reported as an error until it was used.
  • /CHECK was giving a false run time error for array arguments with the TARGET attribute.
  • INTENT(OUT) was not working correctly for array arguments with default TYPE initialisation.
  • "USE mod ONLY: aa=>bb" was giving incorrect results when aa was also declared in mod.
  • ClearWin+: %th[ms_style] did not allow multiline tooltips. This has been fixed.
  • ClearWin+: A certain user callback associated with %ls was found to raise an underflow exception under Windows 7. This has been fixed.

Version 7.00

New Features:

  • ClearWin+ is now available in the form of a 64 bit DLL called clearwin64.dll for use with third party 64 bit compilers. Routines in this library that previously ended with the @ symbol now end with $. In order to allow parallel development, FTN95 has been extended so that routines such as winio@ can now end in $ as an alternative to @. Also new standard modules are provided so that all ClearWin+ library routines for FTN95 can take this alternative form. For further information, search for "64 bit" in ftn95.chm.
  • ClearWin+ now accepts UTF-8 encoded character strings.
  • EXPORT_IMAGE@ and IMPORT_IMAGE@ now accept .PNG files and resources.
  • Four new library routines (START_THREAD@, WAIT_FOR_THREAD@, LOCK@ and UNLOCK@) have been added in order to initiate and manage Win32 threads.
  • The default ClearWin+ colour mode has been changed from "VGA colours" to "RGB colours".
  • ClearWin+: A new format code %em has been introduced to allow you to put icons in the left hand column of menus.
  • ClearWin+: A new format code %nw has been introduced. %nw takes one argument and this is the handle (%hw) of a window that has already been created
  • %ac[Ctrl+1] etc. added to list of accelerator keys allowed
  • The options [colour=] and [color=] have been added to %gr.
  • %th[balloon] now provides a tooltip in the form of a balloon.
  • %rd now takes the option [radix=n] where n is an integer in the range 2 to 36.
  • %ob now takes the option [rounded] to provide rounded corners
  • clearwin_info@("TOOLTIP_HWND") now returns the HWND for Microsoft style tooltips
  • Visual Studio 2012 plugin

Outline summary of bugs that have been fixed:

  • Local use of a name that duplicates the name of an intrinsic (e.g. SUM) was confusing the compiler.
  • FTN95 was allowing the intrinsic function TRIM to be elemental.
  • Regression at FTN95 version 6.0: SIZE(x, dim) was failing for assumed-size arrays.
  • FORALL is now allowed to use the same index as an outer DO contsruct.
  • /CHECK was giving an access violation at runtime when the FORALL index was passed to it as an argument.
  • An exclamation mark in column 73 was giving a false line truncation warning.
  • A false runtimne error was being issued when using /FULL_UNDEF for a certain generic routine.
  • MAXVAL,MINVAL,MAXLOC and MINLOC intrinsics did not report a compilation error when used with assumed-size arrays.
  • USE ONLY was not hiding a MODULE subroutine.
  • DRAW_FILLED_POLYGON@ was failing when used repeatedly with a very large number of different colours.
  • ClearWin+: %th[ms_style] did not allow multiline tooltips.

Version 6.35

New Features:

  • A new function GET_WOW_VER@ has been added to be used in place of GET_OS_VER@ in compatibility mode.
  • A new FTN95 command line option /DOLLAR_MOD has be added so that certain module names ending with a dollar sign will be treated as system modules.
  • FTN95 is now compatible with .NET 4.5 running on Windows 8. Note that all FTN95 generated .NET code must be compiled and linked against version 6.35 or above. Architectural changes in Windows 8 prevent .NET code produced by previous versions of FTN95 from functioning. This includes ftn95lib. It is therefore vital that all Fortran source code is recompiled and linked with version 6.35 and be distributed with an ftn95lib of the same version.

Outline summary of bugs that have been fixed:

  • An FTN95 (/OPT) optimiser bug for Windows 8 and .NET version 4.5 has been fixed.
  • An internal subroutine COMMON variable was conflicting with a host variable with the same name.
  • The FRACTION intrinsic produces invalid IL on .NET version 4.5 has been fixed
  • A regression in the FTN95 .NET syntax of the form below has been fixed:
        c = "System.Drawing.Color"%"Red"[/code]
  • An issue setting breakpoints in the Win32 debugger plug-in inside Visual Studio has been fixed.
  • On some x64 PCs FTN95 .NET assemblies would start up in 64-bit mode resulting in an immediate exception. This has been fixed.
  • The command line option /MESSAGE_SET_TO_ERROR was not working. This has been fixed.
  • Clearwin+: %ac[INS] regression fixed. Also %ac[Ctrl+H] and %ac[Ctrl+I] now working
  • Clearwin+: Added [mouse_click] option to %bv to allow processing of a single left mouse click. The corresponding CALLBACK_REASON is "MOUSE_CLICK".
  • Clearwin+: %bv extended to allow more icon colours. The default is now 256 colours whilst the options [4bits] and [24bits] provide alternatives.

Dropped functionality:

  • FTN95 will no longer compile and link against .NET 1.1. FTN95 now defaults to .NET 2.0

Version 6.30

New Features:

  • *.cs files can now be included in a DBK_LINK2/4 command line in order to transmit assembly attributes to the exe/dll.
  • /CHECK argument checking now extended to module subprograms.
  • /LINK with /DEBUG now activates /3GB in SLINK.
  • ASSEMBLEY_INTERFACE now allows ARRAY="REF" (default ARRAY="NET") to allow star-sized arrays to be passed only as a reference to the first element of each array in the argument list.
  • Clearwin+: Two new functions have been added to the library as an alternative or addition to %gr[user_surface]. These are CREATE_USER_SURFACE@ and SELECT_USER_SURFACE@. The associated %gr is identified by its Windows handle (see %lc) and the programmer must store the associated device context and DIB pointer.
           CALL CREATE_USER_SURFACE@(width, height, hdc, ptr) !(inputs width and height and returns hdc and ptr - all INTEGERs)
           ia = SELECT_USER_SURFACE@(hwnd, hdc, ptr)          !(inputs all arguments and returns non-zero value on success)
    
  • Clearwin+: New standard callback HELP_LOOKUP added. This takes two character strings. The first is the full path of a .CHM help file. The second is the keyword that identifies the topic that is to be displayed. This keyword must be included in the .HHK file that forms part of a Microsoft project to compile the .CHM file. Note: HELP_CONTENTS can already be used with .CHM files.

Outline summary of bugs that have been fixed:

  • TYPE definition failed to propagate in a particular subprogram that was internal to the main program.
  • RECOVER_DIB_BLOCK@ had 2048 horizontal pixel limit.
  • A particular ALLOCATE statement reported and incorrect array rank.
  • PAD was not working in the RESHAPE intrinsic except for integers.
  • VAX initialisation statements failed when the list contained an array that was not the first item in the list.
  • Assignment via a pointer failed when pointing to an element of an array of user-defined type which, in turn, had array members.
  • Assignment to NULL using =>NULL() rather than NULLIFY was failing under .NET.
  • MAXLOC and MINLOC intrinsics could not be called directly in order to set an array index.
  • For arrays of rank one, MAXLOC and MINLOC now only return a scalar when DIM=1 is an explicit argument.
  • SET_SUFFIX@ and SET_SUFFIX1@ were only working correctly for extensions of length three.
  • Logical test for element by element character equality was failing for scalar against array constructor.
  • Clearwin+ Improvement: %`rs can produce unwelcome additional height with XP theme.
    Existing option [no_additional_depth] used to restore old (non-XP) height.
  • Clearwin+: Documentation has been added for existing functions import_gif@ and export_gif@. These are similar to import_bmp@ and export_bmp@. Interfaces are now included in standard header files.
  • Clearwin+ Improvement: import_image@ has been extended to handle GIF files and resources.

Version 6.20

New Features:

  • ENUM type included in /f2k features.
  • New function count_files@ added to FTN95 library.
  • New features added to Plato including image and HTML editing.

Outline summary of bugs that have been fixed:

  • Stack pointer was corrupted in call to a matrix function.
  • Virtual memory allocation failure under 64 bit Windows 7.
  • Wild card failure with "ftn95 dir\*.f95".
  • Another buffer problem when using a wild card on the command line.
  • Mixed single and double expression for certain complex values gave incorrect results.
  • a certain character function failed on assignment.
  • a check caused an access violation when a host variable was passed to an internal subroutine.
  • /opt failed in a certain cos with sin expression.
  • Locked register occurred with /checkmate when using ALLOCATE and ANY.
  • False error report "Non-conformant array shapes.." with a certain array of user-defined TYPE.
  • Comment embedded directive FTN95$FREE was not working when placed before a LIBRARY directive.
  • User-defined assignment operator caused /check to give a false runtime error report
  • Redundant USE statements or 'wrong' order caused loss of module data for TYPE elements
  • Setting breakpoints in DLLs in Win32 Visual Studio debugging sessions
  • Debug data tip display in Win32 Visual Studio 2010 debugging sessions
  • Expansion of array data tips in Win32 Visual Studio 2010 debugging sessions and setting their values
  • Clearwin+: %ht buffer problem when screen resolution is very high
  • Clearwin+: %ht problem - jpeg images did not display correctly on a wide screen
  • Clearwin+: clearwin_info@("PRINTER_COPIES") was not working
  • Clearwin+: %dd%rd gave double call to callback when grave is not used
  • Clearwin+: %lv with vertical scroll and button below was not working correctly. Button click was sometimes failing to respond
  • Clearwin+: clearwin_info@('FILTER_ITEM_SELECTED') was not working for get_multiple_file_names@

Version 6.10

Outline summary of bugs that have been fixed:

  • Compiler regression at 6.00: character variable comparision failed when using /full_undef (i.e. /checkmate)
  • Long path names could not be used with wild card command line "FTN95 *.f90" etc.
  • Pure functions as procedure arguments were constrained to be INTENT(IN) but the standard does not require this.
  • FILL@ gave locked register failure with /opt.
  • Compiler failed to create runtime code for array assignment with INTEGER*8 array index and the same index on the RHS.
  • CHECK mode gave false runtime error for INTEGER*2 do-loop index (changed externally) when index was used in a CONTAINed subroutine.
  • SDBG: In some circumstances Windows loads DLLs with Unicode details instead of ANSI. SDBG detects this and acts accordingly
  • ClearWin+: Two problems with the %eb horizontal scrollbar have been fixed
  • ClearWin+: Regression fix: This was caused by spurious mouse_hover event (see 301) in %ib and affected use of SDBG in particular
  • ClearWin+: %lv was not working under Windows 7 when using the XP theme/manifest
  • ClearWin+: %ps was failing in a special case

Version 6.00

New Features:

  • Support for Visual Studio 2010
  • Support for .NET 4.0
  • A new compiler option /NO_TRUNCATE has been added.
  • ClearWin+: A new option [mouse_hover] has been added to %ib
  • ClearWin+: The standard callback COPY has now been implemented for %cw
  • ClearWin+: The local font given by %fn is now applied to %pb
  • ClearWin+: New library routines have been added to make it easier to use %eb[user_colours]
  • ClearWin+: Check boxes in %lv can now be set and reset under program control
  • ClearWin+: Mouse wheel messages are now available with %gr[full_mouse_input]
  • ClearWin+: GET_MULTIPLE_FILENAMES@ has been made available

Outline summary of bugs that have been fixed:

  • A specific test for character equality was failing with /FULL_UNDEF
  • There was a failure to flag a compilation error when a DO loop end control value is not a scalar.
  • The logical test in a WHERE statement was not failing as it should when there is a rank miss-match.
  • There was a false comment about a derived type not being used.
  • There was a failure to flag a compilation error when a certain array expression is a assigned to a scalar.
  • The FTN95 intrinsic LS could not be overloaded within a user MODULE.
  • A certain usage of ALLOCATE failed when applying /CHECK.
  • A certain function call in which an array section was passed did not return a value.
  • There was a false warning about "use without an initial value" for an array section in a READ statement.
  • There was a false runtime error when an array section was passed as an argument and the array has varying size.
  • An array assignment involving a member of a member of a user type failed to compile.
  • There was a false warning about an array member of a user type being redefined.
  • There was a Missing error report when SIZE is called for an assumed-size array.
  • The TRANSFER intrinsic was failing when passing a character variable and using /FULL_UNDEF.
  • FILL@ gave an internal compiler failure when only two arguments are supplied.
  • A certain piece of code using a vector subscript and INTEGER*2 was failing.
  • FILE8@ returned the file size modulo 4GB
  • ClearWin+: Two problems with the %eb horizontal scrollbar have been fixed

Version 5.50

New Features:

  • A new command line option /RAGGED_ARRAYS has been added for use with /CHECK and /CHECKMATE. This option prevents a runtime failure when a non-rectangular array is passed to a subprogram as is the case with some BLAS/LAPACK routines.
  • An optional new memory model in salflibc.dll has now been made the default. The environment variable FTN95_NEW_MEMORY can be set to FALSE in order to switch this off.
  • Plato is now fully integrated with SDBG when this feature is switched on in the Options dialog.
  • Plato can now print files using syntax colouring.
  • ClearWin+: A new option has been added for %cw called [local_font] that causes %cw to use the current %fn and %ts.
  • ClearWin+: A new option [popup] has been added to %gr so that a %pm menu appears with %gr[full_mouse_input].
  • ClearWin+: Additional keyboard characters have been added for %ac including plus (+) and minus (-) characters.
  • ClearWin+: A new CLEARWIN_INFO@ information string has been added: OPENGL_ALIVE

Outline summary of bugs that have been fixed:

  • Improved Windows 7 compatibility
  • Several issues that are generally seen on x64 operating systems with large amounts of RAM have been fixed. These issues manifested themselves as out-of-memory errors and unexplained floating point exceptions (that were in-fact underflows)
  • Fixed a problem with building on Windows 7/Windows Server 2008 and deploying lower versions of Windows where certain system functions could not be located in kernel32.dll.
  • /EXPLIST was failing when used with a large file and /CHECK.
  • SELECTED_INT_KIND and SELECTED_REAL_KIND did not respond to /ALT_KINDS.
  • When not using /LINK a bad object file was sometimes created despite reported compilation errors.
  • An access violation occurred when a constructor for a user defined type was assigned to an integer.
  • Windows NT text console commands (WCREATE@ et al) now function correctly on consoles with more than 50-lines of line buffer

Version 5.40

New Features:

  • Windows 7 compatibility
  • New comment embedded directive STDCALL added for use before an EXTERNAL statement.
  • New routine ENABLE_DEALLOCATE@ added to allow DEALLOCATE to be applied after ALLOCATE with SHARENAME.
  • New routine DOWNLOAD@ added. This is similar to READ_URL@ but reads into memory.
  • Many of the /CHECK features are now available when using /F_STDCALL.
  • ClearWin+: %ht now accepts JPEG images.
  • ClearWin+: %ht now uses a standard callback COPY_TEXT in order to copy all of the text in the current HTML page to the clipboard.
  • ClearWin+: %th now provides an option for Microsoft style context sensitive help.

Outline summary of bugs that have been fixed:

  • MODULE user defined type with array initialisation was not written to the MOD file.
  • /ALT_KINDS failed in subroutines.
  • Regression in Plato: /CLR_VER project option was not working.
  • There was a particular failure of INTEGER*8 with /CHECK.
  • /CONFIG failed to restore /CHECKMATE setting from config file.
  • /CONFIG failed to work under Windows Vista.
  • SYSTEM_CLOCK returned incorrect results for very fast processors.
  • Regression at 5.20: Type initialiser lead to offset error.
  • Regression at 3.40: There was a failure to parse "i+1" in B(i+1)%C = 0
  • Inconsistent pointer block in /CHECK argument.
  • ClearWin+: %si icons were not displayed correctly for non-standard DPI settings.
  • ClearWin+: %lv did not scroll initial selection into view.

Version 5.30

New Features:

  • C style preprocessing directives can now appear in the label field (except for #include).
  • New memory model used in salflibc.dll. Currently available for beta testing by setting an environment variable.
  • ALLOCATE extended to include SHARENAME keyword argument for Win32 inter-process shared memory and file mapping.

Outline summary of bugs that have been fixed:

  • The dialog box reporting runtime errors sometimes failed to appear.
  • NEAREST intrinsic did not always expanded correctly inline.
  • /CHECK failure when using a certain statement function.
  • A certain combination of using UBOUND with ALLOCATE failed.
  • ALLOCATE failure for array of CHARACTER type with elements of variable length.
  • ALLOCATE regression when using certain CHARACTER members in a TYPE definition within a MODULE.
  • Array of a derived TYPE with zero size not handled correctly by the compiler.
  • Problem with IBSET when used with pointers.
  • INTEGER*1 range problem with /CHECKMATE.
  • False error report when a certain subroutine was passed as an argument in a MODULE.
  • Array bounds check failed when the index was an array element.
  • Missing TARGET caused access violation in a particular construction.
  • False warning issued for a particular EQUIVALENCE statement.
  • Regression in DBK_LINK: vcLinkText@ etc. in Visual ClearWin samples, failed to link.
  • False /CHECK runtime failure when optional CHARACTER argument was absent.
  • Simple assignment to member of .NET class failed to pass JIT compiler.
  • Namelist with array slice gives "Digit(s) expected" error.

Version 5.21

  • Incorrect results in sorting algorithm
  • Regression with respect to recursive subroutine call
  • Compiler crash when taking substring of function returning a character string
  • /ISO should flag error when using REAL as a DO variable
  • Regression with respect to false warning about unreachable code
  • Win32 Visual Studio debugger crash on Windows Vista when debugging external DLLs
  • Custom build steps in Visual Studio plugin when installed to non-default location

Version 5.20.1

  • ALLOCATE regression in 5.20

Version 5.20

  • Support for Visual Studio 2008
  • Additional project support in Visual Studio 2005/2008. User folders can now be created in the solution explorer
  • Plato Version 4 now supports Unicode. Note that version 4 is not compatible with Windows 9x
  • Further support for Windows Vista and Windows Server 2008

The following is a summary of FTN95 bugs that have been fixed at version 5.20.

  • 'Compile' file in Visual Studio solution explorer behaviour fixed.
  • Further fixes and support for debugging under Vista.
  • False type warning when using REAL(COUNT(i)) as an argument.
  • Error not reported for array assignment with mismatched shapes.
  • ALLOCATE does not fail when size of block overflows.
  • /OLD_ARRAYS gives a false error report when A(1) is not an argument.
  • Missing "TYPE" in "END TYPE" causes a module to terminate prematurely.
  • Error not reported when named DO statement does not have matching ENDDO name.
  • OPENF@ not working under .NET.
  • NINT(AR,1) fails for two-dimensional array AR.
  • PRIVATE not implemented when member is used in module.
  • Initialisation of TYPE members within a MODULE fails for large arrays.
  • "Operand incompatible with opcode" failure on integer*1 = integer*4 assignment.
  • USE ONLY f=>g does not link when the function g is declared in another module.
  • Compiler crashes when writing linker data for a certain module.
  • Warning about unreachable code not provided in /DEBUG mode.
  • SUM intrinsic used as argument for DOT_PRODUCT does not compile.
  • IBITS not working for INTEGER*8.
  • /CONVERT not working.
  • IACHAR not available in array initialisation implied DO loop.
  • Explicit declaration needed for a function used on RHS of a statement function.
  • False warning when compiler-defined constant is not used.

The following changes has been made:

  • Use of ALLOCATABLE in TYPE declaration is now tollerated though not standard conforming.

Version 5.10

  • /WIDE_SOURCE limit increased to 1024 characters per line.
  • GET_COMMAND_ARGUMENT intrinsic function, character limit increased from 128 to 256.
  • Improved compatibility with AMD Geode range of processors
  • Improvide Vista support from SDBG and Visual Studio Win32 debugger

The following is a summary of FTN95 bugs that have been fixed at version 5.10.

  • Poor error report when MAX is used with an array argument.
  • .NET false error report about miss-matched argument types in function call.
  • False warning with ALLOCATE, statement will not be executed.
  • ABS not implemented for INTEGER*8.
  • Missing error report when trying to use JUMP@ under .NET.
  • Some array sections not checked at runtime for shape conformance.
  • Another .NET false error report about miss-matched argument types.
  • Operand incompatible with opcode failure with particular use of TRANSFER intrinsic.
  • False warning, RESULT not set in certain recursive function definitions.
  • Character variable in a particular WHERE test gives internal compiler error.
  • An INCLUDE statement corrupts some CONTAINed subroutines.
  • False error report for certain internal PURE routines.
  • FORALL statement using SUM intrinsic fails to initialise correctly.
  • User-defined assignment was not implemented in the context of an paricular array assignment.

Version 5.01

  • Regression in Plato3 fixed: Problem with project file list and dependency checking.
  • Regression in FTN95 fixed: Arrays were not correctly initialised (i.e. simultaneously declared and initialised) in modules.
  • In some circumstances the Visual Studio 2005 integration was not fully installed and theefore not fully functional.
  • Arguments are now passed to the debugee when using the Visual Studio debugger in Win32 mode

Version 5.00

  • NEW FEATURE: Visual Studio 2005 integration.
  • NEW FEATURE: Microsoft .NET 2.0 compatibility.

The following is a summary of FTN95 bugs that have been fixed at version 5.00.

  • REPEAT intrinsic has 32K limit on second argument.
  • Illegal memory reference bug in matrix reallocation program.
  • UNDEF failure with OPTIONAL character argument.
  • Register tracking failure over INVOKE.
  • Use of /PROFILE can cause incorrect function return.
  • Missing label not reported when followed by CONTAINS.
  • Recovery from underflow is not automatic for Win64.
  • <= is not parsed correctly in some situations.
  • Particular use of User-defined == operator fails.
  • Optional INTENT(OUT) causes runtime failure with FULL_UNDEF.
  • Initialisation fails with TARGET and UNDEF.
  • Regression at 4.9. Assigned GOTO does not work in fixed format.
  • Regression at 4.9. Access violation when reading a MODULE.
  • BIT_SIZE does not work for 64 bit integers.
  • SIZE = len fails in READ statement.
  • INTENT(IN) does not prevent assignment via a READ statement.
  • Incorrect result for a particular use of the TRANSFER function.
  • Incorrect result for a complex arithmetic calculation.
  • Size of .NET debug information reduced

Version 4.91

  • An assigned GOTO with array value failed to compile.
  • An access violation occurred when reading a certain TYPE from a module.
  • Changes essential for using /F_STDCALL

Version 4.90

  • NEW FEATURE: /LOCAL_ZERO added for .NET only. Like /ZEROISE but for local variables. Cannot be used with /UNDEF.
  • NEW FEATURE: Size of /UNDEF executable reduced for .NET MODULE containing large array.
  • NEW FEATURE: Size of .NET DLL reduced when it contains a large MODULE array.
  • NEW FEATURE: NET OBJECTs can now be initialised when declared.
  • NEW FEATURE: REAL assigned to hexadecimal value now generates a warning.
  • NEW FEATURE: /F_STDCALL option added for Win32

The following is a summary of FTN95 bugs that have been fixed at version 4.9.

  • Missing member initialation in array elements of user-defined TYPE.
  • INQUIRE(PAD=...) missing.
  • Runtime problem with SHAPE intrinsic - arrays erroneously reported as not conforming.
  • Corrupt header of very large record in unformatted IO.
  • INTEGER i = 'F' does not generate warning or code for .NET.
  • /OPT failure with benchmark test
Copyright © 1999-2017 Silverfrost Limited