[FR] [EN]
  [INFO] [ACQUISIRE] [MAPPA] [RISORSE]
Editor
Il più veloce compilatore BASIC per Mac
by
Staz Software, Inc

Caratteristiche
New FB 5 package
  • Freeware package
  • Revised Editor (Universal binaries)
  • Integrated C translator
  • GCC or clang compiler
  • Improved Project Manager
  • Enhanced new header files
  • Streamlined runtime
  • New documentation (in progress)
  • Hundreds of examples
  • Carbon compilation
Old FB 4 package
  • Freeware package
  • Editor con supporto di plug-in
  • Compilatore super veloce
  • Project Manager
  • Debugger
  • Profiler
  • Program Generator (strumento CASE per PPC & 68K)
  • .nib's I.B. files support via programming
  • Ricca documentazione
  • Numerosi esempi
  • Runtime Open Source:
    • Console
    • BASIC Standard
    • Appearance
    • Toolbox
    • BASIC-88
  • Compilazione Carbon
  • Assembler in linea PPC & 68K
  • Accesso al Toolbox e alle librerie condivise
  • Applicazione min: 28 Kbyte
  • Applicazione max: 2 Gbyte
  • System min: Mac OS 7.6 per FB^3
  • System min: OS X 10.2 per FB4

European Edition:
  • No more specific European edition
  • Localisation is open to anyone

Sito Web gestito da e


Friendly links:

NOVITÀ INTERNAZIONALI
Facrescere le tue idee
Download for free
New FutureBASIC & FBtoC at www.4toc.com/fb/
Old FutureBASIC at Staz Software web site

September 2012

Sad news

Although I never met Robert Purves in real life, his disappearance last July has deeply affected me. As you may know, Robert was the leader of the FB team. He was a well of knowledge in many areas and, for us, a master in programming. More than that, I often believed he knew FutureBASIC's inner intricacies much better than its creators.

After the retirement of Andy Gariepy, followed later by Chris Stasny, that is to say the original creators of FB, Robert took the helm of the vacillating boat. Whether they are aware of it or not, all FB users owe him the fact that they can still program with FB.

Although Robert lived in New-Zealand, I worked from a distance with him many times, especially during the development of the IDE, and I could appreciate the man and the scientist that he was. He was considerate, always responsive and ready to help. I was constantly stunned, not only by his amazing knowledge, but also by his willingness to help others succeed in their endeavors.

The death of Robert Purves has left me speechless for some time and I'm still considering even right now whether to stop everything related to FB and leave this site to slowly return to dust. In any case, I was only publishing the announcements of new releases of the software with no real personal contributions. While the FB team carry on the job, I guess nobody will miss anything with such poor updates on this site.

Wherever Robert's mind might be, I wish he has found peace. I thank you sir, for all you have done for us.

While I send my thoughts to his relatives, I will leave it to Ted Spencer to say the last strong words of truth. Ted from Canada wrote the following in the FB mailing-list:

"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."


May 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/
March 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

Notes:
* 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/
January 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

Note:
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/
November 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
Util_Containers.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/CFURLEnumerator
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 )
  beep
else
  stop
end if

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


Downloading here: 4toc.com/fb4/
September 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/
August 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/
April 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/Cocoa/NoNib_FBtoCocoa
FB_5_5_1_Examples/Cocoa/NSTableView_FBtoCocoa
FB_5_5_1_Examples/Controls/bmpImage_btn/
FB_5_5_1_Examples/Controls/HICustomView
FB_5_5_1_Examples/Controls/ThumbnailButton/
FB_5_5_1_Examples/Games/Connect4
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 ::

FB_5_5_1_Examples/Games/Spandrel_1_4/

