Ticket #453 (closed defect: fixed)

Opened 3 years ago

Last modified 14 months ago

"Assertion failed: "hModule" Location: wdlfcn.cpp:55 (dlopen)" when trying to start Atlas

Reported by: feneur Owned by: Philip
Priority: Should Have Milestone: Pre-Alpha 1
Component: Atlas editor Keywords:
Cc: jan, philip

Description

Assertion failed: "hModule"
Location: wdlfcn.cpp:55 (dlopen)

Call stack:

dlopen (wdlfcn.cpp:50)
    so_name = 0xCCCCCCCC
    flags = 1244820 (0x0012FE94)
    hModule = 0xCCCCCCCC
    pathname = 
        m_path = (error -100500 while analyzing string<﻾td::char_traits<char> >)


DllLoader::LoadDLL (dllloader.cpp:70)
    this = 0x00BAD56B -> 
        m_Name = 0x0824548B -> (unavailable - internal error)

        m_Handle = 0x8B0C428D


ATLAS_Run (atlas.cpp:41)
    args = 0x0012FEC8 -> 
        m_Args = (error -100500 while analyzing vector<pair<CStr8,CStr8> >)
        m_Arg0 = { (error -100500 while analyzing string<﻾td::char_traits<char> >) }

    flags = 3017173665 (0xB3D66AA1)

ATLAS_RunIfOnCmdLine (atlas.cpp:70)
    args = 0x00000002

RunGameOrAtlas (main.cpp:379)
    argc = 2 (0x00000002)
    argv = 0x01F17690 -> 0x01F1769C -> "h:\0ad\binaries\system\pyrogenesis_dbg.exe"
    ran_atlas = true 
    args = 
        m_Args = (error -100500 while analyzing vector<pair<CStr8,CStr8> >)
        m_Arg0 = { (error -100500 while analyzing string<﻾td::char_traits<char> >) }

    res = 2.63516e-299 (0x01F1A5C0CCCCCCCC)

main (main.cpp:416)
    argc = 1245112 (0x0012FFB8)
    argv = 0x00506C74 -> 0xC7E04589 -> (unavailable - internal error)


__tmainCRTStartup (crtexe.c:410)

mainCRTStartup (crtexe.c:393)

CallStartupWithinTryBlock (wseh.cpp:352)
    ret = 1245060 (0x0012FF84)

00000000
    ret = 2147328000 (0x7FFDA000)


errno = 0 (?)
OS error = 0 (no error code was set)

After I click continue I get the following error message:

The Atlas UI was not successfully loaded and therefore cannot be started as requested.
Location: Atlas.cpp:46 (ATLAS_Run)

Call stack:

ATLAS_Run (atlas.cpp:41)
    args = 0x0012FEC8 -> 
        m_Args = (error -100500 while analyzing vector<pair<CStr8,CStr8> >)
        m_Arg0 = { (error -100500 while analyzing string<﻾td::char_traits<char> >) }

    flags = 3017173665 (0xB3D66AA1)

ATLAS_RunIfOnCmdLine (atlas.cpp:70)
    args = 0x00000002

RunGameOrAtlas (main.cpp:379)
    argc = 2 (0x00000002)
    argv = 0x01F17690 -> 0x01F1769C -> "h:\0ad\binaries\system\pyrogenesis_dbg.exe"
    ran_atlas = true 
    args = 
        m_Args = (error -100500 while analyzing vector<pair<CStr8,CStr8> >)
        m_Arg0 = { (error -100500 while analyzing string<﻾td::char_traits<char> >) }

    res = 2.63516e-299 (0x01F1A5C0CCCCCCCC)

main (main.cpp:416)
    argc = 1245112 (0x0012FFB8)
    argv = 0x00506C74 -> 0xC7E04589 -> (unavailable - internal error)


__tmainCRTStartup (crtexe.c:410)

mainCRTStartup (crtexe.c:393)

CallStartupWithinTryBlock (wseh.cpp:352)
    ret = 1245060 (0x0012FF84)

00000000
    ret = 2147328000 (0x7FFDA000)


errno = 0 (?)
OS error = 0 (no error code was set)

