Author Topic: The 25 february 2006 build is out.  (Read 17658 times)

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
The 25 february 2006 build is out.
« on: February 25, 2006, 08:13:57 pm »
Get quick announcements through the RSS feed http://www.codeblocks.org/nightly/CodeBlock_RSS.xml
A link to the unicode windows wxWidget dll for Code::Blocks : http://download.berlios.de/codeblocks/wxmsw26u_gcc_cb.7z
For those who might need this one (when no MingW installed on your system) : the mingw10m.dll : http://download.berlios.de/codeblocks/mingwm10.7z

For support of ansi builds, a link to the ansi windows wxWidget dll for Code::Blocks : http://download.berlios.de/codeblocks/wxmsw26_gcc_cb.7z

The 25 February 2006 build is out.
  - Windows : http://download.berlios.de/codeblocks/CB_20060225_rev2079_win32.7z
  - Linux : not supported yet


Resolved Fixed:

  • remove unneeded forward declarations of wxNoteBook (patch 857)
  • fixed some issues to allow correct build on linux (patch 861)
  • Fixed formatting of editormanager.cpp. To all devs: use 4 spaces
    tabbing and do not use astyle on the sources if you use different
    settings
  • Updated mime info for linux installations
  • on compile single file (compile current file) have other project files saved first
  • added libshfolder to sdk target to have a good win9x ansi build
  • Mac Icons
  • Icon update

Regressions/Confirmed/Annoying/Common bugs:

  • DDE bug : clicking in windows explorer on a CB registered file throws an error message box
  • toolbar-images-not-changing-state (is a wx problem)
  • there are several issues with Code Completion (is being redesigned : work in progress)


Offline Zingam

  • Multiple posting newcomer
  • *
  • Posts: 74
Re: The 25 february 2006 build is out.
« Reply #1 on: February 25, 2006, 09:21:31 pm »
I've reported a bug for the Digital Mars D compiler :) and it was partially fixed and set to closed but it is still present:
The compiler does not generate debug info! Should I report it again? It seems that the switch -g is ignored. Actually -debug seems also being ignored.

For example if I do this command from the command prompt:
1. c:\dmd\bin\dmd.exe main.d student.d -v -release -od.objs -ofd.exe
I get something different .exe than when I do:
2. c:\dmd\bin\dmd.exe main.d student.d -v -g -debug -od.objs -ofd.exe
or even:
3. c:\dmd\bin\dmd.exe main.d student.d -v -g -od.objs -ofd.exe

But it doesn't matter which switches I select in CB, the output file is always equal to the first case above:
1. c:\dmd\bin\dmd.exe main.d student.d -v -release -od.objs -ofd.exe


Will there be any better support in the forseeable future for non-C++ compilers? This IDE is much better than anything else I've seen and is cross-platform.
« Last Edit: February 25, 2006, 11:14:21 pm by Zingam »

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: The 25 february 2006 build is out.
« Reply #2 on: February 25, 2006, 09:33:31 pm »
Please do reopen the bug report if it, as you say, still does not work correctly.

By the way, I have no knowledge of D language, but if you could PM me the following info I will give it a try :
 - download link for the compiler
 - how to install (without polluting my system)
 - your 'mini' project (cbp file and sources) as a test case for the 'not working' correctly.
 - additional info i don't even have no clue about, but you think I should know (without learning the D language) ;-)


[EDIT] : tryout the following to provide us feedback :
Menu Settings ->Compiler and Debugger ->Selected Compiler (Digital Mars D compiler) -> Other tab -> Compiler logging : choose "Full command line"
Please paste the output then of your compile in this topic !
« Last Edit: February 25, 2006, 09:36:59 pm by killerbot »

Offline Zingam

  • Multiple posting newcomer
  • *
  • Posts: 74
Re: The 25 february 2006 build is out.
« Reply #3 on: February 25, 2006, 10:12:38 pm »
Another cool bug here: When I double click a file that opens CB and Tip of the day is enabled I get a message box: "Windows could find... bla, bla, bla. Make sure you have typed bla bla bla bla... etc..." The file is still opened. The error does not appear if Tip of the day is disabled. This is my observation in the last 5 minutes after installing this build.

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: The 25 february 2006 build is out.
« Reply #4 on: February 25, 2006, 10:21:00 pm »
this is the infamous DDE bug, join the club  :P

Offline Zingam

  • Multiple posting newcomer
  • *
  • Posts: 74
Re: The 25 february 2006 build is out.
« Reply #5 on: February 25, 2006, 11:00:31 pm »
Interesting: it wasn't there before  :shock:

Offline Zingam

  • Multiple posting newcomer
  • *
  • Posts: 74