Downloading here: 4toc.com/fb4/
January 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/Cocoa/DotView_FBtoCocoa
FB_5_5_Examples/Cocoa/GaussianBlur_demo
FB_5_5_Examples/Cocoa/SndPlayer_FBCocoa
FB_5_5_Examples/Controls/HISegmentedView
FB_5_5_Examples/Graphics/CoreGraphics (Quartz)/HIImageView_swipe
FB_5_5_Examples/Text/Programmatic HITextView

:: Updated example ::

FB_5_4_9_Examples/Games/Spandrel_1_3

Downloading here: 4toc.com/fb4/
November 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 ::

FB_5_4_7_Examples/Sound/Record_sound_with_QuickTime

[*] : 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/
October 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 ::

Util_NibCFStrings.incl

:: New examples ::

FB_5_4_7_Examples/Sound/Record_sound_with_QuickTime

:: 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/
July 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/CustomShapedControl
FB_5_4_6_Examples/Controls/CustomDrawnControl (Quartz)
FB_5_4_6_Examples/CoreFoundation/PrintCFString
FB_5_4_6_Examples/Files/FileObjectPermissions

:: Updated examples ::

FB_5_4_6_Examples/AppleScript/LaunchMailPressSendII
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/
April 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/Miscellaneous/DateExample
FB_5_4_5_Examples/CFPrefs Demos/CF string version/Prefs w/Nib & CE
FB_5_4_5_Examples/CoreFoundation/CFAdditions
FB_5_4_5_Examples/Games/Spandrel 1.0 (chess) [replaces RChess 3]

Downloading here: 4toc.com/fb4/
February 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/Miscellaneous/DateExample
FB_5_4_4_Examples/Miscellaneous/DockTileBadge
FB_5_4_4_Examples/Files/EnumerateDirectory
FB_5_4_4_Examples/Files/Alias demo
FB_5_4_4_Examples/Text/CFAdditions
FB_5_4_4_Examples/Text/CFAdditions/CFScanner

:: 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/
December 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 ::

FB_5_4_3_Examples > CarbonEvents > EventMonitorTarget
FB_5_4_3_Examples > Games > RChess_3.0a2


Downloading here: 4toc.com/fb4/
November 2009

FB 5.4.2 & FBtoC 1.4.2 released

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

:: Editor
::

Unchanged


:: 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


Downloading here: 4toc.com/fb4/
October 2009

FB 5.4.1 & FBtoC 1.4.1 released

Here is the entire announcement made by Robert Purves in the FB mailing list:

:: 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
FB_5_4_1_Examples > Graphics > CoreGraphics > CGGlyphs


Downloading here: 4toc.com/fb4/
September 2009

FB 5.4 released

Here is the entire announcement made by Robert Purves in the FB mailing list:

:: 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


Downloading here: 4toc.com/fb4/
July 2009

FB 5.3 and FBToC 1.3 released

At the end of July, the FB team has released FutureBASIC 5.3 that features a new editor application running natively on Intel. Since it is based on the original editor' source code that was streamlined and enhanced in the process, FB old timers will feel comfortable with this fresh new version.

Here is the announcement by 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 ::

Util_CFUN.incl  
Util_Nib.incl


:: 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 ::

CFGregorianDateIsValid()  
CFGregorianDateGetAbsoluteTime()  
CFAbsoluteTimeGetGregorianDate()  
CFAbsoluteTimeAddGregorianUnits()  
CFAbsoluteTimeGetDifferenceAsGregorianUnits()

Downloading here: 4toc.com/fb4/


April 2009

FB is still alive and well

In spite of the extremely scarse updates of this very site, the FB team is still doing a hard job improving both the FB Editor and the FBtoC application. So instead of writing a long note by myself, here are the announcements for each new release (from the most recent to the oldest) that Robert Purves published in the FB mailing list and that I failed to report on this page:


March 2009, 21: FutureBasic 5.1.5 and 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 ::

FB_5_1_5_Examples > Text > HITextView+FontPanel > HITextView

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:
/private/var/folders/88/88AKX+F62RWmd++8ZOxBkU+++TI/TemporaryItems.


