New FB release coming up

For other topics related to the FreeBASIC project or its community.
pestery
Posts: 493
Joined: Jun 16, 2007 2:00
Location: Australia

Re: New FB release coming up

Postby pestery » Jun 15, 2013 4:37

dkl wrote:...surely any library that wants to work on 64bit Linux aswell as Windows will avoid using long and use long long instead.
Well MySQL for one uses a combination of int, long and long long, and is available for both 32bit and 64bit on Windows and other platforms. Speaking of which, I have ported the mysql.h and all the files it links with to FB. Here is the link if your interested (32bit files). For the moment I have just changed long to CLong and aliased it as an Integer, but that will have to be changed in the long run.

Also, the new GCC backend seems to work well on Windows. It can compile my main large project with no trouble.
DOS386
Posts: 798
Joined: Jul 02, 2005 20:55

Re: New FB release (0.90) coming up | BUG's

Postby DOS386 » Jun 15, 2013 6:12

dkl wrote:0.90.0rc2 packages are available now for testing at the same location:
http://sourceforge.net/projects/fbc/files/Preview%20Builds/


Thanks to developers and contributors :-)

Tested 0.90rc2 (UPDATE: same in 0.90.1, 1.0 does NOT work at all on ME)

+ DOS and Win32 packages mostly consistent, DOS package lacks files not useful in DOS

+ no critical regressions found in compiler core (minimal test only)

- binaries in "BIN\DOS" and "BIN\WIN32" are CRAP:
- - absurdly bloated
- - Win32 ones don't work on ME
- - AS.EXE still has the segment prefix problem introduced in 0.24 viewtopic.php?&t=20583 '' Bad "AS.EXE" GAS "update" in 0.24" 2012-Nov
- - (possible CMOVNTQ problems not tested) viewtopic.php?&t=11066

