Diff
Modified: trunk/Tools/ChangeLog (221392 => 221393)
--- trunk/Tools/ChangeLog 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/ChangeLog 2017-08-30 19:46:32 UTC (rev 221393)
@@ -1,3 +1,127 @@
+2017-08-30 Filip Pizlo <fpi...@apple.com>
+
+ Rename ArrayLang to WebGPU Shading Language, or WSL for short, pronounced "whistle"
+ https://bugs.webkit.org/show_bug.cgi?id=176117
+
+ Reviewed by Myles Maxfield.
+
+ Renamed ArrayLangRI to WebGPUShadingLanguageRI.
+
+ Renamed ALSyntaxError/ALTypeError to WSyntaxError/WTypeError.
+
+ Renamed all references to "ArrayLang" in the code to "WSL".
+
+ * ArrayLangRI: Removed.
+ * ArrayLangRI/ALSyntaxError.js: Removed.
+ * ArrayLangRI/ALTypeError.js: Removed.
+ * ArrayLangRI/AddressSpace.js: Removed.
+ * ArrayLangRI/All.js: Removed.
+ * ArrayLangRI/ArrayRefType.js: Removed.
+ * ArrayLangRI/ArrayType.js: Removed.
+ * ArrayLangRI/Assignment.js: Removed.
+ * ArrayLangRI/Block.js: Removed.
+ * ArrayLangRI/CallAssignment.js: Removed.
+ * ArrayLangRI/CallExpression.js: Removed.
+ * ArrayLangRI/CallFunction.js: Removed.
+ * ArrayLangRI/Check.js: Removed.
+ * ArrayLangRI/Checker.js: Removed.
+ * ArrayLangRI/CommaExpression.js: Removed.
+ * ArrayLangRI/ConstexprTypeParameter.js: Removed.
+ * ArrayLangRI/EBuffer.js: Removed.
+ * ArrayLangRI/EBufferBuilder.js: Removed.
+ * ArrayLangRI/EFloat.js: Removed.
+ * ArrayLangRI/EInt.js: Removed.
+ * ArrayLangRI/EPtr.js: Removed.
+ * ArrayLangRI/EValue.js: Removed.
+ * ArrayLangRI/EvaluationCommon.js: Removed.
+ * ArrayLangRI/Evaluator.js: Removed.
+ * ArrayLangRI/_expression_.js: Removed.
+ * ArrayLangRI/Field.js: Removed.
+ * ArrayLangRI/Func.js: Removed.
+ * ArrayLangRI/FuncDef.js: Removed.
+ * ArrayLangRI/FuncInstantiator.js: Removed.
+ * ArrayLangRI/FuncParameter.js: Removed.
+ * ArrayLangRI/FunctionLikeBlock.js: Removed.
+ * ArrayLangRI/Inline.js: Removed.
+ * ArrayLangRI/Inliner.js: Removed.
+ * ArrayLangRI/InstantiateImmediates.js: Removed.
+ * ArrayLangRI/IntLiteral.js: Removed.
+ * ArrayLangRI/Intrinsics.js: Removed.
+ * ArrayLangRI/Lexer.js: Removed.
+ * ArrayLangRI/LexerToken.js: Removed.
+ * ArrayLangRI/NameContext.js: Removed.
+ * ArrayLangRI/NameResolver.js: Removed.
+ * ArrayLangRI/NativeFunc.js: Removed.
+ * ArrayLangRI/NativeType.js: Removed.
+ * ArrayLangRI/NativeTypeInstance.js: Removed.
+ * ArrayLangRI/Node.js: Removed.
+ * ArrayLangRI/NullType.js: Removed.
+ * ArrayLangRI/Parse.js: Removed.
+ * ArrayLangRI/Prepare.js: Removed.
+ * ArrayLangRI/Program.js: Removed.
+ * ArrayLangRI/Protocol.js: Removed.
+ * ArrayLangRI/ProtocolDecl.js: Removed.
+ * ArrayLangRI/ProtocolRef.js: Removed.
+ * ArrayLangRI/PtrType.js: Removed.
+ * ArrayLangRI/ReferenceType.js: Removed.
+ * ArrayLangRI/ResolveNames.js: Removed.
+ * ArrayLangRI/ResolveOverloadImpl.js: Removed.
+ * ArrayLangRI/ResolveTypeDefs.js: Removed.
+ * ArrayLangRI/Return.js: Removed.
+ * ArrayLangRI/ReturnException.js: Removed.
+ * ArrayLangRI/Rewriter.js: Removed.
+ * ArrayLangRI/StandardLibrary.js: Removed.
+ * ArrayLangRI/StructType.js: Removed.
+ * ArrayLangRI/Substitution.js: Removed.
+ * ArrayLangRI/SuffixCallAssignment.js: Removed.
+ * ArrayLangRI/Test.js: Removed.
+ * ArrayLangRI/Type.js: Removed.
+ * ArrayLangRI/TypeDef.js: Removed.
+ * ArrayLangRI/TypeDefResolver.js: Removed.
+ * ArrayLangRI/TypeOrVariableRef.js: Removed.
+ * ArrayLangRI/TypeRef.js: Removed.
+ * ArrayLangRI/TypeVariable.js: Removed.
+ * ArrayLangRI/UnificationContext.js: Removed.
+ * ArrayLangRI/Value.js: Removed.
+ * ArrayLangRI/VariableDecl.js: Removed.
+ * ArrayLangRI/VariableRef.js: Removed.
+ * ArrayLangRI/VisitingSet.js: Removed.
+ * ArrayLangRI/Visitor.js: Removed.
+ * WebGPUShadingLanguageRI: Copied from Tools/ArrayLangRI.
+ * WebGPUShadingLanguageRI/ALSyntaxError.js: Removed.
+ * WebGPUShadingLanguageRI/ALTypeError.js: Removed.
+ * WebGPUShadingLanguageRI/All.js:
+ * WebGPUShadingLanguageRI/CallFunction.js:
+ (callFunctionByRef):
+ * WebGPUShadingLanguageRI/Checker.js:
+ (Checker.prototype.visitProtocolDecl.set throw):
+ * WebGPUShadingLanguageRI/Intrinsics.js:
+ (Intrinsics.prototype.add):
+ (Intrinsics):
+ * WebGPUShadingLanguageRI/Lexer.js:
+ (Lexer):
+ * WebGPUShadingLanguageRI/NameContext.js:
+ (NameContext.prototype.add):
+ * WebGPUShadingLanguageRI/NameResolver.js:
+ (NameResolver.prototype._resolveTypeArguments):
+ (NameResolver.prototype.visitTypeRef):
+ (NameResolver.prototype.visitVariableRef):
+ * WebGPUShadingLanguageRI/Parse.js:
+ * WebGPUShadingLanguageRI/StandardLibrary.js:
+ * WebGPUShadingLanguageRI/StructType.js:
+ (StructType.prototype.add):
+ (StructType.prototype.instantiate):
+ * WebGPUShadingLanguageRI/TypeDefResolver.js:
+ (TypeDefResolver.prototype.visitTypeRef):
+ (TypeDefResolver):
+ * WebGPUShadingLanguageRI/VisitingSet.js:
+ (VisitingSet.prototype.doVisit):
+ (VisitingSet):
+ * WebGPUShadingLanguageRI/WSyntaxError.js: Copied from Tools/ArrayLangRI/ALSyntaxError.js.
+ (ALSyntaxError): Deleted.
+ * WebGPUShadingLanguageRI/WTypeError.js: Copied from Tools/ArrayLangRI/ALTypeError.js.
+ (ALTypeError): Deleted.
+
2017-08-30 Eric Carlson <eric.carl...@apple.com>
Add Logger observer and helper class
Deleted: trunk/Tools/WebGPUShadingLanguageRI/ALSyntaxError.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/ALSyntaxError.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/ALSyntaxError.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-"use strict";
-
-class ALSyntaxError extends Error {
- constructor(originString, message)
- {
- super("Syntax error at " + originString + ": " + message);
- this.originString = originString;
- this.syntaxErrorMessage = message;
- }
-}
-
Deleted: trunk/Tools/WebGPUShadingLanguageRI/ALTypeError.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/ALTypeError.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/ALTypeError.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-"use strict";
-
-class ALTypeError extends Error {
- constructor(originString, message)
- {
- super("Type error at " + originString + ": " + message);
- this.originString = originString;
- this.typeErrorMessage = message;
- }
-}
-
Modified: trunk/Tools/WebGPUShadingLanguageRI/All.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/All.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/All.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -33,8 +33,6 @@
load("Visitor.js");
load("EValue.js");
-load("ALSyntaxError.js");
-load("ALTypeError.js");
load("AddressSpace.js");
load("ArrayRefType.js");
load("ArrayType.js");
@@ -98,3 +96,5 @@
load("VariableDecl.js");
load("VariableRef.js");
load("VisitingSet.js");
+load("WSyntaxError.js");
+load("WTypeError.js");
Modified: trunk/Tools/WebGPUShadingLanguageRI/CallFunction.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/CallFunction.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/CallFunction.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -35,7 +35,7 @@
});
let func = resolveInlinedFunction(program, name, typeArguments, argumentTypes);
if (!func)
- throw new ALTypeError("<callFunction>", "Cannot resolve function call " + name + "<" + typeArguments + ">(" + argumentList + ")");
+ throw new WTypeError("<callFunction>", "Cannot resolve function call " + name + "<" + typeArguments + ">(" + argumentList + ")");
for (let i = 0; i < func.parameters.length; ++i)
func.parameters[i].ePtr.copyFrom(argumentList[i]);
return new Evaluator(program).visitFunctionBody(func.body);
Modified: trunk/Tools/WebGPUShadingLanguageRI/Checker.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/Checker.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/Checker.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -64,10 +64,10 @@
parameterType.visit(noticeTypeVariable);
for (let typeParameter of signature.typeParameters) {
if (!set.has(typeParameter))
- throw ALTypeError(typeParameter.origin.originString, "Type parameter to protocol signature not inferrable from value parameters");
+ throw WTypeError(typeParameter.origin.originString, "Type parameter to protocol signature not inferrable from value parameters");
}
if (!set.has(node.typeVariable))
- throw new ALTypeError(signature.origin.originString, "Protocol's type variable not mentioned in signature");
+ throw new WTypeError(signature.origin.originString, "Protocol's type variable not mentioned in signature");
}
}
@@ -78,10 +78,10 @@
let result = node.typeArguments[i].visit(this);
if (argumentIsType) {
if (!typeArguments[i].inherits(typeArguments[i]))
- throw new ALTypeError(origin.originString, "Type argument does not inherit protocol");
+ throw new WTypeError(origin.originString, "Type argument does not inherit protocol");
} else {
if (!result.equals(typeParameters[i].type))
- throw new ALTypeError(origin.originString, "Wrong type for constexpr");
+ throw new WTypeError(origin.originString, "Wrong type for constexpr");
}
}
}
@@ -101,13 +101,13 @@
return;
if (!node.elementType.withRecursivelyInstantiatedImmediates.isPrimitive)
- throw new ALTypeError(node.origin.originString, "Illegal pointer to non-primitive type");
+ throw new WTypeError(node.origin.originString, "Illegal pointer to non-primitive type");
}
visitArrayType(node)
{
if (!node.numElements.isConstexpr)
- throw new ALTypeError(node.origin.originString, "Array length must be constexpr");
+ throw new WTypeError(node.origin.originString, "Array length must be constexpr");
}
visitAssignment(node)
@@ -116,7 +116,7 @@
let lhsType = node.lhs.visit(this);
let rhsType = node.rhs.visit(this);
if (!lhsType.equals(rhsType))
- throw new ALTypeError(node.origin.originString, "Type mismatch in assignment: " + lhsType + " versus " + rhsType);
+ throw new WTypeError(node.origin.originString, "Type mismatch in assignment: " + lhsType + " versus " + rhsType);
return lhsType;
}
@@ -132,12 +132,12 @@
if (!resultType)
throw new Error("Null result type from " + node.value);
if (!node.func.returnType.equals(resultType))
- throw new ALTypeError(node.origin.originString, "Trying to return " + resultType + " in a function that returns " + func.returnType);
+ throw new WTypeError(node.origin.originString, "Trying to return " + resultType + " in a function that returns " + func.returnType);
return;
}
if (!func.returnType.equals(this._program.intrinsics.void))
- throw new ALTypeError(node.origin.originString, "Non-void function must return a value");
+ throw new WTypeError(node.origin.originString, "Non-void function must return a value");
}
visitIntLiteral(node)
@@ -183,7 +183,7 @@
node.name, node.typeArguments, argumentTypes);
}
if (!overload)
- throw new ALTypeError(node.origin.originString, "Did not find function for call");
+ throw new WTypeError(node.origin.originString, "Did not find function for call");
node.func = overload.func;
node.actualTypeArguments = overload.typeArguments.map(TypeRef.wrap);
let result = overload.func.returnType.substituteToUnification(
Modified: trunk/Tools/WebGPUShadingLanguageRI/Intrinsics.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/Intrinsics.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/Intrinsics.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -71,7 +71,7 @@
{
let intrinsic = this._map.get(thing.toString());
if (!intrinsic)
- throw new ALTypeError(thing.origin.originString, "Unrecognized intrinsic: " + thing);
+ throw new WTypeError(thing.origin.originString, "Unrecognized intrinsic: " + thing);
intrinsic(thing);
}
}
Modified: trunk/Tools/WebGPUShadingLanguageRI/Lexer.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/Lexer.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/Lexer.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -138,7 +138,7 @@
fail(error)
{
- throw new ALSyntaxError(this.originString, error);
+ throw new WSyntaxError(this.originString, error);
}
backtrackingScope(callback)
@@ -147,7 +147,7 @@
try {
return callback();
} catch (e) {
- if (e instanceof ALSyntaxError) {
+ if (e instanceof WSyntaxError) {
this.state = state;
return null;
}
Modified: trunk/Tools/WebGPUShadingLanguageRI/NameContext.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/NameContext.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/NameContext.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -77,7 +77,7 @@
return;
}
if (this._map.has(thing.name))
- throw new ALTypeError(thing.origin.originString, "Duplicate name: " + thing.name);
+ throw new WTypeError(thing.origin.originString, "Duplicate name: " + thing.name);
this._map.set(thing.name, thing);
}
Modified: trunk/Tools/WebGPUShadingLanguageRI/NameResolver.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/NameResolver.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/NameResolver.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -129,7 +129,7 @@
if (typeArgument instanceof TypeOrVariableRef) {
let thing = this._nameContext.get(NotFunc, typeArgument.name);
if (!thing)
- new ALTypeError(typeArgument.origin.originString, "Could not find type or variable named " + typeArgument.name);
+ new WTypeError(typeArgument.origin.originString, "Could not find type or variable named " + typeArgument.name);
if (thing instanceof Value) {
typeArgument[i] = new VariableRef(typeArgument.origin, typeArgument.name);
} else
@@ -138,7 +138,7 @@
if (typeArgument[i] instanceof Value
&& !typeArgument[i].isConstexpr)
- throw new ALTypeError(typeArgument[i].origin.originString, "Expected constexpr");
+ throw new WTypeError(typeArgument[i].origin.originString, "Expected constexpr");
}
}
@@ -148,21 +148,21 @@
let type = this._nameContext.get(Type, node.name);
if (!type)
- throw new ALTypeError(node.origin.originString, "Could not find type named " + node.name);
+ throw new WTypeError(node.origin.originString, "Could not find type named " + node.name);
if (!this._nameContext.isDefined(type))
- throw new ALTypeError(node.origin.originString, "Illegal forward use of type named " + node.name);
+ throw new WTypeError(node.origin.originString, "Illegal forward use of type named " + node.name);
node.type = type;
if (type.typeParameters.length != node.typeArguments.length)
- throw new ALTypeError(node.origin.originString, "Wrong number of type arguments");
+ throw new WTypeError(node.origin.originString, "Wrong number of type arguments");
for (let i = 0; i < type.typeParameters.length; ++i) {
let parameterIsType = type.typeParameters[i] instanceof TypeVariable;
let argumentIsType = node.typeArguments[i] instanceof Type;
node.typeArguments[i].visit(this);
if (parameterIsType && !argumentIsType)
- throw new ALTypeError(node.origin.originString, "Expected type, but got value at argument #" + i);
+ throw new WTypeError(node.origin.originString, "Expected type, but got value at argument #" + i);
if (!parameterIsType && argumentIsType)
- throw new ALTypeError(node.origin.originString, "Expected value, but got type at argument #" + i);
+ throw new WTypeError(node.origin.originString, "Expected value, but got type at argument #" + i);
}
super.visitTypeRef(node);
@@ -179,7 +179,7 @@
{
let result = this._nameContext.get(Value, node.name);
if (!result)
- throw new ALTypeError(node.origin.originString, "Could not find variable named " + node.name);
+ throw new WTypeError(node.origin.originString, "Could not find variable named " + node.name);
node.variable = result;
}
Modified: trunk/Tools/WebGPUShadingLanguageRI/Parse.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/Parse.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/Parse.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -29,8 +29,8 @@
let lexer = new Lexer(origin, lineNumberOffset, text);
// The hardest part of dealing with C-like languages is parsing variable declaration statements.
- // Let's consider if this happens in ArrayLang. Here are the valid statements in ArrayLang that
- // begin with an identifier, if we assume that any _expression_ can be a standalone statement.
+ // Let's consider if this happens in WSL. Here are the valid statements in WSL that being with an
+ // identifier, if we assume that any _expression_ can be a standalone statement.
//
// x;
// x <binop> y;
Modified: trunk/Tools/WebGPUShadingLanguageRI/StandardLibrary.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/StandardLibrary.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/StandardLibrary.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -26,7 +26,7 @@
// NOTE: The next line is line 28, and we rely on this in Prepare.js.
const standardLibrary = `
-// This is the ArrayLang standard library. Implementations of all of these things are in
+// This is the WSL standard library. Implementations of all of these things are in
// Intrinsics.js.
// Need to bootstrap void first.
Modified: trunk/Tools/WebGPUShadingLanguageRI/StructType.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/StructType.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/StructType.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -37,7 +37,7 @@
add(field)
{
if (this._fields.has(field.name))
- throw new ALTypeError(field.origin.originString, "Duplicate field name: " + field.name);
+ throw new WTypeError(field.origin.originString, "Duplicate field name: " + field.name);
this._fields.set(field.name, field);
}
@@ -59,7 +59,7 @@
instantiate(typeArguments)
{
if (typeArguments.length != this.typeParameters.length)
- throw new ALTypeError(origin.originString, "Wrong number of type arguments to instantiation");
+ throw new WTypeError(origin.originString, "Wrong number of type arguments to instantiation");
let substitution = Substitution.mapping(this.typeParameters, typeArguments);
let instantiateImmediates = new InstantiateImmediates();
Modified: trunk/Tools/WebGPUShadingLanguageRI/TypeDefResolver.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/TypeDefResolver.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/TypeDefResolver.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -42,7 +42,7 @@
for (let i = 0; i < node.typeArguments.length; ++i)
node.typeArguments[i].unify(unificationContext, node.type.typeParameters[i]);
if (!unificationContext.verify())
- throw new ALTypeError(node.origin.originString, "Type reference to a type definition violates protocol constraints");
+ throw new WTypeError(node.origin.originString, "Type reference to a type definition violates protocol constraints");
let newType = node.type.type.substituteToUnification(node.type.typeParameters, unificationContext);
newType.visit(this);
Modified: trunk/Tools/WebGPUShadingLanguageRI/VisitingSet.js (221392 => 221393)
--- trunk/Tools/ArrayLangRI/VisitingSet.js 2017-08-30 19:40:35 UTC (rev 221392)
+++ trunk/Tools/WebGPUShadingLanguageRI/VisitingSet.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -33,7 +33,7 @@
doVisit(item, callback)
{
if (this._set.has(item))
- throw new ALTypeError(item.origin.originString, "Recursive " + item.kind);
+ throw new WTypeError(item.origin.originString, "Recursive " + item.kind);
this._set.add(item);
try {
return callback();
Copied: trunk/Tools/WebGPUShadingLanguageRI/WSyntaxError.js (from rev 221392, trunk/Tools/ArrayLangRI/ALSyntaxError.js) (0 => 221393)
--- trunk/Tools/WebGPUShadingLanguageRI/WSyntaxError.js (rev 0)
+++ trunk/Tools/WebGPUShadingLanguageRI/WSyntaxError.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+"use strict";
+
+class WSyntaxError extends Error {
+ constructor(originString, message)
+ {
+ super("Syntax error at " + originString + ": " + message);
+ this.originString = originString;
+ this.syntaxErrorMessage = message;
+ }
+}
+
Copied: trunk/Tools/WebGPUShadingLanguageRI/WTypeError.js (from rev 221392, trunk/Tools/ArrayLangRI/ALTypeError.js) (0 => 221393)
--- trunk/Tools/WebGPUShadingLanguageRI/WTypeError.js (rev 0)
+++ trunk/Tools/WebGPUShadingLanguageRI/WTypeError.js 2017-08-30 19:46:32 UTC (rev 221393)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+"use strict";
+
+class WTypeError extends Error {
+ constructor(originString, message)
+ {
+ super("Type error at " + originString + ": " + message);
+ this.originString = originString;
+ this.typeErrorMessage = message;
+ }
+}
+