And if it's useful here's the output, perhaps it can provide some clues{{{ 'pyrogenesis_dbg.exe': Loaded 'H:\0ad\binaries\system\pyrogenesis_dbg.exe', Symbols loaded. 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\opengl32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\secur32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\user32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\glu32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\ddraw.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\dciman32.dll' 'pyrogenesis_dbg.exe': Loaded 'H:\0ad\binaries\system\libxml2.dll', Binary was not built with debug information. 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\wsock32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\ws2_32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\ws2help.dll' 'pyrogenesis_dbg.exe': Loaded 'H:\0ad\binaries\system\iconv.dll', Binary was not built with debug information. 'pyrogenesis_dbg.exe': Loaded 'H:\0ad\binaries\system\zlib1.dll', Binary was not built with debug information. 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989\msvcr80.dll' 'pyrogenesis_dbg.exe': Loaded 'H:\0ad\binaries\system\OpenAL32.dll', Binary was not built with debug information. 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\shell32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\winmm.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\ole32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcp90d.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcr90d.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\dsound.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\version.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\wintrust.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\crypt32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\msasn1.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\imagehlp.dll' 'pyrogenesis_dbg.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\wdmaud.drv' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Unloaded 'C:\WINDOWS\system32\wdmaud.drv' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\wdmaud.drv' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\msacm32.drv' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\msacm32.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\midimap.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll' 'pyrogenesis_dbg.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll' HPET: rev=1 vendor=8086 bits=64 period=429B17F freq=1.43182e+007 wdlfcn.cpp(55): Assertion failed: "hModule" 'pyrogenesis_dbg.exe': Loaded 'H:\0ad\binaries\system\dbghelp.dll' First-chance exception at 0x0052471b in pyrogenesis_dbg.exe: 0xC0000005: Access violation reading location 0x0824548b. First-chance exception at 0x0052471b in pyrogenesis_dbg.exe: 0xC0000005: Access violation reading location 0xc7e04589. 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\uxtheme.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\Program Files\RocketDock?\RocketDock?.dll', Binary was not built with debug information. 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\psapi.dll' 'pyrogenesis_dbg.exe': Loaded 'C:\WINDOWS\system32\MSCTF.dll' Atlas.cpp(46): The Atlas UI was not successfully loaded and therefore cannot be started as requested. First-chance exception at 0x0052471b in pyrogenesis_dbg.exe: 0xC0000005: Access violation reading location 0xc7e04589. The thread 'whrt_UpdateThread' (0x2be7c) has exited with code 0 (0x0). The thread 'Win32 Thread' (0x2c1d0) has exited with code 0 (0x0). The program '[180652] pyrogenesis_dbg.exe: Native' has exited with code 0 (0x0).

}}} mainlog.html is not updated, I've attached system_info.txt

Attachments

system_info.txt (4.9 KB) - added by feneur 3 years ago.

Change History

Changed 3 years ago by feneur

comment:1 Changed 3 years ago by jan

This can happen if atlasUI_dbg.dll or atlasUI.dll don't exist. The latter should be in svn, but the former isn't and is most likely the cause. I guess it's not worth autobuilding a debug version, and a manually built version risks being outdated.

In any case, if you are interested in running a debug build of Atlas, you can run update-workspaces.bat with an additional --atlas parameter, then build the pyrogenesis workspace in debug mode, which will create atlasUI_dbg.dll.

Please let us know if that doesn't fix it.

comment:2 Changed 3 years ago by feneur

The reason I did a debug build of Atlas in the first place was that Atlas crashed when trying to open it in the "normal way", so I'm not sure how much that will fix. Have tried building though, but got the message that seven parts failed. I don't have time to look into if there's something I might have done to cause it right now, so I post the output below (someone else might see what it is right away, perhaps I edited update-workspaces.bat in a bad way or something, in that case we might move forward faster than if I'd take a closer look later and perhaps still not find anything =) ), but I'll take another look later tonight to see if I messed up somewhere.