Suggestion: revert back to those from FB cca 0.22 or 0.20 - newer is NOT better here :-(

- There are 2 files that probably shouldn't be in there: "curses.exe" (DOS) and "deleteme.txt" (Win32)

- Win32 graphics partially fixed (was broken since 0.18.xx), now it doesn't crash but the "banding effects" from 0.18.5 are back viewtopic.php?t=11333 http://users.freebasic-portal.de/dos386/fbbuggdi.ogv (BUGshot movie brewn 1'000'000'000'000 years ago with 0.18.5 but the BUG is very same in 0.90rc2 too) http://sourceforge.net/p/fbc/bugs/search/?q=gdi

- DOS graphics:
- - still has the resolution crashing (if you don't check SCREENPTR for ZERO) BUG viewtopic.php?t=11345 http://sourceforge.net/p/fbc/bugs/410 (320x200 -> OK | 320x240 -> OK | 320x220 -> CRASH)
- - (palette BUG not retested) http://freebasic.net/forum/viewtopic.php?t=19980 http://freebasic.net/forum/viewtopic.php?t=12691
- -(CRASH clean-up BUG not retested) http://sourceforge.net/p/fbc/bugs/409

Code: Select all

DIM IMG AS ANY PTR
DIM AS UINTEGER A,B

SCREENRES 320, 200, 32 '' 220 instead of 200 will not work in DOS
IF (SCREENPTR=0UL) THEN ASM UD2 '' Crucial
PAINT (0, 0), RGB(64, 128, 255)
SLEEP 3000

'' Set up an image and draw something in it
IMG = IMAGECREATE( 32, 32, RGB(255, 0, 255) )
'' This ^^^ will return ZERO if SCREENRES fails before

CIRCLE IMG, (16, 16), 15, RGB(255, 255, 0),     ,     , 1, F
CIRCLE IMG, (16, 16), 15, RGB(255, 0, 0)  ,     ,     , 1
CIRCLE IMG, (16, 16), 14, RGB(255, 0, 0)  ,     ,     , 1
CIRCLE IMG, (10, 10), 3,  RGB(  0,  0, 0) ,     ,     , 2, F
CIRCLE IMG, (23, 10), 3,  RGB(  0,  0, 0) ,     ,     , 2, F
CIRCLE IMG, (16, 18), 10, RGB(  0,  0, 0) , 3.14, 6.28

DO
  IF (INKEY$<>"") THEN EXIT DO
  A=INT(RND*288) : B=INT(RND*168)
  '' SCREENLOCK '' NOT needed for PUT
  PUT (A,B), IMG, TRANS
  '' SCREENUNLOCK '' NOT needed for PUT
  SLEEP 55
LOOP

'' Free the image memory
IMAGEDESTROY IMG

END
Last edited by DOS386 on Nov 11, 2014 17:21, edited 8 times in total.
VANYA
Posts: 1311
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: New FB release coming up

Postby VANYA » Jun 15, 2013 6:26

Hi all!

dkl thanks, now Lcase\Ucase works with Russian symbols. Maybe something can be done for functions TRIM, LTRIM, RTRIM?
AGS
Posts: 1284
Joined: Sep 25, 2007 0:26
Location: the Netherlands

Re: New FB release coming up

Postby AGS » Jun 15, 2013 11:25

Tried the C back end (using command line -gen gcc -g).

fbc 0.24: input = 233 lines of BASIC, output = 1039 lines of C.
fbc 0.90: input = 233 lines of BASIC, output = 727 lines of C.

That's quite an improvement. Very nice, very nice.

I got even better results using some other BASIC program

fbc 0.24: input = 179 lines of BASIC, output = 13844 lines of C.
fbc 0.90: input = 179 lines of BASIC, output = 621 lines of C.

The decrease in size of output has to do with the decrease of the
number of #line directives produced (fbc 0.24 tends to produce a
lot more #line directives than fbc 0.90).
Last edited by AGS on Jun 16, 2013 23:50, edited 1 time in total.
dkl
Site Admin
Posts: 3207
Joined: Jul 28, 2005 14:45
Location: Germany

Re: New FB release coming up

Postby dkl » Jun 15, 2013 17:35

The size of binutils binaries annoys me aswell, but I don't know what can be done about it. But they're huge programs, especially libbfd. And if libbfd is statically linked into every single binutils program, then that's a lot of duplicated/wasted space. Maybe recompiling binutils for each target disabling as much features as possible? And/or using libbfd DLL instead of static linking could help on Win32.

However the binutils binaries are nothing compared to the 4 MB gdb.exe, and that's nothing compared to gcc's 10 MB cc1.exe... fbc.exe is > 1 MB too, which already seems much, but that's also because it contains a lot of code. We can say fbc is bloated, because it could be smaller, if a big enough effort was made...

---

I really don't want to see FB going back to using binutils 2.15 from 2005. It's unfortunate that new binutils versions cause problems, but it's not like they're unusable. FB's inline assembly is at the mercy of GAS because it's passed directly through to it... it'd be the same with any assembler though until we add asm parsing to fbc itself.

Overall I think it's important to keep FB working with the latest gcc/binutils toolchains. If there are bugs in binutils we should report them, and if anyone really wants to use old binutils versions, well, then just replace the binaries in the bin/ directory as needed.
DOS386
Posts: 798
Joined: Jul 02, 2005 20:55

Re: New FB release coming up

Postby DOS386 » Jun 16, 2013 15:30

http://sourceforge.net/p/fbc/code/ci/0. ... ngelog.txt

dkl wrote:The size of binutils binaries annoys me aswell

Maybe recompiling binutils for each target disabling as much features as possible?


Good idea.

And/or using libbfd DLL instead of static linking could help on Win32


For unpacked installation YES, for the compressed installer NO.

> However the binutils binaries are nothing compared to the 4 MB gdb.exe

What's in ?

> and that's nothing compared to gcc's 10 MB cc1.exe...

Fortunately it's in the separate addon package :-)

And that's nothing compared to 20 GiB OS installation and that's nothing compared to 4 TiB HD costing just 200 $ or EUR and ... (long way to the insanity)

> fbc.exe is > 1 MB too, which already seems much, but that's also because it
> contains a lot of code. We can say fbc is bloated, because it could be
> smaller
, if a big enough effort was made...

Has "-lang deprecated" been already removed ?

> with any assembler though until we add asm parsing to fbc itself

Is it on the ToDo list? IIRC I had suggested viewtopic.php?p=95866#p95866 FASM 5 years ago but it got rejected (during past 8 years, bloat of FASM grew from 60 KiB to 120 KiB ... and the bloat of GAS from 1/2 MiB to 1+1/2 MiB :shock: ).

> just replace the binaries in the bin/ directory as needed.

I will.

Any chance about the resolution problem in DOS viewtopic.php?t=11345 and GDI BUG http://users.freebasic-portal.de/dos386/fbbuggdi.ogv ?
DOS386
Posts: 798
Joined: Jul 02, 2005 20:55

Re: New FB release coming up

Postby DOS386 » Jun 17, 2013 8:41

dkl wrote:can say fbc is bloated, because it could be smaller, if a big enough effort


AFAIK the bloat of "fbc.exe" got significantly reduced since 0.21.1 :-)

Code: Select all

****************************************

FreeBASIC 0.18.5 to 0.90rc2

****************************************

"FreeBASIC-v0.18.5b-dos32.zip" 6'044'112
2BFA'363E'80D3'696C'1F4E'1CDA'D34C'8C35

----

"fbc.exe" 1'245'696 2008-04-17 19:58 | 0.18.5 DOS
5158'827C'BE2B'DAC3'988E'1F25'18AC'A8C2

"fbc -version" says (0.18.5 DOS) :

> FreeBASIC Compiler - Version 0.18.5 (04-17-2008) for dos (target:dos)
> Copyright (C) 2004-2008 The FreeBASIC development team.
> Configured as standalone

----

"ar.exe" 372'224 2007-03-15 18:29
BCDADFC2F6D7167DD35E5CFBB141C241

"as.exe" 585'728 2007-03-15 18:29
E85454B368B38E7BCD7519563761D411

"as -version" says (0.18.5 DOS) :

> GNU assembler 2.17
> Copyright 2005 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License.  This program has absolutely no warranty.
> This assembler was configured for a target of 'i386-pc-msdosdjgpp'.

"gdb.exe" 1'567'652 2006-12-30 17:18
59C359BC70242041EA9003DFD0CC14AC

"gprof.exe" 463'360 2007-03-15 18:29
4EC4A4A98C5AB97FE1CC5E98B9ABA538

"ld.exe" 559'616 2007-03-15 18:29
F76B0FFE6A810F0FB2CCFFAB21E4C939

**********

"FreeBASIC-v0.18.5b-win32.exe" 5'701'686
7D7D'79D1'BE53'6DF8'764B'A406'D127'7148

----

"fbc.exe" 1'284'608 2008-04-17 16:02 | 0.18.5 Win32
5644'E6EA'EA05'794D'3D18'27E7'52B2'3503

"fbc -version" says (0.18.5 Win32) :

> FreeBASIC Compiler - Version 0.18.5 (04-17-2008) for win32 (target:win32)
> Copyright (C) 2004-2008 The FreeBASIC development team.
> Configured as standalone

----

"ar.exe" 404'992 2005-11-30 19:00
6669F1CBE26FB3D6C65CA74D100A276C

"as.exe" 611'328 2005-11-30 19:00
5D0AF5C5E9E675F623663F5E68D46ED8

"as -version" says (0.18.5 Win32) :

> GNU assembler 2.15.94 20050118
> Copyright 2002 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License.  This program has absolutely no warranty.
> This assembler was configured for a target of 'mingw32'.

"dlltool.exe" 454'656 2005-11-30 19:00
7DD86ED090DF733817B7D8B53C0E680F

"gdb.exe" 743'936 2005-11-30 19:00 | UPX'ed 1.20 !!!
B65FB13FC2C0884575AC85F840BC1A87

"gdb.exe" 1'814'528 2005-11-30 19:00 | Un-UPX'ed
F447B77D83CF8C5ADF750C87AB421F8D

"GoRC.exe" 54'784 2006-06-21 10:31
2F795B9CC0B2ADF91A40E6746DC19E87

"gprof.exe" 496'128 2005-01-20 09:50
1978A46E0CBA86895349BBFB679C15A3

"ld.exe" 656'384 2005-11-30 19:00
D075E0592C845F42D9FA23581CA5A73B

****************************************

"FreeBASIC-0.21.1-dos.zip" 6'199'288 | No more "v" and "DOS32" !!!
340E'E5B2'FD05'F9D4'D2F6'29BE'FBB7'C6C1

----

"fbc.exe" 1'501'184 2010-08-11 19:02 | 0.21.1 DOS
4E1D'97A2'A3D8'68AF'D263'8EE0'4C2E'A5CF

----

(all files in "bin" are identical as in 0.18.5)

**********

"FreeBASIC-0.21.1-win32.exe" 6'142'751 | No more "v" !!!
2488'FD96'82D9'DC90'D7F2'B17D'0431'6279

----

"fbc.exe" 1'560'576 2010-08-11 08:52 | 0.21.1 Win32
1A7B'85A4'D1AC'0EAB'AAA1'6A03'A1F3'3140

----

(all files in "bin" are identical as in 0.18.5)

****************************************

"FreeBASIC-0.22.0-dos.zip" 6'130'771 | ???
2E6B5EC1E62077F5CF93386FFB767336

**********

"FreeBASIC-0.22.0-win32.exe" 6'268'258 | ???
904C68B884AC398B8B2FFB87787B5DFD

****************************************

"FreeBASIC-0.22.0-2-dos.zip" 6'130'808
2F87E1216AE287652FA16953478D41F1

----

"fbc.exe" 1'422'848 2011-05-06 17:26 | 0.22.2 DOS
AFE9BC85A9A630E6EB708CA1710A95E6

----

(all files in "bin" are identical as in 0.21.1 and 0.18.5)

**********

"FreeBASIC-0.22.0-2-win32.exe" 6'286'892
DA3A93F91A38F6CE352260018385BE0A

----

"fbc.exe" 1'442'304 2011-05-06 09:14 | 0.22.2 Win32
4567530C759B0BFB415A349D4961312A

----

(all files in "bin" except "gdb.exe" are identical as in 0.21.1 and 0.18.5)

"ar.exe" 404'992 2005-11-30 21:00

"as.exe" 611'328 2005-11-30 21:00

"dlltool.exe" 454'656 2005-11-30 21:00

"gdb.exe" 2'584'576 2008-04-23 19:09 | BLOAT !!!

"GoRC.exe" 54'784 2006-06-21 12:31

"gprof.exe" 496'128 2005-01-20 11:50

"ld.exe" 656'384 2005-11-30 21:00

****************************************

"FreeBASIC-0.24.0-dos.zip" 5'432'521
EC55'54C2'BAC6'DFC9'A463'FD60'934A'1EEA

----

"fbc.exe" 1'491'968 2012-08-19 23:17 | 0.24 DOS
A7D0ACC9D073EC007B6105BC02A326C1

----

"ar.exe" 575'488 2012-07-27 02:03
25B8A86C96255EDD7511B63EC4173BA8

"as.exe" 1'035'776 2012-07-27 02:03
6A3503C914CC65ECD827CF2CFEC1D227

"gdb.exe" 3'582'976 2012-04-22 02:03 | BLOAT !!!
A2E94B6B102B351C9CC34704456EBBF7

"gprof.exe" 614'400 2012-07-27 02:03
64F67E83E194D635BBAAA0D5F26C638F

"ld.exe" 736'256 2012-07-27 02:03
6570F921E6F5E7699967512DB4FF055D

**********

"FreeBASIC-0.24.0-win32.exe" 9'073'752
B248'C888'971B'84D4'9304'C0DD'D1DB'1E72

----

"fbc.exe" 1'417'216 2012-08-19 14:32 | 0.24 Win32
9400195E167CBD40F4E2659AACFAC0F5

----

"libexpat-1.dll" 165'513 2009-10-12 06:52

"libiconv-2.dll" 1'070'103 2009-07-25 18:46

"libintl-8.dll" 122'719 2009-07-25 18:18

"ar.exe" 604'160 2011-08-04 22:59

"as.exe" 1'047'552 2011-08-04 23:01
172F08BB2395835C19F6899944958114

Needs "libiconv-2.dll" and "libintl-8.dll"

"as -version" says (0.24 Win32) :

> GNU assembler (GNU Binutils) 2.21.53.20110804
> Copyright 2011 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License version 3 or later.
> This program has absolutely no warranty.
> This assembler was configured for a target of 'mingw32'.

"dlltool.exe" 633'344 2011-08-04 22:59

"gdb.exe" 3'847'168 2011-08-04 07:41 | BLOAT !!!

"GoRC.exe" 54'784 2006-06-21 12:31

"gprof.exe" 643'072 2011-08-04 23:01

"ld.exe" 846'336 2011-08-04 23:03

****************************************

"FreeBASIC-0.90.0rc2-dos.zip" 6'536'708
8B802A692A89B93E30BC0070AFCEB0EA

----

"fbc.exe" 1'327'616 2013-06-06 18:21 | 0.90rc2 DOS
4C0CF033C91F47589669DF6694063E1A

----

"ar.exe" 828'928 2013-03-31 02:03
17A3ABDC5B519BC99DEF20D0B472790A

"as.exe" 1'322'496 2013-03-31 02:03
65C6B63BBE1A88C1C9688762CE7DBCAC

"as -version" says (0.90.rc2 DOS) :

> GNU assembler (GNU Binutils) 2.23.2
> Copyright 2012 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License version 3 or later.
> This program has absolutely no warranty.
> This assembler was configured for a target of 'djgpp'.

"gdb.exe" 3'865'600 2012-12-02 02:03 | BLOAT !!!
18EA625D9C32E7E3B9E2E4EB6388CE7A

"gprof.exe" 866'304 2013-03-31 02:03
EA346EA1B0F9B043C8175290E7A7AEBF

"ld.exe" 1'017'856 2013-03-31 02:03
E2C6FA28B24D3CD5B5DB4C0DE6D661EB

**********

"FreeBASIC-0.90.0rc2-win32.exe" 7'653'024
2D8561049834709FC6C8E3672FEDEAA5

----

"fbc.exe" 1'104'384 2013-06-05 19:32 | 0.90rc2 Win32
F66AD87CD6FCAE37FFBFBBB641944A6C

----

"ar.exe" 804'109 2013-05-13 07:27

"as.exe" 1'284'968 2013-05-13 07:27
CA248D0E6913089A0429C594CC953C12

"as -version" says (0.90rc2 Win32) :

> GNU assembler (GNU Binutils) 2.23.2
> Copyright 2012 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License version 3 or later.
> This program has absolutely no warranty.
> This assembler was configured for a target of 'i686-w64-mingw32'.

"dlltool.exe" 839'493 2013-05-13 07:27

"gdb.exe" 4'474'986 2013-05-13 07:27 | BLOAT !!!

"GoRC.exe" 55'296 2009-09-13 08:36

"gprof.exe" 840'802 2013-05-13 07:27

"ld.exe" 1'070'006 2013-05-13 07:27

****************************************
marcov
Posts: 2755
Joined: Jun 16, 2005 9:45
Location: Eindhoven, NL
Contact:

Re: New FB release coming up

Postby marcov » Jun 17, 2013 9:56

dkl wrote:
I really don't want to see FB going back to using binutils 2.15 from 2005. It's unfortunate that new binutils versions cause problems, but it's not like they're unusable. FB's inline assembly is at the mercy of GAS because it's passed directly through to it... it'd be the same with any assembler though until we add asm parsing to fbc itself.


Note you can grab NASM's instruction tables to get a quick start. At least for x86/x86_64. This also decreases the amount of time needed if yet another SSE/AVX extension comes out. (though not nullifies it. There are always new addressing and instruction encoding schemes)

A nice result of the internal assembler is being able to let assembler use parameters of function names by symbol instead of hand coding stack offsets.
petan
Posts: 683
Joined: Feb 16, 2010 15:34
Location: Europe
Contact:

Re: New FB release coming up

Postby petan » Jun 17, 2013 20:25

Hello all,
as I see GLFW 3 is out (3.0.2) with main interesting feature
Changes to existing features
Window handles

Because GLFW 3 supports multiple windows, window handle parameters have been added to all window-related GLFW functions and callbacks.
, so I am asking: Which version of GLFW is supported in new FB 0.9 ?
GLFW 2 to 3 details here http://www.glfw.org/docs/3.0/moving.html
Thx,
Pete
dkl
Site Admin
Posts: 3207
Joined: Jul 28, 2005 14:45
Location: Germany

Re: New FB release coming up

Postby dkl » Jun 17, 2013 20:45

The current GL/glfw.bi is for 2.7.2. Perhaps we can update the header before the final 0.90 release, and if not, well, it's fairly easy to replace the old GL/glfw.bi by a new one from the FB development version once the binding was updated.
D.J.Peters
Posts: 7717
Joined: May 28, 2005 3:28

Re: New FB release coming up

Postby D.J.Peters » Jun 17, 2013 23:29

I tested GLFW 3.0.1
here are the include file: viewtopic.php?f=14&t=21303

Joshy
sgaba
Posts: 31
Joined: Aug 15, 2005 19:18
Location: Czech Republic

Re: New FB release coming up

Postby sgaba » Jun 20, 2013 6:40

In 0.90.0rc2 I have a problem with freetype:

FreeBASIC\bin\win32\ld.exe: cannot find -lfreetype

Maybe it's just my problem, I do not know. :)
TJF
Posts: 3473
Joined: Dec 06, 2009 22:27
Location: N47°, E15°
Contact:

Re: New FB release coming up

Postby TJF » Jun 20, 2013 9:46

This message is comming from the linker (ld.exe). It cannot find the import library (.dll.a).

You have to install the binaries manually. Search for a -dev package of libfreetype. libfreetype.dll.a (and maybe .def) goes into ...FreeBasic/lib/win32 and libfreetype.dll goes either in your project folder or in one of the folders listed in your PATH environment variable.
lassar
Posts: 300
Joined: Jan 17, 2006 1:35
Contact:

Re: New FB release coming up

Postby lassar » Jun 21, 2013 16:31

I have a feature request for the dos version.

How about adding a screenres graphic flag, so one can write directly to the video screen.
counting_pine
Site Admin
Posts: 6169
Joined: Jul 05, 2005 17:32
Location: Manchester, Lancs

Re: New FB release coming up

Postby counting_pine » Jun 21, 2013 17:27

I don't know if that's feasible, but you may want to consider adding a feature request, since it will probably get lost here unless someone immediately decides to take on the task.

Return to “Community Discussion”

Who is online

Users browsing this forum: No registered users and 1 guest