-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TypeScript 4.5 Iteration Plan #45418
Comments
The 4.4 Iteration Plan can be found at #44237 |
Thank you for all the work on TypeScript! |
#44964 - _ could_ be worth a sentence or two in the release notes |
Linking dom.d.ts changes: microsoft/TypeScript-DOM-lib-generator#1143 |
@typescript-bot create release-4.5 |
Heya @DanielRosenwasser, I've started to create the |
@typescript-bot sync release-4.5 |
Heya @DanielRosenwasser, I've started to sync |
@typescript-bot sync release-4.5 |
Heya @DanielRosenwasser, I've started to sync |
@typescript-bot sync release-4.5 |
Heya @DanielRosenwasser, I've started to sync |
Okay, 4th time's a charm. To save a bunch of time, I've deleted @typescript-bot create release-4.5 |
Heya @DanielRosenwasser, I've started to create the |
We did it! TypeScript 4.5 Beta is out, please give it a shot when you can. |
Update: esModuleInterop behavior in node ESM previously required special flags, those are now default. Why is esModuleInterop turned on by default on module=node12? node12 supports ESM and the whole point of all of this is to let the Node module resolution do what it normally does... esModuleInterop hides problems that only get discovered after publishing to NPM and someone imports your definitions with esModuleInterop off. Sandbox https://codesandbox.io/s/ts-http-ygsxh?file=/tsconfig.json |
What do you mean?
They should use |
one weird edge case: seald/nedb#15
This looks like a type loading issue, not a node one |
Sorry, this is probably not the right place to discuss bugs or UX issues with the Node12 resolution mode. Would you be willing to file separate issues? |
I suppose since there is a lot of interest on this issue for the Node 12 resolution mode, I will link to #46452 and #46454 to give a status update on that. The short story is that the functionality will continue to work experimentally in nightlies, but will not ship in TypeScript 4.5 due to UX concerns. |
@typescript-bot bump release-4.5 |
Heya @andrewbranch, I've started to update the version number on |
If you want to further improve perf for resolving file paths/symlinks (and the file path is already normalized), it may be worth experimenting with platform-specific APIs like what Zig does in In a microbenchmark on macOS that only resolves the same file path 100,000 times, the platform-specific API version is 1.4x faster when there is no symlink and 2x faster for symlinked files compared to using libc realpath (what No symlink: Symlink: readlink-getfd.zigconst std = @import("std");
const path_handler = @import("../src/resolver/resolve_path.zig");
usingnamespace @import("../src/global.zig");
// zig build-exe -Drelease-fast --main-pkg-path ../ ./readlink-getfd.zig
pub fn main() anyerror!void {
var stdout_ = std.io.getStdOut();
var stderr_ = std.io.getStdErr();
var output_source = Output.Source.init(stdout_, stderr_);
Output.Source.set(&output_source);
defer Output.flush();
var args_buffer: [8096 * 2]u8 = undefined;
var fixed_buffer = std.heap.FixedBufferAllocator.init(&args_buffer);
var allocator = &fixed_buffer.allocator;
var args = std.mem.span(try std.process.argsAlloc(allocator));
const to_resolve = args[args.len - 1];
const cwd = try std.process.getCwdAlloc(allocator);
var path: []u8 = undefined;
var out_buffer: [std.fs.MAX_PATH_BYTES]u8 = undefined;
var j: usize = 0;
while (j < 100000) : (j += 1) {
var parts = [1][]const u8{std.mem.span(to_resolve)};
var joined_buf: [std.fs.MAX_PATH_BYTES]u8 = undefined;
var joined = path_handler.joinAbsStringBuf(
cwd,
&joined_buf,
&parts,
.loose,
);
joined_buf[joined.len] = 0;
const joined_z: [:0]const u8 = joined_buf[0..joined.len :0];
var file = std.fs.openFileAbsoluteZ(joined_z, .{ .read = false }) catch |err| {
switch (err) {
error.NotDir, error.FileNotFound => {
Output.prettyError("<r><red>404 Not Found<r>: <b>\"{s}\"<r>", .{joined_z});
Output.flush();
std.process.exit(1);
},
else => {
return err;
},
}
};
path = try std.os.getFdPath(file.handle, &out_buffer);
file.close();
}
Output.print("{s}", .{path});
}
readlink-realpath.zigconst std = @import("std");
const path_handler = @import("../src/resolver/resolve_path.zig");
usingnamespace @import("../src/global.zig");
// zig build-exe -Drelease-fast --main-pkg-path ../ ./readlink-realpath.zig
pub fn main() anyerror!void {
var stdout_ = std.io.getStdOut();
var stderr_ = std.io.getStdErr();
var output_source = Output.Source.init(stdout_, stderr_);
Output.Source.set(&output_source);
defer Output.flush();
var args_buffer: [8096 * 2]u8 = undefined;
var fixed_buffer = std.heap.FixedBufferAllocator.init(&args_buffer);
var allocator = &fixed_buffer.allocator;
var args = std.mem.span(try std.process.argsAlloc(allocator));
const to_resolve = args[args.len - 1];
const cwd = try std.process.getCwdAlloc(allocator);
var out_buffer: [std.fs.MAX_PATH_BYTES]u8 = undefined;
var path: []u8 = undefined;
var j: usize = 0;
while (j < 100000) : (j += 1) {
path = try std.os.realpathZ(to_resolve, &out_buffer);
}
Output.print("{s}", .{path});
} I imagine the platform-specific API version is faster because it replaces a |
@typescript-bot bump release-4.5 |
Heya @DanielRosenwasser, I've started to update the version number on |
Cancelled. Missed a PR. |
@typescript-bot bump release-4.5 |
Heya @DanielRosenwasser, I've started to update the version number on |
Where can we find the release notes for |
The GitHub releases view is updated, just look up the relevant milestone (TypeScript 4.5.3 in this case) for future reference. |
Creating a 4.5.4 now to also address #47090 @typescript-bot bump release-4.5 |
Heya @DanielRosenwasser, I've started to update the version number on |
@typescript-bot bump release-4.5 |
Heya @DanielRosenwasser, I've started to update the version number on |
This document outlines our focused tasks for TypeScript 4.5. It minimally indicates intent to investigate tasks or contribute to an implementation. Nothing is set in stone, but we will strive to complete these tasks in a reasonable timeframe.
Language and Compiler Features
module: node12
@types/web
lib.d.ts
UpdatesEditor Productivity
package.json
Performance
fs.realpathSync.native
Infrastructure
Website
DefinitelyTyped
@types/web
Integration and TestingThe text was updated successfully, but these errors were encountered: