Generative Programming and KBE system embedded in Common Lisp
Common Lisp Emacs Lisp JavaScript Other
Switch branches/tags
Nothing to show
Pull request Compare This branch is 405 commits behind genworks:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
demos
dist
documentation
gdl
regression
release-notes
surf
.gitignore
COPYING.txt
README
clean-startup.txt
gdl-all.asd
genworks-gdl.asd
release-notes.txt
system-index.txt
to-do.txt

README

;;;
;; 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.