1>------ Build started: Project: AtlasScript, Configuration: Debug Win32 ------
2>------ Build started: Project: wxJS, Configuration: Debug Win32 ------
1>Compiling...
2>Compiling...
1>ScriptInterface.cpp
2>precompiled.cpp
2>h:\0ad\source\tools\atlas\wxjs\common\clntdata.h(28) : fatal error C1083: Cannot open include file: 'wx/clntdata.h': No such file or directory
2>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\wxJS_Debug\BuildLog.htm"
2>wxJS - 1 error(s), 0 warning(s)
1>..\..\..\source\tools\atlas\AtlasScript\ScriptInterface.cpp(32) : fatal error C1083: Cannot open include file: 'wx/wx.h': No such file or directory
1>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\AtlasScript_Debug\BuildLog.htm"
1>AtlasScript - 1 error(s), 0 warning(s)
3>------ Build started: Project: AtlasObject, Configuration: Debug Win32 ------
3>Compiling...
3>AtlasObjectXML.cpp
3>AtlasObjectImpl.cpp
4>------ Build started: Project: simulation2, Configuration: Debug Win32 ------
4>Compiling...
4>CCmpTest.cpp
3>AtlasObjectText.cpp
3>Generating Code...
3>Creating library...
3>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\AtlasObject_Debug\BuildLog.htm"
3>AtlasObject - 0 error(s), 0 warning(s)
5>------ Build started: Project: AtlasUI, Configuration: Debug Win32 ------
5>Compiling...
5>precompiled.cpp
5>h:\0ad\source\tools\atlas\atlasui\misc\precompiled.h(43) : fatal error C1083: Cannot open include file: 'wx/wxprec.h': No such file or directory
5>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\AtlasUI_Debug\BuildLog.htm"
5>AtlasUI - 1 error(s), 0 warning(s)
6>------ Build started: Project: test_gen, Configuration: Debug Win32 ------
6>Generating ../../../source/simulation2/tests/test_ParamNode.cpp
4>CCmpFootprint.cpp
4>CCmpVisualActor.cpp
6>Generating ../../../source/simulation2/tests/test_ComponentManager.cpp
6>Generating ../../../source/tools/atlas/AtlasObject/tests/test_AtlasObjectXML.cpp
4>CCmpPosition.cpp
6>Generating test_root.cpp
6>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\test_gen_Debug\BuildLog.htm"
6>test_gen - 0 error(s), 0 warning(s)
4>CCmpTemplateManager.cpp
4>CCmpPathfinder.cpp
7>------ Build started: Project: lowlevel, Configuration: Debug Win32 ------
7>Compiling...
7>wclipboard.cpp
4>..\..\..\source\simulation2\components\CCmpPathfinder.cpp(167) : warning C4100: 'serialize' : unreferenced formal parameter
4>..\..\..\source\simulation2\components\CCmpPathfinder.cpp(174) : warning C4100: 'deserialize' : unreferenced formal parameter
4>ParamNode.cpp
4>ComponentManagerSerialization.cpp
4>Generating Code...
4>Compiling...
4>EngineScriptConversions.cpp
4>ComponentManager.cpp
4>Simulation2.cpp
4>Generating Code...
7>Creating library...
4>Skipping... (no relevant changes detected)
4>ICmpPlayer.cpp
4>CCmpTerrain.cpp
4>ICmpMotion.cpp
4>ICmpGuiInterface.cpp
4>CCmpObstruction.cpp
4>ICmpUnknownScript.cpp
4>ICmpPlayerManager.cpp
4>CCmpSelectable.cpp
4>CCmpUnitMotion.cpp
4>ICmpTemplateManager.cpp
4>CCmpOwnership.cpp
4>CCmpCommandQueue.cpp
4>ScriptComponent.cpp
4>CCmpMotionBall.cpp
4>Creating library...
7>secure_crt.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
7>os_cpu.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
7>cpu.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
7>vfs_path.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
7>io_align.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
4>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\simulation2_Debug\BuildLog.htm"
4>simulation2 - 0 error(s), 2 warning(s)
8>------ Build started: Project: gui, Configuration: Debug Win32 ------
8>Compiling...
7>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\lowlevel_Debug\BuildLog.htm"
7>lowlevel - 0 error(s), 5 warning(s)
8>ScriptFunctions.cpp
9>------ Build started: Project: atlas, Configuration: Debug Win32 ------
9>Compiling...
9>ObjectHandlers.cpp
8>Creating library...
8>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\gui_Debug\BuildLog.htm"
8>gui - 0 error(s), 0 warning(s)
9>Creating library...
10>------ Build started: Project: graphics, Configuration: Debug Win32 ------
10>Compiling...
10>MapWriter.cpp
9>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\atlas_Debug\BuildLog.htm"
9>atlas - 0 error(s), 0 warning(s)
11>------ Build started: Project: ColourTester, Configuration: Debug Win32 ------
11>Compiling...
11>ColourTester.cpp
11>Compiling resources...
11>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
11>Copyright (C) Microsoft Corporation.  All rights reserved.
11>Compiling manifest to resources...
11>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
11>Copyright (C) Microsoft Corporation.  All rights reserved.
11>Linking...
11>LINK : fatal error LNK1104: cannot open file '../../../binaries/system/AtlasUI_dbg.lib'
11>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\ColourTester_Debug\BuildLog.htm"
11>ColourTester - 1 error(s), 0 warning(s)
12>------ Build started: Project: ActorEditor, Configuration: Debug Win32 ------
12>Compiling...
12>ActorEditor.cpp
12>Compiling resources...
12>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
12>Copyright (C) Microsoft Corporation.  All rights reserved.
12>Compiling manifest to resources...
12>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
12>Copyright (C) Microsoft Corporation.  All rights reserved.
12>Linking...
12>LINK : fatal error LNK1104: cannot open file '../../../binaries/system/AtlasUI_dbg.lib'
12>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\ActorEditor_Debug\BuildLog.htm"
12>ActorEditor - 1 error(s), 0 warning(s)
10>Creating library...
10>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\graphics_Debug\BuildLog.htm"
10>graphics - 0 error(s), 0 warning(s)
13>------ Build started: Project: test, Configuration: Debug Win32 ------
14>------ Build started: Project: pyrogenesis, Configuration: Debug Win32 ------
14>Linking...
13>Compiling...
13>test_AtlasObjectXML.cpp
13>test_ComponentManager.cpp
13>test_ParamNode.cpp
13>test_root.cpp
13>Generating Code...
13>Compiling...
13>test_CmpTemplateManager.cpp
13>test_CommandQueue.cpp
13>test_Position.cpp
13>test_scripts.cpp
13>Generating Code...
13>Linking...
14>Embedding manifest...
14>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\pyrogenesis_Debug\BuildLog.htm"
14>pyrogenesis - 0 error(s), 0 warning(s)
13>   Creating library ../../../binaries/system/test_dbg.lib and object ../../../binaries/system/test_dbg.exp
13>Embedding manifest...
13>Build log was saved at "file://h:\0ad\build\workspaces\vc2008\obj\test_Debug\BuildLog.htm"
13>test - 0 error(s), 0 warning(s)
========== Build: 9 succeeded, 5 failed, 7 up-to-date, 0 skipped ==========

