The varjo Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The varjo Reference Manual

This is the varjo Reference Manual, generated automatically by Declt version 3.0 "Montgomery Scott" on Mon Dec 02 11:37:38 2019 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Varjo [BETA]

Varjo is a Lisp to GLSL compiler.

Varjo has no OpenGL dependency as is designed to be integrated into other projects, see CEPL for an example.

Vari is the dialect of lisp Varjo compiles. It aims to be as close to Common Lisp as possible, but naturally it is statically typed so there are differences.

Features

Subset of common lisp. Including:

Documentation

The user guide can be found in docs/user-guide.md

The reference documentation for the compiler can be found here

The reference documentation for the Vari language can be found here

Installing

Run (ql:quickload :varjo) at your REPL.

Cloning

Whist it is recommended to get Varjo from quicklisp, if you clone please note that master is not the stable branch. Please use release-quicklisp for the stable code that will be in the next Varjo release.

Name Origins

Updates

2018-04-05

2018-03-14

Lots landing this month, whilst my current test suite passes I'm still expecting some issues or regressions, if these hit you PLEASE let me know so I can avoid merging this to quicklisp before the regressions have been handled. Quick summary of changes are:

CL functions added listed below. Some of the predicates are basically pointless, but for completeness it's nice to have them

Also added the complex & ratio types. Complex support is limited right now and ratio basically useless. But we have a place to work from. Complex numbers are always single-float in vari.

2017-06-04

PACKAGES

There has been a huge refactoring of packages.

This is annoying but a neccessary step before I could start documenting the project. The original structure just appeared out of neccessity so I'm hoping this will last a little longer. The most important changes are:

Bugfixes & Enhancements

2017-05-16


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 varjo

Author

Chris Bagley (Baggers) <techsnuffle@gmail.com>

License

BSD 2 Clause

Description

Common Lisp -> GLSL Compiler

Dependencies
Source

varjo.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 varjo.asd

Location

varjo.asd

Systems

