Differences between revisions 40 and 41

Deletions are marked like this. Additions are marked like this.
Line 35: Line 35:
 * Inter-process handle management
 * Create new winedesktop tool
 * Move all Wine-specific macros to `aclocal`
 * ["Performance-related bugs"] - speed things up a bit
Line 40: Line 36:
 * Implement a cards.dll. See [http://bugs.winehq.org/show_bug.cgi?id=9141 bug 9141]
Line 43: Line 38:
  * [http://www.winehq.org/site/documentation Man Pages] - need pages for ["winepath"] and ["wineboot"]
Line 49: Line 43:

== Window management ==
 *Rewrite Wine's window management code to be able to change the visual of an X window once the window has been created.
 *In Desktop mode all processes started from one Wine invocation should be confined to one desktop window.
 *Get rid of x windows for child windows.
 *Proper support for freedesktop.org standards.
Line 71: Line 59:
== Winedbg ==
 *Speed up PDB support

== GDB ==
 *Add the MSC/PDB info support to gdb

== DDE ==
 *Enhance memory management issues (interprocess sending)
Line 84: Line 63:

 *'''winecfg''':
  *A lot of testing still needs to be done
Line 95: Line 71:
== Fonts ==
 *Subpixel rendering - a.k.a. ClearType
 *Reduce per font startup time
Line 105: Line 77:
 *Perform Windows' reboot operations automatically when required
Line 108: Line 79:
 *Work on WRC as it does not find system headers
Line 114: Line 84:
== Wine Server ==
 *Review of Wine Server Protocol
 *Finalize Server Protocol

== Miscellaneous
 *VxD support with dynamic loading
 Create replacement of browser component (Internet Explorer/IExplore)
Line 125: Line 87:
  *Better integration with window managers
Line 150: Line 111:
 *'''Cabinet''':
  *Compression API's remain unimplemented
Line 156: Line 114:
  *Implement full stub/proxy support for widl
Line 158: Line 115:

 *'''DOS''':
  *VM86 emulation still has races in irq handling.
  *DPMI supports now irqs but still not interrupt reflection.
  *Obsolete Win32s VxDs need to be deleted.
  *VxD handling should be rewritten so that it no longer uses a separate 16-bit DLL.
  *If Win16 program uses real mode code, there are code paths where Wine fails to properly initialize DOS memory.
  *DOS memory management code needs restructuring.
  *Ioport emulation code should be migrated to winedos.
  *VESA emulation is missing many important functions.
  *Bitplane VGA modes are totally unsupported.
  *Many DOS7 extensions are missing.
  *System timer code only supports simple cases.
  *DOS4GW does not work.
  *NTDLL still has lots of DOS emulation code.
Line 181: Line 123:
  *Improve the jack audio server, e.g. WaveIn & Resampling.

Wine TODO List

Top level page for fixes and improvements for Wine.

Various Projects

Conformance Tests

The results from our conformance tests are posted on http://test.winehq.org/. These tests need fixing so that they don't fail on Windows. See ConformanceTests for more information.

If you would like to run the tests on your Windows box, you can download a prebuilt 32-bit Windows .exe from http://test.winehq.org/builds/winetest-latest.exe (or a 64-bit Windows .exe from http://test.winehq.org/builds/winetest64-latest.exe).

Smatch

Smatch is basically a patch to gcc-3.1.1 that makes gcc dump its internal representation of the code and a set of perl modules/scripts to ease the parsing of the dumped code. Most of the perl scripts are for the Linux kernel, but writing new scripts seems to be easy.

Michael Stefaniuc adapted an existing script for the kernel to find code paths with missing LeaveCriticalSection's. Scripts to find some other useful things like fd, DC, and GDI object leaks should be easy to write.

There is a web page about Wine and Smatch. It includes also a table with the bugs found by the smatch scripts: http://people.redhat.com/mstefani/wine/smatch/

See Also: StaticAnalysis

Miscellaneous Tasks

  • Code a tool to check wine configuration (e.g. ptrace bug, cdrom device access, opengl direct rendering,...)
  • Make a D3D demo to include the Wine source - spinning Wine glass and Tux logo?
  • Add i18n section to Wine Developer's Guide
  • Handling initial install & upgrades

  • Fix bugs about UnimplementedFunctions in Wine. Bug list

  • Improve the documentation. It has been suggested a number of times on wine-users that the user documentation needs improvement. Wine has three sources of documentation that could be improved in one way or another:

Moved from Static ToDo Page

/!\ This list of tasks was originally a static page in the status section of WineHQ. It has not been maintained and may contain completed/invalidated entries. If you know that a task is no longer necessary (completed/invalidated), please check it off, strike a line through it, or delete it from the page.

National Language Support

  • We currently lack a way to model hierarchical resources like those required by calendar information (each locale has a variable number of calendars, with different attributes). This is a show stopper for completing the NLS Api (Get/EnumCalendarInfo etc).

  • Make sure ASCII functions call the Unicode one and not the other way around.
  • Add localization to more languages.(will probably never be completely finished)
  • Add localization to more parts of Wine.(will probably never be completely finished)
  • Better support of Chinese, Korean, Japanese...(currently in works)
  • Better support of BiDi - Arabic, Hebrew...

FreeBSD Support

  • Add support for MZ_SUPPORTED

Mingw/Cygwin/MS_VC/OpenWatcom

  • Remove/rewrite wineisms from code
  • Visual C++'s native COM support

Built-in Programs

  • Regedit:

    • Import registry files generated by Windows 2000 regedit.
  • Winhelp:

    • Fix invocation thru WinHelp

    • Lots of macros are still missing

File Management

  • Allow flexibility in FS "mounting" (for example, SMB shares)

Printers

  • Write a printer configuration applet
  • Implement the "Printers" Folder (shell32)
  • Implement the Printer configuration Dialogs (shell32)

Tools

  • Winemaker fixes
  • Run C regression tests on Windows with MSVC
  • wineconsole: add configuration bar + resizing capabilities

Documentation

  • Updates, updates, and more updates

Components

  • winex11.drv:

    • Add support for keyboard layout APIs.
  • NTDLL:

    • Implement security APIs and make them use native OS security facilities.
    • Implement the undocumented "NT Ports" API (aka "LPC") used by NT's rpcrt4
  • Kernel32:

    • Split 16/32 function, finish moving stuff into ntdll (review FS & device support)

    • Implement non-local named pipes and mailslots over SMB
    • Implement SMB over Netbios
  • Netapi32:

  • ws2_32.dll:

    • SIO_GET_INTERFACE_LIST support for IPX
    • IPv6 support
      • More unit tests, e.g. for asynchronous IO.
      • Make sure OOB data is handled properly.
      • WS2: Implement service programming interface (SPI), use for supporting other services.
      • Try to provide more services such as IrDA natively.
      • Fix stubs left in ws2_32.spec
  • RPCRT4:

    • Fill out the matrix of per-type /Oi marshalling API's.
    • Some real RPC tests; although there are some tests of some peripheral rpcrt4 APIs, no actual RPCs are tested.
    • Implement the OXID resolver and other ORPC peccadilloes
  • OLE:

    • Integrate ICreateTypeLib support with ITypeLib support
    • User defined types (e.g. IRecordInfo)
    • Custom marshalling functions for various data types

Multimedia

  • Sound drivers:

    • Implement the audio compression codecs.
    • Fix Sound Blaster emulation.
  • Audio architecture:

    • Improve audio latency
    • No longer use the hack in Wine sound drivers to map the DSound driver interface to an existing WinMM driver (impacts dsound.dll and winmm + all low level audio drivers; will likely require a real installation scheme for MM drivers)
  • ALSA multimedia driver:

  • MCI (Media Control Interface) drivers:

    • Missing the mcianim drivers.
  • mciavi:

    • Handling of palettes
    • Recording
    • Lots of messages still need to be handled
    • Support more and less than one audio stream
    • Stopping while playing should stop audio playback ASAP
    • Opening must be possible without filename (use load later to)
  • avifil32:

    • Make the whole library thread safe
    • Interface for AVI files, the native version has problems with reading Wine's files
    • API for clipboard, currently only stubs
    • AVIFileProxy is missing.
    • Implement IAVIStreaming (doesn't break functionality but limits performance significantly)
  • msvfw32:

    • Support all flags in DrawDib

    • Add palette handling to DrawDib

    • Semi-stub implementation for file dialogs with AVI preview.
    • Need to use OFN_ENABLEHOOK flag.
    • Stub implementation for codec-selection-dialog
    • Resources are missing (also see the 2 above points)
    • StretchDib method is missing

    • Many 16-bit methods are missing
    • MCIWnd shouldn't open device with filename if one isn't given
    • MCIWnd leaves Windows empty when opening a device fails.
  • avicap32 (video capture):

    • Fully implement the capture graph-builder
    • Implement infinite pin tee and smart tee filters
    • Audio capture-filter and in-mixer prop still needed
    • Still need vfw-capture and vfw-capture prop
    • Need an avi compressor, muxer, and prop/prop1 for the muxer
    • Implement a filewrite


TodoList (last edited 2013-04-02 23:54:58 by AlexandreJulliard)