February 2009, 16: FutureBasic 5.1.4 and 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:
HIViewFindByID()
HIViewSetID() // rarely used
CreateMouseTrackingRegion()
HIViewNewTrackingArea()
HIViewChangeFeatures()
// 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


January 2009, 9: FutureBasic 5.1.3 and 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 ::

CGDataProvider.incl
CGError.incl
CGFont.incl
CGGradient.incl
CGPath.incl
CGPDFArray.incl
CGPDFDictionary.incl
CGPDFDocument.incl
CGPDFObject.incl
CGPDFPage.incl
CGPDFStream.incl
CGPDFString.incl


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


November 2008, 17: FutureBasic 5.1.2 and 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
do
  fn PollForSomething
  HandleEvents
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'


October 2008, 20: FutureBasic 5.1.1 and 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


September 2008, 24: FutureBasic 5.1 and 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


September 2008, 12: FutureBasic 5 and 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

Downloading here: 4toc.com/fb4/


September 2008

FutureBASIC 5 is out!

FutureBASIC 5.0 has been released along with FBtoC 1.1.3 (US version only). But what's that?

FB5 is merely the FutureBASIC Editor tweaked to work with FBtoC only. It doesn't rely anymore on Andy Gariepy's FB Compiler to produce applications, therefore some options have disappeared from its menus and the Extensions folder has been discarded eliminating in the process the discrepancies between the Headers folder used by the FB Compiler and the Headers folder dedicated to FBtoC.

At this time, FB5 is still a PPC application. It might become a Universal binaries in the near future. Furthermore, the GCC compiler's preferences must be set up within the FBtoC application, this might also change in the coming months to mimic the FB4 behavior coupled with the old FB Compiler.

For those who need to maintain old big applications or to support old Apple's computers and systems (68k, PPC, Carbon Classic/OS X, system 9.2) FB4 is still available and up to the task.

Downloading here: 4toc.com/fb4/


March 2008

Little progress

For the French speaking visitors lost on this page, they should know that FutureBASIC 4 Release 4.4.2 along with FBtoC are available now in French at: 4toc.com/fb4/. This new release has been updated to offer a smoothier transition to FBtoC. The localized package weighing 50Mb is stuffed in a single archive containing the manuals and the example files . FBtoC must be downloaded separately.


February 2008

Speaking of which

As expected, the recent announcement made by Staz Software has induced a surge in activity among the FB programmers, newcomers and oldtimers alike. This is a positive sign. Now we must hope that this excitement will spread and last over time.

As a consequence, I have started to receive e-mails asking for technical support from around the world and while I appreciate the confidence, I must remind my correspondents that FutureBASIC is now a hobby as far as I'm concerned. I'm no longer officially in charge of the technical support. Said otherwise, I can only reply when time permits. Let me add that English is not my native tongue, therefore it takes much more of my time to come up with a decent reply in this language. So, for a better support you should subscribe without reticence to the official FB mailing list at associate.com. This is clearly the hot place for FB programmers nowadays.

In a recent contribution, I wrote that MacWise by Carnation Software had been compiled as a Universal application using FBtoC. This was wrong. I must apologize now for the false statement I made. Actually, the updated application was released to run smoothly under Leopard, which is not the same thing at all. However, my statement was just a bit premature because today it's OK.

Lately, I've been working on the French version of FBtoC in collaboration with the FBtoC team and this was the opportunity for them to implement a new feature that will ease the localization of your own created applications. Stay tuned.

Note that the French versions of FB and FBtoC although ready for prime time are not yet available for download. I will seek an arrangement with Staz Software in the shortest delays. I have no insight regarding the Italian version, all I know is that Michele Neri is working hard on the FBtoC application itself at this time. At last, if you are interested in localizing FB in your own language (other than English, Italian, Japanese and French, that is), you might get in touch with the FBtoC team via the FB mailing list as it seems there is no contact form on their web site.


