Author Topic: Has anyone tried True Basic compiler ?  (Read 4587 times)

0 Members and 1 Guest are viewing this topic.

Offline Raúl Ortega

  • Newbie
  • *
  • Posts: 6
Re: Has anyone tried True Basic compiler ?
« Reply #15 on: May 01, 2020, 05:06:58 PM »
Hi Chris and Jose

I have training in Chemical Engineering, and not in systems, so sometimes it costs me a lot of work to program in PB, and in the forums I don't understand too much.
For several years I have been writing a program for chemical engineering, and now I would like to  incorporating .DLL files made in C. But I am not sure which compiler to use. So I searched again for Watcom C, and found that in github is continuing its development for multi-platform and 64-bit. I leave you this link and I hope it will be useful to you.

Best regards

https://github.com/open-watcom/open-watcom-v2/releases

« Last Edit: May 01, 2020, 05:11:44 PM by Raúl Ortega »

Offline Zlatko Vid

  • Newbie
  • *
  • Posts: 34
Re: Has anyone tried True Basic compiler ?
« Reply #16 on: May 02, 2020, 11:08:06 AM »
WOW i don't know for this topic.
something is really strange
..i must ty it on Oxygen basic

Quote
For a million, 0.089 seconds with FreeBasic. With PowerBasic, I have needed to close the application after waiting for a long time. Try it yourself.

Offline Zlatko Vid

  • Newbie
  • *
  • Posts: 34
Re: Has anyone tried True Basic compiler ?
« Reply #17 on: May 02, 2020, 11:13:48 AM »
Jose..

I get strange error when i tried to compile your code ...
can you tell me why ?

Quote
Error 519 in D:\PBWin\WinAPI\StringSpeed.bas(17:001):  Missing declaration: WAITKEY
  Line 17: WAITKEY$   

on pbwin10

Offline José Roca

  • Administrator
  • Hero Member
  • *****
  • Posts: 2481
Re: Has anyone tried True Basic compiler ?
« Reply #18 on: May 02, 2020, 04:19:35 PM »
Because it was written for the console compiler. Replace it with a MsgBox if you want.

Offline Zlatko Vid

  • Newbie
  • *
  • Posts: 34
Re: Has anyone tried True Basic compiler ?
« Reply #19 on: May 03, 2020, 08:18:53 AM »
Ahh i see...ok !

Offline Zlatko Vid

  • Newbie
  • *
  • Posts: 34
Re: Has anyone tried True Basic compiler ?
« Reply #20 on: May 03, 2020, 08:03:39 PM »
Jose
i made this test with PBWin with messagebox and give me 62 sec
but results with Oxygen are not good ... 159 seconds
in both JIT and exe mode

and in Freebasic 0.023 seconds ...it is amazing !

How is possible that FB is that much faster ?
« Last Edit: May 03, 2020, 08:14:11 PM by Zlatko Vid »

Offline Zlatko Vid

  • Newbie
  • *
  • Posts: 34
Re: Has anyone tried True Basic compiler ?
« Reply #21 on: May 03, 2020, 08:31:12 PM »
Jose i tested how fast all 3 compilers fill 100000 size string array and come to this

Oxygenbasic - 0.31 sec
Powerbasic   - 3.09 sec
FreeBasic ...crush ???

Oxygen Basic:
Code: [Select]
'con cat strings in o2
$ filename "strSpeed.exe"
include "rtl32.inc"
Declare Function GetTickCount Lib "kernel32.dll" () As INT

DIM start AS int
DIM endx AS int
DIM strArray[100000] as string
start = GetTickCount()
string s = "test string"
DIM i AS int
FOR i = 1 TO 100000
   strArray[i] = s
NEXT i

endx = GetTickCount()

 print "Current value  is: " + STR((endx-start)/1000)


Power Basic :
Code: [Select]
#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN () AS LONG

DIM start AS DOUBLE
start = TIMER
DIM s AS STRING : s = "test string"
DIM sArr(100000) AS STRING
DIM i AS LONG
FOR i = 1 TO 100000
   sArr(i) = s
NEXT
DIM endx AS DOUBLE
endx = TIMER

  MSGBOX "Current value of X% is: " & STR$(endx-start)
END FUNCTION


Free Basic :

Code: [Select]
DIM start AS DOUBLE = timer
DIM sArr(100000) as string
DIM s AS STRING :  s = "test string"
FOR i as long  = 1 TO 100000
   sArr(i) = s   
NEXT
DIM endx AS DOUBLE = timer
print endx - start

print LEN(s)

SLEEP

I use your CSED_FB
This program simply crush ...???
« Last Edit: May 03, 2020, 08:42:42 PM by Zlatko Vid »

Offline José Roca

  • Administrator
  • Hero Member
  • *****
  • Posts: 2481
Re: Has anyone tried True Basic compiler ?
« Reply #22 on: May 04, 2020, 12:56:02 AM »
Use

DIM SHARED sArr(100000) as string

or a variable-length array.

Code: [Select]
DIM start AS DOUBLE = timer
DIM sArr() as string
REDIM sArr(100000) as string
DIM s AS STRING :  s = "test string"
FOR i as long  = 1 TO 100000
   sArr(i) = s   
NEXT
DIM endx AS DOUBLE = timer
print endx - start

Each language does things in a different way. Jumping from one to another everyday it's the best way of never being proficient with any of them.
« Last Edit: May 04, 2020, 01:19:45 AM by José Roca »