PureBasic 4.40 Beta1 released!

Developed or developing a new product in PureBasic? Tell the world about it.
freak
PureBasic Team
PureBasic Team
Posts: 5940
Joined: Fri Apr 25, 2003 5:21 pm
Location: Germany

PureBasic 4.40 Beta1 released!

Post by freak »

Hey there,

The wait is finally over. The first beta of our brand new v4.40 release hits the public. It brings exciting new features in all areas:
  • On the compiler side there is the new 'Threaded' scope keyword to create thread-local variables and the new '.a' and '.u' native types for unsigned byte/word.
  • On the Library side there is the new 'Map' library to have easy hash-maps, and a completly rewritten 2DDrawing library with Sprite/ScreenOutput() even for OpenGl (slow though) and cool alpha-channel and gradient support for ImageOutput().
  • And finally, the IDE gets a much improved AutoComplete and Project management!
  • Not to forget, there is also a brand new x64 Version for Linux available!
You can find the new version on your download account on http://www.purebasic.com/
To better explain the new features, we put together some examples which can be found here: http://www.purebasic.com/beta/v440_examples.zip

Now it is up to you to help us make this new version as solid as possible. Please report any problems you have with this new version in our bug forums. Especially the Linux x64 version needs much testing as it is brand new, and the IDE because of the massive changes that were needed for the Project management.

Here is the full changelog:

Code: Select all

- Added: Linux x64
- Added: Map Library for hash tables
- Added: 'Threaded' Keyword for thread-local variables
- Added: Structure assignment copies the structure (a.point = b.point)
- Added: ClearStructure(*Pointer, Structure)
- Added: AES to cipher library: AESEncoder(), AESDecoder(), StartAESCipher(), AddCipherBuffer(), FinishCipher()
- Added: Dylib for OS X
- Added: Trim/LTrim/RTrim() got an optional character to trim
- Added: Added #PB_Function, #PB_OSFunction, #PB_Map to Defined()
- Added: ReverseString(String$), InsertString(String$, StringToInsert$, Position), RemoveString(String$, RemoveString$ [, Mode [, StartPosition [, NbOccurences]]])
- Added: Add blob support to databases
- Added: Added peephole optimizer to 64 bit versions to produce better code
- Added: '.a' (ascii) and '.u' (unicode) native type to provide native unsigned byte and word.
- Added: FileBuffersSize(#PB_Default, ...): #PB_Default support change the buffersize to the next opened files
- Added: #PB_URL_Protocol to Get/SetURLPart()
- Added: #PB_Shadow_TextureAdditive
- Added: FTPDirectoryEntryRaw(), FillMemory(Memory, Value, Size [, Type])
- Added: Global, Protected, Threaded, Shared and Static now accept a type to affect all default variable declaration.

- Added: AddWindowTimer(), RemoveWindowTimer(), #PB_Event_Timer, EventTimer()
- Added: #PB_Window_Tool - create tool windows
- Added: StatusBarProgress()
- Added: StatusBarImage() - now supports normal images (not just icons)
- Added: #PB_Checkbox_ThreeState flag to create a 3 state checkbox (state values: #PB_CheckBox_Checked, #PB_CheckBox_Unchecked, #PB_CheckBox_Inbetween)
- Added: ShortcutGadget()

- Added: CreateImageMenu(), CreatePopupImageMenu() for OSX
- Added: Full alphachannel support for all GUI elements that display images 
- Added: Full alphachannel support for Image lib 

- Added: New drawing modes for 2DDrawing in ImageOutput()
   - #PB_2DDrawing_AlphaBlend
   - #PB_2DDrawing_AlphaClip
   - #PB_2DDrawing_AlphaChannel
   - #PB_2DDrawing_Gradient

- Added: LinearGradient(), BoxedGradient(), CircularGradient(), EllipsicalGradient(), ConicalGradient(), 

CurtomGradient()
- Added: GradientColor(), ResetGradientColors()
- Added: DrawAlphaImage() for all outputs on all OS
- Added: DrawAlphaImage() has a new transparency parameter and can be used to draw non-alpha images part transparent

- Added: QuickDraw subsystem for WindowOutput() on OSX
- Added: Sprite/ScreenOutput for OpenGL (all OS)
- Added: DrawingFont() works for SDL output!
- Added: OutputWidth(), OutputHeight(), OutputDepth() for 2DDrawing
- Added: GrabDrawingImage(), DrawRotatedText()
- Added: RGBA(), Alpha()

- Added #PB_PixelFormat_ReversedY - for pixel buffers that are stored upside-down (Windows ImageOutput or OpenGl)
- Removed: #PB_Image_DisplayFormat is now deprecated (value set to 32 to have 32bit as default)

- Added: #PB_OS_Windows_7 for OSVersion()

- Updated: OGRE to 1.6.2, sqlite 3.6.14.2, PCRE to 7.9

- Changed: Call(C)Function(Fast) parameters have been changed from 'Any' to 'Integer'.
- Fixed: Image Decoders are now threadsafe

PureBasic IDE:
- Added: Highlight matching keyword for keyword under cursor (tied to BraceMatching color setting) 
- Added: Edit->Goto matching keyword
- Added: PB_TOOL_Preferences Environment variable for IDE tools
- Added: Theme management to customize menu icons
- Added: New 'Silk' theme based on the Iconsset by Mark James

- Added: Autocomplete scans implicit variable declaration and respects scope
- Added: Structure item autocomplete

- Added: Project Management:
      - Autocomplete for all files within a project (even if not opened)
      - Multiple compiler settings for different compile targets
      - Compile all compile targets at once
      - Per-Project list of last opened files
      - Project ToolsPanel tool for fast access to the project files

- Changed: moved encoding/newline setting from compiler options to file menu


Debugger:
- Improved: greatly improved VariableViewer update speeds
- Added: progressbar display if VariableViewer update takes long
- Added: column sort capability to VariableViewer (Windows Only)
If you are wondering where the parallel optimized sort functions are that i talked about in the blog, unfortunately these did not make it into this version. There were some problems and unfinished things in them and there just was not enough time to finish it for this version. Don't worry though, it will be in the next one for sure :)

Have fun with this version!

The PureBasic Team
Last edited by freak on Tue Aug 18, 2009 12:05 am, edited 2 times in total.
quidquid Latine dictum sit altum videtur
cas
Enthusiast
Enthusiast
Posts: 597
Joined: Mon Nov 03, 2008 9:56 pm

Post by cas »

Woow, great...

My favourite new features:

Code: Select all

- Added: AddWindowTimer(), RemoveWindowTimer(), #PB_Event_Timer, EventTimer() 
- Added: AES to cipher library: AESEncoder(), AESDecoder(), StartAESCipher(), AddCipherBuffer(), FinishCipher() 
- Added: ClearStructure(*Pointer, Structure)
8)