January 2008

A word of caution

Some programmers (myself included) have been using the DataBrowser For Dummies library in their applications, but while I am honoured by that fact, I have to say now that this is not a really good news. At first this library was intended for the learning of the DataBrowser control, which is a very rich puppy in Apple's bestiary and therefore a bit hard to fathom on first approach. However, that library is shamelessly reaping advantage from the weak typing of the FB language, furthermore the underlying mechanism to achieve the desired simplicity for the end-user (in that case, you as the programmer) is somewhat intricated, not to say convoluted.

Now, the problem is that this way of coding is totally unfit for the compilation with GCC through FBtoC, and worst, it cannot even be tweaked to get it up to the task of becoming universal binary. There's only one alternative for those of you who already use the DBFD library: code rewriting to implement the DataBrowser in your applications, if you want them to run natively on Intel Macintosh. Not really cool.

That being said, the code and functions in DBFD could serve as a template to start the necessary job of adaptation for your specific needs. You might also prefer to start with the DataBrowser example by Bernie Wylde that comes along with the FBtoC package.

FB freeware: bad news or good news?

Some of you have raised the question of the significance of FutureBASIC going freeware. Is this a good thing or a bad thing?

Quite frankly, I have no insight as to where Staz Software is going, and it has been a while since I spoke to Chris Stasny privately, but I don't think it is really a good news for him in spite of the fact that it will relieve him of a heavy burden. Furthermore, I suspect that hurricane Katrina played a significant part in his decision. Following the disaster we have all noticed the slowdown in the frequency of new releases and major upgrades, a slowdown that has come close to an halt, in fact. Sad. Whatever the true reasons may be, we owe Chris a big thank you for his relentless support during the past two decades. Personally, I can't find the words to express my immense gratitude.

Anyway, according to his last contribution on his Web site, this is not the end for FutureBASIC. On the contrary, it may well be a new start. First, I believe that spreading this recent news about the fresh status of FutureBASIC can bring back some of the old customers who were reluctant to pay their annual fee for an update of their IDE. Secondly, now nothing can stop new users from getting on board. Better late than never. The latest point being the most important, as I see it, guaranteeing a healthy survival of our favourite IDE.

While the FB community was probably the most friendly around the Web that one could hope for, it was more like joining a little tribe, a survival of the past, isolated from the general programmer community at large. The current paradigm shift might give a nudge in the right direction. FB is on the verge of becoming an open source project. If this is not the key for success per se, at least, this should increase the odds to see FB still well alive in the years to come.

For the moment, we can count on the small team that has been tackling the heavy job for Staz Software for the last two years. Today, we can benefit from their work with the first official release of FBtoC, but they still have plans for the future: they have yet to convert the FB editor to a Universal Application, and, more importantly, they have to integrate FBtoC with the FB Editor, making FB programming for Intel Macs a seamless experience.

In short, it is a bit early to decide whether we are dealing with good news or bad news on this matter. At this very moment, only time will tell.

Santa Claus is alive

Yesterday I posted an update to wish everybody a Happy New Year. Today I'm at it again to report the latest good news. Yesterday, FutureBASIC became freeware. That means that anyone can now download it and use it for free. So, if you don't own the latest release, it's time for you to visit Staz Software web site.

Here is Staz' announcement:

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.

Happy New Year!

As a matter of fact, the FB front has been very quiet the past year: no big announcements, no major releases. This is not saying that nothing has happened during that time, but what the FB community is awaiting eagerly now is the next big step regarding programming with FutureBASIC that could guarantee its survival.

The good news is that it's coming. Some time ago, a small team, led by Robert Purves, started to work on a new tool designed to produce Universal Binaries and generate applications running natively on Intel Macs. This project is now well advanced, up to the point that we can expect its first release in the very near future.

