[EN] [IT]
Le plus rapide des compilateurs BASIC pour Mac
Staz Software, Inc

Nouvelle version FB5
  • IDE gratuit
  • Éditeur (Universal binaries)
  • Traducteur C intégré (FBtoC)
  • Compilateur GCC ou clang au choix
  • Gestionnaire de Projets boosté
  • Nouveaux fichiers headers améliorés
  • Intégration de code et headers C
  • Runtime nettoyé et peaufiné
  • Nouvelle documentation (en cours)
  • Centaines d'exemples
  • Compilation Carbon
Ancienne version FB4
  • IDE gratuit
  • Editeur supportant les plug-ins
  • Compilateur intégré super rapide
  • Gestionnaire de Projets
  • Débogueur
  • Profileur
  • Program Generator (CASE tool pour PPC & 68K)
  • Support des fichiers .nib d'I.B. via programmation
  • Riche documentation
  • Profusion d'exemples
  • Runtimes en Open Source:
    • Console
    • Standard BASIC
    • Appearance
    • Toolbox
    • BASIC-88
  • Applications universelles via FBtoC & compilateur GCC
  • Compilation Carbon
  • Assembleur PPC & 68K en ligne
  • Accès Toolbox et Shared libraries
  • Appli mini: 28 Ko
  • Appli maxi: 2 Go
  • Système mini: Mac OS 7.6 pour FB^3
  • Système mini: OS X 10.2 pour FB4

Édition Européenne :
  • Il n'y a plus d'édition européenne officielle
  • La localisation est ouverte à tous

Site maintenu par
Friendly links:

Let your ideas grow
Téléchargez librement
Nouveau FutureBASIC & FBtoC depuis www.4toc.com/fb/
Ancien FutureBASIC depuis le site de Staz Software

Septembre 2015

A Message from Brian Stevens

Back in 2006/2007 (dawn of FBtoC) Apple deprecated many of the Carbon-based Resource Manager calls (FSpOpenResFile, FSpCreateResFile etc.) but FB retained support because FBtoC aimed at and used Carbon. Eight/Nine years later (2015) FBtoC still supports Apple’s old Resource Manager but FBtoC is (slowly) moving away from Carbon and so changes are needed.

Why: FBtoC is being updated to eventually allow it to run as 64-bit Carbon-free. Removing old manager support helps achieve this goal.

What: The next FB version will phase out old resource support as part of an effort to upgrade FBtoC’s code. Old resources are resource files with resource forks containing items such as: MENU, DITL, DLOG, cicn, ALRT, STR#, PICT etc.  They typically have file extensions like '.rsrc' and use Apple’s Resource Manager calls  (FSpOpenResFile, FSpCreateResFile etc.) to read/write/update them.

Phase 1
Any .rsrc files in the project or source file directory will not be copied to the application’s bundle and FBtoC will issue a warning message like this:
Resource file, 'yourResourceFileName.RSRC', with resource fork (typically with file extension: 'rsrc') not copied to yourAppName.app bundle
Currently, FBtoC uses Apple’s Resource Manager calls to copy those old resource files. Removing the copy allows FBtoC to be free of Resource Manager calls.

The programmer could manually transfer the resource files into the bundle if the code still expects resources and continue using 

FBers will have three choices for Phase 1:(best option first)
(1) Convert all resource fork (.rsrc) resources ('rezycle' is one help conversion tool) and use newer approaches instead of resource manager calls.
(2) Manually transfer the old resource files into the built app bundle and let the app code continue with Resource Manager calls.
(3) Use an older FB release that continues to support .rsrc files

Please note: none of this impacts the ability to include standard data fork-based resources such as .icns, .jpg. .png etc. FBtoC will continue to process and copy those to the bundle as it does now.

Last minute note: Although it’s possible to copy resource fork resources with other utilities (ditto is one), writing new code to support obsolete formats isn’t consistent with modernizing FBtoC.

Additionally, the older code merges all project '.rsrc' files into one appName.rsrc file using older resource manager calls.

Août 2015

FB 5.7.15

FB 5.7.15 requires OS X 10.6 or higher.

:: FB5 bug fixes ::

  1. 'Appearance Window' inappropriately overwrote window attributes when the statement omitted window attributes.
  2. Editor and Project Manager window resizing was broken in OS X 10.6.
  3. The hidden grow box change, implemented in 5.7.13, now hides grow boxes only for compositing windows.
  4. Turned off some debugs left on in prior release.
:: Enhancements ::

  1. OSMajorMinor() returns both major and minor OS version in one call. Example: running in 10.7.5 it returns: major = 10 and minor = 7. Look for a usage example in a later list post.
  2. Tlbx MacWindows.incl header updated with drawer window and other helpful window calls:

      // Drawer Window calls now recognized automatically in FB 5.7.14

    • toolbox fn GetDrawerPreferredEdge( WindowRef inDrawerWindow ) = OptionBits
    • toolbox fn SetDrawerPreferredEdge( WindowRef inDrawerWindow, OptionBits inEdge ) = OSStatus
    • toolbox fn GetDrawerCurrentEdge( WindowRef inDrawerWindow ) = OptionBits
    • toolbox fn GetDrawerState( WindowRef inDrawerWindow ) = WindowDrawerState
    • toolbox fn GetDrawerParent( WindowRef inDrawerWindow ) = WindowRef
    • toolbox fn SetDrawerParent( WindowRef inDrawerWindow, WindowRef inParent ) = OSStatus
    • toolbox fn SetDrawerOffsets( WindowRef inDrawerWindow, CGFloat inLeadingOffset, CGFloat inTrailingOffset ) = OSStatus
    • toolbox fn GetDrawerOffsets( WindowRef inDrawerWindow, CGFloat * outLeadingOffset, CGFloat * outTrailingOffset ) = OSStatus
    • toolbox fn ToggleDrawer( WindowRef inDrawerWindow ) = OSStatus
    • toolbox fn OpenDrawer( WindowRef inDrawerWindow, OptionBits inEdge, Boolean inAsync ) = OSStatus
    • toolbox fn CloseDrawer( WindowRef inDrawerWindow, Boolean inAsync ) = OSStatus
    • // Helpful window-related calls now recogized automatically in FB 5.7.14

    • toolbox fn IsWindowActive( WindowRef inWindow ) = Boolean
    • toolbox fn ActivateWindow( WindowRef inWindow, Boolean inActivate ) = OSStatus
    • toolbox fn CopyWindowTitleAsCFString( WindowRef inWindow, CFStringRef * outString ) = OSStatus
    • toolbox fn HIWindowGetBounds( WindowRef inWindow, WindowRegionCode inRegion, HICoordinateSpace inSpace, HIRect * outBounds ) = OSStatus
    • toolbox fn HIWindowSetBounds( WindowRef inWindow, WindowRegionCode inRegion, HICoordinateSpace inSpace, const HIRect * inBounds ) = OSStatus
    • toolbox fn SetWindowResizeLimits( WindowRef inWindow, const HISize * inMinLimits, const HISize * inMaxLimits ) = OSStatus
    • toolbox fn DetachSheetWindow( WindowRef inSheet ) = OSStatus
    • toolbox fn HIWindowSetToolbarView( WindowRef inWindow, HIViewRef inView ) = OSStatus
    • toolbox fn MacGetNextWindow( WindowRef window ) = WindowRef
Downloading here: 4toc.com/fb4/
Juillet 2015

FB 5.7.14

FB 5.7.14 requires OS X 10.6 or higher.

:: FB5 changes ::

  1. Garbled warnings for 'unused functions' and 'unused forward declarations'. Fixed
  2. dim as ptr p1, 2’ caused crash. Fixed
  3. FixSDK app added to FB’s Help menu
Downloading here: 4toc.com/fb4/
Juin 2015

FB 5.7.13

FB 5.7.13 requires OS X 10.6 or higher.

All notes by Brian Stevens:
5.7.13 includes minor changes and normally we wouldn’t bother with a new release for so few changes. However, FBtoC’s current (numbered 5.8.0) development source is undergoing major changes and it is difficult to know when an FB5 based on it (i.e. the changes subsequent to 5.7.13) will be released, so we’re making 5.7.13 available now.

:: FB5 changes ::

  1. System(_sysVers) changed to use modern Foundation calls instead of Gestalt(1)
  2. Windows created with FB’s 'Appearance Window' statement now omit the dated visible grow box.
  3. Fix to FilesDollarFunction.c when using NavDialogSetFilterTypeIdentifiers(). Thanks to Steve Van Voorst for the fix suggestion and Bernie Wylde for reminding me.
  4. FB 5.7.13 source released to public(2)
:: Notes ::

(1): this call returns exactly what Apple's NSProcessInfo's operatingSystemVersionString provides. It concatenates the major, minor and bugfix version numbers and returns that number as a string: for OS X 10.9.4  major = 10, minor = 9, bugfix = 4, so 1094 would be returned as a SInt32. OS X 10.7.2 returns 1072, OS X 10.10.3 returns 10103 etc. Apple omits the bugfix version if it is zero, so 10.9.0  returns 109 and 10.10.0 returns 1010. This could impact code comparisons if the raw returned valued is used as is.
This change was prompted by Console log error messages like: "FutureBasic 5[1755]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.3 instead of 10.10.3. Use NSProcessInfo’s operatingSystemVersion property to get correct system version number."

(2): This source includes some newer non-Carbon code but source is essentially very much the same as 5.7.8 ==> 5.7.12.

Coding and implementation: Bernie, Brian

Downloading here: 4toc.com/fb4/
Février 2015

FB 5.7.12

FB 5.7.12 requires OS X 10.6 or higher.

Version 5.7.12 fixes three serious bugs and continues FBtoC’s internal conversion to Core Foundation/Cocoa.

:: FB5 changes ::

  1. More FBtoC source adopts Core Foundation with specific replacements such as pascal string ==> CFStringRef & FSSpec ==> CFURLRefs.
    • in progress and mostly complete - UNIX source file fns are converted and some feeders and subordinates changed too. Active
    • in progress and mostly complete - ERROR HANDLING source file fns are either converted to Core Foundation or prepared for it. Active
    • in progress - FSSpec replacement with CFURLRef/NSURL started, incomplete and not active
  2. Fixed: 'dim as windowref wr' caused a crash.C
  3. Fixed: 'File Not Found' error when a source file directory name contains a higher ASCII symbol ( in this case 'ƒ' )
  4. Fixed: Typed pointer treated as untyped generates clang ”invalid operands to binary expression” error when used in binary 'and'.

Coding and implementation: Bernie, Brian and Michele

Downloading here: 4toc.com/fb4/
Novembre 2014

FB 5.7.11

FB 5.7.11 requires OS X 10.6 or higher.

:: FB5 changes ::

  • FBtoC’s log window rewritten in Cocoa nib and Objective-C
    • Find bar added for searching the log after the build
  • FBtoC's menus rewritten in Cocoa nib and Objective-C
  • FB5’s command menu now has "Analyze" and "Build" options.
    • Analyze allows for easy one-off clang analyzes regardless of the Build Settings.
    • Build omits the target app launch after the compile/link
    • Superfluous "analyze" and "Launch after build" build settings options removed
  • Tool tips added to the Build Settings window
  • Added: Reminder warning "Compile as 'Objective-C'" is superfluous
  • User is warned of a missing Quickdraw framework when choosing Build Settings' base SDK.
  • Opening an old project is now smarter and checks if a previous path to a developer folder still exists
  • Superfluous FBtoC option "Debug Last App in Xcode" removed.
  • More general FBtoC code cleanup
  • fn FD_SpecialDirectoryCreateCFURL now allows the programmer to check a returned OSStatus for an error
  • Messaging from FBtoC to editor updated to use CFNotificationCenter intead of Apple Events
  • NSLog updates:
    • "Compile as Objective-C" removed from NSLog.incl
    • NSLog window bounds now stored in user app’s preferences instead of com.berniewylde.nslog.plist
    • Requires 10.6+
  • Fix: Path to Developer folder popup failed when more than one path present.
  • Fix: Log options now appear only in FBtoC build settings window similar to version 5.7.8
  • Fix: 'compilerVersion' now available for use again
  • Fix: "Make Xcode without project Stripping" was unresponsive when selected immediately after an "analyze" build of the same code.
  • Fix: SystemDirectoryCopyURL(), which supports the File Directory include, updated to support kPreferencesFolderType, kTemporaryFolderType plus a couple bug fixes.
  • Fix: Editor incorrectly displays code block (if/else/endif, while/wend, local fn/end fn) mismatching error in specific scenario(**). Visual problem only. It does compile.
  • Fix: Find Again ( CMD-G ), after closing Source window, Find window and Project window, opens unexpected "untitled" window and does a find. Should find nothing.
  • Fix: Build Settings window fails to display in OS X 10.6.x
  • Fix: More helpful editor error message when is unable to open project file. Thanks Michele.
  • Workaround: when project with valid developer path is moved to another Mac, build crashes due to invalid path. A warning dialog is now displayed. Thanks Michele.