Thanks.
User avatar
Demivec
Addict
Addict
Posts: 4257
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Post by Demivec »

Awesome! I'm jumping in to the new beta to test many of these features right away!

Thanks. :D
Niffo
Enthusiast
Enthusiast
Posts: 504
Joined: Tue Jan 31, 2006 9:43 am
Location: France

Post by Niffo »

Thank you very very very much for this new version ! All my dreams for PB are in the changelog and much more ... Thank you for the consideration about "Feature Requests and Wishlists" ! I'm going to test all that new fonctionalities :)

=> Paypal donation
Last edited by Niffo on Fri Aug 14, 2009 1:06 am, edited 1 time in total.
Niffo
User avatar
eddy
Addict
Addict
Posts: 1479
Joined: Mon May 26, 2003 3:07 pm
Location: Nantes

Post by eddy »

cool
Imagewin10 x64 5.72 | IDE | PB plugin | Tools | Sprite | JSON | visual tool
Inf0Byt3
PureBasic Fanatic
PureBasic Fanatic
Posts: 2236
Joined: Fri Dec 09, 2005 12:15 pm
Location: Elbonia

Post by Inf0Byt3 »

Thank you very much for all the hard work! The features in this version are astonishing, especially the project management and the AES lib :D.
None are more hopelessly enslaved than those who falsely believe they are free. (Goethe)
Intrigued
Enthusiast
Enthusiast
Posts: 501
Joined: Thu Jun 02, 2005 3:55 am
Location: U.S.A.