Of course, no date has been proposed yet, but a few beta testers have already reported that they have successfully compiled some of their applications, even commercial ones. For instance, MacWise, is now available with Intel compatibility. This is quite encouraging.

The tool called (for the moment) FBtoC, reads FB native projects and, as its name implies, converts the code into C, to ask the GCC compiler (available on the Developer CD of all Mac OS X System disks) to generate the resulting application. The process is straightforward, at least on paper, and ideally it should be transparent for the programmer.

Actually the things are not that simple, because the process bypasses entirely the FB compiler. That means that a lot of legacy code had to be cut out. Old Apple "technologies" like the archaic 'working directory reference number' for example, are no longer used, and forbidden in your code if you intent to target Intel Macs. For those of you who are still lagging behind, it is really time to move on.

So the strength of FB in that it allowed very old BASIC code to continue to run on Macintosh, is over. This is an inconvenient fact, and if you have not followed the advice of FB gurus, be prepared to spend some time rewriting your old applications. For now, the best advice I could give you on my end is to subscribe to the FB mailing list at associate.com. Not only will you find other programmers ready to help, but also the announcements for the latest versions of FBtoC with its documentation that you can download and test.


Febbraio 2007

QuiXample 1.7.4

This maintenance release corrects a bug occurring in the Italian and French versions which prevented a few menus from acting properly. The code has been very slightly edited but has been compiled using the most recent FB headers coming from the latest beta version of FB.

You can download QuiXample here

DataBrowser For Dummies 3.1

Mousewheel support, which was inadvertantly disabled, has been restaured in this release.

You can download DBFD here


Gennaio 2007

Buon Anno Nuovo a tutti!

Dicembre 2006

QuiXample 1.7.3

Recent changes in the DataBrowser For Dummies library that QuiXample uses, introduced a severe bug that caused the application to crash while the user was toying with checkboxes. This new version, built with the latest release of FB, should fix the problem.

You can download QuiXample here

DataBrowser For Dummies 3.0

In spite of its pompous new version number, there is nothing new in this release, except that a nasty bug related to the handling of CF strings is supposed to be squashed by now.

You can download DBFD here


Noviembre 2006

E' arrivato FutureBASIC 4 Release 4

Questo rilascio di aggiornamento arriva con una speciale offerta di rinnovo per gli attuali sottoscrittori. La principale caratteristica di FB4 R4 è il suo nuovo compilatore che non è solo più veloce e snello ma ora è solo per OSX. Produce quasi esattamente lo stesso codice PPC della Release 3. Il Compilatore non aggiunge più risorse obsolete nelle vostre applicazioni ('CODE', 'Tara', 'Gigi', 'Andy', 'Staz' 1997). Anche l'interfaccia utente del Compilatore è stata aggiornata.

Ci sono piccoli cambiamenti nell'applicazione Editor: usa meno tempo CPU e presenta piccole modifiche estetiche in alcuni pannelli della finestra Preferenze. C'è un nuovo file header CFIndex.incl che può notevolmente velocizzare le vostre matrice Index$. Sono stati introdotti nuovi comandi per lavorare sulle matrici dinamiche: Def DynamicInsertItems, Def DynamicRemoveItems e Usr DynamicItemSize. (vedere il manuale Riferimento per i dettagli).

A bit more about this release here.


April 2006

A new flame