Coding and implementation: Bernie and Brian

:: Notes ::

[**] A line of code exactly 35 characters long triggers a bug when code looks for "#' as the previous character. Turns out 35 is ASCII for the '#' char and comparison with the length byte of a pascal string causes the problem. Code changes for 'if' and 'else'

Downloading here: 4toc.com/fb4/
Octobre 2014 (2)

FB 5.7.10

FB 5.7.10 requires OS X 10.6 or higher.

:: FB5 changes ::

  1. Cleanup from new Build Settings window implementation (old nibs removed, unnecessary code removed/deactivated )
  2. Cosmetic bug fix: log would show "FBtoC: build settings from project" when it was from FBtoC preferences. Right preferences being used but the log message was wrong.
  3. New triple slash comment '///' allows FBer to select which comments to send to C/Objective-C generated code
  4. FBtoC now generates NSBeep() for 64-bit builds ( i.e. -m64 )
  5. Bug fix: Any included resource with a plist file extension is now correctly put in /Contents/Resources and not /Contents [*]
  6. Bug fix: Crash when Xcode and/or appropriate directories aren't available and Build Settings not consulted by user.
  7. Added: Reminder warning "Compile as 'Objective-C'" is superfluous
:: Comments ::

[*] the info.plist is correctly placed in /Contents

Coding and implementation by Bernie, Brian and Robert C.

Personal note from Brian:
Some FBtoC code comments reminded me of RP’s witty list posts and retorts and how much I miss them. From a discussion (I believe on the old 'beta' list) about the possibility of generating C code, Robert Purves built a small proof of concept that grew and prevented FB’s pending demise posed by Mac Intel machines. Thank you RP.

Downloading here: 4toc.com/fb4/
Octobre 2014

FB 5.7.9

FB 5.7.9 requires OS X 10.6 or higher.

:: FB5 changes ::

The Build Settings window has been redesigned and re-written in Objective-C/Cocoa with a Cocoa nib with more options and flexibility.

  1. clang is the compiler. Compiler selection is gone.
  2. Formerly deprecated 'Allow dim a%, a&, a#, a$' is now gone. Attempts to use will generate a "Redefined variable".
  3. The Settings window does all SDK confirmation/coordination/existence checking.
    This eliminates build-time checking and also gives the programmer immediate SDK availability feedback.
  4. Objective-C compile always used. No other option.
  5. Intel architecture always used. PowerPC and Universal builds are gone and not supported
  6. First build with PCH does not use anything in "Compiler Options". Subsequent builds use the PCH and any compiler options.
  7. Clang analyze works. A bug reported on the list could not be reproduced but current clang analysis output looks normal.
  8. Bug fix: "Min Deployment" all OS X releases in popup are selectable. Note: The SDK popup is still limited to those SDKs installed on the machine.
  9. "-F/Library/Frameworks" now included automatically in compiler search paths(*)
  10. Table views for 'Path to Developer folder' and 'Compiler options' enable the developer to save and quickly switch to other options without retyping.
  11. New FB projects inherit current FBtoC Build Settings
  12. Many FB Header, Editor and FBtoC source files were updated to squelch clang warnings about "illegal characters..." and other issues. All FB source compiles with no warnings.
* For some unknown reason, Xcode 5.1's clang sometimes doesn't find the framework when Build Settings specifies a 10.6 SDK. SDK 10.9 works ok. Clang from Xcode 6 works in either scenario. Bernie's testing was successful in all scenarios but mine wasn't.

:: Comments ::

This is the first major FBtoC change in years. Bernie and I are excited the new 64-bit Build Settings coexists nicely with the older Carbon code.

FWIW: Overall code size decreased compared to the prior version.

Coding and implementation by Brian and Bernie.

Downloading here: 4toc.com/fb4/
Juillet 2014

FB 5.7.8

FB 5.7.8 requires OS X 10.6 or higher.

:: FB5 changes ::

Build Settings:
(1) For the Min OS deployment and Base SDK popup menus: Enabled menu items correspond to installed SDKs on the machine. Disabled menu items indicate SDKs not installed. For example, if the OS X 10.7 SDK is not installed, the 10.7 menu item will be visible but disabled.

(2) 'Path to Developer folder' defaults to: /Applications/Xcode.app/Contents/Developer

N.B. In order to use 10.7, 10.8 and 10.9 in these popups, users must make SDK changes to support QuickDraw headers that don’t exist in the 10.7+ OS X releases. See the FBtoC webpage section titled "Optional QuickDraw headers support in OS X 10.7+" for more information.

:: New/Updated Headers/Runtime file(s) ::

NSLog.incl replaces the former FBLog.incl. See Bernie’s list post for more NSLog information

:: New/Updated examples ::

FB_5_7_8_Examples/Miscellaneous/NSLog 1.2.8 —Updates and replaces the former FBLog

Downloading here: 4toc.com/fb4/
Juin 2014

FB 5.7.7 Update

FBlog’s latest upgrade (version 1.2.3), has been incorporated in the headers within the FB 5.7.7 bundle/package. To get the latest FBLog, just download FB 5.7.7 again (or use the code in the examples below to fiddle)

Also, the FB_5_7_7_Examples are updated with all the latest FBLog files at: /FB_5_7_7_Examples/Miscellaneous/FBLog

To help everyone stay current with the latest FBLog, Bernie has incorporated an 'update' option that checks for a new FBlog version when it launches and downloads a zip file to your designated download folder.

Many thanks to Bernie for his continuing contributions!

Downloading here: 4toc.com/fb4/
Mai 2014

FB 5.7.7

FB 5.7.7 requires OS X 10.5 or higher.

:: FB5 changes ::

The 'Min OS deployment' and 'Base SDK' popups in Build Settings now support OS X 10.7, 10.8 and 10.9.

N.B. for the above changes:

[1] In order to take advantage of 10.7, 10.8 and 10.9 options in these popups, users must make their own SDK changes to support QuickDraw headers that don’t exist in the higher SDK releases. See the FBtoC webpage section titled "Optional QuickDraw headers support in OS X 10.7+" for more information.

[2] Build Settings 'Min OS deployment' and 'Base SDK' popups show all OS X selections and not necessarily what is installed on the machine.

[3] A new auxiliary FB tool (FixSDK) augments the FB changes for this release. See the FBtoC website and the tool’s help for details.

[4] These changes assume the /Developer directory exists inside the Xcode bundle( i.e. Xcode.app/Contents/Developer ). This has been true since Xcode 4.2. Prior to that /Developer was stored at the hard drive top level directory. If you are using Xcode 3 or lower, it’s likely the new functionality is unnecessary because you’re building for OS X 10.6 and lower.

[5] Strongly recommend taking precautionary backups before embarking on any of the SDK changes.

[6] Finally, recommend reading ALL the documentation first and using FixSDK instead of the manual changes. Please read the disclaimer when FixSDK launches.

:: New/Updated Headers/Runtime file(s) ::

Tlbx Aliases.incl: fn FSResolveAliasFile added
Tlbx HICocoaView.incl added

BTW: Bernie, Brian, Robert C, Steve V. made this possible.

Downloading here: 4toc.com/fb4/
Avril 2013

FutureBASIC et FBtoC deviennent "open source".

Voici l'annonce publiée par Brian Stevens dans la liste de diffusion de FutureBASIC :

"Hello fellow FBers,

As of FutureBasic version 5.7.6, the FBtoC team has decided to make the source code for the FutureBasic and FBtoC executables "open source" under the standard GPL license. This is effective 25-April-2013. The link may be found here but may be found via the "FBtoC Source Code" link on the main page.

Happily, Staz and the FBtoC team* have given their permission to open source FB, so if FBers are inclined to improve FB for their own use or the community, the current source code ( both editor/project manager and FBtoC ) is available for download on the FBtoC site.

Please note:( most of the following is aimed at the non-FB community since FBers understand our situation )

[a] FB/FBtoC source code downloaders are responsible for making their own changes and sharing the changes with the list and/or FB community.

[b] Complete source code for any changed version** should be made available to those who want it via a download link from their own publicly accessible web site or from an unrestricted public download site.

[c] Former team members remain individuals on the list but the "FB5" team is dissolved.

