Join GitHub today
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
;;; ;; Copyright 2012 Genworks International ;; ;; This file is part of the General-purpose Declarative ;; Language project (Gendl). ;; ;; This file is free software: you can redistribute it ;; and/or modify it under the terms of the GNU Affero General Public ;; License as published by the Free Software Foundation, either ;; version 3 of the License, or (at your option) any later version. ;; ;; This source file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; Affero General Public License for more details. ;; ;; You should have received a copy of the GNU Affero General Public ;; License along with this source file. If not, see ;; <http://www.gnu.org/licenses/>. ;; Welcome to the General-purpose Declarative Language Open-Source Distribution. Gendl is distributed under AGPL, which has the requirement that you release your updates and any applications compiled with Gendl under AGPL-compatible license (if distributed at all). Proprietary (closed-source) licenses are available from Genworks as well. These are described in preview form in the Configurator section on genworks.com/newsite and will be available in more detail on the main Genworks website soon. Current Requirements: o Common Lisp: recently patched Allegro CL 8.2, LispWorks, or SBCL (SBCL verified only on Linux and Mac). To load the entire system, you can do it with: (ql:quickload :genworks-gdl) (gdl:start-gdl :edition :open-source) Now you can do a quick sanity test by visiting: localhost:9000/tasty in your browser and trying to instantiate the default assembly tree (robot). Note that ql:quickload is from the Quicklisp package - you have to get your system bootstrapped with Quicklisp first in order to use this. See www.quicklisp.org. Slime is recommended for editing GDL applications with Emacs. Documentation is in documentation/gdl-documentation.pdf and this very much an active work in progress. Training tutorials and videos are also in progress, and a www.genworks.com website overhaul. The current preview of the website overhaul is genworks.com/newsite. To help in understanding the role of each module, the overall GDL source architecture is described below. GDL source code Architecture: ============================= GDL is separated into layered components, some of which depend on others. Some components also depend on third-party external libraries, which are currently handled with the Quicklisp system with some local modifications pending merging into the Quicklisp dists. At the core "kernel" is the :gdl package, implemented with files in the folder gdl/base/. This includes the compiler/expanders for "define-object" and related macros as well as core primitives such as vanilla-mixin. Including gdl-base, there are approximately 12 modules supported with GDL. One is proprietary and closed-source, the others are open-source under AGPL. :gdl-base - GDL language kernel. :gdl-cl-lite - GDL system definitions and loading facility. Supplements our use of asdf. :gdl-regression - regression test utilities. :gdl-geom-base - Built-in GDL wireframe primtives and basic geometry/vector manipulation functions. :gdl-gwl - Generative Web Language, represent web pages using GDL objects, includes Ajax interaction with your model. :gdl-gwl-graphics - include graphics rendered from geometry object in GWL web pages. :gdl-surf - surface primitives without underlying geometry kernel middleware or implementation. :gdl-smlib - (proprietary) add-on to implement :surf primitives with middleware and SMLib geometry kernel :gdl-yadd - self auto-documentation. :gdl-build - Utilities for building development and runtime images with various GDL modules built-in.