Skip to content

hww/open-goal-type-system-cl

Repository files navigation

The open GOAL type system for Common LISP

CI

The implementation of the GOAL type system with Common LISP. This explanation of the GOAL type system available here Or you can see the source code of whole Jack Project

There is the Racket Version of this project

This project motivations

I plan to write a GOAL compiler as an embedded solution in mobile applications or game engines. The compiler is incomplete at the moment, but the type system is ready.

Why Common LISP

The idea to reimplement the Racket version on Common LISP was based on the assumption that LISP would be a more suitable software development system for me. I wanted to compare Racket development and LISP development.

Differences from the Racket version:

  • type is renamed to gtype
  • type-spec is renamed to typespec
  • Names are now strings, but in the Racket version it was symbols

Status

It is mostly works, the test code in deftype.rkt file parsing the file all-types.gc with 34k lines of code. As result it is defining 1539 types and 89 enums. For a futue development reuired only a bugfixing and making better error messaging exeptions handling and source file locations.

Files

  • interfaces.lisp -- Interface for all types
  • type.lisp -- The base type for all types
  • basic-types.lisp -- All avaibale types: field, null, struct, value, bitfield, enum
  • type-spec.lisp -- The universal type reference aka '(function (int int int))'
  • state.lisp -- The state type functions
  • type-system.lisp -- The main type system
  • builtin-types.lisp -- Initializer of type system by builting types
  • defenum.lisp -- The enum expression parser
  • deftype.lisp -- The deftype expression parser
  • rt-type.lisp -- The runtime version of basic type. Not used by type system above
  • goalc-all-types.gc -- The list of typespecs of the GOAL
  • goalc-type-specs.txt -- The GOAL types file used for testing

About

Open GOAL type system implemented with CL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published