Many of you have been following FutureBASIC's adventure since the dawn of Macdom, record longevity for an IDE on this platform bar none. But times are a-changing and while FB is still full of ass-kicking goodness for the aficionados -- from where I'm sitting, at any rate -- I, on a personal level, also have to do other things with my life. In no way I am abandoning ship, but I'll be honest by saying that after the disappearance of Pix & Mix, I simply have to earn a living, and that is why I am also tying my bootstraps to another boat. This will clearly mean that I will be less present on the FB front, even though I still plan to continue the translations for the French-speaking programmers. I am also still officially in charge of the master of the Euro CD, and I'll try to keep this site up to date as much as I can (hey, look at that, I'm even ahead of Staz Software in the publication of the new features in the next release).

The funny thing is that I'm now involved in the mogWerks project, actually a brand new company for Web development that has been settled by another FB-er whom I met around year 2000 thank to the FutureBASIC mailing list at associate.com and whom you know perhaps for his programming skills with FB or without your knowledge because that's him who designed the euro.futurebasic site eons ago. Jonathan (a.k.a. the gnome) for many years was a great figure in the FB community.

mogWerks has little things to do with FB, if at all, therefore be aware that I will handle all the tasks related to FutureBASIC in my spare time, so you should not expect an immediate answer to your e-mails and for those who are used to calling me on the phone, I'll ask them to be indulgent if I need to shorten our conversations.

If you are curious about our new company, come to visit our commercial Web site at: mogwerks.com, but as programmers, you will be probably more interested in the other Web site we have put together which is dedicated to our Open Source projects at: mogwerks.net. Do I need to say your support is welcome?

Last of all, I would like to finish with special thanks -- but I'm embarrassed, lacking the words, both in English and in French that can sincerely indicate the depth of these thanks -- to Michele Neri (a.k.a. Mich the Great) the Italian localiser of FB for his incredible volunteering work, help and support for all these years. I even believe that we have never met each other IRL, how come? I think I'm really missing a rare human being. And now Michele has just offered to join us in our first Open Source project. At least, it seems the FB spirit is alive and well in this new endeavour, isn't it?

FutureBASIC 4 Release 3 is out!

In spite of the battering inflicted by Hurricane Katrina -- the traces of which will still take many years to clear, if they ever do -- we are glad to announce that FutureBASIC 4 Release 3 is ready for shipping. While this release was long overdue, we must congratulate Chris Stasny for having stayed the course and providing us with a new, enhanced version of our favorite IDE. For a detailed list of changes, bug fixes and new features, please follow this link.

Go to the Staz Software site to place orders for new subscriptions, or renew an existing one. If you want the European CD (at no additional charge), remember to note this in the Comments field of the order form.


Now that Apple is going Intel, what's the future for FutureBASIC?

This is what Herbie Gluender is exploring in a short article which he gave us the right to reprint here.

"We are currently experiencing Apple’s transition from the PowerPC- to the Intel-based hardware accompanied by a corresponding software transition. Hence, users of the FB IDE might also ask what this transition means for their existing, and future, code and applications? Although specific statements about future versions of the FB IDE can’t be made yet, this document will cover general considerations of what needs to be done by the makers of the FB IDE and, by consequence, by FB coders."
Read more...


QuiXample 1.7.2

Nothing really fancy here, this new version makes use of CF Preferences.

You can download the package here


Febbraio 2006

QuiXample 1.7.1

Following an overwhelming demand, I have implemented a new feature that allows to search the FB documentation with QuiXample. The search is performed in the language keywords only, but you can use a partial term to retrieve the keywords of interest. From there, the FB documentation can be opened in your favorite Web browser.

You can now also label files to help you sort the results. At last a couple of serious bugs have been squashed. Please, have a look at the readme file.

You can download the package here

Ultimo aggiornamento:
Settembre 2012
Ref:

Storia
FB4 Versione 4
FB4 Versione 3
FB4 Versione 2
FB4 Versione 1
FB3 Versione 7
FB3 Versione 6
FB3 Versione 5
FB3 Versione 4
FB3 Versione 3
FB3 Versione 2
FB3 Versione 1

Articoli
Universal Binaries?
The Carbon Corner
Porting FB Code to Carbon
Dall'altra parte dell'Atlantico
Mac OS X
 
  © 2000 Pix&Mix
  Tutti i diritti riservati
INFO  |  ACQUISIRE |  MAPPA  |  RISORSE

  FutureBASIC è un marchio registrato di Staz Software, Inc ed è usato previa autorizzazione.