Skip navigation links
Truffle Tutorial gives you the best introduction to to Truffle: the Open Source framework for implementing programming languages with very high performance, Java embedding, language interoperation, debugging, and general tooling support.

See: Description

To Review 
Package Description
com.oracle.truffle.api
Do you want to implement your own Truffle based language? In such case start here.
com.oracle.truffle.api.dsl
com.oracle.truffle.api.frame
Representation of a stack frame.
com.oracle.truffle.api.nodes
Abstract syntax tree nodes are the basic building block for your TruffleLanguage.
com.oracle.truffle.api.object
Dynamic object storage model.
com.oracle.truffle.api.utilities
Various utility classes that aim to make the development of TruffleLanguage guest languages easier.
Tutorial 
Package Description
com.oracle.truffle.tutorial
The Truffle Tutorial
com.oracle.truffle.tutorial.background
Truffle Tutorial: Background
com.oracle.truffle.tutorial.embedding
Truffle Tutorial: Embedding Truffle Languages in Java
com.oracle.truffle.tutorial.graal
Truffle Tutorial: The Graal Compiler
com.oracle.truffle.tutorial.newlanguage
Truffle Tutorial: Implementing a New Language with Truffle
com.oracle.truffle.tutorial.sulong
Truffle Tutorial: Implementing an LLVM-based Language with Sulong
Stable 
Package Description
com.oracle.truffle.api.debug
The debug package contains a debugger API that can be used to install breakpoints, step through and control the execution of Truffle guest language applications.
com.oracle.truffle.api.instrumentation
The instrumentation API provides a way to introspect and inject behavior into interpreters written using the Truffle framework.
com.oracle.truffle.api.interop
This package provides inter-operability between different Truffle languages.
com.oracle.truffle.api.interop.java
Helper methods to simplify co-operation of Java and Truffle objects.
com.oracle.truffle.api.object.dsl
Domain specific language for using the Truffle dynamic object storage model to create classic class hierarchies.
com.oracle.truffle.api.profiles
A profile is a Truffle utility class that uses the Truffle compiler directives to guard for and/or forward runtime information to the compiler.
com.oracle.truffle.api.source
Represents a source file.
com.oracle.truffle.api.vm
The execution engine for all Truffle-implemented languages.
Test Compatibility Kit 
Package Description
com.oracle.truffle.tck
Include implementation of TruffleTCK in your test suite to verify your language implementation is compliant.
Internal 
Package Description
com.oracle.truffle.object
Ignore: Internal API.

Truffle Tutorial gives you the best introduction to to Truffle: the Open Source framework for implementing programming languages with very high performance, Java embedding, language interoperation, debugging, and general tooling support.

Keeping Compatibility

The Truffle API values work of its adopters and as such it is developed with compatibility in mind. Methods and features are not removed and renamed randomly, without a notice and there is a binary compatibility testing framework in place to verify that.

On the other hand the Truffle project is still young and needs a way to refine and change previously taken decisions. To balance the need between compatibility and give us a way to remove things from the API we following these rules:

By deprecating parts of API while keeping them functional we are giving users of the Truffle API time to adjust to required changes and (under the assumption they pay attention to warnings in the code base) easily identify and migrate to more modern API alternatives.

Skip navigation links