Re: The 25 february 2006 build is out.
« Reply #6 on: February 25, 2006, 11:06:51 pm »
Here is the compiler log. I've two build targets: Release and Debug. As you see Rlease has all the switches added but actually I have for it just: -v -inline -O -release
and for Debug: -g -debug -unittest -v

for the Debug target I have set also -unittest but I cannot see it in the log at all and also bellow the Debug target in the log does not have any switches at all.

It is possible that I'm not using it correctly but I created these build targets a couple of minutes ago. Before that with the default setting it didn't work too but I don't have a log.

If you need more: I could make a new try.



-------------- Build: Release in D ---------------
dmd.exe -g -debug -v -release -O -inline -g -debug  -IC:\dmd\src\phobos  -c student.d -of.objs\student.obj
parse     student
semantic  student
semantic2 student
semantic3 student
inline scan student
code      student
generating code for function 'Name'
generating code for function 'Name'
generating code for function 'Age'
generating code for function 'Age'
generating code for function 'this'
dmd.exe -g -debug -v -O -inline -g -debug -g -debug  -IC:\dmd\src\phobos  -c main.d -of.objs\main.obj
parse     main
semantic  main
semantic2 main
semantic3 main
inline scan main
code      main
generating code for function 'main'
dmd.exe bin\Release\D-Release.exe  .objs\student.obj .objs\main.obj  phobos.lib
C:\dmd\bin\..\..\dm\bin\link.exe .objs\student+.objs\main,bin\Release\D-Release.exe,,phobos.lib+user32+kernel32/noi;

-------------- Build: Debug in D ---------------
dmd.exe bin\Debug\D-Debug.exe  .objs\student.obj .objs\main.obj  phobos.lib
C:\dmd\bin\..\..\dm\bin\link.exe .objs\student+.objs\main,bin\Debug\D-Debug.exe,,phobos.lib+user32+kernel32/noi;
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings
 


« Last Edit: February 25, 2006, 11:15:42 pm by Zingam »

Offline Zingam

  • Multiple posting newcomer
  • *
  • Posts: 74
Re: The 25 february 2006 build is out.
« Reply #7 on: February 25, 2006, 11:22:59 pm »
Here I've deleted the Release target and this is what I get:

-------------- Build: Debug in D ---------------
dmd.exe -g -debug -v -unittest -g -debug -g -debug  -IC:\dmd\src\phobos  -c student.d -of.objs\student.obj
parse     student
semantic  student
semantic2 student
semantic3 student
code      student
generating code for function 'Name'
generating code for function 'Name'
generating code for function 'Age'
generating code for function 'Age'
generating code for function 'this'
dmd.exe -g -debug -v -unittest -g -debug -g -debug  -IC:\dmd\src\phobos  -c main.d -of.objs\main.obj
parse     main
semantic  main
semantic2 main
semantic3 main
code      main
generating code for function 'main'
dmd.exe bin\D-Debug.exe  .objs\student.obj .objs\main.obj  phobos.lib
C:\dmd\bin\..\..\dm\bin\link.exe .objs\student+.objs\main,bin\D-Debug.exe,,phobos.lib+user32+kernel32/noi;
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings



And it is still not what I get when I compile from the command prompt with this command:

c:\dmd\bin\dmd.exe main.d student.d -v -g -debug -unittest -od.objs -ofD-Debug.exe

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: The 25 february 2006 build is out.
« Reply #8 on: February 25, 2006, 11:24:07 pm »
Looking at this, I think I see the problem !!!
Both release and debug put their object files in .objs.

Release comes first -> actually compiles -> object files, and then links.
Debug comes second, the compiler sees there's nothing to be done, object files are more recent then the sources, it just links. The link step is carried out since the exe deliverable is going to be put on a different location then the release exe.

Just change the objs directory for your debug build :
example :
   for release  : .objsRelease
   for debug  : .objsDebug



Cheers,
Lieven

Offline Zingam

  • Multiple posting newcomer
  • *
  • Posts: 74
Re: The 25 february 2006 build is out.
« Reply #9 on: February 25, 2006, 11:43:00 pm »
this doesn't really matter because I've deleted Release and when I use just one build target and switch on or off any compiler options (and I delete the both directories .obj and bin) always a file of the same size is generated although when comparing with cmp there are some different bytes.

When I compile the program from the command prompt in debug it has about 70kb more than when I compile it with C::B.
When I compile it in release mode from the command prompt it has the same size as when compiled with CB.

(This sounds sooo stupid :) Sorry!


Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: The 25 february 2006 build is out.
« Reply #10 on: February 25, 2006, 11:53:19 pm »
Okay, focusing on the debug build only, first off all I removed in the project the "-g -debug" in the defines (project, and debug target), they should not be there.