comment:3 Changed 3 years ago by jan

Oh sorry, I neglected to mention that building Atlas requires an additional bit of software. Philip decided not to include wxWidgets in SVN because it's not always needed and fairly large. (Might that decision be revised? 70 MB isn't exactly earth-shattering..) There are instructions in svn\libraries\wxwidgets\readme.txt on installing it (sorry, a few steps are needed - perhaps another reason to prefer to bundle our own version of their release).

comment:4 Changed 3 years ago by Philip

Hmm, odd, I was certain that DllLoader in debug builds would try to load AtlasUI_dbg.dll first and then fall back to AtlasUI.dll if it wasn't found (so it should never legitimately fail to find the library). But it doesn't, and it never has, so I don't know why I thought that.

Perhaps it should do that, because it'd let people run debug builds without having to get an AtlasUI_dbg.dll themselves.

Anyway, an easier fix is to simple rename(/copy) AtlasUI.dll to AtlasUI_dbg.dll and it should work fine. (The interface is designed to work across debug/release mixes and different compiler versions, so that won't break.)

A somewhat related issue is that we should have much nicer error messages in this case - it should just say "Can't find $dllname" if the file doesn't exist, instead of exposing assertion failures to users.

70 MB isn't exactly earth-shattering

Is that for just for Release builds of wx, or for Debug too? and including .pdb files or not? (I'd have thought the full debug version was much bigger - I'll check when I get home tonight...)

comment:5 Changed 3 years ago by feneur

Renaming the DLL made it work, but I still get a crash when trying to run Atlas with the precompiled version of pyrogenesis. It seems to load the GUI, apart from the 3D world itself. Not sure if it's worth looking into more closely as whatever the cause of that crash seems to have been fixed since the last autobuild, but I can provide you with the information from the "pyrogenesis.exe has encountered a problem and needs to close..." dialog box if you want to try and find out what it was (or rather the error report one can click through to from that dialog box, but in any case =) ).

comment:6 Changed 3 years ago by Philip

That's almost certainly r7299, so no need to look in more detail. (I'll update the autobuild later tonight.)

