scalan
package scalan
- Alphabetic
- Public
- All
Type Members
-
abstract
class
Base extends AnyRef
The Base trait houses common AST nodes.
The Base trait houses common AST nodes. It also manages a list of encountered definitions which allows for common sub-expression elimination (CSE).
- trait DefRewriting extends AnyRef
-
class
DelayInvokeException extends Exception
Can be thrown in staged method body to prevent body unfolding.
Can be thrown in staged method body to prevent body unfolding. When this exception is thrown, the caller can catch it and reify this invocation as MethodCall graph node.
-
trait
Entities extends TypeDescs
A slice in the Scalan cake with base classes for various descriptors.
- trait Library extends Scalan with WrappersModule with CollsModule
- trait MethodCalls extends Base
-
case class
ModuleInfo(packageName: String, moduleName: String, extension: String = ".scalan") extends Product with Serializable
Information about generated Special library module.
Information about generated Special library module. Instances are created in generated code.
- See also
*Impl.scala files
- trait Modules extends Base
-
final
class
MutableLazy[A] extends AnyRef
Non-thread safe (but efficient on single thread) immutable lazy value with reset.
Non-thread safe (but efficient on single thread) immutable lazy value with reset. The
block
may execute potentially many times, but only once before each reset. -
class
Scalan extends TypeDescs with MethodCalls with Tuples with NumericOps with UnBinOps with LogicalOps with OrderingOps with Equal with UniversalOps with Functions with IfThenElse with Transforming with Thunks with Entities with Modules with DefRewriting
Aggregate cake with all inter-dependent modules assembled together.
Aggregate cake with all inter-dependent modules assembled together. Each instance of this class contains independent IR context, thus many instances can be created simultaneously. However, the inner types declared in the traits are path-dependant. This in particular means that ctx1.Ref[_] and ctx2.Ref[_] are different types. The typical usage is to create
val ctx = new Scalan
and then import inner declarations usingimport ctx._
. This way the declaration will be directly available as if they were global declarations. At the same time cake design pattern allow tooverride
many methods and values in classed derived fromScalan
, this is significant benefit over *everything is global* design. - abstract class TypeDescs extends Base
Value Members
-
object
GraphIRReflection
Registrations of reflection metadata for graph-ir module (see README.md).
Registrations of reflection metadata for graph-ir module (see README.md). For each class of this module that needs reflection metadata, we register a class entry with the necessary information. Only information that is needed at runtime is registered.
- object MutableLazy