[d] Any product based on any of the FutureBasic and FBtoC source code provided should be made available under the GPL license[http://www.gnu.org/licenses/gpl.html] scheme as an "open source" product.

[e] Team maintenance of FB is now discontinued but everyone is encouraged to give it a try.

[f] GPL open source license applies to FutureBasic and FBtoC source code only and not the the corresponding version 5.7.6 executables which have been freeware for several years.

[g] N.B. Applications/products created with FutureBasic and/or FBtoC ( i.e. a developer’s new creations ) are not covered by GPL or any other license and the developer using FB/FBtoC has complete control and unrestricted use of their own ( i.e. code a developer writes using FutureBasic/FBtoC ) source code and any executables generated from their own source code while using FB/FBtoC. In other words, the addition of a GPL license[http://www.gnu.org/licenses/gpl.html]  for FB/FBtoC source code does not change the policy for apps created with FB/FBtoC.

* For the editor: 18-Nov-2012 Staz said in a private email "...you...are welcome to do as you wish with the editor"
   For FBtoC: Bernie, Brian, Deep and Michele give their permission as FBtoC developers and on behalf of past developers. Thank you RP - you are missed.

** "changed version" means a version of FutureBasic or FBtoC with a developer’s own improvements.

We sincerely hope the release of source code encourages folks to improve FB. Good luck on future development!
Bernie, Brian, Deep and Michele."

Novembre 2012

FB 5.7.6

FB 5.7.6 requires OS X 10.5 or higher.

:: FB5 changes ::

# Type Description
718 Error Missing commas between function params not flagged
197 Error Malformed date/time in editor build log.

:: New/Updated Headers/Runtime file(s) ::

FBLog.incl: C printf commands are redirected to FBLog’s window.
Minor FB Help updates for dialog function

:: New/Updated examples ::

(1) FB_5_7_6_Examples/Miscellaneous/FBLog_and NSLog/printf test
Demonstrates the redirect of printf with FBLog.incl

Demonstrates Cocoa calls in FB. Both .incl files and FB project version included.

Demonstrates bookmarks. Bookmarks are the successor to Alias Manager

(4)FB_5_7_6_Examples/Text/Scrolling text views/YAST folder
YAST( Yet Another Scrolling Text ) uses Apple core code to build scrolling text fields.

(a) Note the other scrolling text demos in YAST’s parent directory
(b) Scrolling text demos in general are, in part,  aimed at shortcomings in FB5’s Scroll Button 
(c) YAST uses Carbon’s MLTE which is not recommended by Apple.

A basic Cocoa shell( no FB code but can run from FB )

Note: Steve Van Voorst has posted( on fbcocoa but some on the main list ) a series of Cocoa/Objective-C demos which are effectively a shell/template. Those exploring Cocoa should check out Steve’s demos too. 

(6) FB_5_7_6_Examples/Graphics/CoreGraphics (Quartz)/Quartz 1.12

Downloading here: 4toc.com/fb4/
Septembre 2012

FB 5.7.5

FB 5.7.5 requires OS X 10.5 or higher.

:: FB5 changes ::

# Type Description
716 Error Util_EUTCKeyFilter.incl misidentified as a resource
717 Error Symbol table overflow. Table size increased by 8k.

:: New/Updated Headers/Runtime file(s) ::


This new include updates the runtime code for the special directory calls by replacing the now deprecated FSFindFolder() calls. The special directory ( e.g. FD_SpecialDirectoryGetXXXXX ) parameters have changed slightly. Please see the new example for details. The old include is still available.

:: New/Updated examples ::

FB_5_7_5_Examples/Files/File_Directory examples/FileDirectory-SpecDirsUpdated.bas

Downloading here: 4toc.com/fb4/
Août 2012

FB 5.7.4

FB 5.7.4 requires OS X 10.5 or higher.

Please note: FB 5.7.4 is required for use with OS X 10.8 (see bug #196)
:: FB5 changes ::

# Type Description
196 Crash Clicking on project window icons causes crash in OS X 10.8
713 Error Appending pascal string in 'end fn =  ' fails
714 Error Error message for non-terminated '#if' is poor

Downloading here: 4toc.com/fb4/
Juillet 2012

Triste nouvelle

Bien que je n'aie jamais rencontré Robert Purves dans la vie réelle, sa disparition en juillet dernier m'a profondément touché. Sans doute savez-vous que Robert était le fer de lance de l'équipe FB. C'était un puits de science dans divers domaines, et pour ce qui nous concerne, un maître en programmation. Plus encore, j'ai souvent pensé qu'il avait une bien meilleure connaissance des entrailles de FutureBASIC que celle de ses propres concepteurs.

Après le retrait de Andy Gariepy, suivi plus tard par celui de Chris Stasny, c'est-à-dire les pères originels de FB, Robert avait repris la barre de l'esquif vacillant. Qu'ils en soient conscients ou pas, tous les utilisateurs de FB, lui doivent de pouvoir continuer à programmer avec FutureBASIC encore aujourd'hui..

Même si Robert vivait en Nouvelle-Zélande, j'ai pu travailler à distance avec lui en maintes occasions, plus particulièrement pendant le développement de l'IDE, et j'ai pu en ces circonstances apprécier l'homme aussi bien que le scientifique qu'il était. Il était attentif aux autres, toujours réactif et prêt à apporter son aide. J'étais espoustouflé en permanence non seulement par ses incroyables connaissances mais également par sa volonté d'aider les autres à réussir dans leurs projets.

La mort de Robert Purves m'a laissé sans voix pendant quelque temps, et j'envisage toujours en ce moment-même d'arrêter toute activité en relation avec FutureBASIC en laissant ce site retourner lentement à la poussière. De toute façon, je n'y faisais plus que publier les annonces des nouvelles versions du logiciel, sans y apporter de contributions personnelles. Tandis que l'équipe FB poursuit le travail, je crois que ce site ne manquera à personne avec de telles pitoyables mises à jour.

Où que soit l'esprit de Robert à présent, je souhaite qu'il ait rencontré la paix. Je vous remercie Monsieur pour tout ce que vous avez fait pour nous.

Pendant que mes pensées se tournent vers sa famille, je vais laisser le soin à Ted Spencer de prononcer les derniers mots de vérité de ce billet. Ted du Canada a écrit le message suivant dans la liste de diffusion FutureBASIC :

"We are in a time when we feel close to people with whom we have spoken no word; whom we'd not recognize on the street, but who, by their presence have filled a basic human need: kinship. However esoteric our connection, many of us feel connected to many others on this list, through their contributions, their forbearance, and their sly hints at humanity.

Our computers are replete with that modest 'rp' seen in so many files. Eternity, or heaven, in one of its many forms, is to be found there. Bless you on your journey, 'rp', as you have blessed us."

Mai 2012

FB 5.7.3

FB 5.7 requires OS X 10.5 or higher.

:: FB5 changes ::

# Type Description
704 Error Changes in FBtoC.h not propagated for clang+pch builds
706 Cleanup When save button clicked, fix common user mistakes for 'Path to Developer folder'
708 Error Long variable(symbol) names generate translation and compiler errors
709 Error Make Xcode Project -> Warning: '/*' in block comment
710 Cleanup Remove '_A' suffix from translated array names
711 Error Using 'double’ variable type with Input fails in FB 5.7.2+
712 Error Cursor not changing from arrow to I-Beam and back in some cases.

:: New/Updated Headers file ::

New     - FBLog.incl
Updated - Util_EUTCKeyFilter.incl
Updated - Util_CE.incl

:: New/Updated examples ::

FB_5_7_Examples/Miscellaneous/FBLog_and NSLog/NSLog Demo

Downloading here: 4toc.com/fb4/
Mars 2012

FB 5.7.2

FB 5.7 requires OS X 10.5 or higher.

:: Editor changes::

# Type Description
190 Cosmetic Icons drawn out of place in Errors and Project windows
191 Feature Compiler warnings/errors jump to FB code

:: FBtoC changes ::

# Type Description
670 Nicety C files should have UNIX LF line endings only, not mixed with CR
690 Feature Provide FB line info with compiler warnings/errors
691 Feature 'Unused function' warning should jump to definition
692 Error Window title corrupted
695 Feature dialog(-1) returns wndNum for all window events [including _preview]
696 Nicety 'Debug Last App' should attempt to open Xcode 3
701 Cleanup -DDECARBONATE should require -m64
702** Feature Support Xcode 4.3
703 Error Frozen menus from 'window output 0' in DoDialog

* The new feature affects warnings and errors listed in the Errors window.
[1] Icons for messages from the compiler are now badged with a tiny gear-wheel.
[2] Double-clicking a compiler message now jumps directly to the corresponding line of FB source, if one exists, otherwise the translated .c file is opened in Xcode.

The new behaviour is especially convenient when you're inspecting a long list of compiler messages, for example from clang analysis.

** Xcode 4.3 is installed in the Applications folder. To use with FB 5.7.2, Settings > Advanced must indicate the new location. Path to Developer folder: /Applications/Xcode.app/Contents/Developer
The checkbox 'Use compiler from developer folder' checkbox should be ON.

:: Updated headers file ::

Tlbx CFByteOrder.incl

:: New examples ::

FB_5_7_Examples/Graphics/CoreGraphics (Quartz)/CGGradient_demo
FB_5_7_Examples/Graphics/CoreGraphics (Quartz)/RoundRect+CGGradient
FB_5_7_Examples/Graphics/CoreGraphics (Quartz)/UserPaneGrids

Downloading here: 4toc.com/fb4/
Janvier 2012

FB 5.7.1

FB 5.7 requires OS X 10.5 or higher.

:: Editor changes::

# Type Description
184 Cosmetic Source code drawn in project window
185 Error void functions don't show in function pop-ups
186 Cleanup Bad horiz scrolling of background window by mouse wheel

:: FBtoC changes ::

# Type Description
343 Error gcc error from pointer.offsetConst$ arg to toolbox Str255 param
505 Error internal error from dim a as ^Point, b&
558 Error Compiler error from block comment in BeginC...EndC
566 Error Comment ending in opt-L eats next line of code
617 Error inc( p ) and p++ are different if p is ^Type
619 Error Make Xcode Project strips main() from command-line tool
666 Error 'dim as ..FooType bar' is pointer but should be Handle
667 Error Can't cast address arguments freely and correctly
669 Error Repeated 'clear local' gives internal fatal error
672 Error Build error 'no include path in which to search for Carbon/Carbon.h'
673 Error Default compiler in OS X 10.7 should be clang
674 Error 'void clear local fn Foo as long' should be error
675 Feature Allow spaces in path to Developer folder
676 Error Can't cast to (float)
677 Error Record assignment wrongly disallowed
678 Error Return value from function of type float treated as integer
679 Error 'not( a binop b )'  wrongly translated
680 Feature Maximum number of dynamic arrays doubled to 64
681 Error Allow record field as file specifier in 'open' statement
682 Feature Add 'Crash' button to all error alerts
683 Error Buffer overflow when linking huge project
684 Error Generate Localizable Strings fails when compiled as Objective-C
686 Error Unsigned function type wrongly disallowed
687 Error Crash from invalid syntax for 'button', 'appearance button' and 'appearance window'
688 Error FD_SpecialDirectoryXxxx() should create directory if absent

Projects and standalone builds that used clang with the precompiled header option will encounter an error when first built with FB 5.7.1
   Error: clang:
   redefinition of 'gFBDynArrayInfo' with a different type [line 115:14 of...]

The simplest workaround is to trash the build_temp folder. An alternative is to switch temporarily to another compiler.

:: New examples ::

FB_5_7_Examples/Graphics/CoreGraphics (Quartz )/SelfCenteringHIImageView

Downloading here: 4toc.com/fb4/
Novembre 2011

FB 5.7

FB 5.7 requires OS X 10.5 or higher.

:: Editor changes::

# Type Description
140 Error Tab key moves focus to toolbar and prevents subsequent editor window typing
142 Error 'REM' slider in document window's toolbar misbehaves
162 Error Wrong indentation from opt-space between end and fn|select|record...
174 Error Edit menu first item is always Can't Undo
088 Feature Allow mouse wheel/trackpad scrolling of background window
177 Feature Headers ('H') button in doc window's toolbar
179 Feature Adding file to project should make copy if not in project folder
180 Feature Project menu item: New Project File...
181 Feature Help menu item: Search Apple Headers.app

:: FBtoC changes ::

# Type Description
656 Error Hang from missing right parenthesis in 's$ = edit$( 1'
650 Cleanup Deprecate type-identifier suffices (except '$') on function names
651 Cleanup Deprecate same name for scalar and array variable: 'dim as long a, a(100)'
652 Cleanup Deprecate vars with same base-name but different type-identifier suffices: 'dim a%, a#, a$...'
653 Cleanup Deprecate FB 16-bit 'int' type
657 Cleanup Passing pointer instead of record argument should be warning
654 Feature New keyword 'float' as synonym for 'single'
658 Cleanup Allow pass-by-value records in user-defined functions
665* Feature Allow C's dereferencing syntax for typed pointers
647** Feature New 'if.../else.../endif' syntax
671 Nicety Add Bundle identifier to default Info.plist

:: New Headers file ::

Tlbx CFURLEnumerator.incl

:: Updated Headers files ::

Tlbx CFURL.incl
Tlbx Controls.incl
Tlbx MacWindows.incl

:: New functions in Console runtime ::

fn ConsolePrintCFType( typeRef as CFTypeRef ) // any CFType
fn ConsolePrintCFString( string as CFStringRef ) // CFString only; fast

:: New examples ::

FB_5_7_Examples/Files/NSOpenPanel & NSSavePanel
FB_5_7_Examples/Files/Search Apple Headers
FB_5_7_Examples/Graphics/CoreGraphics (Quartz)/ImageEdit skeleton

* The new '*' dereference syntax in FB 5.7:
local fn Foo( flagP as ^Boolean, ioCount as ^long, ioAmount as ^double )
  *flagP = _zTrue
// flagP.0` = _zTrue
  *ioCount = 41
// ioCount.0& = 41
  *ioCount = *ioCount + 1
// ioCount.0& = ioCount.0& + 1
  *ioAmount = *ioAmount * *ioAmount
// ioAmount.0# = ioAmount.0# * ioAmount.0#
end fn

The new '*' dereference also works with pointers to records:
dim as ^Rect srcRectP, destRectP
srcRectP = ...
destRectP = ...
*destRectP = *srcRectP
// BlockMoveData( srcRectP, destRectP, sizeof( Rect ) )

** The new syntax:
if ( 1 == 1 )
end if

is equivalent to the traditional (and still supported) syntax:
long if ( 1 == 1 )
end if

Downloading here: 4toc.com/fb4/
Septembre 2011

FB 5.6.2.

This release is earlier than expected, owing to the recent discovery of long-standing bugs in dynamic array support.

:: Major bug-fixes ::

# Type Description
641 Error Crash from DynamicNextElement()
642 Error DynamicRemoveItems() attempts to remove non-existent items

:: Feature introducing type safety to FB ::

# Type Description
621 Feature Allow compiler to warn of some type-mismatched pointer assignments

:: Cleaning up FB ::

# Type Description
636 Cleanup Deprecate shorthands & % | for poke
637 Cleanup Deprecate enterproc ... exitproc
638 Cleanup Disallow 'def' and 'usr' function declarations and calls

:: Improvements in translated C code ::

# Type Description
622 Cosmetic Better translation of if ( pointerVar ) ...
627 Cosmetic Pointers to scalar types should not be void*
628 Cosmetic Fewer parentheses in expressions with bitwise operators
634 Cosmetic Translate ++ as such, not += 1
640 Cosmetic Translate rec = ptrVar as rec = *ptrVar;

:: Feature allowing improvement in translated C code ::

# Type Description
635 Cosmetic Void keyword for functions (void local fn Foo...)

:: Minor bug-fixes and other changes ::

# Type Description
620 Error Function type mistranslated when ^Type or ^^Type
625 Feature Allow include "BarFolder:foo.c"
626 Error Arguments to variadic functions should not be cast
639 Feature Use of fn ToolboxProcedure as rval should be error
645 Cleanup Warn against fn CFSTR( stringVar )

:: New examples ::

FB_5_6_2_Examples/Controls//Custom text browser

Downloading here: 4toc.com/fb4/
Août 2011

FB 5.6.1.

:: FBtoC general changes ::

New menu item    Tools > Open Headers Folder

:: FBtoC bug-fixes and features ::

# Type Description
599 Feature Optional translation of _constants to symbols, not magic numbers
600 Feature New directive: compile [as] "Objective-C"
601 Feature New 'select switch' statement
603 Feature NULL keyword
615* Nicety Warn of long var dereferenced as though pointer
616† Nicety Warn of implied addition of _constants

* Until now, longs and pointers were treated almost interchangeably.
local fn bar( @foo& )
  foo.nil& = 0
end fn

This abuse is now deprecated.
¿¿ Warning: long var 'foo' used as pointer in line 4 of ...

† he weird syntax '_foobar = _foo_bar' is now deprecated.
¿¿ Warning: implied addition of constants; suggested form: '_foo + _bar' in ...

:: FBtoC fixes and changes relating to Make Xcode Project ::

# Type Description
604 Error Resource files copied as empty data-fork by Make Xcode Project
607 Feature Warn of 'include library' framework not passed to Xcode project
609 Error Xib files wrongly converted to nib by Make Xcode Project
611 Feature Warn of library linker commands not passed to Xcode project
613 Error Nibs give ibtool error in Xcode 4 after Make Xcode Project 

:: Updated header ::

Tlbx CarbonEvents.incl   [fixes RegisterEventHotKey()]
Tlbx CFCharacterSet.incl [fixes CFCharacterSetXxxx constants]
Others too numerous to list.

:: New examples ::

FB_5_6_1_Examples/Menus/CFStatusItem FB_5_6_1_Examples/Miscellaneous/CalCalendar

:: Updated examples ::

Too numerous to list.

:: Deleted example ::

FB_5_6_x_Examples/Text/SpellCheck  [crashes mysteriously]

Downloading here: 4toc.com/fb4/
Juillet 2011

Note by Robert Purves about FB 5.6 and OS X 10.7 Lion

OS X 10.7 'Lion' has several differences from 10.6 that affect FutureBasic programmers.
Although it is possible to use earlier FB versions, FB 5.6 is strongly recommended because it prevents errors resulting from the removal of QuickDraw headers in 10.7.

:: Scenario 1 ::

Starting point: OS X 10.6 with Xcode 3.
Obtain Lion from App Store and install it.
What happens: Lion installation removes all the system compilers from /usr/bin, but leaves your existing Developer folder intact.
Probable error building with FB:
The compiler specified by build settings could not be found:

Fix: in FB settings (Advanced drawer) turn ON the checkbox 'Use compiler from Developer folder'. All builds should now work normally.

:: Scenario 2 ::

Starting point: As scenario 1, plus download Xcode 4 from App Store and install it (via Install Xcode.app, which appears in the Applications folder).
What happens: Xcode installation renames your existing Developer folder to Developer-old, adds a new Developer folder, and installs system compilers gcc 4.2, llvm-gcc 4.2 and clang in /usr/bin. gcc 4.0 is gone from /usr/bin.

Possible error building with FB:
The compiler specified by build settings could not be found:

Fix 1: in FB settings (Advanced drawer) set the textfield path to /Developer-old, and turn ON the checkbox 'Use compiler from Developer folder'. All builds should now work normally.
Fix 2: in FB settings change the Compiler pop-up to anything but gcc 4.0.

Possible error building with FB:
The SDK corresponding to 'Base SDK' could not be found:

Fix 1: in FB settings change the Base SDK pop-up to 10.6 (Xcode 4 has no SDKs before 10.6).
Fix 2: in FB settings (Advanced drawer) check that the path is valid.

Possible error building with FB:
gcc-4.2: error trying to exec '/usr/bin/powerpc-apple-darwin11-gcc-4.2.1': execvp: No such file or directory
lipo: can't figure out the architecture type of: /var/folders/52/jjd30gq/T//ccDkhj.out
Compilation failed

Fix: in FB settings change the Architecture pop-up to Current Mac or Intel (Xcode 4 has no PPC support).

:: Scenario 3 ::

Starting point: A new Mac with Lion.
Download Xcode 4 from App Store and install it (via Install Xcode.app, which appears in the Applications folder).

Possible error building with FB:
The compiler specified by build settings could not be found:

Fix: in FB settings change the Compiler pop-up to anything but gcc 4.0.

Possible error building with FB:
The SDK corresponding to 'Base SDK' could not be found:

Fix: in FB settings change the Base SDK pop-up to 10.6 (Xcode 4 has no SDKs before 10.6).

Possible error building with FB:
gcc-4.2: error trying to exec '/usr/bin/powerpc-apple-darwin11-gcc-4.2.1': execvp: No such file or directory
lipo: can't figure out the architecture type of: /var/folders/52/jjd30gq/T//ccDkhj.out
Compilation failed

Fix: in FB settings change the Architecture pop-up to Current Mac or Intel (Xcode 4 has no PPC support).

Problem with nib files: Interface Builder.app has gone, and Carbon nibs cannot be edited in Xcode 4.

If you are unhappy with these limitations, copy a Developer folder (containing Xcode 3) from another machine to the new one. From here on, see Scenario 2 (except that the path /Developer-old would be /wherever/it/is/Developer). Note that you can't formally install Xcode 3 on Lion, but you can copy the Developer folder over; Xcode 3 and Interface Builder both work.

FB 5.6

:: New Editor Feature ::

New menu item    Tools > Open Headers Folder

:: FBtoC bug-fixes and features ::

# Type Description
591 Nicety Default compiler should be gcc 4.2
592 Nicety Show compiler path in error message when it cannot be found
593 Cosmetic Increase ConsoleWindow's height and font size
594 Feature Complex arithmetic, variables and functions
595 Error Wrong formatting of signed zero by 'using'
597 Cosmetic Change 'Max OS features' to 'Base SDK', matching Xcode
598 Error Crash after multiple 'input' in ConsoleWindow

:: New Headers files ::

Tlbx CFCalendar.incl
Tlbx complex.incl
Tlbx MDItem.incl

:: Updated header ::

Tlbx CoreGraphics.incl now has CGDisplayFade functions
Util_CFPrefsCFStrings.incl now has CFPrefsGet/SetCGRect()

:: New examples ::

FB_5_6_Examples/Calculations/complex arithmetic
FB_5_6_Examples/Files/Metadata demo
FB_5_6_Examples/Miscellaneous/CFCalendar demo
FB_5_6_Examples/Miscellaneous/Fade screen to black
FB_5_6_Examples/Text/Print Columnar Data

:: Updated examples ::

FB_5_6_Examples/CoreFoundation/CFArray of Dicts Proj

Downloading here: 4toc.com/fb4/
Avril 2011

FB 5.5.1

:: Editor bug-fix ::

# Type Description
167 Error Strange beep on double-clicking symbol preceded by option-space

:: FBtoC bug-fixes and features ::

# Type Description
584 Error Freeze with 'Wrong number of arguments' error
585 Nicety More compact representation of 'data' strings
586 Error Crash on multi-line strings > 255 chars
587 Feature Advanced settings in drawer
588 Feature 'system long' should allow comma-separated variable list

:: Updated header ::

Tlbx CoreGraphics.incl now includes CGImageSource functions

:: New examples ::

FB_5_5_1_Examples/Graphics/CoreGraphics (Quartz)/CGPathContainsPoint
FB_5_5_1_Examples/Graphics/CoreGraphics (Quartz)/Floodfill
FB_5_5_1_Examples/Graphics/CoreGraphics (Quartz)/ImageResizer
FB_5_5_1_Examples/Text/CoreText styled text
FB_5_5_1_Examples/Text/CoreText with CGColor

:: Updated example ::


Downloading here: 4toc.com/fb4/
Janvier 2011

FB 5.5

:: Major changes ::

  1. FutureBasic 5.app is now a self-contained IDE; its supporting file objects (FBtoC.app and the folders build_goodies and editor_support) are inside the app bundle.

  2. An Xcode project is created in the project source folder instead of build_temp as previously. This change makes it less liable to inadvertent deletion. The Xcode project is contained in a folder named <project_name>_XcodeProject.

  3. The User Libraries folder has moved to ~/Library/Application Support/FutureBasic/, alongside Scripts and Style Files.

:: FBtoC bug-fixes and features ::

# Type Description
573 Error Hangs when parsing conditional with @nonexistent_var
574 Feature Make Xcode project in source folder, not build_temp
575 Error FlushWindowBuffer doesn't
576 Error apndstr() wrongly byte-swaps the count field
578 Error val() and val&() return wrong value for 16-digit hex strings
579 Error 'read' gets wrong value for 16-digit hex numbers in 'data' statement
581 Error Link error from Xcode project containing Objective-C code
582 Error NavDialog() releases saveFileName and message wrongly

:: New examples ::

FB_5_5_Examples/Graphics/CoreGraphics (Quartz)/HIImageView_swipe
FB_5_5_Examples/Text/Programmatic HITextView

:: Updated example ::


Downloading here: 4toc.com/fb4/
Novembre 2010

FB 5.4.8

:: Editor bug-fix ::

A long-standing 'dangling handle' bug has been found, that could cause a variety of crashes.

:: FBtoC bug-fixes ::

# Type Description
570 Error Resources not passed to Xcode project
571 Error Make Xcode Project gives error 'FBtoC_Placeholder_RETURN' undeclared
572 Cleanup Code inflation by numerous gosub/returns*

:: New examples ::


[*] : The new implementation of gosub/return does not support optimized compilation. If your code uses gosub/return and needs optimization, you will have to replace every subroutine by an ordinary local fn.

Downloading here: 4toc.com/fb4/
Octobre 2010

FB 5.4.7 and FB2C 1.4.7

:: FBtoC bug fixes and new features ::

# Type Description
536 Cleanup Redundant files copied to XcodeProject
556 Cleanup Editor Errors window garbles multiple errors/comments on same line
557 Error gosub/return broken
559 Error route _toBuffer does not work with ConsoleWindow
560 Feature Support llvm-gcc 4.2 compiler
561 Error _controlkey constant missing
563 Feature Preference setting to control source-file combining [*]

:: New Headers file ::


:: New examples ::


:: Updated examples ::

FB_5_4_7_Examples/Games/Spandrel_1_2 (chess)
FB_5_4_7_Examples/Sound/Play Sound file

[*] : A pop-up button ('Source-file combining') in the settings window controls the number of .c (and .h) files produced by translation.
Off: each FB file leads to a .c file.
Medium: the same as previous versions of FBtoC.
Maximum: all FB files are combined in one .c file.

Downloading here: 4toc.com/fb4/
Juillet 2010

FB 5.4.6

:: Editor changes ::

Two new features mean that you will no longer lose your scripts and style files on updating to new versions of FutureBasic 5.
  1. Scripts now reside in ~/Library/Application Support/FutureBasic/Scripts. When the editor starts it looks for this folder. If the folder does not exist, it is created and the sample scripts are copied from the current editor_support folder.
  2. Style files now reside in ~/Library/Application Support/FutureBasic/Styles. When the editor starts it looks for this folder. If the folder does not exist, it is created and the style files are copied from the current editor_support folder.

:: FutureBasic 5 Help ::

This now includes most of the material formerly contained in the FBtoC Help Book. The latter is largely obsolete.

:: FBtoC bug fixes and new features ::

# Type Description
400 Error preprocessor bug for comments with quote char
463 Feature pass comments on to C source
519 Error Misleading error for missing project
522 Feature Strip unused FB runtime and C runtime functions during Make Xcode Project
527 Nicety Cleaner translation of simple if conditions
535 Nicety Make Xcode Project should set optimization -O0
538 Feature Send runtime errors to console.log instead of showing fatal alert
539 Cleanup Compiler warning from A$ = "(??)"
540 Cleanup Warnings from Subs Quick Event Loop.Incl
541 Error write# stringVar gives strange results
542 Error line input # should terminate on <lf> as well as <cr>
543 Feature Allow casting e.g. x = (double)y
544 Error instr() treats chr$(0) and chr$(1) alike
545 Feature Allow 64-bit integer literals such as 1ULL, -1LL
548 Error 'Warn of unused functions' sometimes didn't
549 Error FSCatalogInfo.permission wrongly defined in Headers
550 Error LP64 types should have size 8 in static expressions
553 Error inkey$ for command line tool not implemented
554 Error Use precompiled header breaks with clang 1.5
555 Feature Allow static string expression (_foo$ + "bar") as 'output' filename

:: New Headers file ::

Tlbx CFNumberFormatter.incl

:: New examples ::

FB_5_4_6_Examples/Controls/CustomDrawnControl (Quartz)

:: Updated examples ::

FB_5_4_6_Examples/Controls/CustomDrawnControl (QuickDraw)
FB_5_4_6_Examples/Files/Droplet apps/Accept folder drop
FB_5_4_6_Examples/Files/Droplet apps/FinderInfo
FB_5_4_6_Examples/Files/Droplet apps/FinderInfo replacement
FB_5_4_6_Examples/Games/Spandrel 1.1 (chess)

Downloading here: 4toc.com/fb4/
Avril 2010

FB 5.4.5 & FBtoC 1.4.5

:: Editor changes ::
  1. 'Find in Next File' item (Command-option-G) in Edit menu.
  2. A crash from typing '#if def _someLongConstant' is fixed.

:: FBtoC bug fixes ::
# Type Description
510 Error edit$( without closing parenthesis crashes FBtoC
516 Dim syntax error not flagged
521 Error Function declared as Str63 is unusable
522 Feature Strip unused FB runtime and C runtime functions during Make Xcode Project
523 Nicety Insert spaces around '*' in C translation of typed pointer parameters
524 Nicety Symbolise boolean constants in C translation
525 Nicety C translation should have NULL instead of (void*)(0)
526 Cleanup Remove trigraphs and their support
528 # Feature Option to build command line tool instead of app
530 # Feature Allow 64-bit compilation of command line tool
531 Feature Bounds checking should work for record fields that are arrays
532 Error Hang when parsing call to undefined function
533 Feature Allow dereference of pointer that is a record field and a pointer to another record
537 Cleanup Remove thousands of obsolete predefined constants

# see the 'tool' example below. Also see FB5 Help: Appendix J - Command Line Tools.

:: Function change ::

GetFormattedDateTimeAsString() has been replaced by DateFormatCreateStringWithAbsoluteTime().
Note the difference in parameter order:
//toolbox fn GetFormattedDateTimeAsString( CFAbsoluteTime at, CFStringRef formatString ) = CFStringRef

toolbox fn DateFormatCreateStringWithAbsoluteTime( CFStringRef formatString, CFAbsoluteTime at ) = CFStringRef

:: Revised Headers file ::

Tlbx HIView.incl [fixes definition of HIViewContentInfo]

:: New examples ::

FB_5_4_5_Examples/Command Line Tool/tool
FB_5_4_5_Examples/CoreFoundation/CFString left, right, mid
FB_5_4_5_Examples/CoreFoundation/CFArray of Dicts Proj
FB_5_4_5_Examples/CoreFoundation/CFStrings in FB console
FB_5_4_5_Examples/Miscellaneous/CFDateFormatter test
FB_5_4_5_Examples/Dialogs and Windows/ImageView as window backgound

:: Updated examples ::

FB_5_4_5_Examples/CFPrefs Demos/CF string version/Prefs w/Nib & CE
FB_5_4_5_Examples/Games/Spandrel 1.0 (chess) [replaces RChess 3]

Downloading here: 4toc.com/fb4/
Février 2010

FB 5.4.4 & FBtoC 1.4.4

:: Editor changes ::
  1. Document windows are now live-resizing.
  2. The text of items in the Errors window can now be copied with Command-C.
  3. A text selection bug is fixed. It occurred when the mouse was dragged into the left margin. (Thanks to Robert C.)
  4. Navigation arrows in the Help Book now work as expected.

:: FBtoC bug fixes ::
# Type Description
414 Nicety 'Make Xcode Project' leaves stray .proj in build/NewProjectTemplate/
513 Mouse clicks in compositing window with FB Events and 'on mouse' vector not detected
514 Error Orphan 'case' statement not identified as error
515 Error Xcode project template not deleted after Xcode project created
517 Error mki$ function can return wrong values
518 Error edit$( ef ) crashes if the field has not been created
520 Error Linker warning shows as pseudo error

New date$ and time$ functions:

These are now implemented via Core Foundation. They can optionally retrieve both the date and time in one call, and format it in almost any conceivably useful way. See FutureBasic 5 Help for details. The runtime code for date$/time$ may be called directly to format any date/time (not just the current one). See DateExample below.

:: New examples ::

FB_5_4_4_Examples/Files/Alias demo

:: Updated examples ::

FB_5_4_4_Examples/Nib to FB wndNum & btnNum
FB_5_4_4_Examples/App with icon
FB_5_4_4_Examples/Games/RChess_3.0 [replacing RChess_3.0a2]

Downloading here: 4toc.com/fb4/
Décembre 2009

FB 5.4.3

Important Changes for 5.4.3 ( note: minor bug fixes and other internal fixes are not shown ):

Type Description
New new xib format support added. This is the newer XML nib used in Xcode.

New BeginCCode, BeginCFunction, BeginCDeclaration and EndC are improved methods for including C source directly.
Many examples & documentation updated to use the new BeginCCode/BeginCFuntion/BeginDeclaration keywords.

New .c, .h, .m files are now selectable in "Add to project" file dialog.

New _FBConsoleWndNum constant allows Console window customization. The user may modify the default window in useful ways, for instance:

 include "ConsoleWindow"
 window _FBConsoleWndNum, "My tall debug stuff", (5,47)-(500, system( _scrnHeight ) - 5 )

See new console application demo in Examples/Games.

Fix open "A" and open "R" now create the file if it does not exist.

Fix Menu items ending with '!' or '^' or '<' or '/' no longer crash the app.

Fix Linker errors are now passed to editor.

:: New examples ::


Téléchargement ici : 4toc.com/fb4/
Novembre 2009

FB 5.4.2 & FBtoC 1.4.2

This release is being made early, because of the severity of bug #506 (introduced in 5.4.1).

:: Editor


:: Bug-fixes and minor features in FBtoC 1.4.2 ::

323    Error       input "prompt"; x does not work in console mode
422    Error       dim as long a$ should be an error
467    Error       gCntr = edit$( 1 ) should work for > 255 chars
471    Error       missing '"' gives bad C code
484    Error       bad C code from @"\"
493    Error       str$( "should be translation error" )
498    Nicety     include "ConsoleWindow" (alternative to include "FBRuntime.incl")
499    Error       str$( fpNum ) and print fpNum give different results
500    Error       prevent clang Universal build with <10.5 deployment
501    Error       in Console Window, print fpNum ignores gFBFloatMaxDigits
502    Error       can't access 3D array in record
503    Error       prevent array declaration with >4 dimensions
506    Error       can't type upper-case letters in edit fields

:: New examples ::

FB_5_4_2_Examples/Calculations/fast sin() and cos()
FB_5_4_2_Examples/Calculations/Expression Evaluator
FB_5_4_2_Examples/Calculations/Measurement of code performance

Téléchargement ici :4toc.com/fb4/
Octobre 2009

FB 5.4.1 & FBtoC 1.4.1 released

Les nouveautés principales de cette version sont les suivantes : Accès aux fichiers volumineux à travers les commandes basiques de FB, implémentation de la commande open "N" pour les accès partagés, obsolescence des préfixes usr et def pour les routines intégrées (remplacés par fn), possibilité de choisir le compilateur clang à la place de GCC.

Voici l'annonce complète faite par Robert Purves dans la liste de diffusion officielle de FB :

:: Main changes in FB 5.4.1

1. Warnings for a common mistake: forgetting to assign a return value (end fn = someValue) to a function whose value is used elsewhere in the program.

  local fn bar
    dim as OSStatus err
    err = _paramErr
  end fn
// oops, should have '= err'

  dim as OSStatus  err
  err = fn bar
  if ( err != _noErr ) then stop "bar() failed"
// oops, never get here

¿¿ Warning: Returned value of bar() is always 0 in line 9 of test.baq
¿¿ Warning: Function should have explicit return value: bar()

2. Choice of compiler. Build settings window has a pop-up menu with four options.
- gcc 4.0 is the default.
- gcc 4.2 is available on 10.5 and 10.6. It cannot build apps to run on 10.3 or 10.4.
- clang is available on 10.6 only. Very fast but somewhat flaky. Best used for development only (change to gcc 4.0 for release build).
- clang (analysis) performs static analysis of your code, giving interesting warnings; nothing is actually compiled..

:: Minor changes in Editor 5.4.1 ::

1. The menu item Project/Remove Item has been deleted.
2. Bug-fixes in the following areas: text drawing, menus, Find/Replace window.

:: Bug-fixes and minor features in FBtoC 1.4.1 ::

476    edit field with filter fn receives Cmd-chars
486    default MinOS deployment 10.4; remove 10.2 target from UI
490    >1-dimension array parameter wrongly translated
492    warn of unused fn prototypes as well as unused fns
494    allow fn instead of def and usr function calls
495    deprecate usr and def function calls
496    terabyte file access; lof(), loc() and rec() return SInt64
497    implement open "N" to give shared access

:: New examples ::

FB_5_4_1_Examples/Graphics/QuickDraw/Image dithering
FB_5_4_1_Examples/Graphics/QuickDraw/Ray Tracing

Téléchargement ici :4toc.com/fb4/
Septembre 2009

FB en version 5.4

Cette mouture de FB apporte deux améliorations attendues de longue date et une ouverture simplifiée sur le monde d'en-face qui devrait donner de nouvelles perspectives aux programmeurs chevronnés.

Les projets sont enfin sauvegardés avec les réglages du compilateur. Finis donc les incessants va-et-vient dans le panneau des préférences du compilateur lorsqu'on devait gérer simultanément plusieurs projets nécessitant des réglages différents. Le partage des projets en sera facilité également.

Enfin doit-on dire là aussi, FB accepte désormais le typage des pointeurs. Ce n'est certes pas une révolution essentielle, mais FB nous forçait à utiliser des pointeurs génériques rendant du même coup le code source un peu moins lisible et pas très élégant.

Même s'il était déja possible d'inclure du code source en C dans un listing FB traité par FBtoC en signalant par la directive _PASSTHROUGHFUNCTION que telle partie de code source devait être interprétée comme du C, le processus était quelque peu disgracieux, sans compter que le code en C perturbait l'affichage dans l'Editeur FB. Avec cette nouvelle version, le Gestionnaire de projets accepte des fichiers externes écrits en C, Objective-C et C++. La déclaration FutureBASIC Toolbox fn sera mise à contribution pour déclarer et pouvoir appeler les fonctions depuis votre code source FB. Nul doute que cette amélioration va ouvrir de nouveaux horizons pour beaucoup de programmeurs, y compris ceux qui n'ont jamais programmé en C. Voir le projet Calling C Code un exemple élémentaire mais très parlant qui est inclus dans l'archive des exemples à télécharger.

Voici l'annonce complète faite par Robert Purves dans la liste de diffusion officielle de FB :

:: Main changes in FB 5.4

1. Project-based build settings, accessed by 'gear' toolbar item in project window. Project-based settings override FBtoC's preference settings.

2. Improved support for C and Objective-C code, and (new) support for C++. Source and header files with extensions .c, .m, .cpp, or .h may be included either by adding them to the project window, or with the 'include' statement. Including source files is intended to replace the clumsy embedding with _PASSTHROUGHFUNCTION. See: FB_5_4_Examples > Calling C code.

:: Editor ::

1. Antialiased text.
2. Improved Help book.
3. Help menu items include Builtin Constants.rtf, Error Codes.app and FB5 Reference Manual.pdf.
4. Recent Files and Recent Projects menu items have help tag showing path.
5. A Temp Project file is no longer created for standalone file builds.
6. The arrow keys now work to navigate through a project window's items.
7. File 'aliases' are no longer supported. You can use a Finder alias instead.
8. The menu item Project > Reset Search Paths has been removed.
9. The menu item New Project has been moved to the File menu.

:: FBtoC bug-fixes and minor changes since FB 5.3 ::

465    Error        array bounds error from mismatched #endif
468    Cleanup    remove runtime support for animated cursors
469    Error        edit$( btnNum, lineNum ) various bugs
474    Nicety      translate 'for' loops more elegantly
475    Error        crash from tekey$ statement
477    Error        def fn Thing$ = "string stack bug"
478    Feature     fully implement '#define MyRecordPtr as ^MyRecord'
479    Nicety       make error caret point to end of code, not end of comment
485    Error        can't edit print dialog 'From' and 'To' fields

:: New Headers files ::

Tlbx HITheme.incl
Tlbx Pasteboard.incl
Tlbx UTCoreTypes.incl

:: New Headers files ::

CFPrefs.incl renamed to Util_CFPrefs.incl
Minor changes too numerous to list

:: New examples ::

Calling C code
Graphics/CoreGraphics (Quartz)/Hit Testing CG objects
Graphics/CoreGraphics (Quartz)/Quartz 1.11
Graphics/CoreGraphics (Quartz)/How to print CoreGraphics
Miscellaneous/Mouse Hit in HIView

Téléchargement ici :4toc.com/fb4/

Juillet 2009

FB 5.3 et FBToC 1.3 disponibles

Fin juillet, l'équipe FB nous a délivré FutureBASIC 5.3 qui dispose d'un nouvel éditeur s'exécutant nativement sur Intel. L'application étant basée sur l'ancien code source de l'éditeur, qui a subi un lifting au passage, les anciens programmeurs FB ne seront pas dépaysés par cette toute récente version.

Voici l'annonce faite par Robert Purves :

:: Notable changes from FB 5.2

1. Universal binary editor runs native on Intel.
2. Editor's Build Log shows progress of translation and subsequent build steps.
3. Editor doc windows are useable when toolbar hidden.
4. Editor has Help Book that in part describes FB5, not FB4.
5. New icons for editor, FBtoC, and FB documents (log out/in to see).
6. Find/Change window is resizeable.
7. Source code text is drawn with the casing in which it was typed.
8. New projects have extension .fbproj.

Note that FutureBasic 5.3 editor requires FBtoC 1.3 and vice versa; you can't mix and match with earlier versions.

:: Bug fixes and minor features in FBtoC ::

421    Error        setting gFBQuit true in DoDialog() doesn't quit
443    Error        unhelpful error msg from malformed _constant
444    Error        string[pointer] should be translation error
445    Error        *.m files not copied during Make Xcode Project
446    Error        string stack bug from 'input z'
447    Feature      'Hide on suspend' preference checkbox
448    Error        Objective-C source files become *.m.m
450    Error        flag missing commas in argument list
452    Error        'Bad case statement' error could force recompilation
453    Feature     allow constants to start with numeral
455    Error        nested index with 'Check array bounds' gives various bugs
456    Feature     change 'Use DWARF' radio button to 'Put line # in app'
457    Error        .c, .m and .h files could open in FB when double-clicked
458    Error        edit$( btnNum ) returns nothing if text len > 255
459    Feature      Save Log As...
460    Nicety        'More warnings' should not include -Wunused-parameter
462    Feature      @"somestring" --> CFSTR( "some string" )
464    Error        output window wrong for _btnClick in floating window
470    Nicety       explicit error for protoype illegally in local fn

:: New Headers files ::


:: New examples ::

FB_5_3_Examples/Carbon in Cocoa
FB_5_3_Examples/Graphics/CoreGraphics (Quartz)/AceOfHearts, ImageMask and ColorMask
FB_5_3_Examples/Files/Accept folder drop

:: Some old kludgy declarations in Toolbox CFDate.incl have changed to match the offical Apple declarations ::


Téléchargement ici : 4toc.com/fb4/

Avril 2009

FB est toujours en vie et se porte bien

En dépit des mises à jour extrêmement rares sur ce site, l'équipe FB continue d'arrache pied son travail d'amélioration de l'Éditeur FB et de l'application FBtoC. Aussi, à la place d'une longue note personnelle, je vous propose ici toutes les annonces (de la plus récente à la plus ancienne) publiées par Robert Purves dans la liste de diffusion FB et que, bien sûr, j'aurais dû publier sur cette page à mon tour (anglophobes encore un petit effort) :

21 mars 2009 : FutureBasic 5.1.5 et FBtoC 1.1.10

:: Editor changes

1. An unsaved standalone file can now be built and run (Command-R); see note 1 below.
2. Compile Info window shows progress of both translation and compilation.

:: Bug fixes in FBtoC 1.1.10 ::

426 Closed: inkey$ does not return
427 Closed: val&( "01" ) and val&( " 1" ) should return 1
428 Closed: spurious error from 'if...then edit$(1) = "" else stop'
429 Closed: 'text' statement with no parameters hangs FBtoC
430 Closed: Tlbx glu.incl could not be included

:: New example ::

An HITextView with the FontPanel allows multistyled text with shadow, colour, double-underline and other eye-candy.

:: Note 1 ::

This is a normal Run in every way, except that the various files required by FBtoC are in your TemporaryItems folder, which (in OS X 10.5) is somewhere like:

16 février 2009 : FutureBasic 5.1.4 et FBtoC 1.1.9

:: Editor 5.1.4 changes

1. Scripts '#if 1/#endif' and '#if 0/#endif' fixed.

:: FBtoC 1.1.9 changes

1. Typed functions without a suffix are allowed, for example
local fn Name as Str255
end fn = "Ann"

2. FB4 kludges removed from toolbox declarations (see below).
3. The setting 'Use precompiled header' works for universal builds.
4. The build system determines which pieces of a large program need to be compiled, and compiles only those pieces.

:: Bug fixes

415 Closed: Make Xcode Project wrongly quotes/escapes nib names
417 Closed: dropping file on FBtoC spoils log window position
420 Closed: Allow files with no OSType to be opened.
424 Closed: input # bug
425 Closed: record # should set file mark when extending

:: FB4 kludges removed ::

The Carbon C definition of these five functions includes a 64-bit parameter, which in FB4 had to be split into two 32-bit halves:
HIViewSetID() // rarely used
// rarely used

You will have to change your code from, for example:
fn HIViewFindByID( fn HIViewGetRoot( w ), myHIViewID.signature, myHIViewID.id, @myView ) // old syntax
to the simpler correct form:
fn HIViewFindByID( fn HIViewGetRoot( w ), myHIViewID, @myView ) // FB5.1.4 syntax

9 janvier 2009 : FutureBasic 5.1.3 et FBtoC 1.1.8

:: Editor 5.1.3 ::

Unchanged from 5.1.2.

:: FBtoC 1.1.8 changes

'on FinderInfo fn Xxxx' implemented [see FB_5_1_3_Examples > Files > FinderInfo]
The Headers file Util_CE.incl has been extensively commented for easier use.

:: New Headers files and examples ::

Util_EUTCKeyFilter.incl [see FB_5_1_3_Examples/Text/EUTC Key filter]
Util_Toolbar.incl [see FB_5_1_3_Examples/Carbon Toolbar/The easy way]
Tlbx HITheme.incl [see FB_5_1_3_Examples/Controls/HITheme_demos]
Tlbx CoreText.incl [see FB_5_1_3_Examples/Text/CoreText xxxx]

:: CoreGraphicsheaders changes ::

The special FB4 syntax for a handful of CG functions (CGRectMake, CGRectOffset, CGContextGetCTM ...) has been discarded. You will need to change the way you call these functions in your source code. For example:
fn CGRectMake( r, 0.0, 0.0, 10.0, 20.0 ) // old FB4 syntax
r = fn CGRectMake( 0.0, 0.0, 10.0, 20.0 ) // new FB5 syntax similar to C

:: Additions to the CG headers ::


The FB4 'local fn' wrappers have been removed from all CoreGraphics functions. This change makes 'fn' optional when calling CG procedures (functions that do not return a value).
fn CGContextFillRect( ctx, r ) // 'fn' formerly required; now optional
CGContextFillRect( ctx, r ) // new simpler syntax

:: Bug-fixes ::

370 Closed: button statements uncheck a checked checkbox
404 Closed: scroll button mishandles Rect param at creation
406 Closed: key chars with high bit set are negative in _evKeys dialog event
409 Closed: I-beam cursor persists after click in FBtoC Log window
410 Closed: gcc error from struct/record field named 'index'
412 Closed: gcc error from pi if prefs 'Allow dim a#,a$,a%'
413 Closed: val&() should return 0 if first char is alphabetic

17 novembre 2008 : FutureBasic 5.1.2 et FBtoC 1.1.6

:: Important change in HandleEvents ::

The default behaviour of HandleEvents is now to block (i.e. not return) unless an event is dispatched.
It is no longer necessary (but is harmless), to suppress null events with:
poke long event - 8, 0xFFFFFFFF // no null events

The original behaviour of returning 30 times a second, if required for old polling code, can be restored by:
poke long event - 8, 2 // null events every 2 ticks, like FB4
  fn PollForSomething
until gFBQuit

:: Editor (FutureBasic 5.1.2) changes ::

Fixes to text display in the Errors window.
A bug has been fixed that caused the cursor to change to an arrow over the Scripts Palette even when the latter was hidden.

:: FBtoC 1.1.6 changes ::

1. Default behaviour of HandleEvents changed.
2. The rarely-used 'system' statement is no longer equivalent to 'end'. Please change your code to use 'end'.
3. The 'menu' statement now allows an optional 5th parameter (commandID).
4. New/revised Headers files:
Tlbx CFBase.incl
Tlbx CFString.incl
Tlbx CFArray.incl
Tlbx CFData.incl
Tlbx CFDate.incl
Tlbx CFNumber.incl

These header files are more complete than previously; if you get redefined function errors for your own CFxxxx declarations, just comment out your declarations.
5. New Headers file:
Util_Containers.incl [for use see FB_5_1_2_Examples/Containers/Util_Containers example].
6. New Headers file:
Util_Toolbar.incl [for use see FB_5_1_2_Examples/Carbon Toolbar/Toolbar Example].
7. FB_5_1_2_Examples > Sorting [FB3/FB4 CD examples updated for FB5]
8. build_temp folders created by FBtoC are excluded from Time Machine backups.

:: Bug fixes ::

390 Closed: left$$, mid$$, right$$ give _zTrue when comparing chars
391 Closed: mid$$( c, 1 ) gives "comma expected error"
392 Closed: scrollbar of console app lacks down-arrow
393 Closed: garbled error from proc "NoSuchFunction"
394 Closed: prHndl..prInfo.rPage fields are byte-reversed on Intel
396 Closed: default edit field is _framedNoCR instead of _framed
398 Closed: can't access 2-D array inside record
399 Closed: def apndstr has endian bug (on Intel)
401 Closed: crash from print after front window closed
402 Closed: 'Array bounds error' alert shows as 'Quit'

20 octobre 2008 : FutureBasic 5.1.1 et FBtoC 1.1.5

:: Editor (FutureBasic 5.1.1) changes

1. Script Palette replaces Script submenus.
2. Project window has Headers button, which opens the Headers folder in the Finder.

:: FBtoC 1.1.5 changes ::

1. New File menu item: Make Xcode Project.
2. New feature and setting: Warn of unused functions.
3. Domain and folder type constants (_kUserDomain, _kApplicationSupportFolderType...) are now defined.
4. New Headers file Util_CE.incl provides a simplified method to implement Carbon Events in your code; for demos see FB_5_1_1_Examples/CarbonEvents.

:: Bug fixes ::

314 Closed: make strings in *.c runtime localizable
378 Closed: elided error message from include library "NoSuchFile"
381 Closed: editor ignores some translation errors
382 Closed: aliased source file prevents translation of main
383 Closed: editor's Stop button does not affect build by FBtoC
384 Closed: I-beam cursor stays after click in Prefs 'More gcc options'
385 Closed: unusable CreateMouseTrackingRegion() in Tlbx CarbonEvents.incl
386 Closed: 'picH = picture' gives translation error
387 Closed: _useWFont fails for some appearance buttons

24 septembre 2008 : FutureBasic 5.1 et FBtoC 1.1.4

:: Important change in FBtoC

Until now, the build process would automatically copy every nib (*.nib) from the source folder into the built app package. This greedy and surreptitious copy risked the inadvertent inclusion of files like "OldRubbish.nib" and "embarrassingly bad.nib". Now, nibs are ignored unless specified in an 'include resources' statement or in the editor project window (see below).

This means that every project or standalone file that uses a nib interface needs modification. The most straightforward fix is to add a line of code resembling this:
include resources "main.nib"
for each nib used by your project.

:: Editor (FutureBasic 5.1) changes ::

1. New menu items give better integration with FBtoC
Command menu
2. FBtoC preferences are also accessible from a pane in FB preferences.
3. Project window allows files of any type to to be dragged and dropped, including nib, sound and image files.
New Project Manager
Such files are copied during the build to <AppName>/Contents/Resources or <AppName>/Contents/Resources/en.lproj as appropriate, as though they had been specified in an 'include resources' statement in source code.

:: FBtoC 1.1.4 changes ::

1. gFBFloatMaxDigits implemented
2. New file and directory utilities available in Headers file Util_FileDirectory.incl. See FB_5_1_Examples/Files/File_Directory examples.

:: Bug fixes ::

372 Closed: bad factor when input# used with var instead of constant
375 Closed: 'line input #serialPort, s$' gets no chars
377 Closed: open "A"... doesn't work with FSRef or CFURLRef
380 Closed: close #e... etc mistranslated

12 septembre 2008 : FutureBasic 5 et FBtoC 1.1.3

:: Bug fixes in FBtoC 1.1.3:

365 Closed: Can't access App menu's MenuRef before building a menu
367 Closed: rnd(x) produces same number on repeated runs
368 Closed: _cursEvent, _cursOverBtn … not implemented
369 Closed: appearance button statement should support graphics content
371 Closed: print using gives wrong string for 0.0
373 Closed: Stackable Nav sheets
374 Closed: Infinite error loop: if a then text a else text b

Téléchargement ici : 4toc.com/fb4/

Septembre 2008

FutureBASIC 5 est arrivé !

FutureBASIC 5.0 est sorti accompagné de FBtoC 1.1.3 des mains de l'équipe FBtoC (en version US uniquement). Mais qu'est-ce que c'est au juste ?

FB5 est simplement l'Editeur FutureBASIC quelque peu modifié pour travailler de concert avec FBtoC uniquement. Il ne s'appuie plus sur le Compilateur FB d'Andy Gariepy pour produire des applications, en conséquence certaines options ont disparu de ses menus et le dossier Extensions n'existe plus, éliminant du même coup les différences qui pouvaient exister entre le dossier Headers utilisé par le Compilateur FB et celui dédié à FBtoC.

Pour l'heure, FB5 est toujours une application PPC, mais il pourrait devenir une application universelle dans un futur proche. De plus, les préférences du compilateur GCC doivent être réglées depuis l'application FBtoC, cela pourrait également changer dans les mois à venir pour correspondre au comportement de FB4 associé avec l'ancien Compilateur FB.

Pour ceux qui ont besoin de maintenir d'anciennes applications conséquentes ou qui doivent supporter les anciennes machines d'Apple et leurs divers systèmes (68K, PPC, Carbon Classic/OS X, système 9) FB4 est toujours disponible et opérationnel.

Le téléchargement c'est par ici : 4toc.com/fb4/

Mars 2008

Petit progrès

Les francophones seront ravis d'apprendre que FutureBASIC 4 Release 4.4.2 ainsi que FBtoC sont disponibles à présent en français à l'URL suivante (à conserver dans leurs signets)  : 4toc.com/fb4/. Cette nouvelle version a été adaptée afin d'autoriser une transition plus fluide vers FBtoC. L'IDE localisé pesant 50Mo se présente sous une unique archive contenant les manuels et les fichiers d'exemples. FBtoC doit être téléchargé séparément. Les plus curieux auront noté que la manuel de référence en français a été mise en ligne.

Février 2008

Puisqu'on en parle

Comme on pouvait le supposer, l'annonce récente de Staz Software a entraîné un regain d'activité parmi les programmeurs FB, autant grâce aux nouveaux arrivants qu'aux vieux briscards. C'est en effet un signe positif. Maintenant, il reste à espérer que cette excitation se répande encore davantage et surtout qu'elle dure dans le temps.

Une conséquence de ce nouvel engouement est que j'ai commencé à recevoir des courriels d'un peu partout demandant un support technique, et bien que j'apprécie la confiance qui m'est faite, je me dois de rappeler à mes correspondants que je ne suis plus officiellement en charge du support technique et que pour ce qui me concerne FutureBASIC n'est plus qu'un passe-temps à présent. Autrement dit, je ne peux répondre aux courriels que lorsque le temps me le permet. J'en profite pour dire que l'anglais n'étant pas ma langue native, cela m'oblige à consacrer encore plus de temps pour mes réponses. C'est pourquoi, pour un meilleur support technique, je vous invite avec insistance à souscrire sans hésitation à la liste de diffusion officielle de FB (malheureusement pour les francophones, il faut communiquer en anglais). C'est vraiment là que les programmeurs FB doivent se retrouver à présent.

Dans une récente contribution, j'ai écrit que MacWise de Carnation Software avait été compilé en tant qu'application Universal à l'aide de FBtoC. C'était inexact. Je dois maintenant m'excuser pour cette information qui s'est avérée fausse. En réalité, la version disponible avait été mise à jour pour s'exécuter sans problème sous Leopard, ce qui n'est pas du tout la même chose. Mon affirmation n'était toutefois que prématurée, car à présent c'est chose faite.

Dernièrement, j'ai travaillé à la localisation en français de FBtoC en collaboration avec l'équipe de développement, et cela leur a donné l'occasion de mettre en œuvre une fonction du programme qui devrait faciliter la localisation des applications que vous-même créez. Tenez-vous informé.

Notez que les versions françaises les plus récentes de FB et de FBtoC bien que prêtes pour la distribution ne sont toujours pas disponibles pour le téléchargement. Je suis en train de négocier un arrangement avec Staz Software pour régler ce problème dans les plus brefs délais. Par ailleurs, je n'ai pas d'information concernant la version italienne, tout ce que je sais c'est que Michele Neri travaille dur actuellement sur l'application FBtoC elle-même, ce qui ne doit pas lui laisser beaucoup de temps pour des travaux de traduction. Enfin, si vous souhaitez localiser l'environnement FutureBASIC dans votre langue native (autre que l'anglais, l'italien, le japonais et le français, évidemment), vous pouvez entrer en contact avec les membres de l'équipe FBtoC via la liste de diffusion FB, car il ne semble pas y avoir de formulaire de contact sur leur site web.

Janvier 2008

Mise en garde

Un certain nombre de programmeurs (moi-même y compris) ont utilisé la librairie DataBrowser For Dummies dans leurs applications, et bien que j'en sois honoré, je me dois de dire maintenant que ce n'est pas une véritable bonne nouvelle. À l'origine, cette librairie avait pour but l'apprentissage du DataBrowser, un des nombreux contrôles du bestiaire d'Apple particulièrement riche en fonctionnalités et qui par conséquent était assez difficile à mettre en œuvre, surtout en première approche. Cependant, la librairie exploitait éhontément le faible typage intrinsèque au langage FutureBASIC, et de plus, le mécanisme soujacent pour parvenir à la simplicitié vis à vis de l'utilisateur final (c'est à dire vous en tant que programmeur) était quelque peu complexe, pour ne pas dire alambiqué.

Maintenant, le problème est que cette façon de programmer est totalement inadéquate pour la compilation avec GCC via FBtoC, et pire encore, la librairie ne peut même pas être traficotée pour autoriser la compilation en binaire universel. Il n'y a en réalité qu'une seule alternative si vous avez utilisé la librairie DBFD : la réécriture du code pour implémenter le DataBrowser dans vos applications, si votre objectif est de les faire s'exécuter en mode natif sur les Macintosh Intel. Pas cool !

Cela étant, une bonne partie du code et des fonctions de la librairie peuvent vous servir de modèle comme point de départ pour le travail nécessaire d'adaptation à vos besoins particuliers. Vous pouvez préférer aussi démarrer à partir de l'exemple de Bernie Wylde relatif au Databrowser qui est livré avec FBtoC.

FB gratuiciel : bonne ou mauvaise nouvelle ?

Certains d'entre vous se posent la question : est-ce une bonne ou une mauvaise chose que FutureBASIC soit maintenant distribué en freeware ?

Très franchement, je n'ai pas d'info sur les objectifs de Staz Software, d'ailleurs cela fait un bon moment que je n'ai correspondu en privé avec Chris Stasny, mais je ne pense pas que ce soit une bonne nouvelle pour lui, hormis le fait qu'il va pouvoir enfin se décharger d'un fardeau. De plus, je suppute que les dégâts causés par l'ouragan Katrina ont joué un rôle non négligeable dans sa décision. Suite à ce désastre, nous avons tous remarqué le ralentissement dans la fréquence des mises à jour du logiciel, au point que le temps semblait s'être presque arrêté à Diamonhead. C'est triste. Quelles qu'en soient les vraies raisons, nous devons rendre un sérieux hommage à Chris pour son support indéfectible tout au long de ces vingt dernières années. Un merci si grand que les mots ne sauraient traduire.

Toutefois, si l'on en juge par la dernière contribution de Chris sur son site Web, FutureBASIC n'est pas mort. Au contraire, cela pourrait bien être l'aube d'un nouveau départ. D'abord, je crois qu'en répandant cette fraîche nouvelle, les anciens clients qui hésitaient à payer leur abonnement annuel pour les mises à jour vont revenir au bercail. Ensuite, plus rien ne retient ceux qui seraient tentés par un environnement de développement qui a fait ses preuves depuis les débuts du Macintosh. Ce dernier point est sans doute le plus important à mes yeux, car c'est un nouvel élan de cette sorte qui peut garantir une survie décente pour FB.

Bien que la communauté des programmeurs FB soit l'une des plus chaleureuses que l'on puisse trouver sur le Web, y adhérer relevait plus de l'allégeance à une tribu, une survivance du passé, insensible aux grands mouvements qui parcouraient la communauté des programmeurs au sens large. Ainsi, ce brusque changement de paradigme pourrait donner un coup de pouce dans la bonne direction. FB est sur le point de passer en open source. Si ce n'est pas là la clef du succès per se, au moins, cela devrait en toute logique augmenter les chances de voir FB bien vivant pour les années à venir.

Pour le moment, nous devons compter sur la petite équipe qui s'est attelée au labeur de fond, en lieu et place de Staz Software. Le travail fourni par ces talentueux programmeurs a débuté voilà presque deux ans, et aujourd'hui nous pouvons profiter de ses fruits avec la première sortie officielle de FBtoC. Pour autant, l'équipe n'en a pas moins planifié de nouveaux objectifs : en ligne de mire, la conversion de l'éditeur pour en faire une application universelle, et plus important encore, l'intégration de FBtoC avec l'éditeur afin de rendre la programmation pour MacIntel avec FB une expérience sans douleur.

En bref, il est un peu tôt pour se forger une opinion sur le sort de FB. Sommes-nous face à une bonne nouvelle ou une mauvaise en la matière ? À ce moment précis, seul l'avenir détient la réponse.

Le Père Noël est passé

Hier, je mettais ce site à jour pour souhaiter à tous mes meilleurs vœux pour l'année qui débute. Aujourd'hui, me revoilà au charbon pour vous apporter la bonne nouvelle. FutureBASIC est devenu un gratuiciel depuis hier. Cela signifie que tout le monde peut le télécharger et l'utiliser gratuitement. Alors, si vous ne possédez pas encore la dernière version du logiciel, il est temps d'aller visiter le site Web de Staz Software.

Voici l'annonce de Staz Software :

NEWS! FB is Freeware!-- January 1, 2008
FutureBASIC is now freeware! Starting January 1, 2008, FB will become freeware. Does this mean that work on the product will come to a halt? Absolutely not. For starters, you will be able to download a revised editor that addresses problems with OS X, System10.5. Later, you will be able to download the exciting new translator under construction by the FBtoC team that will allow FB code to be compiled by the GCC compiler.

Bonne et heureuse année 2008 !

C'est un fait, l'année qui vient de s'écouler a été très calme sur le front FB : pas d'annonces fracassantes, ni de versions indispensables à se mettre sous la dent. Cela ne signifie pas qu'il ne s'est rien passé durant ce temps-là, mais maintenant la communauté des programmeurs FB attend avec impatience, la prochaine grande étape pour ce qui concerne la programmation avec FutureBASIC, si ce langage veut garantir sa pérennité.

La bonne nouvelle, c'est que les choses sont en bonne voie. Il y a quelque temps, une petite équipe emmenée par Robert Purves a commencé à travailler sur un outil conçu pour produire du code binaire universel et générer des applications s'exécutant en natif sur MacIntel. Ce projet est aujourd'hui bien avancé, au point que l'on peut légitimement espérer sa première sortie officielle dans un futur très proche.

Évidemment, aucune date n'a encore été avancée, toutefois des beta testeurs ont déjà affirmé qu'ils ont réussi à compiler quelques-unes de leurs applications, y compris commerciales. Par exemple, MacWise, est présentement vendu en version compatible MacIntel. C'est plus qu'encourageant.

L'outil appelé (pour le moment) FBtoC, lit les projets FB et, comme son nom l'indique, convertit le code en langage C pour ensuite demander au compilateur GCC (livré avec l'installation du système OS X) de générer l'application résultante. Le processus est direct, du moins sur le papier, et idéalement il devrait être transparent pour le programmeur.

En réalité, les choses ne sont pas aussi aisées, simplement parce que le processus contourne entièrement le compilateur FB. Cela signifie qu'il faut faire son deuil de certaines méthodes propres à la programmation en FutureBASIC. En effet, FB réalisait des exploits pour émuler certaines méthodes devenues obsolètes depuis bien longtemps dans l'univers Apple. Par exemple le working directory reference number, un fossile maintenu en vie par FB alors que la Toolbox ne le gère plus depuis plus d'une décade. Est-il utile de dire que le compilateur GCC ne se laissera pas berner ? Alors pour ceux encore à la traîne, il est vraiment temps de bouger.

Ainsi, la force de FB qui autorisait de vieux morceaux de code BASIC à fonctionner encore sur la plate-forme Macintosh est terminée. C'est un fait incontournable, et si vous n'avez pas suivi les conseils avisés des gourous de FB tout au long des années, attendez-vous à devoir consacrer du temps pour mettre vos applications en conformité et au goût du jour. Pour l'instant, le conseil que je donnerai de mon côté est de souscrire, si ce n'est déjà fait, à la liste de diffusion FutureBASIC chez associate.com. Vous y trouverez là non seulement des programmeurs prêts à vous aider, mais aussi les annonces concernant les dernières versions de FBtoC accompagnées de sa documentation et d'un lien de téléchargement qui vous permettra de pouvoir le tester.

Février 2007

DataBrowser For Dummies 3.1.1

Oops ! La plupart des exemples de la version française n'avaient pas été mis à jour et refusaient tout simplement de compiler. Désolé !

Vous pouvez télécharger DBFD ici

QuiXample 1.7.4

Cette release de maintenance corrige un bogue qui survenait dans les versions italienne et française et qui empêchait certains menus de fonctionner correctement. Le code a été très légèrement modifié, mais QuiXample a été compilé avec les fichiers headers les plus récents qui accompagnent la dernière version beta de FB.

Vous pouvez télécharger QuiXample ici

DataBrowser For Dummies 3.1

Le support de la molette de la souris, qui a été désactivé par inadvertance, a été réintroduit dans cette release.

Vous pouvez télécharger DBFD ici

Janvier 2007

Bonne Année à Tous !

Décembre 2006

QuiXample 1.7.3

De récentes modifications dans la librairie DataBrowser For Dummies que QuiXample utilise ont introduit un bug sévère qui provoquait un crash de l'application quand l'utilisateur cliquait sur certaines cases à cocher. Cette nouvelle version, compilée avec la dernière release de FB, devrait corriger ce problème.

Vous pouvez télécharger QuiXample ici

DataBrowser For Dummies 3.0

Malgré son numéro de version prétentieux, cette nouvelle release ne contient rien de nouveau, si ce n'est qu'elle est censée corriger un bug sérieux relatif à la gestion des CF strings.

Vous pouvez télécharger DBFD ici

Novembre 2006

FutureBASIC 4 Release 4 est maintenant disponible

Cette release de maintenance est proposée avec une offre spéciale de renouvellement pour les souscripteurs actuels. La nouveauté principale de FB4 R4 concerne son compilateur qui est plus rapide et plus petit et qui ne fonctionne que sous OS X. Il produit, presque à l'identique, le code PPC que la Release 3 générait. Il n'inclut plus dans les applications construites un certain nombre de ressources devenues obsolètes ['CODE', 'Tara', 'Gigi', 'Andy', 'Staz' 1997] . Son interface utilisateur a été légèrement remaniée pour autant que cela ait une importance.

Il y a de très petits changements dans l'Editeur : il utilise maintenant moins de temps CPU et a subi quelques légères modifications cosmétiques dans sa fenêtre de Préférences. Il y a un nouveau fichier header intitulé CFIndex.incl qui peut donner une nouvelle jeunesse à vos tableaux Index$. De nouvelles commandes ont été introduites pour la gestion des tableaux dynamiques : Def DynamicInsertItems, Def DynamicRemoveItems and Usr DynamicItemSize. (Voyez le manuel de Référence pour plus d'informations).

En savoir un peu plus à propos de cette release, ici.

Avril 2006

Un nouveau départ ?

Certains d'entre vous ont peut-être suivi la saga de FutureBASIC depuis le début de l'ère Macintosh, un record de longévité pour un environnement de développement sans équivalent sur cette plate-forme, à ma connaissance. Mais, nous le savons tous, les temps sont bien connus pour changer, et bien que FB soit toujours aussi adulé par ses aficionados -- parmi lesquels je me compte toujours -- je dois, à un niveau personnel, me libérer de cette addiction. Non, je n'abandonne pas le navire, mais pour être franc, depuis la disparition de Pix & Mix, j'ai simplement besoin de gagner ma vie, et c'est pourquoi je viens d'embarquer sur un autre bateau. Dès lors, il est clair que j'aurais moins de temps à consacrer à FB, ce qui ne m'empêche pas de continuer le travail de traduction pour les francophones, d'ailleurs je reste officiellement en charge du master de l'édition européenne du CD et j'essaierai de garder ce site à jour du mieux que je pourrai (voyez, j'ai même devancé Staz Software dans la publication des nouvelles caractéristiques de la dernière release).

La chose amusante est que je me suis impliqué dans le projet mogWerks, qui est en fait une toute nouvelle société de développement pour le Web fondée par un autre programmeur FB que j'ai connu dans les années 2000 grâce à la liste de diffusion FutureBASIC à associate.com. Certains d'entre vous le connaissent déjà pour ces dons de programmeur ou alors sans le savoir parce que c'est aussi lui qui a relooké ce site il y a un moment déjà. Jonathan (alias the gnome) pendant de nombreuses années a été une des figures éminentes de la communauté FB.

mogWerks a très peu de choses à voir avec FB, si tant est qu'il y en ait, en conséquence je vais devoir gérer les tâches relatives à FutureBASIC dans mon temps libre, aussi ne vous attendez pas à recevoir une réponse immédiate quand vous m'enverrez un e-mail, et pour ceux qui ont pris l'habitude de me joindre par téléphone, je leur demanderai d'être indulgents si je dois écourter nos conversations.

Si vous êtes curieux de savoir ce que propose notre nouvelle société, allez visiter notre site commercial à : mogwerks.com, mais en tant que programmeur, vous serez probablement plus intéressé par l'autre site Web que nous avons monté pour tous nos projets Open Source à : mogwerks.net. Ai-je besoin de vous dire que votre soutien est le bienvenu ?

Enfin, je ne voudrais pas terminer sans des remerciements très spéciaux, mais je suis embarrassé parce que je ne trouve pas de mots assez forts pour exprimer ma gratitude à l'égard de Michele Neri (alias Mich the Great), le traducteur italien de FB. Tout au long de ces dernières années il m'a apporté un incroyable soutien, une aide précieuse et aussi mais surtout il a fourni un travail phénoménal sans jamais, ne serait-ce qu'une misérable fois, demander quelque chose en contrepartie. Ma dette envers lui est incommensurable. Et dire que nous ne nous sommes jamais rencontrés dans la vie réelle ! J'ai comme le sentiment parfois de passer à côté d'un être humain rare. Mais l'aventure avec lui ne s'arrête pas non plus aujourd'hui, puisque Michele s'est proposé tout récemment de nous rejoindre sur notre premier projet Open Source. Au moins, l'esprit FB restera bien vivant dans cette nouvelle aventure.


FutureBASIC 4 Release 3 est sorti !

Malgré les blessures infligées par l'ouragan Katrina, blessures qui sont loin d'être pansées (si elles peuvent jamais l'être), nous sommes heureux d'annoncer la sortie de la Release 3 de FutureBASIC 4. Après une si longue attente, il nous faut tout de même féliciter Chris Stasny pour avoir gardé le cap et nous offrir aujourd'hui une version améliorée de notre environnement préféré. Pour prendre connaissance de la liste détaillée des changements, réparations de bugs et autres nouveautés, vous pouvez suivre ce lien.

Vous pouvez d'ores et déjà passer votre commande pour une toute nouvelle souscription ou pour le renouvellement de votre licence sur le site de Staz Software. Si vous souhaitez le CD européen (sans frais supplémentaire), rappelez-vous de le spécifier dans le champ Comments du formulaire de commande.

Qu'en est-il du futur de FutureBASIC ?

C'est ce que Herbie Gluender explore dans un court article qu'il nous a donné le droit de rediffuser ici.

"Actuellement, nous vivons une nième transition d'Apple qui abandonne l'architecture PowerPC pour aller vers le matériel équipé Intel. Une transition équivalente doit s'opérer au niveau logiciel. De fait, les utilisateurs de l'IDE FutureBASIC pourraient se demander tout ce que cela signifie pour leurs applications déjà existantes ou bien celles, dans leurs cartons, qui sont encore à venir. Bien qu'aucune spéculation ne puisse être encore faite en ce qui concerne les futures versions de l'IDE FutureBASIC, on peut déjà présenter des considérations générales sur ce qui doit être réalisé par les concepteurs de FB, et à leur suite, par tous les programmeurs FB". Continuer la lecture...

QuiXample 1.7.2

Rien de bien extraordinaire dans cette version. QuiXample utilise maintenant les CF Preferences.

Téléchargement ici

Février 2006

QuiXample 1.7.1

Suite à de nombreuses demandes, j'ai implémenté une nouvelle fonctionnalité qui permet de faire une recherche dans la documentation FutureBASIC avec QuiXample. La recherche est effectuée sur les mots-clés du langage uniquement, mais vous pouvez utiliser une partie de mot comme critère de recherche. Après quoi, vous pouvez ouvrir la documentation FB dans votre navigateur Web.

Il vous est possible maintenant d'étiqueter des fichier pour vous aider à trier la liste des résultats de vos recherches. Enfin, deux bugs sérieux ont été corrigés. Ouvrez le fichier lisez-moi pour plus d'informations.

Vous pouvez télécharger QuiXample ici


Mise à jour :
Septembre 2015

FB4 Release 4
FB4 Release 3
FB4 Release 2
FB4 Release 1
FB3 Release 7
FB3 Release 6
FB3 Release 5
FB3 Release 4
FB3 Release 3
FB3 Release 2
FB3 Release 1

Manuel de Référence
Binaires Universels ?
Du Côté de Carbon
Portage vers Carbon

Le Petit Livre

De l'Autre Côté de l'Atlantique
Mac OSMac OS X  
  © 2000 Pix&Mix  
  Tous droits réservés

  FutureBASIC est une marque déposée appartenant à Staz Software, Inc et utilisée avec permission.