comment:7 Changed 3 years ago by Philip

Looks like my copy of wx is about 180M (including the debug files) - that would be a 50% increase in the total size of the public tree, and hundreds of gigabytes of extra server traffic, and it would only help a tiny handful of people who want to bother compiling Atlas, and the wx build process is reasonably straightforward, so I'm still not convinced it's worthwhile.

comment:8 Changed 3 years ago by jan

hm, the 70 MB figure is from the readme and is indeed out of date. However, of those 180 MB, ~57 could be removed outright (incremental build gunk and PDB), and the actual .lib files compress down to 27 MB (per-file Deflate), which is what I gather would go over the wire. I'm not sure that so few people are compiling Atlas, and they might run into SpiderMonkey?-esque problems where we're dependent on the exact version used, which would be another reason to bundle our version. Amusingly, it looks like we've switched roles here - there is a proposal that is closer to the Right Way to do things and provides a minor benefit at the cost of some efficiency/tightness. Earlier, I would've said: let's not waste cycles/bytes, the assumption Is Probably Safe (<- famous last words); but now it is the opposite :)

About DllLoader?: yeah, sounds like a good idea - people might want to run debug builds, and even if wxW is included, they might not be generating workspaces with --atlas, so falling back to the release-mode DLL would help them.

Error messages: that's a reasonable expectation, but it should probably happen at a higher level. Sure, we could add a nice message to our dlopen emulation, but that won't have any effect on Linux. Instead, I think DllLoader? should check if the file exists (or we could just disable that assert, let dlopen return zero and have DllLoader? check for that).

comment:9 Changed 3 years ago by Philip

  • Status changed from new to closed
  • Resolution set to fixed

The SVN server actually has HTTP compression disabled, as an attempt to stop memory usage exploding in certain cases, though I should probably fix that. #455.

With SpiderMonkey, the main problems were from Linux distros providing versions that were picked up instead of our version, and from our strict requirement on portable reproducible behaviour, and from its lack of compatibility between versions. It's quite different here since we're thinking about Windows, and we don't have any strict requirements on reproducibility, and wx is designed to have stability between releases. And we're not going to bundle wx on Linux (because that would be incredibly evil), so we need to be compatible with multiple versions anyway.

So I think bundling SpiderMonkey solves real problems that have occurred and that can't be solved any other way, but bundling precompiled wx would merely save a fraction of developers from ten minutes of work.

Still, might be worthwhile if it's not actually large when the optional files are removed, and perhaps when unused optional wx features are disabled. wx 2.9 removes the debug/release distinction, which should make a big difference, so I'd probably be happiest to wait some months until that becomes a bit more stable and then see if it's worth upgrading to that on Windows and bundling binaries.

DllLoader: Checking for file existence might be not entirely trivial if it's loaded from somewhere dynamic (e.g. LD_LIBRARY_PATH on Linux), but I expect it shouldn't be hard, and I'd agree that's better than expecting dlopen to do nice error-handling by itself. #456.

comment:10 Changed 3 years ago by jan

Ah, if the next version is going to remove that distinction, then waiting for it sounds good :)

comment:11 Changed 3 years ago by anonymous

  • Milestone Unclassified deleted

Milestone Unclassified deleted

comment:12 Changed 14 months ago by historic_bruno

  • Milestone set to Pre-Alpha 1
Note: See TracTickets for help on using tickets.