annotate truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/package-info.java @ 22501:a63bda98cfdb

Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
author Christian Humer <christian.humer@oracle.com>
date Wed, 16 Dec 2015 16:38:13 +0100
parents 2c65e6da65ea
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22056
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
1 /*
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
4 *
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation. Oracle designates this
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
8 * particular file as subject to the "Classpath" exception as provided
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
9 * by Oracle in the LICENSE file that accompanied this code.
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
10 *
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
11 * This code is distributed in the hope that it will be useful, but WITHOUT
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
14 * version 2 for more details (a copy is included in the LICENSE file that
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
15 * accompanied this code).
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
16 *
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License version
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
18 * 2 along with this work; if not, write to the Free Software Foundation,
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
20 *
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
22 * or visit www.oracle.com if you need additional information or have any
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
23 * questions.
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
24 */
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
25
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
26 /*
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
27 @ApiInfo(
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
28 group="To Review"
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
29 )
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
30 */
22501
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
31 /**
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
32 * Various utility classes that aim to make the development of TruffleLanguage guest
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
33 * languages easier.
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
34 *
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
35 * <p>
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
36 * We try to capture common language patterns in this package. Here is an overview of patterns that
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
37 * we have captured so far:
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
38 * <ul>
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
39 * <li>{@link com.oracle.truffle.api.utilities.AssumedValue} speculates on global values to remain
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
40 * unchanged.</li>
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
41 * <li>{@link com.oracle.truffle.api.utilities.CyclicAssumption} speculates on assumptions that
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
42 * might invalidate more often but are assumed to stabilize over time.</li>
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
43 * <li>{@link com.oracle.truffle.api.utilities.NeverValidAssumption} utility for assumptions that
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
44 * are always invalidated</li>
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
45 * <li>{@link com.oracle.truffle.api.utilities.UnionAssumption} utility for the union of two
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
46 * assumptions</li>
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
47 * </ul>
a63bda98cfdb Extract profiles into separate package. Add isProfilingEnabled in TruffleRuntime to disable profiling in the default runtime; Add low overhead profiles for primitives; Add LoopConditionProfile; Profile footprint/threadsafety improvements; Make toString implementations more consistent; Greatly enhanced javadoc documentation for profiles; Deprecate old profiles
Christian Humer <christian.humer@oracle.com>
parents: 22056
diff changeset
48 * </p>
22056
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
49 */
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
50 package com.oracle.truffle.api.utilities;
2c65e6da65ea Providing information about API packages
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
51