All the news that fits, we print.
This week, 144 posts consumed 392 K. There were 53 different contributors. 24 (45%) posted more than once. 28 (52%) posted last week too. The top 5 posters of the week were:
|
Address space separation | 28 May 2000 00:00:00 -0800 | Archive |
---|---|---|
The long awaited address space separation patch has been
committed. As already covered in previous issues (
<kcref>#39</kcref> and
<kcref>#27</kcref>,
), this patch lets every
Windows' process run in its own address space (in term of Unix memory
mappings). This firstly allow to get rid of the famous error where
Wine was unable to run a 'stripped binary' with another process.
Lots of people posted positive feedback on the patch, some others
(like Gérard Patel, Ove Kaaven, Guy Albertelli) pointed out some
errors that were quickly fixed.
The most noticeable bad sides of this patch are:
[old way] wine telnet freecell
Now, you must invoke twice the wine interpreter on the command line. The good side of it is you no longer need to put the optional arguments to your program into quotes on the command line. Before you had to write: [old way] wine "winword.exe mytext.doc"
now you must write [new way] wine winword.exe mytext.doc
Notes:
[old way] wine "c:\winnt\winhlp32.exe d:\borland\Borland
Shared\MSHelp\win32.hlp"
now you need to write: [new way] wine c:\\winnt\\winhlp32.exe d:\\borland\\Borland\
Shared\\MSHelp\\win32.hlp
or [new way] wine c:\\winnt\\winhlp32.exe "d:\borland\Borland
Shared\MSHelp\win32.hlp"
if among the arguments to your program, one starts with a dash,
you'd better use[new way] wine --desktop 640x480 -- hl.exe -console
note the '--' to tell Wine not to look for options after this sign (and consider the rest of the command line as parameters to create the new process). |
Code-pages in Wine | 29 May 2000 00:00:00 -0800 | Archive |
---|---|---|
Bertho Stultiens announced: I am currently implementing the Wine Message Compiler (wmc: as an alternative to mc.exe). I need to implement quite a bit unicode support for it to function correctly. Unicode requires a lot of tables for conversion and I did just that for nearly all codepages (from ftp.unicode.org). Alexandre Julliard answered Dmitry Timoshkov has been working with him integrating the same needed basic features into Wine (like on demand translation table loading...). Both agreed that (g)libc didn't provide yet a reliable Unicode support, and that a separate one shall be provided. However, since the wmc message compiler shall be used to compile Wine, it would be difficult to make it heavily rely on Wine features. Also, Bertho would like to keep wmc (as wrc - the Wine resource compiler - is) independent of Wine. Bertho suggested I am not suggesting to build libunicode.so, but I do suggest to build libunicode.a, which can be linked against. This should not require a special API if it only concerns tables. The point is that libunicode.a should be self-sufficient so that you can take it out of wine's context just far enough so that it becomes usable in a wider sense. Basically, you need to place the unicode code isolated and only provide the mere minimum of API which would also be required within wine's context. This enables me to reuse the data/code in wrc without requiring a complete wine-build and does not complicate wine's internal API because it isn't really extended, but merely reused. It would be a shame to neglect the potential while not much effort is required. Alexandre agreed on the general scheme, but wasn't happy with creating another library. He strongly kept his opinion on providing those features from libwine.so. However, both agreed that libwine.so currently contains too many things and shall lose some weight (starting with removing USER and GDI code). Alexandre announced he shall start committing the code-pages to CVS when the Address Space Separation stops shaking the (CVS) tree, and asked Bertho to send also his prepatch so that both efforts shall be merged together. |
Too many GDI objects ? | 01 Jun 2000 00:00:00 -0800 | Archive |
---|---|---|
Jacques Gelinas wrote:
We are trying to run a win32 application on Wine and Linux. The
application is starting and ultimately fails with the following
message:
LOCAL_GetBlock not enough space in GDI local heap (01d7) for 60 bytes
The application does quite a lot before failing. It does ODBC access
to a sybase server, brings its splash screen, then its main
windows. Note that this application main window use quite a few
widgets. It is made of a notebook object with several data browsers
and input fields distributed in the various pages.
Trying to pinpoint the offending piece of code (This is our own
application, so we have to source), we think it is not any code in
particular, but simply because there are two many widgets. Commenting out
the area where our app fails, we get a little further and fails in another
window.
Jacques asked for explanations. Obviously the number of GDI objects
was the source of his problems. Either Wine is leaking some objects,
or Windows provide a support for a larger number of objects.
Douglas Ridgway pointed back to an old (unapplied) patch
to help tracking GDI objects leak (it may even not compile).
Gavriel State continued
Actually, the Corel tree has an extensive resource/memory leak tracker,
including a motif-based graphical profile viewer client. Last I heard,
Alexandre didn't want to put that into WineHQ, since he wanted Wine to
properly implement the equivalent Win32 APIs so that resource-monitoring
Win32 apps would work.
Stéphane Lussier provided another track
In Wine there's currently a limitation on the size of the GDI heap. It is
limited to 64K. This is a old limitation from Win 3.1 (16 bits), this
limitation doesn't exist under Win9x/WinNT.
Alexandre fixed that issue on the Corel wine tree, and I'm pretty sure
eventually somebody will merge his work back into Wine-HQ source tree. It
could even be you :-)
If your application creates a lot of GDI objects that could be the problem.
Or maybe also your application leaks some GDI object, if it's the case
you'll run into that problem (no more space in the GDI heap) much faster
than in Windows. I think in Windows you can create 64K objects before
Windows starts to complain.
In another thread, Douglas Ridway gave a slightly different
explanation on GDI heap limitation:
Although the Wine GDI heap is only 64K, it's not as bad as it
looks. The Wine GDI heap, unlike Win16, does not store large objects
(fonts, palettes, etc.) but only structures which hold flat pointers
to the objects themselves. So, although the heap is of a limited size,
the number of objects which can realistically be stored is large and
not much different from Microsoft implementations. If you're running
out of space on the GDI heap, then Wine is probably leaking GDI
objects.
|
Wine mail archives | 31 May 2000 00:00:00 -0800 | Archive |
---|---|---|
John Freed announced that the HTTP access to the Wine mailing lists archive is back online. Those archives can be accessed at http://www.integrita.com. |
Feature: DLL overrides by Ove Kåven | ||
---|---|---|
The wine.conf directives [DllDefaults] and [DllOverrides] are the subject of some confusion. The overall
purpose of most of these directives are clear enough, though - given a choice, should Wine use its own
built-in DLLs, or should it use .DLL files found in an existing Windows installation? This article
explains how this feature works.
<h3>DLL types</h3>
|
HowTo: Lotus Notes | ||
---|---|---|
Dan Schwarz has brought to our attention that he hosts a Lotus Notes on Linux resource page, which explains how to make Lotus Notes work under Wine. It appears a bit outdated as of this writing, but should make a good starting point (and you could just pester him if you want updates). We need more application tips! Submit your contributions to [email protected] . |
All Kernel Cousin issues and summaries are copyright their original authors, and distributed
under the terms of the
GNU General Public License,
version 2.0.