Pure Basic : optimized basic compiler
Deutsch  
Francais  
Introduction visual basic compiler News visual basic compiler Download visual basic compiler Screenshots optimized programming language Ordering visual basic compiler Support visual basic compiler FAQ optimized programming language Links

15th April 2007


PureBasic V4.00 (Linux)

As PureBasic 4 is a quite big release in both terms of changes and enhancements, a document which sum up all the modifications about the libraries commands since the last stable release is available: click here.

- Added: Native unicode support
- Added: Subsystems support
- Added: Unlimited length strings in both ascii and unicode mode
- Added: Thread safe commandset and strings
- Added: Character type (.c)
- Added: Double type (.d)
- Added: Quad type (.q)
- Added: 'XOr' and 'Not' logicals operators
- Added: Fixed string type (String${#Number})
- Added: Macro/EndMacro - single and complex mode
- Added: With/EndWith for cleaner code
- Added: Assign possibility to Static (quite important), Protected and Global: "Global a = 5"
- Added: It's now possible to create a linkedlist of pointer
- Added: Support for Global, Protected, Static and Shared arrays and linkedlist: "Global NewList MyList.l()". NewList alone does not make the list global anymore
- Added: #PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Version, #PB_Compiler_Home, #PB_Compiler_Debugger, #PB_Compiler_ThreadSafe, #PB_Compiler_Unicode
- Added: CompilerError "Message" directive
- Added: @Procedure() and ?Label support in Data.l directive
- Added: optional parameters for procedures, interfaces methods, and prototypes
- Added: /CONSTANT Test=Value switch to declare constants on the compiler line
- Added: Swap keyword to quickly swap 2 variables or elements (Swap a,b).
- Added: multiple 'Case' for Select/EndSelect: Case 1, 2, 6 To 20
- Added: 'Prototype' keyword to declare functions pointers easily
- Added: 'ProcedureC' keyword to declare cdecl procedure easily
- Added: Procedure parameters can now have the same name than a global variable (automatically protected)
- Added: EnableExplicit/DisableExplicit: variables must be declared with Define, Global, Protected, Shared or Static.
- Added: Defined(Name, Type) compiler function. Type can be #PB_Constant, #PB_Variable, #PB_Array, #PB_LinkedList, #PB_Structure, #PB_Interface
- Added: ReDim for single and multi-dimensionned arrays
- Added: Import/ImportC/EndImport to import functions and variables from external .lib
- Added: LinkedList and Arrays can now be passed as procedure parameters
- Added: PseudoTypes: p-ascii, p-unicode, and p-utf8
- Added: Assembler and Linker errors for CLI compiler are now directly displayed
- Added: OpenGL subsystem for multimedia applications
- Added: full alphachannel support for Sprite3D library (trough PNG and TIFF)
- Added: Subsystem() compiler directive to check if a subsystem is in use
- Added: exponent form for constant float: 123.5e-20
- Added: local variables aliases are generated when using '!' raw assembly to ease their referencing (in form p.v_variable)
- Added: 'Step over' and 'Step out' features to the debugger
- Added: Process library
- Added: Shared objects (.so) creation

- Updated: Resident files now supports quad, double, macros and prototypes
- Updated: Many library commands
- Updated: OGRE engine to 1.0.7 version
- Updated: The french documentation has been greatly enhanced

- Optimized: Faster float and litteral numeric mixing
- Optimized: File library completely rewritten and now handle a read/write cache for very fast performances
- Optimized: Procedures are now as small as possible, which should give some speed increase

- Changed: When a numeric parameter is expected, it's not possible to pass a string anymore
- Changed: 'DefType' renamed to 'Define'

- Fixed: Internal system functions no more trash reserved registers
- Fixed: A lot of small/medium issues which have arosen since the last version

  Copyright © 2017 Fantaisie Software support@purebasic.com  


By the same author, discover the new web client-side programming language
based on established BASIC rules on spiderbasic.com