varjo (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 varjo/package.lisp

Parent

varjo (system)

Location

package.lisp

Packages

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 varjo/src/utils-v.lisp

Dependency

package.lisp (file)

Parent

varjo (system)

Location

src/utils-v.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 varjo/src/defcondition.lisp

Dependency

src/utils-v.lisp (file)

Parent

varjo (system)

Location

src/defcondition.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 varjo/src/varjo.internals/generics.lisp

Dependency

src/defcondition.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/generics.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 varjo/src/varjo.internals/globals.lisp

Dependency

src/varjo.internals/generics.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/globals.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 varjo/src/varjo.internals/names.lisp

Dependency

src/varjo.internals/globals.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/names.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.8 varjo/src/varjo.internals/internal-types.lisp

Dependency

src/varjo.internals/names.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/internal-types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.9 varjo/src/varjo.internals/glsl-generation/line-and-chunk.lisp

Dependency

src/varjo.internals/internal-types.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/glsl-generation/line-and-chunk.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.10 varjo/src/varjo.internals/qualifiers.lisp

Dependency

src/varjo.internals/glsl-generation/line-and-chunk.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/qualifiers.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.11 varjo/src/varjo.internals/types/def-v-core-type.lisp

Dependency

src/varjo.internals/qualifiers.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/types/def-v-core-type.lisp

Internal Definitions

define-v-type-class (macro)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.12 varjo/src/varjo.internals/types/type-spec.lisp

Dependency

src/varjo.internals/types/def-v-core-type.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/types/type-spec.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.13 varjo/src/varjo.internals/types/early-types.lisp

Dependency

src/varjo.internals/types/type-spec.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/types/early-types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.14 varjo/src/varjo.internals/flow.lisp

Dependency

src/varjo.internals/types/early-types.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/flow.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.15 varjo/src/varjo.internals/types/types.lisp

Dependency

src/varjo.internals/flow.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/types/types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.16 varjo/src/varjo.internals/return-set.lisp

Dependency

src/varjo.internals/types/types.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/return-set.lisp

Exported Definitions
Internal Definitions

merge-return-sets (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.17 varjo/src/varjo.internals/emit-set.lisp

Dependency

src/varjo.internals/return-set.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/emit-set.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.18 varjo/src/varjo.internals/value-metadata.lisp

Dependency

src/varjo.internals/emit-set.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/value-metadata.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.19 varjo/src/varjo.internals/errors.lisp

Dependency

src/varjo.internals/value-metadata.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/errors.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.20 varjo/src/varjo.internals/function-obj.lisp

Dependency

src/varjo.internals/errors.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/function-obj.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.21 varjo/src/varjo.internals/deftype.lisp

Dependency

src/varjo.internals/function-obj.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/deftype.lisp

Exported Definitions
Internal Definitions

define-shadow-type-functions (macro)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.22 varjo/src/varjo.internals/variables.lisp

Dependency

src/varjo.internals/deftype.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/variables.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.23 varjo/src/varjo.internals/code-object.lisp

Dependency

src/varjo.internals/variables.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/code-object.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.24 varjo/src/varjo.internals/stemcells.lisp

Dependency

src/varjo.internals/code-object.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/stemcells.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.25 varjo/src/vari.types/types.lisp

Dependency

src/varjo.internals/stemcells.lisp (file)

Parent

varjo (system)

Location

src/vari.types/types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.26 varjo/src/vari.types/other-types.lisp

Dependency

src/vari.types/types.lisp (file)

Parent

varjo (system)

Location

src/vari.types/other-types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.27 varjo/src/varjo.internals/environment.lisp

Dependency

src/vari.types/other-types.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/environment.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.28 varjo/src/varjo.internals/external-functions.lisp

Dependency

src/varjo.internals/environment.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/external-functions.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.29 varjo/src/varjo.internals/structs.lisp

Dependency

src/varjo.internals/external-functions.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/structs.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.30 varjo/src/varjo.internals/glsl-generation/string-generation.lisp

Dependency

src/varjo.internals/structs.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/glsl-generation/string-generation.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.31 varjo/src/varjo.internals/casting.lisp

Dependency

src/varjo.internals/glsl-generation/string-generation.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/casting.lisp

Exported Definitions

cast-for-array-literal (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.32 varjo/src/varjo.internals/stages.lisp

Dependency

src/varjo.internals/casting.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/stages.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.33 varjo/src/varjo.internals/compile-result.lisp

Dependency

src/varjo.internals/stages.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/compile-result.lisp

Exported Definitions

glsl-code (method)

Internal Definitions

clone-compile-result (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.34 varjo/src/varjo.internals/compile-literal.lisp

Dependency

src/varjo.internals/compile-result.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/compile-literal.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.35 varjo/src/varjo.internals/compile-vars.lisp

Dependency

src/varjo.internals/compile-literal.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/compile-vars.lisp

Exported Definitions

with-constant-inject-hook (macro)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.36 varjo/src/varjo.internals/compile-special.lisp

Dependency

src/varjo.internals/compile-vars.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/compile-special.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.37 varjo/src/varjo.internals/make-function.lisp

Dependency

src/varjo.internals/compile-special.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/make-function.lisp

Exported Definitions

build-function (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.38 varjo/src/varjo.internals/functions.lisp

Dependency

src/varjo.internals/make-function.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/functions.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.39 varjo/src/varjo.internals/traits.lisp

Dependency

src/varjo.internals/functions.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/traits.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.40 varjo/src/varjo.internals/macros.lisp

Dependency

src/varjo.internals/traits.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/macros.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.41 varjo/src/varjo.internals/compile-funcall.lisp

Dependency

src/varjo.internals/macros.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/compile-funcall.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.42 varjo/src/varjo.internals/compile-form.lisp

Dependency

src/varjo.internals/compile-funcall.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/compile-form.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.43 varjo/src/varjo.internals/declaim.lisp

Dependency

src/varjo.internals/compile-form.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/declaim.lisp

Exported Definitions

v-declaim (macro)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.44 varjo/src/vari.glsl/equality.lisp

Dependency

src/varjo.internals/declaim.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/equality.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.45 varjo/src/vari.glsl/matrix-constructors.lisp

Dependency

src/vari.glsl/equality.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/matrix-constructors.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.46 varjo/src/vari.glsl/scalar-constructors.lisp

Dependency

src/vari.glsl/matrix-constructors.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/scalar-constructors.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.47 varjo/src/vari.glsl/vector-constructors.lisp

Dependency

src/vari.glsl/scalar-constructors.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/vector-constructors.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.48 varjo/src/vari.glsl/parse-from-spec.lisp

Dependency

src/vari.glsl/vector-constructors.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/parse-from-spec.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.49 varjo/src/vari.glsl/variables-from-spec.lisp

Dependency

src/vari.glsl/parse-from-spec.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/variables-from-spec.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.50 varjo/src/vari.glsl/functions-from-spec.lisp

Dependency

src/vari.glsl/variables-from-spec.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/functions-from-spec.lisp

Internal Definitions

populate-functions (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.51 varjo/src/vari.glsl/built-in-types.lisp

Dependency

src/vari.glsl/functions-from-spec.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/built-in-types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.52 varjo/src/vari.glsl/special-operators/iteration.lisp

Dependency

src/vari.glsl/built-in-types.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/special-operators/iteration.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.53 varjo/src/vari.glsl/special-operators/switch.lisp

Dependency

src/vari.glsl/special-operators/iteration.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/special-operators/switch.lisp

Internal Definitions

valid-for-switch-statementp (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.54 varjo/src/vari.glsl/special-operators/discard.lisp

Dependency

src/vari.glsl/special-operators/switch.lisp (file)

Parent

varjo (system)

Location

src/vari.glsl/special-operators/discard.lisp

Internal Definitions

vs-discard (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.55 varjo/src/vari.cl/docs.lisp

Dependency

src/vari.glsl/special-operators/discard.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/docs.lisp

Exported Definitions

vari-describe (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.56 varjo/src/vari.cl/macros.lisp

Dependency

src/vari.cl/docs.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/macros.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.57 varjo/src/vari.cl/functions.lisp

Dependency

src/vari.cl/macros.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/functions.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.58 varjo/src/vari.cl/nary-operators.lisp

Dependency

src/vari.cl/functions.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/nary-operators.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.59 varjo/src/vari.cl/bitwise-operators.lisp

Dependency

src/vari.cl/nary-operators.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/bitwise-operators.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.60 varjo/src/vari.cl/special-operators/uint.lisp

Dependency

src/vari.cl/bitwise-operators.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/uint.lisp

Internal Definitions

vs-uint (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.61 varjo/src/vari.cl/special-operators/progn.lisp

Dependency

src/vari.cl/special-operators/uint.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/progn.lisp

Internal Definitions

vs-progn (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.62 varjo/src/vari.cl/special-operators/let.lisp

Dependency

src/vari.cl/special-operators/progn.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/let.lisp

Internal Definitions

vs-let (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.63 varjo/src/vari.cl/special-operators/assignment.lisp

Dependency

src/vari.cl/special-operators/let.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/assignment.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.64 varjo/src/vari.cl/special-operators/conditionals.lisp

Dependency

src/vari.cl/special-operators/assignment.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/conditionals.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.65 varjo/src/vari.cl/special-operators/case.lisp

Dependency

src/vari.cl/special-operators/conditionals.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/case.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.66 varjo/src/vari.cl/special-operators/and-or.lisp

Dependency

src/vari.cl/special-operators/case.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/and-or.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.67 varjo/src/vari.cl/special-operators/declarations.lisp

Dependency

src/vari.cl/special-operators/and-or.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/declarations.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.68 varjo/src/vari.cl/special-operators/values.lisp

Dependency

src/vari.cl/special-operators/declarations.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/values.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.69 varjo/src/vari.cl/special-operators/return.lisp

Dependency

src/vari.cl/special-operators/values.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/return.lisp

Internal Definitions

vs-return (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.70 varjo/src/vari.cl/special-operators/multiple-value-x.lisp

Dependency

src/vari.cl/special-operators/return.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/multiple-value-x.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.71 varjo/src/vari.cl/special-operators/local-functions.lisp

Dependency

src/vari.cl/special-operators/multiple-value-x.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/local-functions.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.72 varjo/src/vari.cl/special-operators/function.lisp

Dependency

src/vari.cl/special-operators/local-functions.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/function.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.73 varjo/src/vari.cl/special-operators/macros.lisp

Dependency

src/vari.cl/special-operators/function.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/macros.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.74 varjo/src/vari.cl/special-operators/swizzle.lisp

Dependency

src/vari.cl/special-operators/macros.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/swizzle.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.75 varjo/src/vari.cl/special-operators/inline-code.lisp

Dependency

src/vari.cl/special-operators/swizzle.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/inline-code.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.76 varjo/src/vari.cl/special-operators/compiler-debugging.lisp

Dependency

src/vari.cl/special-operators/inline-code.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/compiler-debugging.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.77 varjo/src/vari.cl/special-operators/make-array.lisp

Dependency

src/vari.cl/special-operators/compiler-debugging.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/make-array.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.78 varjo/src/vari.cl/special-operators/aref.lisp

Dependency

src/vari.cl/special-operators/make-array.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/aref.lisp

Internal Definitions

vs-aref (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.79 varjo/src/vari.cl/special-operators/emit.lisp

Dependency

src/vari.cl/special-operators/aref.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/emit.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.80 varjo/src/vari.cl/special-operators/slots.lisp

Dependency

src/vari.cl/special-operators/emit.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/slots.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.81 varjo/src/vari.cl/special-operators/typecase.lisp

Dependency

src/vari.cl/special-operators/slots.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/typecase.lisp

Internal Definitions

vs-typecase (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.82 varjo/src/vari.cl/special-operators/coerce.lisp

Dependency

src/vari.cl/special-operators/typecase.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/special-operators/coerce.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.83 varjo/src/vari.cl/complex.lisp

Dependency

src/vari.cl/special-operators/coerce.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/complex.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.84 varjo/src/vari.cl/ratio.lisp

Dependency

src/vari.cl/complex.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/ratio.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.85 varjo/src/vari.cl/misc.lisp

Dependency

src/vari.cl/ratio.lisp (file)

Parent

varjo (system)

Location

src/vari.cl/misc.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.86 varjo/src/varjo.internals/translate.lisp

Dependency

src/vari.cl/misc.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/translate.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.87 varjo/src/varjo.internals/glsl-stage.lisp

Dependency

src/varjo.internals/translate.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/glsl-stage.lisp

Exported Definitions

glsl-to-compile-result (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.88 varjo/src/varjo.internals/rolling-translate.lisp

Dependency

src/varjo.internals/glsl-stage.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/rolling-translate.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.89 varjo/src/varjo.internals/test-compile.lisp

Dependency

src/varjo.internals/rolling-translate.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/test-compile.lisp

Exported Definitions

test-translate-function-split-details (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.90 varjo/src/varjo.internals/front-end.lisp

Dependency

src/varjo.internals/test-compile.lisp (file)

Parent

varjo (system)

Location

src/varjo.internals/front-end.lisp

Exported Definitions

v-compile (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.91 varjo/src/varjo.api/environment.lisp

Dependency

src/varjo.internals/front-end.lisp (file)

Parent

varjo (system)

Location

src/varjo.api/environment.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.92 varjo/src/varjo.api/docs.lisp

Dependency

src/varjo.api/environment.lisp (file)

Parent

varjo (system)

Location

src/varjo.api/docs.lisp


Previous: , Up: Lisp files   [Contents][Index]

3.1.93 varjo/src/docs.lisp

Dependency

src/varjo.api/docs.lisp (file)

Parent

varjo (system)

Location

src/docs.lisp


Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 varjo

Source

package.lisp (file)

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

4.2 varjo-conditions

Source

package.lisp (file)

Use List
Used By List
Exported Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

4.3 vari

Source

package.lisp (file)

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

4.4 vari.glsl

Source

package.lisp (file)

Use List
Used By List
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

4.5 vari.cl

Source

package.lisp (file)

Use List
Used By List

vari

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

4.6 varjo.utils

Source

package.lisp (file)

Use List
Used By List
Exported Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

4.7 varjo.api

Source

package.lisp (file)

Use List
Used By List

varjo

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

4.8 %varjo.usings

Source

package.lisp (file)

Used By List

Next: , Previous: , Up: Packages   [Contents][Index]

4.9 varjo.internals

Source

package.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

4.10 vari.types

Source

package.lisp (file)

Use List
Used By List
Exported Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

Special Variable: *default-version*

‘*default-version*‘ is a variable that holds the version of GLSL that will be used for a compile task if a version is not specified in the context

Package

varjo.internals

Source

src/varjo.internals/globals.lisp (file)

Special Variable: *emit-var-name-base*
Package

varjo.internals

Source

src/varjo.internals/globals.lisp (file)

Special Variable: *in-qualifier*
Package

varjo.internals

Source

src/varjo.internals/qualifiers.lisp (file)

Special Variable: *out-qualifier*
Package

varjo.internals

Source

src/varjo.internals/qualifiers.lisp (file)

Special Variable: *return-var-name-base*
Package

varjo.internals

Source

src/varjo.internals/globals.lisp (file)

Special Variable: *stage-names*

‘*stage-names*‘ is a variable that holds the list of keyword stage names that Varjo recognises

Package

varjo.internals

Source

src/varjo.internals/globals.lisp (file)

Special Variable: *stage-type-names*

‘*stage-type-names*‘ is a variable that holds a list of type-names that map to the stages named in ‘*stage-names*‘

Package

varjo.internals

Source

src/varjo.internals/globals.lisp (file)

Special Variable: *supported-versions*

‘*supported-versions*‘ is a variable that holds the list of GLSL version Varjo ostensibly supports.

Note: That ’ostensibly’ is there as I’m very sure that the lower levels of GLSL varjo is currently doing a very poor job. If you have the time please file issues that you find at https://github.com/cbaggers/varjo/issues

Package

varjo.internals

Source

src/varjo.internals/globals.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Macros

Macro: %peek THING
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: a-add NAME VALUE LIST-PLACE
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: a-remove-all NAME LIST-PLACE
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: a-set NAME VALUE LIST-PLACE
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: case-member MEMBER-FORM (&key TEST) &body CASES
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: case= FORM &body CASES
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: dbind LAMBDA-LIST EXPRESSION &body BODY
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: def-metadata-infer VARJO-TYPE-SPEC METADATA-KIND ENV-VAR &body BODY

‘def-metadata-infer‘ is the older syntax for ‘define-metadata-infer‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/value-metadata.lisp (file)

Macro: def-metadata-kind NAME (&key CONC-NAME BINDS-TO) &body SLOT-NAMES

‘def-metadata-kind‘ is the older syntax for ‘define-metadata-kind‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/value-metadata.lisp (file)

Macro: def-shadow-type-constructor SHADOW-TYPE FUNCTION-IDENTIFIER

‘def-shadow-type-constructor‘ is the older syntax for ‘define-shadow-type-constructor‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/deftype.lisp (file)

Macro: define-alternate-type-name CURRENT-TYPE-NAME ALTERNATE-TYPE-NAME

‘define-alternate-type-name‘ lets you define

Package

varjo.internals

Source

src/varjo.internals/types/early-types.lisp (file)

Macro: define-glsl-template-function NAME ARGS RETURN-SPEC TRANSFORM &key PURE

‘define-glsl-template-function‘ which lets you define a snippet of
glsl code as a function in Vari. Here is an example definition:

[0] ↓
(define-glsl-template-function my-func ((x :float)) ←[1]
:float ←[2]
"(1.0f / ~a)" ←[3]
:pure t) ←[4]

‘[0]‘ Here we are defining a function called ’my-func’

‘[1]‘ It takes 1 argument, called ’x’ which has the type ‘:float‘

‘[2]‘ It returns a single ‘:float‘ value

‘[3]‘ The string pattern is what will be injected into the final glsl. It behaves as though this pattern and the glsl for the arguments were passed to ‘format‘, e.g. ‘(format nil "(1.0f / ~a)" "2.3f") assuming the glsl of the argument passed to ‘x‘ was "2.3f".

The glsl for the arguments is passed to format in the order specified in ‘[1]‘

As it currently uses ‘format‘ it is legal to use other ‘directives‘ such as ‘~s‘ but it is not advisable as this will result in invalid glsl.

Package

varjo.internals

Source

src/varjo.internals/functions.lisp (file)

Macro: define-metadata-infer VARJO-TYPE-SPEC METADATA-KIND ENV-VAR &body BODY

‘define-metadata-infer‘ lets you define

Package

varjo.internals

Source

src/varjo.internals/value-metadata.lisp (file)

Macro: define-metadata-kind NAME (&key CONC-NAME BINDS-TO) &body SLOT-NAMES

‘define-metadata-kind‘ lets you define

Package

varjo.internals

Source

src/varjo.internals/value-metadata.lisp (file)

Macro: define-shadow-type-constructor SHADOW-TYPE FUNCTION-IDENTIFIER

‘define-shadow-type-constructor‘ lets you define

Package

varjo.internals

Source

src/varjo.internals/deftype.lisp (file)

Macro: define-vari-compiler-macro NAME LAMBDA-LIST &body BODY

‘define-vari-compiler-macro‘ lets you define a compiler-macro that works in Vari.

The parameters in the lambda-list must be defined in form ‘(,name ,type-spec)‘

The compiler macro will only expand for functions with an exactly matching name and lambda-list.

Vari’s compiler macros behave the same as regular Common Lisp compiler-macros with the exception that you can make queries against the environment to find data (such as type) from the arguments (See [here]() for details).

Due to having to compile the argument forms before being able to identify the compiler macro, any form returned from the compiler-macro (other than the value from ‘&whole‘ is going to result in recompilation. This make Vari’s compiler macros more ’expensive’ than Common Lisps in the general sense.

Package

varjo.internals

Source

src/varjo.internals/macros.lisp (file)

Macro: define-vari-function NAME ARGS &body BODY

‘define-vari-function‘ lets you define a function that can be used in
any Vari code compiled in the future.

that takes the following:

- a name as a symbol
- a ’vari function lambda-list’ (see [here]() for details)
- a body made of Vari code

Please note that, other than performing some basic validation on the arguments, this function does not attempt any validation on the body of the function. Doing so would require knowledge of the context in which it is used.

If you need to test that the function could be valid, refer to the ‘test-translate-function-split-details‘ & ‘add-external-function‘ functions.

Package

varjo.internals

Source

src/varjo.internals/functions.lisp (file)

Macro: define-vari-macro NAME LAMBDA-LIST &body BODY

‘define-vari-macro‘ lets you define a macro that can be used in any Vari code compiled in the future.

Vari’s macros behave the same as regular Common Lisp macros with the exception that you can make queries against the environment to find
data (such as type) from the arguments (See [here]() for details).

Package

varjo.internals

Source

src/varjo.internals/macros.lisp (file)

Macro: define-vari-struct NAME CONTEXT &body SLOTS

‘define-vari-struct‘ lets you define

Package

varjo.internals

Source

src/varjo.internals/structs.lisp (file)

Macro: define-vari-trait NAME (&rest TYPE-VARS) &body FUNC-SIGNATURES
Package

varjo.internals

Source

src/varjo.internals/traits.lisp (file)

Macro: define-vari-trait-implementation IMPL-TYPE-NAME (TRAIT-NAME &rest TRAIT-ARGS &key &allow-other-keys) &body IMPLEMENTATIONS &key &allow-other-keys
Package

varjo.internals

Source

src/varjo.internals/traits.lisp (file)

Macro: define-vari-type NAME ARGS TYPE-FORM &key VALID-METADATA-KINDS

‘define-vari-type‘ lets you define

Package

varjo.internals

Source

src/varjo.internals/deftype.lisp (file)

Macro: env-> (ENV-VAR ENV) &body COMPILING-FORMS

Kinda like varjo progn in that it accumulates the env and
returns the results of all the forms and the final env.
However it DOES NOT make a fresh environment to compile the forms in. It expects that each form returns a result and optionally an env

Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Macro: flow-id-scope &body BODY
Package

varjo.internals

Source

src/varjo.internals/flow.lisp (file)

Macro: glsl-chunk-splicing &body KEY-FORM-PAIRS
Package

varjo.internals

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp (file)

Macro: merge-multi-env-progn CODE-OBJS
Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Macro: merge-progn CODE-OBJS STARTING-ENV &optional FINAL-ENV
Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Macro: pipe-> ARGS &body STAGES

(pipe-> (1 2 3) #’a #’b #’c #’d)
Calls first function with args provided and uses result as arguments for next function. Uses multiple-value-call so you can use (values) to specify complex lambda-args.

Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: v-declaim &body DECLARATION-SPECIFIERS
Package

varjo.internals

Source

src/varjo.internals/declaim.lisp (file)

Macro: v-def-glsl-template-fun NAME ARGS TRANSFORM ARG-TYPES RETURN-SPEC &key V-PLACE-INDEX GLSL-NAME PURE

‘v-def-glsl-template-fun‘ is the older syntax for ‘define-glsl-template-function‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/functions.lisp (file)

Macro: v-define-compiler-macro NAME LAMBDA-LIST &body BODY

‘v-define-compiler-macro‘ is the older syntax for ‘define-vari-compiler-macro‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/macros.lisp (file)

Macro: v-defmacro NAME LAMBDA-LIST &body BODY

‘v-defmacro‘ is the older syntax for ‘define-vari-macro‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/macros.lisp (file)

Macro: v-defspecial NAME ARGS &body BODY
Package

varjo.internals

Source

src/varjo.internals/functions.lisp (file)

Macro: v-defstruct NAME CONTEXT &body SLOTS

‘v-defstruct‘ is the older syntax for ‘define-vari-struct‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/structs.lisp (file)

Macro: v-deftype NAME ARGS TYPE-FORM &key VALID-METADATA-KINDS

‘v-deftype‘ is the older syntax for ‘define-vari-type‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/deftype.lisp (file)

Macro: v-defun NAME ARGS &body BODY

‘v-defun‘ is the older syntax for ‘define-vari-function‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals

Source

src/varjo.internals/functions.lisp (file)

Macro: vbind VARS VALUE-FORM &body BODY
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: vlist VALUE-FORM
Package

varjo.utils

Source

src/utils-v.lisp (file)

Macro: with-constant-inject-hook FUNC &body BODY

When ‘translate‘ is called within the dynamic extern of the body of this form, if there is a use of a variable which is not in scope in the Vari code, but is ‘boundp‘ & constant in the Common Lisp environment then the user provided function will be called with the symbol naming the variable.
The user provided function must return a Vari type-spec or throw an error to inform the user of the issue.

Package

varjo.internals

Source

src/varjo.internals/compile-vars.lisp (file)

Macro: with-fresh-env-scope (NAME STARTING-ENV &key CONTEXT FUNCTION-SCOPE FORM-BINDINGS SYMBOL-BINDINGS MULTI-VAL-BASE MULTI-VAL-SAFE ALLOWED-OUTER-VARS) &body BODY
Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Macro: with-stemcell-infer-hook FUNC &body BODY

When ‘translate‘ is called within the dynamic extern of the body of this form, if there is a use of a variable which is not in scope in the Vari code, but is not constant in the Common Lisp environment then the user provided function will be called with the symbol naming the variable.
The user provided function can:
- Return a Vari type-spec. This will become the type of the form.
- Return nil to have Varjo tell the user that the symbol is unbound.
- Throw an error. If you wish to inform the user that something else is awry.

Package

varjo.internals

Source

src/varjo.internals/stemcells.lisp (file)

Macro: with-unknown-first-class-functions-allowed &body BODY

When ‘translate‘ is called within the dynamic extern of the body of this form, it will not throw an error if there is a use of ‘function‘ with an unknown function name/signature. In the event of such a use the compiler will generate a dummy function to satify the typechecker.

This is only useful for testing and the resulting GLSL will (most likely) not be legal

Package

varjo.internals

Source

src/varjo.internals/compile-funcall.lisp (file)

Macro: with-v-arg (&optional NAME TYPE QUALIFIERS GLSL-NAME) ARG-FORM &body BODY
Package

varjo.internals

Source

src/varjo.internals/rolling-translate.lisp (file)

Macro: with-v-let-spec FORM &body BODY
Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Compiler macros

Compiler Macro: assocr ITEM ALIST &key KEY TEST TEST-NOT
Package

varjo.utils

Source

src/utils-v.lisp (file)

Compiler Macro: type-spec->type SPEC &optional FLOW-ID
Package

varjo.internals

Source

src/varjo.internals/types/early-types.lisp (file)

Compiler Macro: v-typep A B
Package

varjo.internals

Source

src/varjo.internals/types/types.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Functions

Function: %gen-assignment-string LHS RHS
Package

varjo.internals

Source

src/varjo.internals/glsl-generation/string-generation.lisp (file)

Function: %merge-multi-env-progn CODE-OBJS
Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Function: %values-for-return OBJS PARSED-QUALIFIER-LISTS ENV
Package

varjo.internals

Source

src/vari.cl/special-operators/values.lisp (file)

Function: a-get NAME LIST
Package

varjo.utils

Source

src/utils-v.lisp (file)

Function: a-get1 NAME LIST
Package

varjo.utils

Source

src/utils-v.lisp (file)

Function: add-alternate-type-name ALT-TYPE-NAME SRC-TYPE-NAME

‘add-alternate-type-name‘

Package

varjo.internals

Source

src/varjo.internals/types/types.lisp (file)

Function: add-type-to-stemcell-code CODE-OBJ TYPE-NAME
Package

varjo.internals

Source

src/varjo.internals/stemcells.lisp (file)

Function: assocr ITEM ALIST &key KEY TEST TEST-NOT
Package

varjo.utils

Source

src/utils-v.lisp (file)

Function: binding-accesible-p ENV BINDING &optional BINDING-NAME
Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Function: build-function NAME ARGS BODY ALLOWED-IMPLICIT-ARGS ENV &key DERIVED-FROM
Package

varjo.internals

Source

src/varjo.internals/make-function.lisp (file)

Function: calc-place-tree FUNC ARGS
Package

varjo.internals

Source

src/varjo.internals/compile-funcall.lisp (file)

Function: cast-for-array-literal TARGET-ELEMENT-TYPE ELEMENTS
Package

varjo.internals

Source

src/varjo.internals/casting.lisp (file)

Function: check-args-for-constant-names PURPOSE NAME ARGS
Package

varjo.internals

Source

src/varjo.internals/function-obj.lisp (file)

Function: checkpoint-flow-ids ()
Package

varjo.internals

Source

src/varjo.internals/flow.lisp (file)

Function: compile-declares DECLARATION-SPECIFIERS ENV
Package

varjo.internals

Source

src/varjo.internals/value-metadata.lisp (file)

Function: compile-external-func-returning-ref FUNC FUNC-NAME-FORM ENV
Package

varjo.internals

Source

src/varjo.internals/compile-funcall.lisp (file)

Function: compile-forms-not-propagating-env-returning-list-of-compiled FUNC ENV LIST &rest MORE-LISTS

This compiles each form one after the other (just like progn) however, unlike progn, each form is evaluated with the original environment this means that bindings in one won’t be visable in another.
Finally the resulting environement is merged.

This gives us the behaviour from the binding expressions portion of let forms

Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Function: compile-forms-propagating-env-returning-list-of-compiled FUNC ENV LIST &rest MORE-LISTS

Compile each form passing the env from the previous into the next. return the compiled code objects as a list along with the final env

Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Function: compile-let NAME TYPE-SPEC VALUE-FORM ENV &optional GLSL-NAME ASSUME-BOUND
Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Function: compile-list-form CODE ENV
Package

varjo.internals

Source

src/varjo.internals/compile-funcall.lisp (file)

Function: compile-progn BODY ENV
Package

varjo.internals

Source

src/varjo.internals/compile-special.lisp (file)

Function: cons-end THING LIST
Package

varjo.utils

Source

src/utils-v.lisp (file)

Function: create-stage KIND VERSION/S &key INPUT-VARIABLES UNIFORM-VARIABLES SHARED-VARIABLES CODE STEMCELLS-ALLOWED PRIMITIVE
Package

varjo.internals

Source

src/varjo.internals/stages.lisp (file)

Function: elt* SEQUENCE &rest INDICIES
Package

varjo.utils

Source

src/utils-v.lisp (file)

Function: end-line OBJ &optional FORCE
Package

varjo.internals

Source

src/varjo.internals/code-object.lisp (file)

Function: end-line-str STR
Package

varjo.internals

Source

src/varjo.internals/code-object.lisp (file)

Function: env-merge-history ENV-A ENV-B
Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Function: env-prune* TO-DEPTH &rest ENVS
Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Function: env-prune-many TO-DEPTH ENVS

Remove the first ’to-depth’ ancestors counting from the base-environment. For example calling env-prune on this environment..

base-env -> env0 -> env1 -> env2 -> env3 -> env4 -> env5

.. with a to-depth of 3 will return:

env2 -> env3 -> env4 -> env5

Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Function: env-replace-parent ENV NEW-PARENT &key SYMBOL-BINDINGS
Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Function: env-replace-symbol-bindings ENV SYMBOL-BINDINGS
Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Function: ephemeral-p OBJ

‘ephemeral-p‘ returns T is the Varjo type object represents an ‘ephemeral‘ type

Package

varjo.internals

Source

src/varjo.internals/types/types.lisp (file)

Function: external-function-p F
Package

varjo.internals

Source

src/varjo.internals/external-functions.lisp (file)

Function: extract-declares BODY
Package

varjo.internals

Source

src/varjo.internals/value-metadata.lisp (file)

Function: extract-declares-and-doc-string BODY &optional FULL-FORM
Package

varjo.internals

Source

src/varjo.internals/value-metadata.lisp (file)

Function: extract-details-from-problematic-closures CLOSURES
Package

varjo.internals

Source

src/varjo.internals/compile-funcall.lisp (file)

Function: extract-value-qualifiers VALUE-FORM
Package

varjo.internals

Source

src/vari.cl/special-operators/values.lisp (file)

Function: find-duplicates LIST
Package

varjo.utils

Source

src/utils-v.lisp (file)

Function: find-env-bindings ENV-A ENV-B &key TEST STOP-AT-BASE VARIABLES-ONLY

Look at every variable binding in both the supplied environments and return the names of the bindings that match

Package

varjo.internals

Source

src/varjo.internals/environment.lisp (file)

Function: find-mutual-cast-type &rest TYPES

‘find-mutual-cast-type‘ when given a number of Varjo type objects, this function will return a type object that they can all mutually be cast to according to GLSL’s rules.

Package

varjo.internals

Source

src/varjo.internals/types/types.lisp (file)

Function: find-similarly-named-symbol SOURCE-SYMB CANDIDATES-LIST