Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gendl
gendl
Commits
5609c6d2
Commit
5609c6d2
authored
Nov 14, 2011
by
Dave Cooper
Browse files
trying to commit from build directory
parent
cdedc128
Changes
540
Expand all
Hide whitespace changes
Inline
Side-by-side
COPYING.txt
View file @
5609c6d2
This diff is collapsed.
Click to expand it.
README
View file @
5609c6d2
;;;
;; Copyright 2002-2011 Genworks International and Genworks BV
;;
;; This file is part of the General-purpose Declarative
;; Language project (GDL).
;;
;; 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.
Current Requirements:
o Common Lisp: LispWorks or AllegroCL
Note: Allegro CL 8.2 comes with ASDF, but (sys:update-allegro) will
bring it to ASDF2 which is what you want.
To load the entire system, you can do it from scratch with
(load ".../load.lisp")
We are working on making GDL to bootstrap with pure Quicklisp/asdf.
We plan to target SBCL as next CL host.
If you want to load individual modules, you can do so using quicklisp
or asdf.
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.
depends-on: :asdf (and normally we use Quicklisp to bootstrap asdf).
:cl-lite - GDL system definitions and loading facility. Supplements our use of asdf.
depends-on: :gdl-base, :glisp+
:translators - Partially translate other KBE syntax such as PCPACK,
ICAD to and/or from GDL.
:depends-on: :gdl-base, :glisp+
:lift-utilities - regression test utilities.
:depends-on: :gdl-base, :lift, :glisp+
:geom-base - Built-in GDL wireframe primtives and basic geometry/vector manipulation functions.
depends-on: :gdl-base, :glisp+
:geom-base text-block and document primitives --
depends on: :geom-base, cl-typesetting, :glisp+.
:gwl - Generative Web Language, represent web pages using GDL
objects, includes Ajax interaction with your model.
depends-on: Native or Portable AllegroServe (aserve or paserve),
:cl-who, :glisp+.
:gwl-graphics - include graphics rendered from geometry object in GWL web pages.
depends-on: :gwl, :geom-base, :glisp+.
:surf - surface primitives without underlying geometry kernel middleware or implementation.
depends-on: :geom-base, :glisp+.
:smlib - (proprietary) add-on to implement :surf primitives with middleware and SMLib geometry kernel
depends-on: :surf, :uffi, :glisp+.
:yadd - self auto-documentation.
depends-on: gdl-base, gwl (and others if you want their documentation).
:build - Utilities for building development and runtime images with various GDL modules built-in.
depends-on: gdl-base.
;;;
;; Copyright 2002-2011 Genworks International and Genworks BV
;;
;; This file is part of the General-purpose Declarative
;; Language project (GDL).
;;
;; 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.
Current Requirements:
o Common Lisp: LispWorks or AllegroCL
Note: Allegro CL 8.2 comes with ASDF, but (sys:update-allegro) will
bring it to ASDF2 which is what you want.
To load the entire system, you can do it from scratch with
(load ".../load.lisp")
We are working on making GDL to bootstrap with pure Quicklisp/asdf.
We plan to target SBCL as next CL host.
If you want to load individual modules, you can do so using quicklisp
or asdf.
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.
depends-on: :asdf (and normally we use Quicklisp to bootstrap asdf).
:cl-lite - GDL system definitions and loading facility. Supplements our use of asdf.
depends-on: :gdl-base, :glisp+
:translators - Partially translate other KBE syntax such as PCPACK,
ICAD to and/or from GDL.
:depends-on: :gdl-base, :glisp+
:lift-utilities - regression test utilities.
:depends-on: :gdl-base, :lift, :glisp+
:geom-base - Built-in GDL wireframe primtives and basic geometry/vector manipulation functions.
depends-on: :gdl-base, :glisp+
:geom-base text-block and document primitives --
depends on: :geom-base, cl-typesetting, :glisp+.
:gwl - Generative Web Language, represent web pages using GDL
objects, includes Ajax interaction with your model.
depends-on: Native or Portable AllegroServe (aserve or paserve),
:cl-who, :glisp+.
:gwl-graphics - include graphics rendered from geometry object in GWL web pages.
depends-on: :gwl, :geom-base, :glisp+.
:surf - surface primitives without underlying geometry kernel middleware or implementation.
depends-on: :geom-base, :glisp+.
:smlib - (proprietary) add-on to implement :surf primitives with middleware and SMLib geometry kernel
depends-on: :surf, :uffi, :glisp+.
:yadd - self auto-documentation.
depends-on: gdl-base, gwl (and others if you want their documentation).
:build - Utilities for building development and runtime images with various GDL modules built-in.
depends-on: gdl-base.
build/depends-on.isc
View file @
5609c6d2
(:gdl-base)
(:gdl-base)
build/gdl-build.asd
View file @
5609c6d2
(
asdf:defsystem
#:gdl-build
:description
"Auto-generated asdf defsys from Genworks GDL cl-lite."
:author
"Genworks and Dave Cooper unless otherwise indicated"
:license
"AGPL unless otherwise indicated"
:serial
t
:version
"2011101800"
:depends-on
(
:gdl-base
)
:components
((
:file
"source/package"
)
(
:file
"source/genworks"
)
(
asdf:defsystem
#:gdl-build
:description
"Auto-generated asdf defsys from Genworks GDL cl-lite."
:author
"Genworks and Dave Cooper unless otherwise indicated"
:license
"AGPL unless otherwise indicated"
:serial
t
:version
"2011101800"
:depends-on
(
:gdl-base
)
:components
((
:file
"source/package"
)
(
:file
"source/genworks"
)
(
:file
"source/make-gdl-app"
)))
\ No newline at end of file
build/source/file-ordering.isc
View file @
5609c6d2
("package" "genworks")
("package" "genworks")
build/source/genworks.lisp
View file @
5609c6d2
(
in-package
:com.genworks.lisp
)
(
eval-when
(
compile
load
eval
)
(
defpackage
:com.genworks.lisp
(
:use
:common-lisp
)
(
:export
#:make-gdl-app
#:delete-directory-and-files
)))
#-
allegro
(
warn
"~&Please implement generate-application for the currently running lisp.~%"
)
(
defun
make-gdl-app
(
&rest
args
)
#+
allegro
(
let
((
app-name
(
getf
args
:application-name
))
(
target
(
getf
args
:destination-directory
))
(
modules
(
append
(
list
:asdf
:compftype
:aserve
:phtml
)
(
getf
args
:modules
)))
(
args
(
normalize-generate-application-args
args
)))
(
apply
#'
excl:generate-application
app-name
target
modules
args
))
#-
allegro
(
declare
(
ignore
args
))
#-
allegro
(
error
"~&generate-application is not implemented for the currently running lisp.~%"
))
#+
allegro
(
defun
normalize-generate-application-args
(
args
)
(
let
((
class
(
getf
args
:application-class
)))
(
list
:runtime
(
case
class
(
:development
:partners
)
(
otherwise
nil
))
:include-compiler
(
case
class
(
:development
t
)
(
otherwise
nil
))
:include-devel-env
(
case
class
(
:development
t
)
(
otherwise
nil
))
:icon-file
(
merge-pathnames
"gdl/gwl/static/gwl/images/favicon.ico"
glisp:*genworks-source-home*
)
:demo
(
getf
args
:demo-days
)
:init-file-names
(
getf
args
:init-file-names
)
:pre-load-form
(
getf
args
:pre-load-form
)
:post-load-form
(
getf
args
:post-load-form
)
:restart-init-function
(
getf
args
:restart-init-function
)
:purify
t
:autoload-warning
nil
:runtime-bundle
t
:suppress-allegro-cl-banner
t
)))
#-
(
or
allegro
(
and
unix
lispworks
))
(
warn
"~&Please implement delete-directory-and-files for the currently running lisp.~%"
)
(
defun
delete-directory-and-files
(
target
&key
force
quiet
if-does-not-exist
)
#+
lispworks
(
declare
(
ignore
force
quiet
if-does-not-exist
))
#+
lispworks
(
system:run-shell-command
(
format
nil
"rm -rf ~a"
target
))
#+
allegro
(
excl.osi:delete-directory-and-files
target
:force
force
:quiet
quiet
:if-does-not-exist
if-does-not-exist
))
(
in-package
:com.genworks.lisp
)
(
eval-when
(
compile
load
eval
)
(
defpackage
:com.genworks.lisp
(
:use
:common-lisp
)
(
:export
#:make-gdl-app
#:delete-directory-and-files
)))
#-
allegro
(
warn
"~&Please implement generate-application for the currently running lisp.~%"
)
(
defun
make-gdl-app
(
&rest
args
)
#+
allegro
(
let
((
app-name
(
getf
args
:application-name
))
(
target
(
getf
args
:destination-directory
))
(
modules
(
append
(
list
:asdf
:compftype
:aserve
:phtml
)
(
getf
args
:modules
)))
(
args
(
normalize-generate-application-args
args
)))
(
apply
#'
excl:generate-application
app-name
target
modules
args
))
#-
allegro
(
declare
(
ignore
args
))
#-
allegro
(
error
"~&generate-application is not implemented for the currently running lisp.~%"
))
#+
allegro
(
defun
normalize-generate-application-args
(
args
)
(
let
((
class
(
getf
args
:application-class
)))
(
list
:runtime
(
case
class
(
:development
:partners
)
(
otherwise
nil
))
:include-compiler
(
case
class
(
:development
t
)
(
otherwise
nil
))
:include-devel-env
(
case
class
(
:development
t
)
(
otherwise
nil
))
:icon-file
(
merge-pathnames
"gdl/gwl/static/gwl/images/favicon.ico"
glisp:*genworks-source-home*
)
:demo
(
getf
args
:demo-days
)
:init-file-names
(
getf
args
:init-file-names
)
:pre-load-form
(
getf
args
:pre-load-form
)
:post-load-form
(
getf
args
:post-load-form
)
:restart-init-function
(
getf
args
:restart-init-function
)
:purify
t
:autoload-warning
nil
:runtime-bundle
t
:suppress-allegro-cl-banner
t
)))
#-
(
or
allegro
(
and
unix
lispworks
))
(
warn
"~&Please implement delete-directory-and-files for the currently running lisp.~%"
)
(
defun
delete-directory-and-files
(
target
&key
force
quiet
if-does-not-exist
)
#+
lispworks
(
declare
(
ignore
force
quiet
if-does-not-exist
))
#+
lispworks
(
system:run-shell-command
(
format
nil
"rm -rf ~a"
target
))
#+
allegro
(
excl.osi:delete-directory-and-files
target
:force
force
:quiet
quiet
:if-does-not-exist
if-does-not-exist
))
build/source/make-gdl-app.lisp
View file @
5609c6d2
(
in-package
:gdl-build
)
(
defun
make-gdl-app
(
&rest
args
)
(
let
((
self
(
apply
#'
make-object
'make-gdl-app
args
)))
(
the
make!
)))
(
define-object
make-gdl-app
()
:input-slots
((
"String. The name which will be used for your application's executable and dxl file.
Defaults to \"gdl-base.\""
application-name
"gdl-base"
)
(
"Keyword symbol. Should be one of <tt>:runtime</tt>, <tt>:development</tt>,
or <tt>:enterprise</tt>.
Indicates which level of application should be made. Defaults to :development."
application-class
:development
)
(
"Pathname. Indicates the directory to be created or overwritten for producing
the distribution.
Defaults to a directory called <tt>(the application-name)</tt> in the user
temporary directory, returned by <tt>(glisp:temporary-folder)</tt>."
destination-directory
(
merge-pathnames
(
make-pathname
:directory
(
list
:relative
(
the
application-name
)))
(
glisp:temporary-folder
)
))
(
pre-load-form
`
(
progn
(
load
,
(
merge-pathnames
"load.lisp"
glisp:*genworks-source-home*
))
(
setf
(
symbol-value
(
read-from-string
"glisp:*genworks-source-home*"
))
nil
)
(
setf
(
symbol-value
(
read-from-string
"asdf:*central-registry*"
))
nil
)))
(
post-load-form
nil
)
;;
;; FLAG -- leave this to nil for now while we are working on the basic build.
;;
(
init-file-names
(
list
"gdlinit.cl"
".gdlinit.cl"
))
(
modules
nil
)
(
demo-days
30
)
)
:functions
((
make!
()
(
when
(
probe-file
(
the
destination-directory
))
(
glisp:delete-directory-and-files
(
the
destination-directory
)))
(
glisp:make-gdl-app
:application-name
(
the
application-name
)
:destination-directory
(
the
destination-directory
)
:modules
(
the
modules
)
:pre-load-form
(
the
pre-load-form
)
:post-load-form
(
the
post-load-form
)
:application-class
(
the
application-class
)
:demo-days
(
the
demo-days
)
;;
;; FLAG -- leave this to nil for now while we are working
;; on the basic build.
;;
:init-file-names
(
the
init-file-names
)
;;
;;:restart-init-function '(lambda()
;; (gdl:start-gdl :edition :open-source))
;;
))))
(
defun
make-gdl-site
()
(
gdl-build:make-gdl-app
:post-load-form
'
(
progn
(
load
"~/genworks-1581-pre-git/gdl/dist/src/demos/site/gdl-site.asd"
)
(
asdf:load-system
:gdl-site
)
(
load
"~/genworks-1580/gdl/apps/downloads/gdl-downloads.asd"
)
(
asdf:load-system
:gdl-downloads
))
(
in-package
:gdl-build
)
(
defun
make-gdl-app
(
&rest
args
)
(
let
((
self
(
apply
#'
make-object
'make-gdl-app
args
)))
(
the
make!
)))
(
define-object
make-gdl-app
()
:input-slots
((
"String. The name which will be used for your application's executable and dxl file.
Defaults to \"gdl-base.\""
application-name
"gdl-base"
)
(
"Keyword symbol. Should be one of <tt>:runtime</tt>, <tt>:development</tt>,
or <tt>:enterprise</tt>.
Indicates which level of application should be made. Defaults to :development."
application-class
:development
)
(
"Pathname. Indicates the directory to be created or overwritten for producing
the distribution.
Defaults to a directory called <tt>(the application-name)</tt> in the user
temporary directory, returned by <tt>(glisp:temporary-folder)</tt>."
destination-directory
(
merge-pathnames
(
make-pathname
:directory
(
list
:relative
(
the
application-name
)))
(
glisp:temporary-folder
)
))
(
pre-load-form
`
(
progn
(
load
,
(
merge-pathnames
"load.lisp"
glisp:*genworks-source-home*
))
(
setf
(
symbol-value
(
read-from-string
"glisp:*genworks-source-home*"
))
nil
)
(
setf
(
symbol-value
(
read-from-string
"asdf:*central-registry*"
))
nil
)))
(
post-load-form
nil
)
;;
;; FLAG -- leave this to nil for now while we are working on the basic build.
;;
(
init-file-names
(
list
"gdlinit.cl"
".gdlinit.cl"
))
(
modules
nil
)
(
demo-days
30
)
)
:functions
((
make!
()
(
when
(
probe-file
(
the
destination-directory
))
(
glisp:delete-directory-and-files
(
the
destination-directory
)))
(
glisp:make-gdl-app
:application-name
(
the
application-name
)
:destination-directory
(
the
destination-directory
)
:modules
(
the
modules
)
:pre-load-form
(
the
pre-load-form
)
:post-load-form
(
the
post-load-form
)
:application-class
(
the
application-class
)
:demo-days
(
the
demo-days
)
;;
;; FLAG -- leave this to nil for now while we are working
;; on the basic build.
;;
:init-file-names
(
the
init-file-names
)
;;
;;:restart-init-function '(lambda()
;; (gdl:start-gdl :edition :open-source))
;;
))))
(
defun
make-gdl-site
()
(
gdl-build:make-gdl-app
:post-load-form
'
(
progn
(
load
"~/genworks-1581-pre-git/gdl/dist/src/demos/site/gdl-site.asd"
)
(
asdf:load-system
:gdl-site
)
(
load
"~/genworks-1580/gdl/apps/downloads/gdl-downloads.asd"
)
(
asdf:load-system
:gdl-downloads
))
:demo-days
nil
))
\ No newline at end of file
build/source/package.lisp
View file @
5609c6d2
(
in-package
:gdl-user
)
(
gdl:define-package
:gdl-build
(
:export
#:make-gdl-app
#:make-gdl-site
))
(
in-package
:gdl-user
)
(
gdl:define-package
:gdl-build
(
:export
#:make-gdl-app
#:make-gdl-site
))
demos/bus/data/fleet.csv
View file @
5609c6d2
;;
;; Copyright 2002, 2009 Genworks International and Genworks BV
;;
;; This source file is part of the General-purpose Declarative
;; Language project (GDL).
;;
;; This source file contains 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/>.
;;
300,10,"yes"
300,3,"no"
400,7,"no"
300,30,"yes"
200,3,"no"
500,9,"no"
750,7,"no"
;;
;; Copyright 2002, 2009 Genworks International and Genworks BV
;;
;; This source file is part of the General-purpose Declarative
;; Language project (GDL).
;;
;; This source file contains 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.