Huge Easter Egg: PureBasic 3.90 just eclosed !

Developed or developing a new product in PureBasic? Tell the world about it.
Alberto
User
User
Posts: 25
Joined: Mon May 19, 2003 4:59 pm

Post by Alberto »

What a nice surprise!

Thank you to Fred and all of the PureBasic team.
No viruses found using "a squared" antivirus.

The continuous improvement in PureBasic always surprise me and the smartupdate (a great tool) is unuseful for me because I look every two/three days at www.purebasic/news to see if Fred has cooked something for me.
It's delicious to often look at this page. It's like a search for a particular girl thtat you hope to reencounter. When the news page tell me that a new release is downloadable is like I've found that girl.

Ciao
Alberto
spongehammer
User
User
Posts: 84
Joined: Sat Jul 19, 2003 6:45 pm
Location: UK

Post by spongehammer »

hehehehe
nicely put Alberto :D

chris
I looked up 'paranoid' in the dictionary this morning.
It said, 'what do you want to know that for?'
User avatar
NoahPhense
Addict
Addict
Posts: 1999
Joined: Thu Oct 16, 2003 8:30 pm
Location: North Florida

Re: Huge Easter Egg: PureBasic 3.90 just eclosed !

Post by NoahPhense »

Fred wrote:Hi folks !

Here we go, the final v3.90 is finally out and I must said it was a big work to finish all this while the sun shined in Paris ;). Thankfully, Berikco, Fr34k and Andre helped a lot to make it possible, so kudos to all of them !

Grab it while it's hot:

http://www.purebasic.com

Have fun,

Fred.

PS: time to sleep 8)
Thanks guys.. very sweet.. ok time to break it.. (jk)

Just incase anyone didn't know, Berikco's VD is already outdated. ;)

Be sure to get it from his site..

http://www.purebasic.be/download.htm

- np

ps - any ETA on a full download? Or can we install the demo, and replace
the datakey file.. ?
dige
Addict
Addict
Posts: 1391
Joined: Wed Apr 30, 2003 8:15 am
Location: Germany
Contact:

Post by dige »

After installing v3.90 and updating libs from purebasic.com/update ...
I'm still not able to compile my source. I have got this errors:

Code: Select all

gadgetextension: multiple definition of _PB_AddGadgetColumn_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ButtonImageGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ButtonImageGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ChangeListIconGadgetDisplay_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_CloseTreeGadgetNode_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ContainerGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ContainerGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_EditorGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_EditorGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_GadgetToolTip_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_HyperLinkGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_HyperLinkGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ImageGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ImageGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_IPAddressGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ListIconGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ListIconGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_OpenTreeGadgetNode_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_PanelGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ProgressBarGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ProgressBarGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollAreaGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollAreaGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollBarGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollBarGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_SpinGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_SplitterGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_SplitterGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TrackBarGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TrackBarGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TreeGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TreeGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_WebGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_WebGadget_DEBUG
first definition is in file linkedlistexten
Functions\Image .text: undefined reference to '_OleUninitialize@0'
Functions\Image .text: undefined reference to '_OleInitialize@4'
Functions\Image .text: undefined reference to '_CreateStreamOnHGlobal@12'
movie.obj .text: undefined reference to '_CoUninitialize@0'
Any suggestions?

cya dige
El_Choni
TailBite Expert
TailBite Expert
Posts: 1007
Joined: Fri Apr 25, 2003 6:09 pm
Location: Spain

Post by El_Choni »