Post by Intrigued »

Great job PB team and thanks!
Intrigued - Registered PureBasic, lifetime updates user
User avatar
idle
Always Here
Always Here
Posts: 5834
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Post by idle »

Great stuff
WilliamL
Addict
Addict
Posts: 1252
Joined: Mon Aug 04, 2008 10:56 pm
Location: Seattle, USA

Post by WilliamL »

I'm really excited about the release of 4.40b1 with all the new commands. I'll being trying the new version on my Mac.

I've been using PureBasic now for about 2 years and I sent in $15 to show that I value the product. It isn't much considering the quality of the product and the free upgrades and accessible support (oh, and I like the forum too) but maybe others will follow my lead and it will amount to more.

Thanks Fred (and Timo too)
Last edited by WilliamL on Fri Aug 14, 2009 6:20 am, edited 3 times in total.
MacBook Pro-M1 (2021), Sequoia 15.4, PB 6.20
Amundo
Enthusiast
Enthusiast
Posts: 200
Joined: Thu Feb 16, 2006 1:41 am
Location: New Zealand

Post by Amundo »

Wow, thanks PB Team!!!!!!!!!!

CTRL-D to duplicate a line in the IDE!
Projects!
Keyword matching!
MAPS! (I don't really know how to use them, but they look useful)

Nice!
Win10, PB6.x, okayish CPU, onboard video card, fuzzy monitor (or is that my eyesight?)
"When the facts change, I change my mind" - John Maynard Keynes
User avatar
Blue
Addict
Addict
Posts: 964
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Post by Blue »

Many thanks, PB Guys.
Always pleasant to see new and improved things.
Now. let's find out which ones really hold their promises.... :lol: :lol:


@Amundo:
Amundo wrote:... CTRL-D to duplicate a line in the IDE!
:shock:
That key combination has been available (and operative) for a long, long time already !
What are you saying ?
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
User avatar
Randy
User
User
Posts: 29
Joined: Sat Sep 30, 2006 11:36 pm
Location: Atlanta, Georgia

Yes!!!

Post by Randy »

Wow, I love the additions and changes! I had just finished reinventing the wheel (although it was more of a hexagon shape than round but that's beside the point) with RTrim using pointers and what-not to strip off unwanted characters from the right and now it is native.

Maps... these have been something my latest project needed for two weeks and now they are alos native. And the IDE looks nice. So far, the beta hasn't broken any of my routines so that's a good sign. :)

Thanks again guys... Purebasic is the greatest!

[Edit] Structure copying is another nice feature. :)

I found a bug with the display. I added files to a project and then created it. The project screen displays regardless of the tab I choose although sometimes I can click in the middle of the screen and part of my source will show. Click on any tab and the project screen comes back.

Randy
Maybe it's just a bunch of stuff that happens -- Homer Simpson
eesau
Enthusiast
Enthusiast
Posts: 589
Joined: Fri Apr 27, 2007 12:38 pm
Location: Finland

Post by eesau »

All of this must have been really hard work, so a big thank you! Excellent work, as always.
User avatar
Vera
Addict
Addict
Posts: 858
Joined: Tue Aug 11, 2009 1:56 pm
Location: Essen (Germany)

Post by Vera »

Thanks for your continuously enthusiastic work :D

Though I won't be able to realy realize the changes now, I'm looking forward to the Project management which I've been missing ever since.

cheers ~ Vera
User avatar
Comtois
Addict
Addict
Posts: 1431
Joined: Tue Aug 19, 2003 11:36 am
Location: Doubs - France

Post by Comtois »

Just to let you know :

I created a project with about 20 files.
Initially all the options for the files were checked.

Then by making various changes in the options for some files (by checking or unchecking the option 'load file when opening the project), and also in the project options (When opening the project ...), and closing and opening the project at each change, after some manipulation of this kind (but impossible to remember in what order) the IDE crashed, i get an IMA.

Before submitting a bug report, I have to found how I got this crash.


Thank you for this new version, great job.
Please correct my english
http://purebasic.developpez.com/
Post Reply