Sunday, September 25, 2011

Dev-C++ 5.0.0.4 released

Time for an update then. The biggest addition is the updated rightclick menu of the editor, which features a variable browser. Also, the guys at MinGW have ported a newer branch of GCC, so I've added it to Dev.




Changes - Version 5.0.0.4 - 25 September 2011
  • Upgraded the compiler to GCC 4.6.1.
  • The main tab control now has the optional (check Environment options) ability to spread tabs over multiple lines.
  • Added Goto Declaration and Goto Definition buttonsto the editor right click menu. These buttons make code navigation much easier.
  • The old code for Ctrl+Click now uses the new code for the buttons and uses two-way navigation.
  • Added Profiling to the Compiler toolbar.
  • Removed the useless About/Help toolbar.
  • The splash screen now shows what Dev is currently loading.
  • Code Completion Cache can now also be browsed through.
  • Added icons for profiling options and added them to the compiling toolbar.
  • Updated the Incremental Search window: it now has a previous and next button.
  • Corrected a few regression bugs in the class scanner.
  • Fixed a bug in the tooltip content generator.
  • And much more minor stuff...


Important notices
  1. The options format has changed. If you want to reuse an old pre-4.9.9.3 config file (NOT recommended), or, more importantly, when you're overriding Compiler Options in your project, you need to re-set these project settings once and save the project. You'll then have an updated 4.9.9.3+ project file.
  2. This version has GCC built-in instead of being an aditional package. It also contains D3D9/10/11, GDI, Win32 and OpenGL headers and libraries in that flavor.
  3. This version is now fully portable. If you also don't want Dev to leave anything behind in the registry, please select "Portable" or "Minimal" in the setup options.
  4. For ultimate portable programming, please launch devcppPortable.exe located in the main folder of the portable zip download. This will make dev save its configuration files in the same folder as the executable.



Download
The setup can be downloaded here. The Portable zip version can be downloaded here. The source code can be found here.


Beta update
The 5.0.0.5 Beta 12 update can be found here. Its source code can be found here.


Problems / Upcoming changes / TODO
  • TODO: Implement C++0x suggestions by Xazax.
  • TODO: Fix the ParentID bug in the tooltip and goto menu items.
  • FIXED: Fix the bug reported by Anonymous (first comment on 4.9.9.8).

