package nvm
- Alphabetic
- Public
- All
Type Members
- abstract class AbstractScalaInstruction extends TokenHolder
- final class Activation extends api.Activation
- case class AnonymousCommand (procedure: Procedure, formals: Array[Let], lets: List[LetBinding], locals: Array[AnyRef]) extends AnonymousProcedure with api.AnonymousCommand with Product with Serializable
- sealed trait AnonymousProcedure extends AnyRef
- case class AnonymousReporter (body: Reporter, formals: Array[Let], lets: List[LetBinding], locals: Array[AnyRef]) extends AnonymousProcedure with api.AnonymousReporter with Product with Serializable
-
class
Argument
extends api.Argument
Passes arguments to extension primitives.
- class ArgumentTypeException extends RuntimePrimitiveException
- trait AssemblerAssistant extends AnyRef
- abstract class Command extends Instruction
- case class CompilerFlags (foldConstants: Boolean = true, useGenerator: Boolean = Version.useGenerator, useOptimizer: Boolean = Version.useOptimizer, optimizations: Seq[String] = Seq.empty[String]) extends Product with Serializable
- trait CompilerInterface extends AnyRef
- case class CompilerResults (proceduresMap: ListMap[String, Procedure], program: Program) extends Product with Serializable
- class ConcurrentJob extends Job
- final class Context extends api.Context
- trait CustomAssembled extends AnyRef
- trait CustomGenerated extends AnyRef
- class DefaultCompilerServices extends CompilerServices
- abstract class EngineException extends LogoException
- class ExclusiveJob extends Job
- class ExtensionContext extends api.Context
- trait ExtensionManager extends api.ExtensionManager
- trait FileManager extends AnyRef
- trait GeneratorInterface extends AnyRef
- class HaltException extends LogoException
- class ImportHandler extends LiteralImportHandler
- abstract class Instruction extends AbstractScalaInstruction
- abstract class Job extends AnyRef
- trait JobManagerInterface extends AnyRef
- trait JobManagerOwner extends AnyRef
- trait LabInterface extends AnyRef
- case class LetBinding (let: Let, value: AnyRef) extends Product with Serializable
- class LiftedLambda extends Procedure
- case class MutableDouble (value: Double) extends Product with Serializable
- case class MutableInteger (value: Int) extends Product with Serializable
- case class MutableLong (value: Long) extends Product with Serializable
- class NetLogoStackOverflow extends EngineException
- class NonLocalExit extends RuntimeException
- class Procedure extends FrontEndProcedure
-
trait
Pure
extends AnyRef
Reporters should implement the Constant interface (which extends Pure) if they are truly constant, i.e., _constdouble, _conststring.
Reporters should implement the Constant interface (which extends Pure) if they are truly constant, i.e., _constdouble, _conststring.
They should implement the Pure interface if they are constant-preserving (i.e. the result is constant when all of their args are constant.)
The main point here is that this distinction allows us to compute some values at compile-time, rather than run-time.
Specifically, PureConstantOptimizer looks for reporters that are entirely pure. A reporter is "entirely pure" if it implements Pure, and all of it's children are "entirely pure". Entirely pure reporters get evaluated at compile time, and replaced with the appropriate constant reporter.
"Pure" reporters *must* not depend on "context", "workspace", "world", etc.
- trait Referencer extends Command
- abstract class Reporter extends Instruction
- class RuntimePrimitiveException extends EngineException with StackTraceBuilt
- trait StackTraceBuilt extends AnyRef
- abstract class Thunk [+T] extends AnyRef
- abstract class Tracer extends AnyRef
- trait Workspace extends api.Workspace with ImporterUser with JobManagerOwner with CompilerServices with RandomServices
- class WrappedExtensionException extends EngineException with StackTraceBuilt
- class WrappedLogoException extends EngineException with StackTraceBuilt
Value Members
- object AbstractScalaInstruction
- object AnonymousProcedure
- object ArgumentTypeException extends Serializable
- object EngineException extends Serializable
- object LabInterface
- object Procedure
-
object
StackTraceBuilder
A stack trace is displayed to the user when an error occurs in running code.
A stack trace is displayed to the user when an error occurs in running code. Example:
division by zero error while observer running / called by plot 'plot 1' setup code called by RESET-TICKS called by procedure SETUP called by Command Center
Entries in stack traces can come from different places.
In the example, - "/" is the individual primitive in which the error occurred - "plot 'plot 1' setup code" is an anonymous procedure in a plot - "RESET-TICKS" is not a procedure, but a command that can trigger the execution of procedures (see also tick, setup-plots, update-plots) - "SETUP" is an ordinary procedure - "Command Center" is the display name of the dummy top level procedure wrapped around the user's code.