Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dependencies/wasmtime
Submodule wasmtime updated 1664 files
141 changes: 16 additions & 125 deletions wasi/src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@
/* eslint-disable @typescript-eslint/ban-types */
import * as $wcm from '@vscode/wasm-component-model';
import type { result, i32, ptr } from '@vscode/wasm-component-model';
import { random } from './random';
import { sockets } from './sockets';
import { filesystem } from './filesystem';
import { clocks } from './clocks';
import { io } from './io';

export namespace cli {
Expand Down Expand Up @@ -183,33 +179,6 @@ export namespace cli {
};
export namespace command {
export type Imports = {
environment: cli.Environment;
exit: cli.Exit;
error: io.Error;
poll: io.Poll;
streams: io.Streams;
stdin: cli.Stdin;
stdout: cli.Stdout;
stderr: cli.Stderr;
terminalInput: cli.TerminalInput;
terminalOutput: cli.TerminalOutput;
terminalStdin: cli.TerminalStdin;
terminalStdout: cli.TerminalStdout;
terminalStderr: cli.TerminalStderr;
monotonicClock: clocks.MonotonicClock;
wallClock: clocks.WallClock;
types: filesystem.Types;
preopens: filesystem.Preopens;
network: sockets.Network;
instanceNetwork: sockets.InstanceNetwork;
udp: sockets.Udp;
udpCreateSocket: sockets.UdpCreateSocket;
tcp: sockets.Tcp;
tcpCreateSocket: sockets.TcpCreateSocket;
ipNameLookup: sockets.IpNameLookup;
random: random.Random;
insecure: random.Insecure;
insecureSeed: random.InsecureSeed;
};
export namespace Imports {
export type Promisified = $wcm.$imports.Promisify<Imports>;
Expand All @@ -218,7 +187,6 @@ export namespace cli {
export type Promisify<T> = $wcm.$imports.Promisify<T>;
}
export type Exports = {
run: cli.Run;
};
export namespace Exports {
export type Promisified = $wcm.$exports.Promisify<Exports>;
Expand All @@ -236,7 +204,7 @@ export namespace cli {
export const initialCwd = new $wcm.FunctionType<cli.Environment.initialCwd>('initial-cwd', [], new $wcm.OptionType<string>($wcm.wstring));
}
export namespace Environment._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'environment' as const;
export const functions: Map<string, $wcm.FunctionType> = new Map([
['getEnvironment', $.getEnvironment],
Expand All @@ -262,7 +230,7 @@ export namespace cli {
], undefined);
}
export namespace Exit._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'exit' as const;
export const functions: Map<string, $wcm.FunctionType> = new Map([
['exit', $.exit]
Expand All @@ -282,7 +250,7 @@ export namespace cli {
export const run = new $wcm.FunctionType<cli.Run.run>('run', [], new $wcm.ResultType<void, void>(undefined, undefined));
}
export namespace Run._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'run' as const;
export const functions: Map<string, $wcm.FunctionType> = new Map([
['run', $.run]
Expand All @@ -303,7 +271,7 @@ export namespace cli {
export const getStdin = new $wcm.FunctionType<cli.Stdin.getStdin>('get-stdin', [], new $wcm.OwnType<cli.Stdin.InputStream>(InputStream));
}
export namespace Stdin._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'stdin' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['InputStream', $.InputStream]
Expand All @@ -327,7 +295,7 @@ export namespace cli {
export const getStdout = new $wcm.FunctionType<cli.Stdout.getStdout>('get-stdout', [], new $wcm.OwnType<cli.Stdout.OutputStream>(OutputStream));
}
export namespace Stdout._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'stdout' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['OutputStream', $.OutputStream]
Expand All @@ -351,7 +319,7 @@ export namespace cli {
export const getStderr = new $wcm.FunctionType<cli.Stderr.getStderr>('get-stderr', [], new $wcm.OwnType<cli.Stderr.OutputStream>(OutputStream));
}
export namespace Stderr._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'stderr' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['OutputStream', $.OutputStream]
Expand All @@ -371,12 +339,12 @@ export namespace cli {
}

export namespace TerminalInput.$ {
export const TerminalInput = new $wcm.ResourceType<cli.TerminalInput.TerminalInput>('terminal-input', 'wasi:[email protected].0/terminal-input/terminal-input');
export const TerminalInput = new $wcm.ResourceType<cli.TerminalInput.TerminalInput>('terminal-input', 'wasi:[email protected].1/terminal-input/terminal-input');
export const TerminalInput_Handle = new $wcm.ResourceHandleType('terminal-input');
TerminalInput.addDestructor('$drop', new $wcm.DestructorType('[resource-drop]terminal-input', [['inst', TerminalInput]]));
}
export namespace TerminalInput._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'terminal-input' as const;
export namespace TerminalInput {
export type WasmInterface = {
Expand Down Expand Up @@ -412,12 +380,12 @@ export namespace cli {
}

export namespace TerminalOutput.$ {
export const TerminalOutput = new $wcm.ResourceType<cli.TerminalOutput.TerminalOutput>('terminal-output', 'wasi:[email protected].0/terminal-output/terminal-output');
export const TerminalOutput = new $wcm.ResourceType<cli.TerminalOutput.TerminalOutput>('terminal-output', 'wasi:[email protected].1/terminal-output/terminal-output');
export const TerminalOutput_Handle = new $wcm.ResourceHandleType('terminal-output');
TerminalOutput.addDestructor('$drop', new $wcm.DestructorType('[resource-drop]terminal-output', [['inst', TerminalOutput]]));
}
export namespace TerminalOutput._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'terminal-output' as const;
export namespace TerminalOutput {
export type WasmInterface = {
Expand Down Expand Up @@ -457,7 +425,7 @@ export namespace cli {
export const getTerminalStdin = new $wcm.FunctionType<cli.TerminalStdin.getTerminalStdin>('get-terminal-stdin', [], new $wcm.OptionType<cli.TerminalStdin.TerminalInput>(new $wcm.OwnType<cli.TerminalStdin.TerminalInput>(TerminalInput)));
}
export namespace TerminalStdin._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'terminal-stdin' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['TerminalInput', $.TerminalInput]
Expand All @@ -481,7 +449,7 @@ export namespace cli {
export const getTerminalStdout = new $wcm.FunctionType<cli.TerminalStdout.getTerminalStdout>('get-terminal-stdout', [], new $wcm.OptionType<cli.TerminalStdout.TerminalOutput>(new $wcm.OwnType<cli.TerminalStdout.TerminalOutput>(TerminalOutput)));
}
export namespace TerminalStdout._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'terminal-stdout' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['TerminalOutput', $.TerminalOutput]
Expand All @@ -505,7 +473,7 @@ export namespace cli {
export const getTerminalStderr = new $wcm.FunctionType<cli.TerminalStderr.getTerminalStderr>('get-terminal-stderr', [], new $wcm.OptionType<cli.TerminalStderr.TerminalOutput>(new $wcm.OwnType<cli.TerminalStderr.TerminalOutput>(TerminalOutput)));
}
export namespace TerminalStderr._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'terminal-stderr' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['TerminalOutput', $.TerminalOutput]
Expand All @@ -526,85 +494,8 @@ export namespace cli {
export namespace command.$ {
}
export namespace command._ {
export const id = 'wasi:cli/[email protected].0' as const;
export const id = 'wasi:cli/[email protected].1' as const;
export const witName = 'command' as const;
export namespace imports {
export const interfaces: Map<string, $wcm.InterfaceType> = new Map<string, $wcm.InterfaceType>([
['Environment', Environment._],
['Exit', Exit._],
['io.Error', io.Error._],
['io.Poll', io.Poll._],
['io.Streams', io.Streams._],
['Stdin', Stdin._],
['Stdout', Stdout._],
['Stderr', Stderr._],
['TerminalInput', TerminalInput._],
['TerminalOutput', TerminalOutput._],
['TerminalStdin', TerminalStdin._],
['TerminalStdout', TerminalStdout._],
['TerminalStderr', TerminalStderr._],
['clocks.MonotonicClock', clocks.MonotonicClock._],
['clocks.WallClock', clocks.WallClock._],
['filesystem.Types', filesystem.Types._],
['filesystem.Preopens', filesystem.Preopens._],
['sockets.Network', sockets.Network._],
['sockets.InstanceNetwork', sockets.InstanceNetwork._],
['sockets.Udp', sockets.Udp._],
['sockets.UdpCreateSocket', sockets.UdpCreateSocket._],
['sockets.Tcp', sockets.Tcp._],
['sockets.TcpCreateSocket', sockets.TcpCreateSocket._],
['sockets.IpNameLookup', sockets.IpNameLookup._],
['random.Random', random.Random._],
['random.Insecure', random.Insecure._],
['random.InsecureSeed', random.InsecureSeed._]
]);
export function create(service: command.Imports, context: $wcm.WasmContext): Imports {
return $wcm.$imports.create<Imports>(_, service, context);
}
export function loop(service: command.Imports, context: $wcm.WasmContext): command.Imports {
return $wcm.$imports.loop<command.Imports>(_, service, context);
}
}
export type Imports = {
'wasi:cli/[email protected]': cli.Environment._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.Exit._.imports.WasmInterface;
'wasi:io/[email protected]': io.Error._.imports.WasmInterface;
'wasi:io/[email protected]': io.Poll._.imports.WasmInterface;
'wasi:io/[email protected]': io.Streams._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.Stdin._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.Stdout._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.Stderr._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.TerminalInput._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.TerminalOutput._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.TerminalStdin._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.TerminalStdout._.imports.WasmInterface;
'wasi:cli/[email protected]': cli.TerminalStderr._.imports.WasmInterface;
'wasi:clocks/[email protected]': clocks.MonotonicClock._.imports.WasmInterface;
'wasi:clocks/[email protected]': clocks.WallClock._.imports.WasmInterface;
'wasi:filesystem/[email protected]': filesystem.Types._.imports.WasmInterface;
'wasi:filesystem/[email protected]': filesystem.Preopens._.imports.WasmInterface;
'wasi:sockets/[email protected]': sockets.Network._.imports.WasmInterface;
'wasi:sockets/[email protected]': sockets.InstanceNetwork._.imports.WasmInterface;
'wasi:sockets/[email protected]': sockets.Udp._.imports.WasmInterface;
'wasi:sockets/[email protected]': sockets.UdpCreateSocket._.imports.WasmInterface;
'wasi:sockets/[email protected]': sockets.Tcp._.imports.WasmInterface;
'wasi:sockets/[email protected]': sockets.TcpCreateSocket._.imports.WasmInterface;
'wasi:sockets/[email protected]': sockets.IpNameLookup._.imports.WasmInterface;
'wasi:random/[email protected]': random.Random._.imports.WasmInterface;
'wasi:random/[email protected]': random.Insecure._.imports.WasmInterface;
'wasi:random/[email protected]': random.InsecureSeed._.imports.WasmInterface;
};
export namespace exports {
export const interfaces: Map<string, $wcm.InterfaceType> = new Map<string, $wcm.InterfaceType>([
['Run', Run._]
]);
export function bind(exports: Exports, context: $wcm.WasmContext): command.Exports {
return $wcm.$exports.bind<command.Exports>(_, exports, context);
}
}
export type Exports = {
'wasi:cli/[email protected]#run': () => i32;
};
export function bind(service: command.Imports, code: $wcm.Code, context?: $wcm.ComponentModelContext): Promise<command.Exports>;
export function bind(service: command.Imports.Promisified, code: $wcm.Code, port: $wcm.RAL.ConnectionPort, context?: $wcm.ComponentModelContext): Promise<command.Exports.Promisified>;
export function bind(service: command.Imports | command.Imports.Promisified, code: $wcm.Code, portOrContext?: $wcm.RAL.ConnectionPort | $wcm.ComponentModelContext, context?: $wcm.ComponentModelContext | undefined): Promise<command.Exports> | Promise<command.Exports.Promisified> {
Expand All @@ -614,8 +505,8 @@ export namespace cli {
}

export namespace cli._ {
export const version = '0.2.0' as const;
export const id = 'wasi:[email protected].0' as const;
export const version = '0.2.1' as const;
export const id = 'wasi:[email protected].1' as const;
export const witName = 'cli' as const;
export const interfaces: Map<string, $wcm.InterfaceType> = new Map<string, $wcm.InterfaceType>([
['Environment', Environment._],
Expand Down
17 changes: 7 additions & 10 deletions wasi/src/clocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ export namespace clocks {
*
* A monotonic clock is a clock which has an unspecified initial value, and
* successive reads of the clock will produce non-decreasing values.
*
* It is intended for measuring elapsed time.
*/
export namespace MonotonicClock {
export type Pollable = io.Poll.Pollable;
Expand Down Expand Up @@ -51,14 +49,13 @@ export namespace clocks {

/**
* Create a `pollable` which will resolve once the specified instant
* occured.
* has occurred.
*/
export type subscribeInstant = (when: Instant) => Pollable;

/**
* Create a `pollable` which will resolve once the given duration has
* elapsed, starting at the time at which this function was called.
* occured.
* Create a `pollable` that will resolve after the specified duration has
* elapsed from the time this function is invoked.
*/
export type subscribeDuration = (when: Duration) => Pollable;
}
Expand Down Expand Up @@ -139,7 +136,7 @@ export namespace clocks {
], new $wcm.OwnType<clocks.MonotonicClock.Pollable>(Pollable));
}
export namespace MonotonicClock._ {
export const id = 'wasi:clocks/[email protected].0' as const;
export const id = 'wasi:clocks/[email protected].1' as const;
export const witName = 'monotonic-clock' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['Pollable', $.Pollable],
Expand Down Expand Up @@ -175,7 +172,7 @@ export namespace clocks {
export const resolution = new $wcm.FunctionType<clocks.WallClock.resolution>('resolution', [], Datetime);
}
export namespace WallClock._ {
export const id = 'wasi:clocks/[email protected].0' as const;
export const id = 'wasi:clocks/[email protected].1' as const;
export const witName = 'wall-clock' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['Datetime', $.Datetime]
Expand All @@ -198,8 +195,8 @@ export namespace clocks {
}

export namespace clocks._ {
export const version = '0.2.0' as const;
export const id = 'wasi:[email protected].0' as const;
export const version = '0.2.1' as const;
export const id = 'wasi:[email protected].1' as const;
export const witName = 'clocks' as const;
export const interfaces: Map<string, $wcm.InterfaceType> = new Map<string, $wcm.InterfaceType>([
['MonotonicClock', MonotonicClock._],
Expand Down
14 changes: 7 additions & 7 deletions wasi/src/filesystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ export namespace filesystem {
dataIntegritySync: 1 << 3,

/**
* Requests that reads be performed at the same level of integrety
* Requests that reads be performed at the same level of integrity
* requested for writes. This is similar to `O_RSYNC` in POSIX.
*
* The precise semantics of this operation have not yet been defined for
Expand Down Expand Up @@ -1035,9 +1035,9 @@ export namespace filesystem {
['lower', $wcm.u64],
['upper', $wcm.u64],
]);
export const Descriptor = new $wcm.ResourceType<filesystem.Types.Descriptor>('descriptor', 'wasi:[email protected].0/types/descriptor');
export const Descriptor = new $wcm.ResourceType<filesystem.Types.Descriptor>('descriptor', 'wasi:[email protected].1/types/descriptor');
export const Descriptor_Handle = new $wcm.ResourceHandleType('descriptor');
export const DirectoryEntryStream = new $wcm.ResourceType<filesystem.Types.DirectoryEntryStream>('directory-entry-stream', 'wasi:[email protected].0/types/directory-entry-stream');
export const DirectoryEntryStream = new $wcm.ResourceType<filesystem.Types.DirectoryEntryStream>('directory-entry-stream', 'wasi:[email protected].1/types/directory-entry-stream');
export const DirectoryEntryStream_Handle = new $wcm.ResourceHandleType('directory-entry-stream');
Descriptor.addDestructor('$drop', new $wcm.DestructorType('[resource-drop]descriptor', [['inst', Descriptor]]));
Descriptor.addMethod('readViaStream', new $wcm.MethodType<filesystem.Types.Descriptor.Interface['readViaStream']>('[method]descriptor.read-via-stream', [
Expand Down Expand Up @@ -1131,7 +1131,7 @@ export namespace filesystem {
], new $wcm.OptionType<filesystem.Types.ErrorCode>(ErrorCode));
}
export namespace Types._ {
export const id = 'wasi:filesystem/[email protected].0' as const;
export const id = 'wasi:filesystem/[email protected].1' as const;
export const witName = 'types' as const;
export namespace Descriptor {
export type WasmInterface = {
Expand Down Expand Up @@ -1234,7 +1234,7 @@ export namespace filesystem {
export const getDirectories = new $wcm.FunctionType<filesystem.Preopens.getDirectories>('get-directories', [], new $wcm.ListType<[filesystem.Preopens.Descriptor, string]>(new $wcm.TupleType<[filesystem.Preopens.Descriptor, string]>([new $wcm.OwnType<filesystem.Preopens.Descriptor>(Descriptor), $wcm.wstring])));
}
export namespace Preopens._ {
export const id = 'wasi:filesystem/[email protected].0' as const;
export const id = 'wasi:filesystem/[email protected].1' as const;
export const witName = 'preopens' as const;
export const types: Map<string, $wcm.AnyComponentModelType> = new Map<string, $wcm.AnyComponentModelType>([
['Descriptor', $.Descriptor]
Expand All @@ -1255,8 +1255,8 @@ export namespace filesystem {
}

export namespace filesystem._ {
export const version = '0.2.0' as const;
export const id = 'wasi:[email protected].0' as const;
export const version = '0.2.1' as const;
export const id = 'wasi:[email protected].1' as const;
export const witName = 'filesystem' as const;
export const interfaces: Map<string, $wcm.InterfaceType> = new Map<string, $wcm.InterfaceType>([
['Types', Types._],
Expand Down
Loading