When I compare (just on size) the object files, they seem of exact the same length. It seems thigs start to go differently during the linking step (smaller exe, equal size map file, but some addresses in the map file are different).

Your command line call is actually in one go compiling and linking, maybe internally other options are used ??

[EDIT] :
some differences in the link step

cmd line:
c:\dmd\bin\..\..\dm\bin\link.exe .objs\main+.objs\student,bin\D-Debug.exe,,user32+kernel32/co/noi;

CB :
C:\dmd\bin\..\..\dm\bin\link.exe .objs\student+.objs\main,bin\D-Debug.exe,,phobos.lib+user32+kernel32/noi;
This one got generated from : dmd.exe bin\D-Debug.exe  .objs\student.obj .objs\main.obj  phobos.lib

So disregarding the order in which the objs were mentioned (I turned them around in the command line batch file) the main difference is :

user32+kernel32/co/noi
<->
phobos.lib+user32+kernel32/noi


So what does the /co do ? does that bring in the extra stuff ?
other question : does the phobos.lib neet to be specified ? If so, is the .lib needed (assuming user32 and kernel32 are also libs ??)
« Last Edit: February 26, 2006, 12:09:08 am by killerbot »

Offline Zingam

  • Multiple posting newcomer
  • *
  • Posts: 74
Re: The 25 february 2006 build is out.
« Reply #11 on: February 26, 2006, 06:40:01 am »
dmd.exe is a compiler and debugger at the same time but it actually seems to invoke link.exe internally.


Here is what I have found:

If you type: link.exe /? you geta list of switches and there is listed /CO{deview}

This is a description of this option:
http://www.digitalmars.com/ctg/ctgLinkSwitches.html#codeview

All swtiches:
http://www.digitalmars.com/ctg/ctgLinkSwitches.html

Linker description:
http://www.digitalmars.com/ctg/optlink.html

and it is exactly about including codeview debug information.

Quote
CODEVIEW

Syntax:      /[NO]CODEVIEW[:n]
Default:   /NOCODEVIEW

Controls whether OPTLINK should include CodeView information within the output .exe file. CodeView expects such information to be present within applicable .obj files being linked. OPTLINK includes any available CodeView information for all object modules unless the options /DEBUG, /DEBUGCOVERAGES, /DEBUGFILES, /DEBUGLINES, /DEBUGLOCALS, /DEBUGMODULES, /DEBUGPUBLICS, or /DEBUGTYPES are supplied.

n specifies the CodeView major version format desired (applicable only with /CODEVIEW). For CodeView 2.x, enter 2, for CodeView 3.x, enter 3, and for CodeView 4.x, enter 4. For /CODEVIEW without a number, OPTLINK uses the default. OPTLINK automatically performs the CVPACK step when n is 4.

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: The 25 february 2006 build is out.
« Reply #12 on: February 26, 2006, 10:01:15 am »
ok recap :

1) we should continue this discussion in a "D" thread, I think there are other problems too
2) it is obvious that codeview stuff will enlarge the exe (so that will explain the size difference)
3) Digital Mars D  NEEDS also Digital Marc C (well at least the linker parts of it), I have checked the code of CB for "D" support, it containes some minor errors; You can see them yourself : go to the compiler and debugger settings : choose D compiler, and look at the programs (compare them with DMC), first of all :
   - DLL's : link.exe or dmd.exe ??  (for dmc : we specify link.exe)
   - static lib's : lib.exe
   - push the browse button for the static lib executable -> notice you are in the bin dir of "D", there's no link.exe or lib.exe overthere, since they are being used from DMC (dmd.exe apparantly knows how to get there, the ini file ??)  --> so we need to specify them fully ?? and autodetect them fully .. (damn)
   - it is for sure that the way dmd.exe and link.exe take their aruments is different !!!

So all you "D" users if you could try to investigate, try out, and report back your research on how it should be done in the other thread (http://forums.codeblocks.org/index.php?topic=2476.0), I could adopt the "D" support code. Please forgive me that I won't do the investigation myself, I don't have the time at this moment to learn how "D" and it's tools work.

One question for Yiannis : How come there's no entry to specify the linker for exe's ?? (we only can specify for dynamic and static LIBS) ?

Offline orefa

  • Multiple posting newcomer
  • *
  • Posts: 102
Keyboard focus after compilation.
« Reply #13 on: February 26, 2006, 06:03:24 pm »
The keyboard focus is lost after error-free compilation (either a single file or a project). Either the child window with the focus should be noted before compilation and restored after, or maybe always return focus to the editor. Not sure which of the two is better...