jscript: Properly handle passing undefined value to Number.toString in ES5+ mode.
[wine.git] / ANNOUNCE
blobbdeafb48bea3347901c65d80394f391401fbe1e9
1 The Wine development release 8.10 is now available.
3 What's new in this release:
4   - All PE->Unix transitions go through the syscall interface.
5   - Mouse cursor clipping improvements.
6   - Support for virtual memory placeholders.
7   - Locale and timezone data updates.
8   - Various bug fixes.
10 The source is available at:
12   https://dl.winehq.org/wine/source/8.x/wine-8.10.tar.xz
14 Binary packages for various distributions will be available from:
16   https://www.winehq.org/download
18 You will find documentation on https://www.winehq.org/documentation
20 You can also get the current source directly from the git
21 repository. Check https://www.winehq.org/git for details.
23 Wine is available thanks to the work of many people. See the file
24 AUTHORS in the distribution for the complete list.
26 ----------------------------------------------------------------
28 Bugs fixed in 8.10 (total 13):
30  - #18889  Multiple isolation-aware applications fail to load (MSN Messenger Live 2009, Lync 2010, Adobe Premiere Pro CS3, Quicken 201X)(embedded PE manifest search should support ISOLATIONAWARE_MANIFEST_RESOURCE_ID)
31  - #24946  uTorrent 2.2.0 hangs on startup (FD_WRITE event is reported over and over in WSAEnumNetworkEvents for a bound UDP socket)
32  - #27827  Creo Elements/Direct Modeling Express 4.0/6.0 loader failure due to missing msvcrt.dll dependency (native netapi32.dll imports msvcrt functions)
33  - #47808  Cygwin's mintty.exe crashes with a stack overflow
34  - #52868  TwitchTest crashes on unimplemented function IPHLPAPI.DLL.GetPerTcpConnectionEStats
35  - #53092  Animated Puzzles crashes on start
36  - #54410  .NET 3.5 Checkbox checkmarks should be black instead of "Foreground" color
37  - #54599  Honeygain crashes on unimplemented function IPHLPAPI.DLL.GetCurrentThreadCompartmentId
38  - #54810  PmxEditor 0.2.7.5 doesn't start after Wine 8.4.
39  - #54913  ntdll: NtDuplicateToken has wrong prototype
40  - #54949  user32:msg gets an extra WM_NCPAINT in ShowWindow(child, SW_SHOW)
41  - #54991  Chinese IME no longer works in Naver LINE since Wine 8.9
42  - #55008  wininet:http - test_secure_connection() fails on Windows and Wine
44 ----------------------------------------------------------------
46 Changes since 8.9:
48 Akihiro Sagawa (1):
49       winex11: Ignore BadWindow errors caused by XConfigureWindow.
51 Alex Henrie (29):
52       iphlpapi: Add GetCurrentThreadCompartmentId stub and a test.
53       iphlpapi: Add GetPerTcpConnectionEStats stub.
54       bcrypt/tests: Don't allocate inside todo_wine and free outside of it.
55       iphlpapi/tests: Use ~0u instead of ~0ul in testGetIpNetTable.
56       winegstreamer: Pass a QWORD pointer to IMFByteStream_GetLength.
57       wusa: Fix double free on error path in read_update_package (scan-build).
58       mscms: Fix double free on error path in EnumColorProfilesA (scan-build).
59       msi: Return ERROR_OUTOFMEMORY if calloc fails in TransformView_Create (scan-build).
60       msi: Make TransformView_Create static.
61       msi: Fix memory leak in ready_media (scan-build).
62       wbemprox: Fix memory leak on error path in create_view (scan-build).
63       jscript: Fix memory leak on error path in String_replace (scan-build).
64       jscript: Remove unnecessary call to malloc in strbuf_ensure_size.
65       conhost: Fix memory leak on error path in edit_line_move_to_history (scan-build).
66       localspl: Fix memory leak in lpr_start_doc (scan-build).
67       msvcrt: Use 'else if' in _wgetcwd.
68       wineusb: Fix memory leaks on error paths in usb_submit_urb (scan-build).
69       kerberos: Fix memory leaks in (wow64_)query_ticket_cache (scan-build).
70       dnsapi: Fix memory leak on error path in do_query_netbios (scan-build).
71       hhctrl: Fix memory leak on error path in resolve_filename (scan-build).
72       wldap32: Fix memory leak on error path in ldap_start_tls_sW (scan-build).
73       jscript: Fix memory leak on error path in regexp_string_match (scan-build).
74       vbscript: Fix memory leak on error path in RegExp2_Execute (scan-build).
75       wininet: Fix memory leaks on error paths in INTERNET_LoadProxySettings (scan-build).
76       vbscript: Fix memory leak on error path in alloc_vbscode (scan-build).
77       rpcrt4: Replace RPCRT4_strndupA with strdup.
78       winhttp: Fix double free on error path in queue_task (scan-build).
79       msi: Fix memory leak on error path in MSI_ProcessMessage (scan-build).
80       regedit: Fix memory leak on error path in GetItemPath (scan-build).
82 Alexandre Julliard (46):
83       include: Don't align the stack for PE builds.
84       ntdll: Use x18 for the TEB on ARM64.
85       ntdll: Use nameless unions/structs for loader data.
86       ntdll: Use nameless unions/structs for CPU-related data.
87       ntdll: Use nameless unions/structs for IO_STATUS_BLOCK.
88       include: Only enable the non-inline NtCurrentTeb() on the Unix side.
89       wineps: Don't use CDECL for private functions.
90       win32u: Don't use WINAPI for the font enumeration function.
91       win32u: Don't use WINAPI for private functions.
92       ntdll: Don't pass arguments on the stack for user callbacks on ARM64.
93       ntdll: Don't pass arguments on the stack for user callbacks on x86-64.
94       ntdll: Don't pass arguments on the stack for user callbacks on i386.
95       ntdll: Don't pass arguments on the stack for user callbacks on ARM.
96       ntdll: Don't use WINAPI for KeUserModeCallback().
97       ntdll: Store the PE function pointers as simple void pointers.
98       include: Only declare __wine_unix_call() on the PE side.
99       ntdll: Use the sysv ABI for the %fs allocation function.
100       ntdll: Use the sysv ABI for setjmp/longjmp on the Unix side.
101       ntdll: Use the default ABI for all functions on the Unix side.
102       kernelbase: Update timezone data to version 2023c.
103       nls: Update locale data to CLDR version 43.
104       xslt: Import upstream release 1.1.38.
105       xml2: Import upstream release 2.11.4.
106       kernelbase: Use nameless unions/structs for loader data.
107       kernelbase: Use nameless unions/structs for CPU-related data.
108       kernelbase: Use nameless unions/structs for IO_STATUS_BLOCK.
109       kernel32: Use nameless unions/structs.
110       server: Send the APC call data as vararg in the queue_apc request.
111       server: Send the APC call data as vararg in the select request.
112       wininet/tests: Update expected WineHQ certificate.
113       ntdll: Support adding overlapping ranges in mmap_add_reserved_area().
114       ntdll: Add a helper function to unmap memory above the user space limit.
115       ntdll: Reimplement unmap_area() to avoid recursion and callbacks.
116       ntdll: Reimplement map_fixed_area() to avoid recursion and callbacks.
117       ntdll: Reimplement allocation inside a reserved area without using a callback.
118       ntdll: Reimplement allocation of the virtual heap without using a callback.
119       ntdll: Reimplement fill_basic_memory_info() without using a callback.
120       ntdll: Reimplement virtual_release_address_space() without using a callback.
121       ntdll: Report the remaining part of the 64K after a view as free.
122       ntdll: Use the full 4Gb for large address aware applications on Wow64.
123       ntdll: Update the reserved range on 64-bit to match the preloader.
124       ntdll: Use the sysv ABI for __wine_syscall_dispatcher_return().
125       winebuild: Set a 64-bit base address for generated 64-bit dlls.
126       winebuild: Update target-dependent characteristics after option parsing.
127       winedump: Dump version resources in a more structured way.
128       winedump: Dump manifest resources in a more structured way.
130 Alistair Leslie-Hughes (5):
131       xactengine: Correct interfaces for IXACT3Cue.
132       include: Use STDMETHOD when returning HRESULT.
133       krnl386.exe16: Don't overflow when calculating size.
134       xactengine: Correct XACTNOTIFICATIONTYPE_MAX value.
135       xactengine: IXACT3EngineImpl_CreateSoundBank isn't a stub.
137 André Zwing (1):
138       wow64: Ignore Thumb flag when parsing ARM syscall number.
140 Aurimas Fišeras (1):
141       po: Update Lithuanian translation.
143 Bernhard Kölbl (1):
144       mf/tests: Remove duplicate call to MFStartup().
146 Bernhard Übelacker (1):
147       comdlg32: Avoid crash in RemoveControlItem.
149 Billy Laws (1):
150       configure: Stash host LDFLAGS when configuring cross-compilers.
152 Connor McAdams (4):
153       uiautomationcore: Put general purpose helper functions into separate source file.
154       uiautomationcore: Add global interface table helper functions.
155       uiautomationcore: Respect ProviderOptions_UseComThreading on advise events interfaces.
156       uiautomationcore: Get IRawElementProviderAdviseEvents interfaces from embedded fragment root providers.
158 Daniel Lehman (2):
159       msi: Release record instead of free.
160       riched20: Update paragraph position in marked tree.
162 David Kahurani (1):
163       gdiplus: Handle Windows style newline.
165 Davide Beatrici (38):
166       wined3d: Fix uninitialized variable warning.
167       winepulse: Move AudioClient3 into mmdevapi.
168       winealsa: Use mmdevapi's AudioClient3.
169       winecoreaudio: Use mmdevapi's AudioClient3.
170       wineoss: Use mmdevapi's AudioClient3.
171       winepulse: Move AudioClient2 into mmdevapi.
172       winealsa: Use mmdevapi's AudioClient2.
173       winecoreaudio: Use mmdevapi's AudioClient2.
174       wineoss: Use mmdevapi's AudioClient2.
175       winepulse: Always initialize ref to 1 in session wrapper.
176       winepulse: Move session_wrapper_create into mmdevapi.
177       winealsa: Use mmdevapi's session_wrapper_create.
178       winecoreaudio: Use mmdevapi's session_wrapper_create.
179       wineoss: Use mmdevapi's session_wrapper_create.
180       winepulse: Lock sessions in AudioClient's GetService.
181       winepulse: Move AudioClient's GetService into mmdevapi.
182       winealsa: Use mmdevapi's AudioClient's GetService.
183       winecoreaudio: Use mmdevapi's AudioClient's GetService.
184       wineoss: Use mmdevapi's AudioClient's GetService.
185       winepulse: Move AudioClient's SetEventHandle, Reset, Stop into mmdevapi.
186       winealsa: Use mmdevapi's AudioClient's SetEventHandle, Reset, Stop.
187       winecoreaudio: Use mmdevapi's AudioClient's SetEventHandle, Reset, Stop.
188       wineoss: Use mmdevapi's AudioClient's SetEventHandle, Reset, Stop.
189       winepulse: Lock sessions in AudioClient's Start.
190       winecoreaudio: Lock sessions in AudioClient's Start.
191       winepulse: Move AudioClient's Start into mmdevapi.
192       winealsa: Use mmdevapi's AudioClient's Start.
193       winecoreaudio: Use mmdevapi's AudioClient's Start.
194       wineoss: Use mmdevapi's AudioClient's Start.
195       winepulse: Move AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported into mmdevapi.
196       winealsa: Use mmdevapi's AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported.
197       winecoreaudio: Use mmdevapi's AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported.
198       wineoss: Use mmdevapi's AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported.
199       winepulse: Move AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize into mmdevapi.
200       winealsa: Use mmdevapi's AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize.
201       winecoreaudio: Use mmdevapi's AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize.
202       wineoss: Use mmdevapi's AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize.
203       mmdevapi: Handle CreateThread() failure in AudioClient's Start.
205 Eric Pouech (5):
206       dbghelp: Better handle very long C++ qualified identifiers in dwarf.
207       dbghelp/tests: Fix process kind detection on old Windows machines.
208       dbghelp/tests: Review old-wow64 expected values.
209       dbghelp/tests: Add more tests for module imagename handling.
210       dbghelp: Reimplement EnumerateLoadedModules().
212 Gabriel Ivăncescu (6):
213       mshtml: Fix classList toggle() when return value pointer is NULL.
214       jscript: Return undefined for empty RegExp captures in ES5+ mode.
215       jscript: Throw proper error for unexpected quantifiers in RegExp.
216       jscript: Throw proper error for out of memory conditions in RegExp.
217       mshtml/tests: Test RegExp.toString on object with separate RegExp flag props.
218       mshtml: Handle protocols with no ports when checking target origin.
220 Georg Lehmann (1):
221       winevulkan: Update to VK spec version 1.3.251.
223 Giovanni Mascellani (6):
224       dxgi: Document some struct d3d12_swapchain fields.
225       dxgi: Rename d3d12_swapchain_prepare_command_buffers().
226       dxgi: Store Vulkan formats in the swapchain object.
227       dxgi: Factor out d3d12_swapchain_create_image_resources().
228       dxgi: Move non-Vulkan-specific code out of d3d12_swapchain_create_vulkan_swapchain().
229       dxgi: Move Vulkan-specific code to d3d12_swapchain_create_vulkan_swapchain().
231 Jacek Caban (8):
232       win32u: Use syscall interface for all ntuser functions.
233       win32u: Implement NtGdiIcmBrushInfo and use it instead of __wine_get_brush_bitmap_info.
234       win32u: Extend NtGdiSetDIBitsToDeviceInternal for SetDIBits implementation.
235       win32u: Don't return full OUTLINETEXTMETRICW from __wine_get_file_outline_text_metric.
236       win32u: Use syscall interface for all exports.
237       ntdll: Get rid of hacks for direct unix calls.
238       wineps: Don't include gdi_driver.h from PE module.
239       win32u: Don't use CDECL for gdi_dc_funcs entries.
241 Jinoh Kang (7):
242       kernel32/tests: Remove test for ACTCTX_FLAG_HMODULE_VALID with hModule = NULL case.
243       kernel32/tests: Test setting lpResourceName to NULL for CreateActCtxW.
244       ntdll: Move ACTCTX lpResourceName validation to RtlCreateActivationContext.
245       kernel32/tests: Test loading assembly manifest resource inside dependencies.
246       ntdll: Don't hard-code DLL manifest resource ID when looking up dependency assembly.
247       user32/tests: Test for update region after showing a child window.
248       server: Update parent window region when exposing previously invisible window.
250 Joshua Ashton (1):
251       winevulkan: Include function name in asserts.
253 Martin Storsjö (1):
254       include: Fix the use of __getReg for aarch64/msvc mode.
256 Michael Stefaniuc (3):
257       ws2_32/tests: Remove superfluous casts to self.
258       wmvcore: Remove superfluous casts to self.
259       dbghelp: Remove superfluous casts to self.
261 Nikolay Sivov (8):
262       ole32/antimoniker: Use CRT allocation functions.
263       ole32/antimoniker: Fix Enum() return error code.
264       ole32/classmoniker: Use CRT allocation functions.
265       ole32/pointermoniker: Use CRT allocation functions.
266       ole32/itemmoniker: Use CRT allocation functions.
267       ole32/compositemoniker: Use CRT allocation functions.
268       ole32/filemoniker: Use CRT allocation functions.
269       ole32/git: Use CRT allocation functions.
271 Paul Gofman (13):
272       ntdll: Support MEM_COALESCE_PLACEHOLDERS in NtFreeVirtualMemory().
273       ntdll: Factor out unmap_view_of_section() function.
274       kernelbase/tests: Add tests for MEM_PRESERVE_PLACEHOLDER with UnmapViewOfFile2().
275       ntdll: Validate flags in NtUnmapViewOfSectionEx().
276       ntdll: Support MEM_PRESERVE_PLACEHOLDER in NtUnmapViewOfSectionEx().
277       winegstreamer: Don't pre-check sample size in wg_transform_read_mf().
278       kernelbase: Don't modify non-volatile regs in RaiseException() on x64.
279       ws2_32: Make wait in accept() alertable.
280       ws2_32: Make wait in connect() alertable.
281       ws2_32: Make wait in WSAPoll() alertable.
282       ws2_32: Test wait alertability in WSAGetOverlappedResult().
283       winegstreamer: Implement MFT_MESSAGE_COMMAND_DRAIN for the H264 decoder.
284       winegstreamer: Implement MFT_MESSAGE_COMMAND_FLUSH for the H264 decoder.
286 Piotr Caban (12):
287       msvcr100: Fix next writer unblocking in reader_writer_lock::unlock.
288       msvcr100: Use Context to store critical_section owner.
289       msvcr100: Use Context blocking functions in critical_section class.
290       make_unicode: Don't use Türkiye as it can't be encoded in some locales.
291       msvcr100: Use Context blocking functions in event class.
292       msvcr100: Use Context blocking functions in Concurrency::wait().
293       localspl: Don't pass original document name to cupsStartDocument.
294       msvcr100: Fix use after free in critical_section::try_lock_for().
295       msvcr100: Add support for COOPERATIVE_TIMEOUT_INFINITE timeout in critical_section.
296       msvcr100: Use block_context_for helper in Concurrency::wait().
297       msvcr100: Use block_context_for helper in event::wait().
298       msvcr100: Use Context blocking functions in _Condition_variable class.
300 Rémi Bernon (44):
301       winegstreamer: Forbid vaapidecodebin when looking for a specific element.
302       winegstreamer: Only warn on wg_transform input buffer push errors.
303       winegstreamer: Set the default H264 caps profile to "baseline".
304       server: Assume the internal clip message to be WM_WINE_CLIPCURSOR.
305       server: Move set_cursor desktop local variable to wider scope.
306       win32u: Rename user driver CreateDesktopWindow entry to SetDesktopWindow.
307       win32u: Call SetDesktopWindow when desktop window is successfully created.
308       explorer: Load graphics driver before calling CreateDesktopW.
309       explorer: Use root window if driver doesn't implement create_desktop.
310       explorer: Don't call driver create_desktop if desktop name is "root".
311       explorer: Call user driver through a new CreateDesktop callback.
312       wineandroid: Use the user driver interface to create host desktops.
313       winex11: Use the user driver interface to create host desktops.
314       explorer: Remove now unnecessary wine_create_desktop entry.
315       imm32: Query the new input context in ImmAssociateContextEx / IACE_DEFAULT.
316       server: Use get_hardware_msg_bit consistently to classify messages.
317       win32u: Move some window functions to window.c.
318       win32u: Move cursor clipping functions to input.c.
319       win32u: Add a separate function to process WM_WINE_CLIPCURSOR.
320       win32u: Use WM_WINE_CLIPCURSOR / TRUE for empty clipping rect.
321       user32: Remove now unused virtual screen helpers.
322       mf/tests: Add H264 decoder tests with concatenated streams.
323       winegstreamer: Use an IMFMediaType for the internal stream type.
324       winegstreamer: Generate H264 timestamps using the input type frame rate.
325       winegstreamer: Use the output wg_format in CAPS sink query.
326       user32/tests: Zero-initialize keyboard state array.
327       user32/tests: Add a helper to run a test in a process.
328       user32/tests: Test more ClipCursor reset scenarios.
329       winegstreamer: Pass desired output plane alignment to wg_transform_create.
330       winegstreamer: Pass desired input queue length to wg_transform_create.
331       winegstreamer: Implement MF_LOW_LATENCY attribute and latency query.
332       win32u: Reset cursor clipping rectangle on display mode change.
333       winex11: Rely on win32u to reset clipping on display mode change.
334       winex11: Reset clipping by calling NtUserClipCursor directly.
335       server: Don't reset cursor clipping on foreground thread exit.
336       kernelbase: Comment out DECLSPEC_HOTPATCH for ConvertThreadToFiber.
337       evr/tests: Test IMFVideoDisplayControl_GetCurrentImage orientation.
338       evr: Respect RGB format stride in GetCurrentImage.
339       win32u: Add a reset parameter to WM_WINE_CLIPCURSOR and driver ClipCursor.
340       server: Use the helper to reset the clip rect when the desktop size changes.
341       server: Use a separate helper to merge WM_MOUSEMOVE messages.
342       server: Queue a hardware WM_WINE_CLIPCURSOR message to the foreground thread.
343       win32u: Asynchronously apply or reset ClipCursor from the hardware message.
344       winex11: Remove now unnecessary ClipCursor forwarding to foreground thread.
346 Santino Mazza (1):
347       riched20: Call ME_UpdateRepaint instead of editor_ensure_visible in set_selection.
349 Shaun Ren (8):
350       sapi: Implement ISpObjectToken::CreateKey.
351       sapi: Partially reimplement ISpObjectTokenEnumBuilder storing a token array.
352       sapi: Implement token filtering and sorting in ISpObjectTokenEnumBuilder.
353       sapi: Add SpMMAudioOut stub.
354       sapi: Implement ISpMMSysAudio::Get/SetDeviceId.
355       sapi: Add GUIDs SPDFID_Text/WaveFormatEx.
356       include: Add sperror error code SPERR_UNSUPPORTED_FORMAT.
357       sapi: Implement ISpMMSysAudio::Get/SetFormat.
359 Tim Clem (1):
360       loader: Reserve some space for 32-bit top-down allocations on 64-bit.
362 Zebediah Figura (10):
363       winebuild: Use segment prefixes in 16-bit stack switching code instead of writing out byte values.
364       winebuild: Use the lretw mnemonic in wine_call_to_16().
365       wow32: Use spec file imports.
366       ntdll: Do not throw deadlock exceptions for Wine critical sections.
367       ntdll: Simplify critical section timeout logic.
368       xaudio2/tests: Add a couple of helpers to abstract the difference between versions.
369       xaudio2: Move CreateAudioVolumeMeter() and CreateAudioReverb() to xapo.c.
370       xaudio2: Create XAPO objects directly from CreateAudioVolumeMeter() and CreateAudioReverb().
371       xaudio2: Use the preprocessor to modify definitions in xaudio2.idl and xaudio2fx.idl.
372       xaudio2/tests: Fix the IID_IXAPO query.
374 Zhiyi Zhang (6):
375       gdiplus/tests: Add pen custom line cap record and play back tests.
376       gdiplus: Support recording pen custom start line cap.
377       gdiplus: Support recording pen custom end line cap.
378       gdiplus: Support playing back pen custom start line cap.
379       gdiplus: Support playing back pen custom end line cap.
380       winegstreamer: Fix check for non-zero padding in mf_media_type_from_wg_format_video().
382 Ziqing Hui (5):
383       mf/tests: Test input type for WMA decoder DMO.
384       mf/tests: Test output type for WMA decoder DMO.
385       mf/tests: Split input type tests from test_wmv_decoder_media_object.
386       mf/tests: Split output type tests from test_wmv_decoder_media_object.
387       mf/tests: Split size info tests from test_wmv_decoder_media_object.