65 comments:

  1. Will Dev-C++ Portable copy font files in order to make the font available on other computers?

    ReplyDelete
  2. _bfd_window_internal *i --this error causes the write behind buffer, which takes place during parsing the header file...a memory leak..

    ReplyDelete
  3. @cin.getline:

    Nope, it doesn't, but I sticked with MS Sans Serif, which should be available on 99% of users' PC's.

    It's exactly the reason why I didn't use that fancy Segoe UI font Windows 7 uses for its UI: Segoe is unavaible on PC's that don't have Office 2007 or Vista or later installed...

    @Anonymous:

    I don't really understand. Can you rephrase that?

    ReplyDelete
  4. As a human, I must commend you on your hard word for restoring Dev-C++ back to its former glory. Great job! :D

    ReplyDelete
  5. Well, sounds terrible.
    Um... I have confronted another problem. It pop out "[Warning] command line option '-std=c++0x' is valid for C++/ObjC++ but not for C [enabled by default] " in the case of the source code was written by C......
    I know it's nothing to do with Dev-C++, but the setting does confuse gcc.
    Could it be fixed???
    And still another problem is that if I type spaces in a line that has contained nothing, as long as I switch to other line and switch back, the spaces will disapear... @_@
    I think it's not a bug, but it does make Dev-C++ less convenient...

    ReplyDelete
  6. @cin.getline:

    You probably set Project >> Project Options >> Compiler >> Code Generation >> Language Standard to something C++0x-related. I suggest to ISO or GNU C++ here. Version 5.0.0.5 wil add some C99 options.

    This option can also be found in the global compiler options (Tools >> Compiler Options >> Settings >> ...), but these are ignored if a project is open.

    The other bug/feature can be disabled by Tools >> Editor Options >> Keep Trailing Spaces.

    @Anonymous:

    The 4.9.9.8 bug is fixed in 5.0.0.5 RC1 which I'll upload next week:

    http://gamerneeds.org/bestanden/newmouseover.png

    ReplyDelete
  7. @orwells

    that is a good news!!!!!

    i hope 5.0.0.5 release well stable as 4.9.9.9

    did try my own build?

    ReplyDelete
  8. Oh, I haven't seen that.
    Thank you!

    ReplyDelete
  9. try devc++ in solaris 10 it runs

    ReplyDelete
  10. @Anonymous1:

    I would really like to see your build, but you keep sending me links to it I can't access.

    Please, try emailing it!

    ReplyDelete
  11. Thank you so much for upgrading and pumping life into it. You should link this page on the main page of bloodshed.net so we can find it easy :) I had to dig on wikipedia to find your site. keep up the good work.

    MrJake

    ReplyDelete
  12. 5.0.0.5 beta 7 -- very bad build now ide can no longer see the variable declared in int, long, double, unsigned expt. char and alike.

    ReplyDelete
  13. the repository of the parsed header location -- bug is located.

    ReplyDelete
  14. ide 5.0.0.5 can no longer locate ::cout, ::endl, and other templetized identifier, upon crtl+right+click/mouse override..did you remove the repository stack in devc++.map.

    ReplyDelete
  15. @Anonymous:

    It's exactly the reason why it's a beta build.

    Everything can be found/goto'd, except:
    1) function/loop-local variables
    2) template/namespace variables

    Oh, devcpp.map contains debugging information, not header scans.

    This code-reading code is troubling me. :(

    @MrJake:

    I've tried to contact the old team a couple of times, but they aren't responding unfortunately...

    ReplyDelete
  16. Two problems:
    1) When I changed the language, it tell me it have got in a trouble.
    2)Anytime I check the "Use fast but imperfect dependency generation." off, it will be recovered next time.

    THX for your support!

    ReplyDelete
  17. @cin.getline:

    1) I've tried changing it in the first time config thing and in Environment Options, but I can't produce a crash. Can you elaborate?
    2) Looks like I forgot about that one and compile delay. Looks like I fixed it in Beta 8. :P

    ReplyDelete
  18. @cin.getline:

    Beta #8 is up now, which contains the promised fixed (at least, I hope so, because I thought I fixed these in 4.9.9.3).

    And for anyone wondering when the real 5.0.0.5 gets released, here's the current TODO list:

    1) statement list index out of bounds when reparsing...
    2) local scope variable finding support
    3) enable support for non-class function parameter finding, use mousepos, not cursorpos
    4) tooltip enable/disable switch
    5) autosave

    ReplyDelete
  19. ---for convenient search for dev c++ upgraded version i added this link to brothersoft.com

    ReplyDelete
  20. in news.txt please include your link

    http://orwellengine.blogspot.com/ for every update you made.

    ReplyDelete
  21. May I request something?

    Adding "-std=c++0x" for a command line option by default, so that anyone who uses this can get in the C++11 awesomeness.

    ReplyDelete
  22. @imnotanerd

    tools/compiler option/code generation/language standard --there you can select.

    ReplyDelete
  23. Application version: 5.0.0.4

    Machine info
    ---------
    Platform : Windows NT
    OS version : version 6.0 (build 6002)
    Additional info: Service Pack 2


    The following error occured in version 5.0.0.4:
    Failed to set data for '' (at address 0x00148D82)


    Please include a description of what you were doing before the error occured (please give as much precisions as possible) :
    I changed the language, and crashed.


    State information follows:
    Stack trace:
    ------------
    00288C86 (00187C86): ShowExceptionInfo (ExceptionsAnalyzer - 564)
    00288E7B (00187E7B): TExceptionsAnalyzer.GlobalExceptionHandler (ExceptionsAnalyzer - 572)
    00209F53 (00108F53): RegisterFiletype (FileAssocs - 195)
    00209BE8 (00108BE8): Associate (FileAssocs - 133)
    00209D24 (00108D24): Associate (FileAssocs - 151)
    0022E78F (0012D78F): TEnviroForm.btnOkClick (Envirofrm - 358)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    002602E6 (0015F2E6): TCompiler.WriteMakeObjFilesRules (compiler - 403)
    00251A0E (00150A0E): TMainForm.actEnviroOptionsExecute (main - 3572)
    00251AE5 (00150AE5): TMainForm.actEnviroOptionsExecute (main - 3592)
    00251B02 (00150B02): TMainForm.actEnviroOptionsExecute (main - 3592)
    0028B297 (0018A297): (devcpp - 222)
    0028B2B5 (0018A2B5): (devcpp - 222)
    0028AAF0 (00189AF0): (devcpp - 131)
    0028AAF0 (00189AF0): (devcpp - 131)

    ReplyDelete
  24. Please, in the compiler option to add:
    Processor - i7
    Optimization - 0fast

    ReplyDelete
  25. Please ALL option processor:
    generic
    native
    i386
    i486
    i586,
    pentium-mmx
    pentiumpro
    i686
    pentium2
    pentium3
    pentium-m
    pentium4, pentium4m
    prescott
    nocona
    core2
    corei7
    corei7-avx
    atom
    k6
    k6-2, k6-3
    athlon, athlon-tbird
    athlon-4, athlon-xp, athlon-mp
    k8, opteron, athlon64, athlon-fx
    k8-sse3, opteron-sse3, athlon64-sse3
    amdfam10, barcelona
    winchip-c6
    winchip2
    c3
    c3-2
    geode

    ReplyDelete
  26. @imnotanerd:

    You can indeed edit Tools >> Compiler option >> code generation >> language standard, which will also set the standard option for any new projects.

    @cin.getline:

    Well, I've tried editting the language a couple of times in a couple of places, but I can't generate a crash. Are you able to reproduce the crash? If so, please tell me how.

    @Anonymous:

    You could add these to the compiler option textbox (like '-march=whatever'.

    I've added the missing -march and the Ofast options to 5.0.0.5.

    With some luck I'll get a stable enough 5.0.0.5 done this weekend, so you folks will be able to torture it.

    ReplyDelete
  27. I look forward to programming the hell out of 5.0.0.5! :D

    Auto-complete pl0x?

    ReplyDelete
  28. Progress report:

    1) Local variable finding is working now (95% of cases).
    2) Editor tooltips now also show up on first start.
    3) Added more flags to Compiler Options.

    TODO:

    1) Add tooltip on/off option (ez).
    2) Fix the bug mentioned by cin.getline (?).
    3) Autosave.
    4) Function finder for regular functions outside classes.

    ReplyDelete
  29. TODO:

    1) Fix the bug mentioned by cin.getline (?).
    2) Autosave.
    3) Function finder for regular functions outside classes.

    ReplyDelete
  30. Important Update!

    http://gamerneeds.org/bestanden/SOURCE%205.0.0.5%20RC9.7z
    http://gamerneeds.org/bestanden/Dev-Cpp%205.0.0.5%20RC9%20Overwrite%20Update.7z

    I *know* this version contains the so-called ParentID bug (keep an eye on the statusbar when using variable hovering with the mouse). Dev will warn you (but NOT crash) about/because of the error! It's safely encapsulated in an if/else branch.

    This bug is exactly the reason why I politely request anyone using this to confirm Dev won't crash or do anything not-so-nice because of it.

    ReplyDelete
  31. http://gamerneeds.org/bestanden/Dev-Cpp%205.0.0.5%20RC9%20Overwrite%20Update.7z

    --exception overflow during debugging...

    ReplyDelete
  32. Problem signature:
    Problem Event Name: APPCRASH
    Application Name: devcpp.exe
    Application Version: 5.0.0.5
    Application Timestamp: 2a425e19
    Fault Module Name: KERNELBASE.dll
    Fault Module Version: 6.1.7601.17514
    Fault Module Timestamp: 4ce7b8f0
    Exception Code: 0eedfade
    Exception Offset: 0000b760
    OS Version: 6.1.7601.2.1.0.256.1
    Locale ID: 1033
    Additional Information 1: d1a0
    Additional Information 2: d1a047955475a709b95e8bce27fa2a6e
    Additional Information 3: a4cd
    Additional Information 4: a4cde0b8f597860c6bb144cbad2b2f76

    ReplyDelete
  33. --orwell are you the only one tweaking this package?coz if it is you maybe need to build a community for this project in order to make is more stable..2 heads are better than one.

    ReplyDelete
  34. Fantastic!!!
    Please option generic code of "Language standard (-std)" to add "None".
    In "Optimize level" in the Russian -> "Уровень оптимизации"
    In "Optimize for march..." -> "Оптимизация под процессор"

    ReplyDelete
  35. Is NEW options? -> (-m32) for compiling in 64bit to 32bit?

    ReplyDelete
  36. And -> (-m64) for compiling in 32bit for 64bit.

    ReplyDelete
  37. Eros:
    is original compiler GCC to make eror of
    # Makefile created by Dev-C++ 5.0.0.5 Beta 9
    RM = rm -f
    a see of:
    RM = rm.exe -f

    ReplyDelete
  38. else
    ${RM} $(OBJ) $(BIN)
    to
    $(RM) $(OBJ) $(BIN)

    ReplyDelete
  39. cc1plus.exe: error: invalid option argument 'Ofast' ((( not compiller((

    ReplyDelete
  40. @Anonymous:

    Uhm, GNU C++ (-stdgnu++98) is the actual default for GNU GCC. This is 100% equivalent to sending no -std flag to GCC.

    I'll add these Russian translations! Thanks.

    Hmm, I don't think MinGW can compile for 64bit yet, because MinGW itself isn't 64bit either.

    About {} and (): they both work as variable inserters, but can you explain why () would be better (the {} should be there for a reason)?

    Uhm, Ofast works just fine here...

    ReplyDelete
  41. Ofast, of automatic configure Make error, else it can.

    ReplyDelete
  42. "Hmm, I don't think MinGW can compile for 64bit yet, because MinGW itself isn't 64bit either."
    I tried. Collects.
    Specify let for bin to a folder and all.
    Install http://tdm-gcc.tdragon.net/download
    end option compiler NO -m34, other in 32bit for 64bit. ;)

    ReplyDelete
  43. "Hmm, I don't think MinGW can compile for 64bit yet, because MinGW itself isn't 64bit either."
    I tried. Collects.
    Specify let for bin to a folder and all.
    Install http://tdm-gcc.tdragon.net/download
    end option compiler NO -m32, other in 32bit for 64bit. ;)

    ReplyDelete
  44. Some translations from English to Chinese(TW).

    The translations below are in the "Tools" → "Compiler Options" → "Settings".
    "Code warnings" → "程式碼警告"
    "Show most warnings" → "顯示所有警告"
    "Show some more warnings" → "顯示額外警告"
    "Check ISO C/C++/C++0x Conformance" → "嚴格遵守 ISO C/C++/C++0x 標準"
    "Strip executable" → "移除所有除錯資訊"
    "Optimization Level" → "最佳化等級"
    "Language standard" → "語言標準"

    The translations below are in the "Editor options".
    "Ensure that file ends with new line." → "確保檔案以換行結束"
    "Append closing braces" → "自動加上靠近的括號"
    "Highlight current line" → "強調目前所在的行"
    "Show inherited member" → "顯示繼承的成員"


    THANK YOU!!
    (You can ignore the bug I mentioned serveral days ago. Actually, it won't cause any fatal errors. )

    ReplyDelete
  45. @Anonymous (I take you're the same guy):

    No offence, but I honestly don't really understand what you're trying to explain, except from pointing me to a 64bit MinGW.

    @All who are supplying non-western translations:

    Dev-C++ uses Microsofts 8bit-character based sets, like the russian set called Windows-1251. I'm having some trouble editting these files with my Windows-1252 OS...

    I'd be delighted if anyone would:

    1) Open up English.lng
    2) Find the sentence that isn't translated to your language. Write down the number before it.
    3) Open up YourLanguage.lng.
    4) Find that same index. It probably isn't there. If it IS, replace the text behind it by your translation.
    5) If it's not there, create it and append '=(translation)' to it.

    ReplyDelete
  46. If to replace the compiler on 64 bit, it will work also in 32 bit system for it 32 bit, but by default generates a code for 64 bit cars.
    In this case to generate for 32 bit it is necessary to add-m32.

    ReplyDelete
  47. I have mailed a new translation to you. Do you copy?

    ReplyDelete
  48. @cin.getline:

    I inserted the file in the lang folder. Seems to work fine.

    @Anonymous:

    That x64 version of MinGW is quite interesting. However, I first want 5.0.0.5 to be stable.

    Here's a TODO list:
    1) Fix the language change bug reported by cin.getline.
    2) Let Anonymous translate some russian text.
    3) It'd be great if I could fix the ParentID bug.

    ReplyDelete
  49. Thanks big!!!
    Now all works, I think it is possible to let out stable release.
    To you it is very grateful!!!

    ReplyDelete
  50. Some text can't be found in the English.lng like "Append closing braces".

    ReplyDelete
  51. Bag: it is impossible to create the new project!

    ReplyDelete
  52. I just wish to express a Thank You for your time and efforts in developing on this IDE !
    I switched from MSVC++ 2008 to Dev-C++ for more than a year although I knew that developing for Dev-C++ stopped for several years. Just accidentally I stumbled over your blog here and am very pleased at your job!

    P.S.: Is there a recent help file for all MinGW compiler command line options, too?

    Thank you.
    Wieland

    ReplyDelete
  53. Yes, thank you very much indeed!

    Here is a small bug I found:
    Whenever I type a closing normal bracket, i.e. ")", the program adds a second one which I then have to delete.
    Since this wasn't mentioned before I fear I could be the only user affected. Wasn't able to find anything wrong with the code insertion settings, though.

    And another thing: did you think of contacting the people over at "wxDevCpp" (wxdsgn.sourceforge.net)? They, too, are updating the original DevCpp source code, as it seems.
    I am quite happy with having both projects installed for different purposes, but since both adopted the original "Dec-Cpp" user folder for config files, it's a big hassle to keep them from overwriting each other's settings. I know DevCpp 5 has the portable executable as an option, but when I bind *.c and *.cpp files to it, and then double-click a file, the portable version is no longer used, it seems.

    Once again a big thank you for your efforts: they are very much appreciated. You should consider adding references to all your project pages to the Dev-C++ wikipedia entry, so that you get the attention you deserve.

    Philo

    ReplyDelete
  54. wxDev-C++ uses the old version GCC, and I am not familiar with it, and that's the reason why I choose Dev-C++ 5 developed by Orwell. However, I think you should find somebody working with you in order to complete this program. Two man can work better.

    ReplyDelete
  55. @Caha:

    Yes, it probably is. I'll upload 5.0.0.5 today.

    @cin.getline:

    I'll add these to the translations. Your previous submit has been implemented and updated too, as you know.

    @Anonymous:

    I can't fix your bag unfortunately, as I don't have a clue how to replicate it.

    @Wieland:

    Thank you! ;)

    And, yes, there is. Its 99% equal to GCC.

    http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Invoking-GCC.html#Invoking-GCC

    @Philo:

    It does append a closing brace when typing ( for example, but it doesn't insert anything when typing ) though. You can disable this stuff in Editor Options if you want to test if it is to blame.

    Hmm, the file binding problem sounds interesting. I'll have a look at it.

    ReplyDelete
  56. Pleas!
    tbSpecials->Constraint->MaxWidth=500
    Not in all languages of a word same are long as in English

    ReplyDelete
  57. source/Vcl:
    The instruction for assemblage not the full!
    Some *.DCU files which are necessary NOT compiling as are absent in *.dpk

    ReplyDelete
  58. sl.Add('Conroe=core2');
    sl.Add('Nehalem=corei7');
    sl.Add('Sandy=corei7-avx');
    to:
    sl.Add('Conroe(core2)=core2');
    sl.Add('Nehalem(corei7)=corei7');
    sl.Add('Sandy(corei7-avx)=corei7-avx');

    ReplyDelete
  59. Pleas:
    NewAllBtn->AutoSize -> True
    InsertBtn->AutoSize -> True
    ToggleBtn->AutoSize -> True
    GotoBtn->AutoSize -> True

    To Main Form.

    ReplyDelete
  60. It is necessary to let out release, you have changed a folder with drawings, updating imposed on fair installation DOES NOT WORK correctly.
    Folders images aren't present (
    NOIMG BITMAP ". \IMAGES\noimg.bmp"

    ReplyDelete
  61. "@Philo:

    It does append a closing brace when typing ( for example, but it doesn't insert anything when typing ) though. You can disable this stuff in Editor Options if you want to test if it is to blame."

    Yes, I do have 'Append closing braces checked', as that is the setting I used in the old DevCpp.
    But it no longer seems to work correctly:
    When I type an opening brace, nothing happens; when I type a closing brace, the program adds a second one. This occurs even when no opening brace is present.

    On another note: you might be interested in checking out this article: http://www.cplusplus.com/articles/36vU7k9E/
    It explains why Cplusplus members "deprecated" DevCpp and advise everybody not to use it. Reasons given: too old and buggy, no longer updated.
    The interesting part is that the article has last been edited in September, so they are clearly unaware of your endeavours here. I was going to leave a message in their forum pointing to your blog, but then I'm not the person who should do that because I cannot answer any questions about your project or future plans.

    ReplyDelete
  62. How can this be a continuation of the original Bloodshed Dev-C++? Your email and name is no where in the credited developers of the original team. How are you connected to Dev-C++? If you are just some fan working on continuing the ide/compiler then great. Just give the proper credit to the original team.

    ReplyDelete
  63. @Anonymous:

    This is, as I've written myself on the wiki, an unofficial update/continuation of Dev-C++.

    I haven't removed the pre-4.9.9.3 developers from the about section or anything either.

    And, well, I've given up on contacting the original devs after trying about five times, which more or less implies they don't know me, which leads to me not being on their credit list.

    Bottom line: I do give proper credit: I've decided not to replace any text containing 'Bloodshed.net' or anything related from Dev, and the wiki properly lists this one as an unofficial update!

    ReplyDelete
  64. Oh snap, Orwell DevCpp has a sourceforge page now? NICE!
    http://sourceforge.net/projects/orwelldevcpp/

    ReplyDelete