From f89d020b54c291e5383d2f853631f8adbc677029 Mon Sep 17 00:00:00 2001 From: Andrew Kreimer Date: Thu, 3 Oct 2024 18:37:24 +0300 Subject: [PATCH] Fix typos in Markdown files Clean up misspellings via codespell. --- compiler/docs/Debugging.md | 2 +- .../implement-language.md | 2 +- docs/reference-manual/llvm/Compiling.md | 2 +- .../native-image/DebugInfo.md | 2 +- docs/tools/insight/Insight-Manual.md | 2 +- docs/tools/insight/README.md | 2 +- espresso/docs/continuations.md | 2 +- espresso/docs/how-espresso-works.md | 2 +- sdk/CHANGELOG.md | 2 +- sdk/mx.sdk/vm/windows.md | 2 +- substratevm/CHANGELOG.md | 2 +- .../ModuleSystemSupportRuntime.md | 2 +- sulong/docs/contributor/INTEROP.md | 2 +- tools/CHANGELOG.md | 2 +- tools/docs/Insight.md | 2 +- truffle/CHANGELOG.md | 24 +++++++++---------- truffle/docs/DSLNodeObjectInlining.md | 2 +- truffle/docs/Exit.md | 4 ++-- truffle/docs/Languages.md | 2 +- truffle/docs/NFI.md | 4 ++-- truffle/docs/Optimizing.md | 4 ++-- truffle/docs/Options.md | 2 +- truffle/docs/Profiling.md | 4 ++-- truffle/docs/Safepoints.md | 2 +- .../docs/splitting/ReportingPolymorphism.md | 4 ++-- visualizer/Modules.md | 12 +++++----- 26 files changed, 47 insertions(+), 47 deletions(-) diff --git a/compiler/docs/Debugging.md b/compiler/docs/Debugging.md index 29d9ef043218..e3ff671c342d 100644 --- a/compiler/docs/Debugging.md +++ b/compiler/docs/Debugging.md @@ -78,7 +78,7 @@ obtained with `-XX:+JVMCIPrintProperties`. The compiler supports metrics in the form of counters, timers and memory trackers. Each metric has a unique name. Metrics are collected per-compilation. At shutdown, they are aggregated across all compilations and reported to the console. -This ouput can be redirected to a file via the `-Djdk.graal.AggregatedMetricsFile` option. +This output can be redirected to a file via the `-Djdk.graal.AggregatedMetricsFile` option. To list the per-compilation metrics, use the `-Djdk.graal.MetricsFile` option. If not specified, per-compilation metrics are not reported. diff --git a/docs/graalvm-as-a-platform/implement-language.md b/docs/graalvm-as-a-platform/implement-language.md index 81b37fd12467..df29370387f3 100644 --- a/docs/graalvm-as-a-platform/implement-language.md +++ b/docs/graalvm-as-a-platform/implement-language.md @@ -136,7 +136,7 @@ gu -L install /path/to/sl-component.jar A language built with Truffle can be AOT compiled using [Native Image](../reference-manual/native-image/README.md). Running `mvn package` in the SimpleLanguage directory also builds a `slnative` executable in the `native` directory. This executable is the full SimpleLanguage implementation as a single native application, and has no need for GraalVM in order to execute SimpleLanguage code. -Besides this, a big advantage of using the native executable when compared to running on GraalVM is the greatly faster startup time as shown bellow: +Besides this, a big advantage of using the native executable when compared to running on GraalVM is the greatly faster startup time as shown below: ```shell time ./sl language/tests/HelloWorld.sl == running on org.graalvm.polyglot.Engine@2db0f6b2 diff --git a/docs/reference-manual/llvm/Compiling.md b/docs/reference-manual/llvm/Compiling.md index e4297ac0c8c5..f3dbaa6ee7f2 100644 --- a/docs/reference-manual/llvm/Compiling.md +++ b/docs/reference-manual/llvm/Compiling.md @@ -7,7 +7,7 @@ permalink: /reference-manual/llvm/Compiling/ # Compiling to LLVM Bitcode GraalVM can execute C/C++, Rust, and other languages that can be compiled to LLVM bitcode. -As the first step, you have to compile a program to LLVM bitcode using some LLVM compiler front end, for example, `clang` for C and C++, `rust` for the Rust programing language, etc. +As the first step, you have to compile a program to LLVM bitcode using some LLVM compiler front end, for example, `clang` for C and C++, `rust` for the Rust programming language, etc. ## File Format diff --git a/docs/reference-manual/native-image/DebugInfo.md b/docs/reference-manual/native-image/DebugInfo.md index bce8ae07b1b5..6c13937a7d93 100644 --- a/docs/reference-manual/native-image/DebugInfo.md +++ b/docs/reference-manual/native-image/DebugInfo.md @@ -833,7 +833,7 @@ inlined compiled method code as well as mappings from code addresses to the corresponding source files and lines. `perf` and `valgrind` are able to use this information for some of their recording and reporting operations. -For example, `perf report` is able to associate code adresses sampled +For example, `perf report` is able to associate code addresses sampled during a `perf record` session with Java methods and print the DWARF-derived method name for the method in its output histogram. diff --git a/docs/tools/insight/Insight-Manual.md b/docs/tools/insight/Insight-Manual.md index 7c9557298400..b2c6dc2b79cf 100644 --- a/docs/tools/insight/Insight-Manual.md +++ b/docs/tools/insight/Insight-Manual.md @@ -672,7 +672,7 @@ The `returnValue` function is always available on the provided `ctx` object, but If you ask whether GraalVM Insight causes any performance overhead when the scripts are applied, the answer is "No" or "Minimal". The overhead depends on what your scripts do. -When they add and spread complex computations all around your code base, then the price for the computation will be payed. +When they add and spread complex computations all around your code base, then the price for the computation will be paid. However, that would be overhead of your code, not of the instrumentation. Using a simple _function-count.js_ script, measure overhead. diff --git a/docs/tools/insight/README.md b/docs/tools/insight/README.md index 6e983b4cd5a3..60fc501ec767 100644 --- a/docs/tools/insight/README.md +++ b/docs/tools/insight/README.md @@ -210,7 +210,7 @@ That provides ultimate insights into execution and behavior of one's application To continue learning and deep dive into GraalVM Insight, proceed to the [Insight Manual](Insight-Manual.md) which starts with an obligatory _HelloWorld_ example and then demonstrates more challenging tasks. -### Embeddeding GraalVM Insight into Applications +### Embedding GraalVM Insight into Applications GraalVM languages (languages implemented with the Truffle framework) can be embedded into custom applications via [Polyglot Context API](https://www.graalvm.org/sdk/javadoc/org/graalvm/polyglot/Context.html). GraalVM Insight can also be controlled via the same API. diff --git a/espresso/docs/continuations.md b/espresso/docs/continuations.md index b4dd27276133..9d245101c487 100644 --- a/espresso/docs/continuations.md +++ b/espresso/docs/continuations.md @@ -132,7 +132,7 @@ There are special situations in which a call to `suspend` may fail with `Illegal - If in between the call to `resume` and `suspend` any of the following holds: - A lock is held (this may be an object monitor through the `MONITORENTER` bytecode, or even a `java.util.concurrent.locks.ReentrantLock`). - - There is a non-java frame on the stack (this could be a `native` method, or even a VM instrinsic). + - There is a non-java frame on the stack (this could be a `native` method, or even a VM intrinsic). Furthermore, there is currently no support for continuation-in-continuation. diff --git a/espresso/docs/how-espresso-works.md b/espresso/docs/how-espresso-works.md index 823b7bf6dd21..ef2e408268cc 100644 --- a/espresso/docs/how-espresso-works.md +++ b/espresso/docs/how-espresso-works.md @@ -176,7 +176,7 @@ a series of slots stored on the host stack, or when _materialized_, the frame is languages these slots are strongly typed and correspond to the base Java type system with ints, booleans, longs and object references etc. Espresso however uses Truffle's _static slots_, which are (somewhat confusingly) both typed and untyped at the same time. The Truffle `Frame` interface has an API for reading and writing to static slots which -distinguishes betwen primitive types (`get/setObjectStatic`, `get/setLongStatic` etc), but the actual primitive type of +distinguishes between primitive types (`get/setObjectStatic`, `get/setLongStatic` etc), but the actual primitive type of a static slot is tracked only when assertions are enabled i.e. in debug mode. You can see some of this code in Truffle's `FrameWithoutBoxing` class. In normal execution the slot types are marked only as being "static". This is OK because Java bytecode implicitly types stack slots. The types aren't recorded in the bytecode itself, but can be recovered using diff --git a/sdk/CHANGELOG.md b/sdk/CHANGELOG.md index ce84758c0422..d3ddb5affaa8 100644 --- a/sdk/CHANGELOG.md +++ b/sdk/CHANGELOG.md @@ -131,7 +131,7 @@ the close operation throws a [`PolyglotException`](https://www.graalvm.org/sdk/j ## Version 22.0.0 * (GR-31170) Native Image API: Added `WINDOWS_AARCH64` Platform. -* (GR-33657) Native Image API: Added `CEntryPoint#include` attribute which can be used to controll if the entry point should be automatically added to the shared library. +* (GR-33657) Native Image API: Added `CEntryPoint#include` attribute which can be used to control if the entry point should be automatically added to the shared library. * (GR-22699)(EE-only) Added the ability to spawn a native-image isolate for a each `Engine` or `Context` by calling `Context.Builder.option("engine.SpawnIsolate", "true")`. This enables heap isolation between the host and guest applications. Using isolates improves security, startup and warmup time of polyglot languages. In this mode, calls between host and guest are more costly as they need to cross a native boundary. It is recommended to use the `HostAccess.SCOPED` policy with this mode to avoid strong cyclic references between host and guest. This mode is experimental in this release and only supported for a limited set of languages. ## Version 21.3.0 diff --git a/sdk/mx.sdk/vm/windows.md b/sdk/mx.sdk/vm/windows.md index 0c75b7a6302f..3c4fb655775b 100644 --- a/sdk/mx.sdk/vm/windows.md +++ b/sdk/mx.sdk/vm/windows.md @@ -58,7 +58,7 @@ to work. ## Testing A primitive way to test the windows script is to copy the template to a file -named `test.cmd`, and make a couple temporary adjustements: +named `test.cmd`, and make a couple temporary adjustments: - Prefix the final command invocation with `echo`. - Escape all substitution tags that live within strings with `^`. e.g. diff --git a/substratevm/CHANGELOG.md b/substratevm/CHANGELOG.md index 602a1b107f47..a34d8396fbc4 100644 --- a/substratevm/CHANGELOG.md +++ b/substratevm/CHANGELOG.md @@ -31,7 +31,7 @@ At runtime, premain runtime options are set along with main class' arguments in * (GR-47832) Experimental support for upcalls from foreign code and other improvements to our implementation of the [Foreign Function & Memory API](https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/ForeignInterface.md) (part of "Project Panama", [JEP 454](https://openjdk.org/jeps/454)) on AMD64. Must be enabled with `-H:+ForeignAPISupport` (requiring `-H:+UnlockExperimentalVMOptions`). * (GR-52314) `-XX:MissingRegistrationReportingMode` can now be used on program invocation instead of as a build option, to avoid a rebuild when debugging missing registration errors. * (GR-51086) Introduce a new `--static-nolibc` API option as a replacement for the experimental `-H:±StaticExecutableWithDynamicLibC` option. -* (GR-52732) Introduce a new `ReduceImplicitExceptionStackTraceInformation` hosted option that reduces image size by reducing the runtime metadata for implicit exceptions, at the cost of stack trace precision. The option is diabled by default, but enabled with optimization level 3 and profile guided optimizations. +* (GR-52732) Introduce a new `ReduceImplicitExceptionStackTraceInformation` hosted option that reduces image size by reducing the runtime metadata for implicit exceptions, at the cost of stack trace precision. The option is disabled by default, but enabled with optimization level 3 and profile guided optimizations. * (GR-52534) Change the digest (used e.g. for symbol names) from SHA-1 encoded as a hex string (40 bytes) to 128-bit Murmur3 as a Base-62 string (22 bytes). * (GR-52578) Print information about embedded resources into `embedded-resources.json` using the `-H:+GenerateEmbeddedResourcesFile` option. * (GR-51172) Add support to catch OutOfMemoryError exceptions on native image if there is no memory left. diff --git a/substratevm/docs/module-system/ModuleSystemSupportRuntime.md b/substratevm/docs/module-system/ModuleSystemSupportRuntime.md index 50437333bf72..a5b31e86a7df 100644 --- a/substratevm/docs/module-system/ModuleSystemSupportRuntime.md +++ b/substratevm/docs/module-system/ModuleSystemSupportRuntime.md @@ -17,7 +17,7 @@ The purpose of the runtime module support: - `com.oracle.svm.core.jdk.Target_java_lang_ModuleLayer`: - `boot()` - replaces the hosted boot module layer with our own -Some data structures also need to be substituted/resetted as to not pull in hosted modules (see runtime module synthesizing): +Some data structures also need to be substituted/reset as to not pull in hosted modules (see runtime module synthesizing): - `com.oracle.svm.core.jdk.Target_java_lang_Module_ReflectionData` diff --git a/sulong/docs/contributor/INTEROP.md b/sulong/docs/contributor/INTEROP.md index 79691e666cf7..48dcf0010aa9 100644 --- a/sulong/docs/contributor/INTEROP.md +++ b/sulong/docs/contributor/INTEROP.md @@ -111,7 +111,7 @@ a native pointer pointing to the type returned by the `getNativeType` message. The value returned by `getNativeType` should be a `polyglot_typeid` as returned by a `polyglot_*_typeid` function (see `graalvm/llvm/polyglot.h`). -The foreing object will then behave as if it was cast by `polyglot_as_typed(type, ...)` +The foreign object will then behave as if it was cast by `polyglot_as_typed(type, ...)` to that type. ### `isPointer`/`asPointer` diff --git a/tools/CHANGELOG.md b/tools/CHANGELOG.md index ec92236eb4dc..094af3056bfe 100644 --- a/tools/CHANGELOG.md +++ b/tools/CHANGELOG.md @@ -36,7 +36,7 @@ This changelog summarizes major changes between Truffle Tools versions. * Reimplemented CPUSampler to use the Truffle language safepoints thus deprecating several API functions. * Added new option `--cpusampler.SampleContextInitialization` which includes code executed during context initialization in the general sampling profile instead of grouping it into a single entry. * Default CLI output of CPUSampler was simplified to not include compiled times. -* CPUSampler APIs to distingish compiled from interpreted samples were replaced by a more general API that supports an arbitrary number of compilation tiers. +* CPUSampler APIs to distinguish compiled from interpreted samples were replaced by a more general API that supports an arbitrary number of compilation tiers. * Added the --cpusampler.ShowTiers option that shows time spend in each optimization tier. * Support for hash interoperability in Insight - no need to use `Truffle::Interop.hash_keys_as_members` anymore * [Cooperative heap dumping](https://www.graalvm.org/tools/javadoc/org/graalvm/tools/insight/heap/package-summary.html) when embedding Insight into Java applications diff --git a/tools/docs/Insight.md b/tools/docs/Insight.md index b15a67ae94cc..ec2d74b365c7 100644 --- a/tools/docs/Insight.md +++ b/tools/docs/Insight.md @@ -52,7 +52,7 @@ That provides ultimate insights into execution and behavior of one's application Consult the [Insight Manual](../../docs/tools/insight/Insight-Manual.md) to get started with an obligatory HelloWorld example and other challenging tasks. -## Embeddeding Insight into Applications +## Embedding Insight into Applications GraalVM languages (languages implemented with the Truffle framework) can be embedded into custom applications via [Polyglot Context API](https://www.graalvm.org/sdk/javadoc/org/graalvm/polyglot/Context.html). GraalVM Insight can also be controlled via the same API. diff --git a/truffle/CHANGELOG.md b/truffle/CHANGELOG.md index 5bdf5a7316d5..1dbaab3fccb6 100644 --- a/truffle/CHANGELOG.md +++ b/truffle/CHANGELOG.md @@ -70,7 +70,7 @@ This changelog summarizes major changes between Truffle versions relevant to lan * GR-45036 Improved IGV AST dumping. The Truffle AST is now dumped as part of the IR dump folder. The dumped AST tree now shows all inlined ASTS in a single tree. Individual functions can be grouped using the "Cluster nodes" function in IGV (top status bar). Root nodes now display their name e.g. `SLFunctionBody (root add)`. Every AST node now has a property `graalIRNode` that allows to find the corresponding Graal IR constant if there is one. * GR-45284 Added Graal debug options `TruffleTrustedNonNullCast` and `TruffleTrustedTypeCast` that allow disabling trusted non-null and type casts in Truffle, respectively. Note that disabling trusted type casts effectively disables non-null casts, too. * GR-44211 Added `TruffleLanguage.Env#newTruffleThreadBuilder(Runnable)` to create a builder for threads that have access to the appropriate `TruffleContext`. All existing `TruffleLanguage.Env#createThread` methods have been deprecated. On top of what the deprecated methods provided, the builder now allows to specify `beforeEnter` and `afterLeave` callbacks for the created threads. -* GR-44211 Added `TruffleContext#leaveAndEnter(Node, Interrupter, InterruptibleFunction, Object)` to be able to interrupt the function run when the context is not entered. The exisiting API `TruffleContext#leaveAndEnter(Node, Supplier)` is deprecated. +* GR-44211 Added `TruffleContext#leaveAndEnter(Node, Interrupter, InterruptibleFunction, Object)` to be able to interrupt the function run when the context is not entered. The existing API `TruffleContext#leaveAndEnter(Node, Supplier)` is deprecated. * GR-44211 Removed the deprecated method `TruffleSafepoint#setBlocked(Node, Interrupter, Interruptible, Object, Runnable, Runnable)`. * GR-44211 Added `TruffleSafepoint#setBlocked(Node, Interrupter, Interruptible, Object, Runnable, Consumer)`. It replaces the method `TruffleSafepoint#setBlockedWithException(Node, Interrupter, Interruptible, Object, Runnable, Consumer)` that is now deprecated. * GR-44211 Added `TruffleSafepoint#setBlockedFunction(Node, Interrupter, InterruptibleFunction, Object, Runnable, Consumer)` to be able to return an object from the interruptible functional method. @@ -137,7 +137,7 @@ This changelog summarizes major changes between Truffle versions relevant to lan * GR-25539 Added `InteropLibrary#fitsInBigInteger()` and `InteropLibrary#asBigInteger()` to access interop values that fit into `java.math.BigInteger` without loss of precision. A warning is produced for objects that export the `isNumber` interop message and don't export the new big integer messages. * GR-25539 Added `DebugValue#fitsInBigInteger()` and `DebugValue#asBigInteger()`. * GR-25539 Added `GenerateLibrary.Abstract#ifExportedAsWarning()` to specify a library message to be abstract only if another message is exported. A warning is produced that prompts the user to export the message. -* GR-43903 Usages of `@Specialization(assumptions=...)` that reach a `@Fallback` specialization now produce a suppressable warning. In most situations, such specializations should be migrated to use a regular guard instead. For example, instead of using `@Specialization(assumptions = "assumption")` you might need to be using `@Specialization(guards = "assumption.isValid()")`. +* GR-43903 Usages of `@Specialization(assumptions=...)` that reach a `@Fallback` specialization now produce a suppressible warning. In most situations, such specializations should be migrated to use a regular guard instead. For example, instead of using `@Specialization(assumptions = "assumption")` you might need to be using `@Specialization(guards = "assumption.isValid()")`. * GR-43903 Added `@Idempotent` and `@NonIdempotent` DSL annotations useful for DSL guard optimizations. Guards that only bind idempotent methods and no dynamic values can always be assumed `true` after they were `true` once on the slow-path. The generated code leverages this information and asserts instead of executes the guard on the fast-path. The DSL now emits warnings with for all guards where specifying the annotations may be beneficial. Note that all guards that do not bind dynamic values are assumed idempotent by default for compatibility reasons. * GR-43663 Added RootNode#computeSize as a way for languages to specify an approximate size of a RootNode when number of AST nodes cannot be used (e.g. for bytecode interpreters). * GR-42539 (change of behavior) Unclosed polyglot engines are no longer closed automatically on VM shutdown. They just die with the VM. As a result, `TruffleInstrument#onDispose` is not called for active instruments on unclosed engines in the event of VM shutdown. In case an instrument is supposed to do some specific action before its disposal, e.g. print some kind of summary, it should be done in `TruffleInstrument#onFinalize`. @@ -413,7 +413,7 @@ No active inner context is allowed after `TruffleLanguage.finalizeContext(Object * Added `getIteratorNextElement(Object)` to return the current iterator element. * Added `TruffleContext.leaveAndEnter(Node, Supplier)` to wait for another thread without triggering multithreading. * Removed deprecated `TruffleLanguage.Env.getTruffleFile(String)`, `TruffleLanguage.Env.getTruffleFile(URI)` methods. -* Deprecated CompilationThreshold for prefered LastTierCompilationThreshold and SingleTierCompilationThreshold. +* Deprecated CompilationThreshold for preferred LastTierCompilationThreshold and SingleTierCompilationThreshold. * Added new features to the DSL `@NodeChild` annotation: * Added `implicit` and `implicitCreate` attributes to allow implicit creation of child nodes by the parent factory method. * Added `allowUncached` and `uncached` attributes to allow using `@NodeChild` with `@GenerateUncached`. @@ -647,7 +647,7 @@ No active inner context is allowed after `TruffleLanguage.finalizeContext(Object * `NodeFactory` now supports `getUncachedInstance` that returns the uncached singleton. * `@GenerateUncached` can now be used in combination with `@NodeChild` if execute signatures for all arguments are present. * Removed deprecated automatic registration of the language class as a service. -* The [LanguageProvider](https://www.graalvm.org/truffle/javadoc/org/graalvm/polyglot/tck/LanguageProvider.html#createIdentityFunctionSnippet-org.graalvm.polyglot.Context-) can override the default verfication of the TCK `IdentityFunctionTest`. +* The [LanguageProvider](https://www.graalvm.org/truffle/javadoc/org/graalvm/polyglot/tck/LanguageProvider.html#createIdentityFunctionSnippet-org.graalvm.polyglot.Context-) can override the default verification of the TCK `IdentityFunctionTest`. * Removed deprecated and misspelled method `TruffleStackTrace#getStacktrace`. * Removed deprecated methods`TruffleStackTraceElement#getStackTrace` and `TruffleStackTraceElement#fillIn` (use methods of `TruffleStackTrace` instead). * `SlowPathException#fillInStackTrace` is now `final`. @@ -659,7 +659,7 @@ No active inner context is allowed after `TruffleLanguage.finalizeContext(Object * Renamed version 1.0.0 to 19.0.0 ## Version 1.0.0 RC15 -* This version includes a major revision of the Truffle Interoperability APIs. Most existing APIs for Truffle Interoperability were deprecated. The compatiblity layer may cause significant performance reduction for interoperability calls. +* This version includes a major revision of the Truffle Interoperability APIs. Most existing APIs for Truffle Interoperability were deprecated. The compatibility layer may cause significant performance reduction for interoperability calls. * Please see the [Interop Migration Guide](https://github.com/oracle/graal/blob/master/truffle/docs/InteropMigration.md) for an overview and individual `@deprecated` javadoc tags for guidance. * Deprecated classes `ForeignAccess`, `Message`, `MessageResolution`, `Resolve` and `KeyInfo`. * The following methods got deprecated: @@ -840,7 +840,7 @@ No active inner context is allowed after `TruffleLanguage.finalizeContext(Object * Added `TruffleLanguage.Env.isHostFunction`. * Added Java interop support for converting executable values to legacy functional interfaces without a `@FunctionalInterface` annotation. -* Added `TruffleLogger.getLogger(String)` to obtain the root loger of a language or instrument. +* Added `TruffleLogger.getLogger(String)` to obtain the root logger of a language or instrument. * Introduced per language [context policy](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/TruffleLanguage.ContextPolicy.html). Languages are encouraged to configure the most permissive policy that they can support. * Added `TruffleLanguage.areOptionsCompatible` to allow customization of the context policy based on options. * Changed default context policy from SHARED to EXCLUSIVE, i.e. there is one exclusive language instance per polyglot or inner context by default. This can be configured by the language @@ -920,7 +920,7 @@ using the [context policy](http://www.graalvm.org/truffle/javadoc/com/oracle/tru * Added expression-stepping into debugger APIs. To support debugging of both statements and expressions, following changes were made: * Added [SourceElement](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/SourceElement.html) enum to provide a list of source syntax elements known to the debugger. * Added [StepConfig](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/StepConfig.html) class to represent a debugger step configuration. - * Added [Debugger.startSession()](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#startSession-com.oracle.truffle.api.debug.SuspendedCallback-com.oracle.truffle.api.debug.SourceElement...-) accepting a list of source elments to enable stepping on them. + * Added [Debugger.startSession()](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#startSession-com.oracle.truffle.api.debug.SuspendedCallback-com.oracle.truffle.api.debug.SourceElement...-) accepting a list of source elements to enable stepping on them. * Added [Breakpoint.Builder.sourceElements](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Breakpoint.Builder.html#sourceElements-com.oracle.truffle.api.debug.SourceElement...-) to specify which source elements will the breakpoint adhere to. * Added [SuspendedEvent.getInputValues](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/SuspendedEvent.html#getInputValues--) to get possible input values of the current source element. * Removed deprecated methods on [SuspendedEvent](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/SuspendedEvent.html). @@ -933,7 +933,7 @@ using the [context policy](http://www.graalvm.org/truffle/javadoc/com/oracle/tru * The [Assumption](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/Assumption.html) interface has an additional override for the `invalidate` method to provide a message for debugging purposes. * Deprecated `KeyInfo.Builder`. Use bitwise constants in the KeyInfo class instead. Introduced new flag KeyInfo.INSERTABLE to indicate that a key can be inserted at a particular location, but it does not yet exist. * Deprecated `TruffleLanguage#getLanguageGlobal`, implement [top scopes](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/instrumentation/TruffleInstrument.Env.html#findTopScopes-java.lang.String-) instead. -* Deprecated `TruffleLanguage#findExportedSymbol`, use the [polyglot bindings](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/TruffleLanguage.Env.html#getPolyglotBindings--) TruffleLanguage.Env for exporting symbols into the polyglot scope explicitely. The polyglot scope no longer supports implicit exports, they should be exposed using [top scopes](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/instrumentation/TruffleInstrument.Env.html#findTopScopes-java.lang.String-) instead. +* Deprecated `TruffleLanguage#findExportedSymbol`, use the [polyglot bindings](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/TruffleLanguage.Env.html#getPolyglotBindings--) TruffleLanguage.Env for exporting symbols into the polyglot scope explicitly. The polyglot scope no longer supports implicit exports, they should be exposed using [top scopes](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/instrumentation/TruffleInstrument.Env.html#findTopScopes-java.lang.String-) instead. * Remove deprecated `TruffleInstrument#describeOptions` and TruffleLanguage#describeOptions * Remove deprecated `TruffleLanguage.Env#lookupSymbol` without replacement. * Remove deprecated `TruffleLanguage.Env#importSymbols`, use the polyglot bindings instead. @@ -1015,7 +1015,7 @@ using the [context policy](http://www.graalvm.org/truffle/javadoc/com/oracle/tru * Added `JavaInterop.isJavaObject(Object)` method overload. * Deprecated helper methods in `JavaInterop`: `isNull`, `isArray`, `isBoxed`, `unbox`, `getKeyInfo`. [ForeignAccess](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/interop/ForeignAccess.html) already provides equivalent methods: `sendIsNull`, `sendIsArray`, `sendIsBoxed`, `sendUnbox`, `sendKeyInfo`, respectively. * Deprecated all String based API in Source and SourceSection and replaced it with CharSequence based APIs. Automated migration with Jackpot rules is available (run `mx jackpot --apply`). -* Added [Source.Builder.language](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/source/Source.Builder.html#language-java.lang.String-) and [Source.getLanguage](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/source/Source.html#getLanguage--) to be able to set/get source langauge in addition to MIME type. +* Added [Source.Builder.language](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/source/Source.Builder.html#language-java.lang.String-) and [Source.getLanguage](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/source/Source.html#getLanguage--) to be able to set/get source language in addition to MIME type. * Added the [inCompilationRoot](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/CompilerDirectives.html#inCompilationRoot--) compiler directive. * Deprecated TruffleBoundary#throwsControlFlowException and introduced TruffleBoundary#transferToInterpreterOnException. @@ -1047,7 +1047,7 @@ using the [context policy](http://www.graalvm.org/truffle/javadoc/com/oracle/tru * Added TruffleLanguage.Env.isHostLookupAllowed() to find out whether host lookup is generally allowed. * Added Node#notifyInserted(Node) to notify the instrumentation framework about changes in the AST after the first execution. * Added TruffleLanguage.Env.newContextBuilder() that allows guest languages to create inner language contexts/environments by returning TruffleContext instances. -* Added a concept of breakpoints shared accross sessions, associated with Debugger instance: [Debugger.install](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#install-com.oracle.truffle.api.debug.Breakpoint-), [Debugger.getBreakpoints](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#getBreakpoints--) and a possibility to listen on breakpoints changes: [Debugger.PROPERTY_BREAKPOINTS](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#PROPERTY_BREAKPOINTS), [Debugger.addPropertyChangeListener](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#addPropertyChangeListener-java.beans.PropertyChangeListener-) and [Debugger.removePropertyChangeListener](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#removePropertyChangeListener-java.beans.PropertyChangeListener-). [Breakpoint.isModifiable](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Breakpoint.html#isModifiable--) added to be able to distinguish the shared read-only copy of installed Breakpoints. +* Added a concept of breakpoints shared across sessions, associated with Debugger instance: [Debugger.install](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#install-com.oracle.truffle.api.debug.Breakpoint-), [Debugger.getBreakpoints](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#getBreakpoints--) and a possibility to listen on breakpoints changes: [Debugger.PROPERTY_BREAKPOINTS](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#PROPERTY_BREAKPOINTS), [Debugger.addPropertyChangeListener](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#addPropertyChangeListener-java.beans.PropertyChangeListener-) and [Debugger.removePropertyChangeListener](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Debugger.html#removePropertyChangeListener-java.beans.PropertyChangeListener-). [Breakpoint.isModifiable](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/debug/Breakpoint.html#isModifiable--) added to be able to distinguish the shared read-only copy of installed Breakpoints. * [TruffleInstrument.Env.getLanguages()](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/instrumentation/TruffleInstrument.Env.html#getLanguages--) returns languages by their IDs instead of MIME types when the new polyglot API is used. * Deprecated [ExactMath.addExact(int, int)](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/ExactMath.html#addExact-int-int-), [ExactMath.addExact(long, long)](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/ExactMath.html#addExact-long-long-), [ExactMath.subtractExact(int, int)](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/ExactMath.html#subtractExact-int-int-), [ExactMath.subtractExact(long, long)](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/ExactMath.html#subtractExact-long-long-), [ExactMath.multiplyExact(int, int)](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/ExactMath.html#multiplyExact-int-int-), [ExactMath.multiplyExact(long, long)](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/ExactMath.html#multiplyExact-long-long-). Users can replace these with java.lang.Math utilities of same method names. @@ -1225,7 +1225,7 @@ supports [post initialization callback](http://www.graalvm.org/truffle/javadoc/c ## Version 0.16 * [Layout](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/object/dsl/Layout.html) now accepts an alternative way to construct an object with the `build` method instead of `create`. -* [TruffleTCK](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/tck/TruffleTCK.html) tests simple operation on foreign objects. For example, a simple WRITE accesss, a HAS_SIZE access, or an IS_NULL access. It also tests the message resolution of Truffle language objects, which enables using them in other languages. +* [TruffleTCK](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/tck/TruffleTCK.html) tests simple operation on foreign objects. For example, a simple WRITE access, a HAS_SIZE access, or an IS_NULL access. It also tests the message resolution of Truffle language objects, which enables using them in other languages. ## Version 0.15 1-Jul-2016 @@ -1388,7 +1388,7 @@ over the set of engines that share the code. ### Truffle * Change API for stack walking to a visitor: `TruffleRuntime#iterateFrames` replaces `TruffleRuntime#getStackTrace` * New flag `-G:+TraceTruffleCompilationCallTree` to print the tree of inlined calls before compilation. -* `truffle.jar`: strip out build-time only dependency into a seperated JAR file (`truffle-dsl-processor.jar`) +* `truffle.jar`: strip out build-time only dependency into a separated JAR file (`truffle-dsl-processor.jar`) * New flag `-G:+TraceTruffleCompilationAST` to print the AST before compilation. * New experimental `TypedObject` interface added. * Added `isVisited` method for `BranchProfile`. diff --git a/truffle/docs/DSLNodeObjectInlining.md b/truffle/docs/DSLNodeObjectInlining.md index 5eda1b30968e..1af2a1f8e4f8 100644 --- a/truffle/docs/DSLNodeObjectInlining.md +++ b/truffle/docs/DSLNodeObjectInlining.md @@ -381,7 +381,7 @@ public abstract static class AddAbsNode extends Node { _Cached Nodes with Multiple Instances_ For nodes with specializations that may have multiple instances a `@Bind("this") Node node` parameter must be used to access the inline target node. -This is simliar to the `SumArrayNode` node in the advanced usage example. +This is similar to the `SumArrayNode` node in the advanced usage example. ```java @ImportStatic(AbstractArray.class) diff --git a/truffle/docs/Exit.md b/truffle/docs/Exit.md index 7f0e24e0e3ea..d64845105272 100644 --- a/truffle/docs/Exit.md +++ b/truffle/docs/Exit.md @@ -48,7 +48,7 @@ The natural exit occurs during a normal context close triggered by `Context.clos * Guest code runs normally during exit notifications. 3. All initialized languages are finalized. - * `TruffleLanguage.finalizeContext(C)` is called for all initalized languages. + * `TruffleLanguage.finalizeContext(C)` is called for all initialized languages. * Guest code runs normally during finalization. 4. All languages are disposed. @@ -81,7 +81,7 @@ a special `ThreadDeath` cancel exception depending on whether the hard exit or t and the `PolyglotException` thrown to the host has `PolyglotException.isCancelled() == true` instead of `PolyglotException.isExit() == true`. 4. All initialized languages are finalized. - * `TruffleLanguage.finalizeContext(C)` is called for all initalized languages. + * `TruffleLanguage.finalizeContext(C)` is called for all initialized languages. * Running any guest code in `TruffleLanguage.finalizeContext(C)` will throw the special `ThreadDeath` exit exception from the first Truffle safepoint. * Languages should skip any finalization that would require running guest code. A language can find out if it can run guest code in `TruffleLanguage.finalizeContext(C)` by checking if `TruffleLanguage.exitContext(C,ExitMode,int)` was previously called with ExitMode.NATURAL, or by checking that `TruffleContext.isClosed()` returns `false`. diff --git a/truffle/docs/Languages.md b/truffle/docs/Languages.md index 3d6d7199474f..798c45b2612a 100644 --- a/truffle/docs/Languages.md +++ b/truffle/docs/Languages.md @@ -37,7 +37,7 @@ The following language implementations exist already (in alphabetical order): * [DynSem](https://github.com/metaborg/dynsem), a DSL for declarative specification of dynamic semantics of languages. * [Heap Language](https://github.com/jaroslavtulach/heapdump), a tutorial showing the embedding of Truffle languages via interoperability. * [hextruffe](https://bitbucket.org/hexafraction/truffles), an implementation of Hex. -* [islisp-truffle](https://github.com/arvyy/islisp-truffle), an implemention of the ISLISP 2007 standard. +* [islisp-truffle](https://github.com/arvyy/islisp-truffle), an implementation of the ISLISP 2007 standard. * [LuaTruffle](https://github.com/lucasallan/LuaTruffle), an implementation of the Lua language. * [Mozart-Graal](https://github.com/eregon/mozart-graal), an implementation of the Oz programming language. * [Mumbler](https://github.com/cesquivias/mumbler), an experimental Lisp programming language. diff --git a/truffle/docs/NFI.md b/truffle/docs/NFI.md index c106c2fe0eb3..e501e6c46f0c 100644 --- a/truffle/docs/NFI.md +++ b/truffle/docs/NFI.md @@ -43,7 +43,7 @@ function = signature.bind(symbol) # bind the symbol to the puts function.call # => 12373 # call the function ``` -## Loading libaries +## Loading libraries To load a library, a script written in the '`nfi`' language DSL is evaluated. It returns an object that represents the loaded library. @@ -301,7 +301,7 @@ The `STRING` values passed from native functions to managed code behave like `PO The user is responsible for the ownership of the pointer and it might be necessary to `free` the return value, depending on the semantics of the called native function. After freeing the returned pointer, the returned polyglot string is invalid and reading it results in undefined behavior. In that sense, the returned polyglot string is not a safe object, similar to a raw pointer. -It is recommented that the user of the NFI copies the returned string before passing it along to untrusted managed code. +It is recommended that the user of the NFI copies the returned string before passing it along to untrusted managed code. ### `OBJECT` diff --git a/truffle/docs/Optimizing.md b/truffle/docs/Optimizing.md index 17238899b938..b2ffe4de8ab9 100644 --- a/truffle/docs/Optimizing.md +++ b/truffle/docs/Optimizing.md @@ -48,7 +48,7 @@ The `--engine.TraceCompilation` command prints a line each time a method is comp Here is a quick overview of the information provided in these logs: - `id` - Unique identifier of the call target. -- `Tier` - For which compilation tier was the targed scheduled. +- `Tier` - For which compilation tier was the target scheduled. - `Time` - How long did the compilation last, with separation between the Truffle tier (mainly partial evaluation) and the Graal Tiers. - `AST` - The targets non-trivial node count. - `Inlined` - How many calls were inlined and how many remained calls after inlining. @@ -484,7 +484,7 @@ com.oracle.truffle.js.nodes.control.WhileNode$WhileDoRepeatingNode.executeRepeat The `--engine.SpecializationStatistics` command prints detailed histograms about Node classes and their usage of Truffle DSL specializations. See [`Specialization Statistics`](SpecializationHistogram.md) for a tutorial on how to use it. -Note: Specialization statistics require a recompilation of the interpeter. +Note: Specialization statistics require a recompilation of the interpreter. ```shell ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/truffle/docs/Options.md b/truffle/docs/Options.md index 8146af85f55f..8a25fe8911c1 100644 --- a/truffle/docs/Options.md +++ b/truffle/docs/Options.md @@ -140,7 +140,7 @@ These are internal options for debugging language implementations and tools. - `--engine.CompileOnly=,,...` : Restrict compilation to ','-separated list of includes (or excludes prefixed with '~'). No restriction by default. - `--engine.DynamicCompilationThresholds=true|false` : Reduce or increase the compilation threshold depending on the size of the compilation queue (default: true). - `--engine.DynamicCompilationThresholdsMaxNormalLoad=[1, inf)` : The desired maximum compilation queue load. When the load rises above this value, the compilation thresholds are increased. The load is scaled by the number of compiler threads. (default: 10) -- `--engine.DynamicCompilationThresholdsMinNormalLoad=[1, inf)` : The desired minimum compilation queue load. When the load falls bellow this value, the compilation thresholds are decreased. The load is scaled by the number of compiler threads (default: 10). +- `--engine.DynamicCompilationThresholdsMinNormalLoad=[1, inf)` : The desired minimum compilation queue load. When the load falls below this value, the compilation thresholds are decreased. The load is scaled by the number of compiler threads (default: 10). - `--engine.DynamicCompilationThresholdsMinScale=[0.0, inf)` : The minimal scale the compilation thresholds can be reduced to (default: 0.1). - `--engine.OSRCompilationThreshold=[1, inf)` : Number of loop iterations until on-stack-replacement compilation is triggered (default 100352). - `--engine.OSRMaxCompilationReAttempts=[0, inf)` : Number of compilation re-attempts before bailing out of OSR compilation for a given method (default 30). This number is an approximation of the acceptable number of deopts. diff --git a/truffle/docs/Profiling.md b/truffle/docs/Profiling.md index 70c858043905..d28a0cf6a622 100644 --- a/truffle/docs/Profiling.md +++ b/truffle/docs/Profiling.md @@ -31,7 +31,7 @@ See `language-launcher --help:tools` for more `--cpusampler` options. The CPU sampler does not show information about time spent in compiled code. This was, at least in part, motivated by the introduction of multi-tier compilation where "compiled code" was not descriptive enough. Using the `--cpusampler.ShowTiers` option allows users to control whether they wish to see compilation data at all, as well as to specify exactly which compilation tiers should be considered in the report. -For example, adding `--cpusampler.ShowTiers=true` will show all the compilation tiers encountered during execution as shown bellow. +For example, adding `--cpusampler.ShowTiers=true` will show all the compilation tiers encountered during execution as shown below. ``` ----------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -54,7 +54,7 @@ Thread[main,5,main] ----------------------------------------------------------------------------------------------------------------------------------------------------------- ``` -Alternatively `--cpusampler.ShowTiers=0,2` will only show interpreted time and time spent in tier two compiled code, as shown bellow. +Alternatively `--cpusampler.ShowTiers=0,2` will only show interpreted time and time spent in tier two compiled code, as shown below. ``` ----------------------------------------------------------------------------------------------------------------------------------------- diff --git a/truffle/docs/Safepoints.md b/truffle/docs/Safepoints.md index 31e8230f32f9..3ae913f635d3 100644 --- a/truffle/docs/Safepoints.md +++ b/truffle/docs/Safepoints.md @@ -81,7 +81,7 @@ Currently the action will be performed on the next safepoint location when the n There are several debug options available: -### Excercise safepoints with SafepointALot +### Exercise safepoints with SafepointALot SafepointALot is a tool to exercise every safepoint of an application and collect statistics. diff --git a/truffle/docs/splitting/ReportingPolymorphism.md b/truffle/docs/splitting/ReportingPolymorphism.md index c634bbacf4ed..6fba3ebeae95 100644 --- a/truffle/docs/splitting/ReportingPolymorphism.md +++ b/truffle/docs/splitting/ReportingPolymorphism.md @@ -66,8 +66,8 @@ In order to give the language developer more control over which nodes and which #### Reporting only on Megamorphic Cases As of version 20.3.0 a new annotation was added: [ReportPolymorphism.Megamorphic](http://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/dsl/ReportPolymorphism.Megamorphic.html). -This annotation can only be applied to specializations, as marks that specialization as megamorphic as it is intented to be used on expensive "generic" specializations that should be fixed by monomorphization. -The effect of adding this annotation is that, once the annotated specialisation becomes active, the node will report polymorphism to the runtime independant of the state of other specializations. +This annotation can only be applied to specializations, as marks that specialization as megamorphic as it is intended to be used on expensive "generic" specializations that should be fixed by monomorphization. +The effect of adding this annotation is that, once the annotated specialisation becomes active, the node will report polymorphism to the runtime independent of the state of other specializations. This annotation can be used separately from `@ReportPolymorphism`, i.e., a node does *not* need to be annotated with `@ReportPolymorphism` for the megamorphic annotation to work. If both annotations are used, then both polymorphic and megamorphic activations will be reported as polymorphism. diff --git a/visualizer/Modules.md b/visualizer/Modules.md index 136802160f11..f740f94ab4a6 100644 --- a/visualizer/Modules.md +++ b/visualizer/Modules.md @@ -19,7 +19,7 @@ to enrich the basic functionality. IGV modules depend on each other. The API separation is not strict and compatibility is not strictly maintained as so far the project has no external contributors except the IGV team; however code is separated to API / implementation as allocated development time permits and it can be formalized by splitting APIs into -separate modules (if multiple implementations exist, or the set of implementation dependencies is almost distict +separate modules (if multiple implementations exist, or the set of implementation dependencies is almost distinct from the APIs) or refactoring into public packages. The following picture outlines conceptual dependencies between IGV modules and selected API interfaces exported @@ -36,8 +36,8 @@ of implementation details): ![NetBeans Platform Dependencies](doc/Platform-Dependencies.jpg) ## Customizations -Resources, pictures, embedded files are replaced / overriden so the graphics and content appropriate for IGV and/or Oracle -appear to the user. The `branding/` directory contains such overriden resources. The `igv` directory contains launcher +Resources, pictures, embedded files are replaced / overridden so the graphics and content appropriate for IGV and/or Oracle +appear to the user. The `branding/` directory contains such overridden resources. The `igv` directory contains launcher configuration and the launcher script(s) themselves. Resources stored in the **virtual configuration filesystem** provided by individual modules is customized in a special @@ -91,7 +91,7 @@ which copy BGV data and add positional and e.g. color for presenting the data. | Port | Input/OutputSlot | ### HierarchicalLayout -The layouting algorithm implementation. The algortithm takes **Diagram** as an input, and computes positions of its constituents. +The layouting algorithm implementation. The algorithm takes **Diagram** as an input, and computes positions of its constituents. Multiple layouting algorithms may be supported in theory, but now **View** module hardcodes usage of clustered / non-clustered algorithm for all graphs. @@ -173,7 +173,7 @@ separated into API/SPI/UI submodules. ### View This is the core module that manages the graph view. It uses **HierarchicalLayout** to compute layout, and **NetBeans Visual Library** to provide drawing surface. For performance reasons only part of Diagram figures are converted to Visual Library Widgets - they -are heavyweight to caputre user gestures and provide drawing capabilities, so only the visible region plus some side gap is converted; +are heavyweight to capture user gestures and provide drawing capabilities, so only the visible region plus some side gap is converted; additional widgets are created lazily as the user slides the viewport. The View module also implements the process of converting data (InputGraph) into view model (Diagram) and filter processing; the process is @@ -208,7 +208,7 @@ HTML4Java allows to specify layout in HTML, style with CSS and bing controls to ### VisualizerUI This module is a "customization layer" that disables unnecessary UI parts of included NetBeans plugins and/or NetBeans -platofrm itself. It also defines a layout for the application windows and default positions of docking containers in +platform itself. It also defines a layout for the application windows and default positions of docking containers in the layout. ### ViewerApi