This part is from the OLE lib (we talked about this, I still don't know what can be happening):

Code: Select all

Functions\Image .text: undefined reference to '_OleUninitialize@0'
Functions\Image .text: undefined reference to '_OleInitialize@4'
Functions\Image .text: undefined reference to '_CreateStreamOnHGlobal@12'
movie.obj .text: undefined reference to '_CoUninitialize@0'
El_Choni
Fred
Administrator
Administrator
Posts: 18162
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Post by Fred »

I don't know which the 'linkedlistextension' is linked to your exe. You may be use the SortList() command ? But this multiple definition is wierd, I will take a look tonight.
dige
Addict
Addict
Posts: 1391
Joined: Wed Apr 30, 2003 8:15 am
Location: Germany
Contact:

Post by dige »

The problem seems to be the movie-lib ...
I have about 5.000 lines of code and when I comment out all the movie
commands ... there are no more compiler errors. also no gadget errors ...
dige
Addict
Addict
Posts: 1391
Joined: Wed Apr 30, 2003 8:15 am
Location: Germany
Contact:

Post by dige »

Args :-( I have located the problem. It is the Setup - UserLib!
Sorry Fred for the inconvenience. I will tell shortly the problem to the author
of this lib.

regards,

dige
Karbon
PureBasic Expert
PureBasic Expert
Posts: 2010
Joined: Mon Jun 02, 2003 1:42 am
Location: Ashland, KY
Contact:

Post by Karbon »

What userlib? I'm having the same thing happen

Except I get :
multiple definition of _PB_PeekB_DEBUG
multiple definition of _PB_PeekW_DEBUG
multiple definition of _PB_PeekL_DEBUG
multiple definition of _PB_PeekS_DEBUG
multiple definition of _PB_PeekS2_DEBUG
-Mitchell
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
freak
PureBasic Team
PureBasic Team
Posts: 5940
Joined: Fri Apr 25, 2003 5:21 pm
Location: Germany

Post by freak »

Karbon:

that was a problem with the 'Misc' lib. get a new one here:

http://www.purebasic.com/update/

Timo
quidquid Latine dictum sit altum videtur
User avatar
NoahPhense
Addict
Addict
Posts: 1999
Joined: Thu Oct 16, 2003 8:30 pm
Location: North Florida

..

Post by NoahPhense »

freak wrote:Karbon:

that was a problem with the 'Misc' lib. get a new one here:

http://www.purebasic.com/update/

Timo
What functions are in this particular Lib ?

- np
DEU.exe
User
User
Posts: 13
Joined: Sun Oct 19, 2003 11:21 am
Location: www

Post by DEU.exe »

Hi Fred & Team,

Thanks a lot for v3.90.
Very COOL!

The SmartUpdater is also a TOP tool.



@Fred: May you have a look here: viewtopic.php?t=9194. Your tip has still some problems with ReplaceString() and RemoveString(). Are there any possibilities to fix this?

Code: Select all

Procedure SetStringManipulationBufferSize(Bytes) 
  PBStringBase.l = 0 
  PBMemoryBase.l = 0 
  !MOV eax, dword [PB_StringBase] 
  !MOV [esp+4],eax 
  !MOV eax, dword [PB_MemoryBase] 
  !MOV [esp+8],eax 
  HeapReAlloc_(PBMemoryBase, #GMEM_ZEROINIT, PBStringBase, Bytes) 
  !MOV dword [_PB_StringBase],eax 
EndProcedure 

; Set the buffer size for all strings to 1 MB. 
SetStringManipulationBufferSize(1048576) 
A$ = Space(1000000)+"abc  d " 

; CRASH - ReplaceString() 
A$ = ReplaceString(A$,"abc","def") 
Debug A$
Greetings,
F.
pIII@1Ghz, wXP, 512MB, pb3.93full
TronDoc
Enthusiast
Enthusiast
Posts: 310
Joined: Wed Apr 30, 2003 3:50 am
Location: 3DoorsDown

Re: Huge Easter Egg: PureBasic 3.90 just eclosed !

Post by TronDoc »

Fred wrote:PS: time to sleep 8)
rest well, good knight. --jb
SmokeAndMirrors
New User
New User
Posts: 3
Joined: Tue Jan 27, 2004 4:08 am

Removing features/functions too quickly?

Post by SmokeAndMirrors »

We've just started using PureBasic for some commercial applications. It's a great product and it fits our needs nicely so far.

In reading through the history of changes for the lastest 3.90 version, I noticed that some working functions were removed, presumably because some new enhancements made them redundant or unnecessary.

From my perspective, it seems a bit radical to have to re-code an application just to get some of the other enhancements or bug fixes. It seems like there should be more time to update code before having to ditch it.

In other development tools I've used, features were eliminated over a period of time so that new replacement features could go through a shake-out period and give the developers a chance to learn how to do things the new way.

Now with all that said, I have little idea of what's involved in writing a language/compiler so I really don't know how easy it is to let old or outdated functions die slowly.

It's just concerning because I could see this becoming a major headache if something critical and tightly integrated into our application gets removed forcing a choice between re-writing or not using the latest and hopefully greatest libraries and compiler.

What I'm asking for seems to make sense but maybe I'm just being unreasonable or ignorant. I'm hoping for some guidance or feedback from the primary PureBasic developers on this.

-SM
fweil
Enthusiast
Enthusiast
Posts: 725
Joined: Thu Apr 22, 2004 5:56 pm
Location: France
Contact:

About long strings

Post by fweil »

Just some words about long strings ...

This confirms that some of us know much more than just use PB 'as it is' but have issues with regular PB commands :

I introduce here some code that shows it is possible to declare higher than 64K strings, but if you try to add any string management instruction upon it crashes.

BTW this shows a way 'how to do it'

Code: Select all

#Window_Main = 17
#Gadget_Button = 23
#Gadget_Editor = 24
#Event_Escape = 99

  BasicString.s = " : Voyez le brick géant que j'examine près du wharf" + Chr(13) + Chr(10)
  Len_BasicString = Len(BasicString) + 6
; 
; InitString()
; 
  String_Size_Limit = $400000
!  PUSH   dword [v_String_Size_Limit] ; 64MB String init
!  PUSH   dword 8
!  PUSH   dword [PB_MemoryBase]
!  CALL  _HeapAlloc@12
!  MOV    [PB_StringBase],eax

  LongString.s ; This declared string variable has a max length set to String_Size_Limit

  *LongBuffer = AllocateMemory(String_Size_Limit)
  i = 1
  Repeat
    PokeS(*LongBuffer + (i - 1) * Len_BasicString, RSet(Str(i), 7, " ") + BasicString)
    If i % 1000 = 0
        Debug Str(i) + " " + Str((i - 1) * Len_BasicString) + " " + RSet(Hex((i - 1) * Len_BasicString), 8, "0")
    EndIf
    i + 1
  Until i * Len_BasicString > String_Size_Limit
  LongString = PeekS(*LongBuffer)
  FreeMemory(*LongBuffer)
  Debug Str(i) + " " + Str(Len(LongString)) + " " + RSet(Hex(Len(LongString)), 8, "0")
; 
; InitString()
; 
  String_Size_Limit = 64000
!  PUSH   dword [v_String_Size_Limit] ; PB Standard String init
!  PUSH   dword 8
!  PUSH   dword [PB_MemoryBase]
!  CALL  _HeapAlloc@12
!  MOV    [PB_StringBase],eax

  ShortString.s

  i = 1
  Repeat
    ShortString = ShortString + RSet(Str(i), 6, " ") + BasicString
    If i % 1000 = 0
        Debug Str(i) + " " + Str(Len(ShortString)) + " " + RSet(Hex(Len(ShortString)), 8, "0")
    EndIf
    i + 1
  Until Len(ShortString) > 64000 - Len(BasicString) - 6 - 2
  Debug Str(i) + " " + Str(Len(ShortString)) + " " + RSet(Hex(Len(ShortString)), 8, "0")
  
  WindowXSize.l = 640
  WindowYSize.l = 480
  WindowTitle.s = "Long string test"
  
  If OpenWindow(#Window_Main, 0, 0, WindowXSize, WindowYSize, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, WindowTitle)
      AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Escape, #Event_Escape)
      If CreateGadgetList(WindowID())
          hEditorGadget = EditorGadget(#Gadget_Editor, 0, 0, WindowXSize, WindowYSize, #PB_Container_Raised)
      EndIf
      SetGadgetText(#Gadget_Editor, LongString)
      lLongString = Len(LongString)
      AddGadgetItem(#Gadget_Editor, -1, "Long string length is : " + Str(lLongString) + " (" + Hex(lLongString) + ")")
      SetGadgetState(#Gadget_Editor, 100)
      Quit = #FALSE
      Repeat
        Select WaitWindowEvent()
          Case #PB_Event_CloseWindow
            Quit = #TRUE
          Case #PB_EventMenu
            Select EventMenuID()
              Case #Event_Escape
                Quit = #TRUE
            EndSelect
          Case #PB_EventGadget
            Select EventGadgetID()
              Case #Gadget_Editor
                Result = SendMessage_(hEditorGadget, #EM_GETSEL, 0, 0)
                w1 = (Result & $FFFF0000) >> 16
                w2 = Result & $0000FFFF
                Debug Str(w2) + " " + Str(w1) + " " + Str(w1 - w2)
              Case #Gadget_Button
            EndSelect
        EndSelect
      Until Quit
      CloseWindow(0)
  EndIf
End
Enjoy and play with ...
My avatar is a small copy of the 4x1.8m image I created and exposed at 'Le salon international du meuble à Paris' january 2004 in Matt Sindall's 'Shades' designers exhibition. The original laminated print was designed using a 150 dpi printout.
Post Reply