Commit 9a7a1ae0 authored by Dave Cooper's avatar Dave Cooper
Browse files

updated version numbers. rolling build patches into codebase.

parent eb1d2469
Pipeline #3916 passed with stages
in 14 minutes and 15 seconds
# Contributing
Genworks may offer AGPL license exception credits or other incentives
as consideration for code contributions (e.g. bugfixes, ports) made
via gitlab merge requests, under the terms of our Contributor's
Agreement. Please contact [Genworks](http://gen.works) for details.
......@@ -16,7 +16,8 @@
2. In Emacs, do `M-x load-file [Enter]` and specify
`gendl/emacs/gdl.el` to be loaded. This should set up your emacs
with Slime (needed to connect to the Gendl swank listener coming
in the next step).
in the next step). (if you already have Slime loaded into your
emacs environment, then this step may not be needed).
3. Invoke the `gendl/docker/run` script in this repository. This will
spin up a pre-built Gendl image based on CCL (Clozure CL), with
......@@ -89,6 +90,7 @@ use of standard CAD data exchange formats such as Iges, STEP, and STL
### Installation
To load the entire system, you can do it with:
```common-lisp
......@@ -108,13 +110,13 @@ in your browser and trying to instantiate the default assembly tree
Slime (Superior Lisp Interaction Mode for Emacs) is recommended
for developing Gendl applications with Emacs.
Slime is available with:
(ql:quickload :quicklisp-slime-helper)
Slime is available by doing `M-x load-file [ret]` in emacs, and
selecting the file `gdl/emacs/gdl.el`.
`Glime' is our Gendl-specific customizations to Slime. This is
implemented both on the swank (Common Lisp) side of things, and on the
slime (emacs) side of things, and can be loaded with
`Glime' is our Gendl-specific customizations to Slime (still
experimental). This is implemented both on the swank (Common Lisp)
side of things, and on the slime (emacs) side of things, and can be
loaded with
```common-lisp
(load (compile-file ".../gendl/emacs/glime.lisp"))
......@@ -136,11 +138,14 @@ loading Glime and Gendl into an emacs environment.
### Further Documentation
Documentation is published
[here](http://gen.works/downloads/tutorial.pdf), and this very much
an active work in progress. Training tutorials and videos are also in
progress and in their current state are available in the Documentation
section on http://gen.works.
Also, more detail on operating the emacs environment can be found
in `gdl/emacs/README.txt`.
Further documentation is published
[here](http://genworks.com/documentation).
### Support/Community
......@@ -237,13 +242,15 @@ distributed at all).
For Proprietary (closed-source) development and distribution, the
commercial Genworks® GDL system (including Gendl® technology and,
optionally, commercial CL engines, technical support, and commercial
solid modeling engine) is available from [Genworks](http://gen.works).
solid modeling engine) is available from [Genworks](http://genworks.com).
### Contributing
Genworks may offer AGPL license exception credits or other incentives
as consideration for code contributions (e.g. bugfixes, ports) made
via gitlab merge requests, under the terms of our Contributor's
Agreement. Please contact [Genworks](http://gen.works) for details.
### Bug Bounty Program, Bug Fix Program
Genworks offers a modest bounty for reporting (and sometimes solving)
of bugs on the [Issues
List](https://gitlab.common-lisp.net/gendl/gendl/issues?scope=all&state=opened).
Please contact [Genworks](http://gen.works) for details.
......@@ -89,25 +89,21 @@
)
#-(or allegro lispworks cmu sbcl ccl abcl ecl clasp clisp)
(in-package :glisp)
#-(or allegro lispworks cmu sbcl ccl abcl ecl clisp)
(error "Need implementation for executable-homedir-pathname for currently running lisp.~%")
(#+allegro
excl:without-package-locks #-allegro progn
(defun executable-homedir-pathname ()
#+allegro (translate-logical-pathname "sys:")
#+sbcl (make-pathname :name nil :type nil :defaults sb-ext:*core-pathname*)
#+(or lispworks ccl ecl clisp)
(let* ((exe (first (glisp:basic-command-line-arguments)))
(exe-dir (pathname-directory exe)))
(if (eql (first exe-dir) :relative)
(probe-file
(merge-pathnames (make-pathname :directory exe-dir :defaults nil)
(uiop/os:getcwd)))
(make-pathname :name nil :type nil :defaults exe)))
#+clasp (core:argv 0)
#+abcl
(warn "Don't know how to get executable-homedir-pathname on ~a! Please find out.~%"
(lisp-implementation-type))))
(defun executable-homedir-pathname ()
#+allegro (translate-logical-pathname "sys:")
#+sbcl (make-pathname :name nil :type nil :defaults sb-ext:*core-pathname*)
#+(or lispworks ccl ecl clisp)
(let* ((exe (first (glisp:basic-command-line-arguments)))
(exe-dir (pathname-directory exe)))
(if (eql (first exe-dir) :relative) (uiop/os:getcwd)
(make-pathname :name nil :type nil :defaults exe)))
#+abcl
(warn "Don't know how to get executable-homedir-pathname on ~a! Please find out.~%"
(lisp-implementation-type)))
(defparameter *gdl-program-home* #-abcl (glisp:executable-homedir-pathname)
......
......@@ -24,7 +24,7 @@
(defparameter *gendl-version* "1595")
(defparameter *gendl-version* "1596")
(defparameter *gendl-patch-level* nil)
......
;;;; -*- coding: utf-8 -*- ;
;;
;; Copyright 2002-2011 Genworks International
;; Copyright 2002-2021 Genworks International
;;
;; This source file is part of the General-purpose Declarative
;; Language project (GDL).
......@@ -101,7 +101,7 @@ Within ~a ~a
~a
Welcome to Gendl®
Copyright© 2020, Genworks® International, Birmingham MI, USA.
Copyright© 2021, Genworks® International, Birmingham MI, USA.
All Rights Reserved.
This program contains free software: you can redistribute it and/or
......
Welcome to the Genworks® GDL and Gendl® Environment
Welcome to the Gendl®/GDL Environment
================================================
GDL1595 development builds
Gendl/GDL 1596
================================================
Note on Naming:
===============
Welcome to the Genworks® GDL and Gendl® Environment
"Gendl" and "GDL" may be used interchangeably in this README and other
documentation. GDL is a short form (and package nickname) for
Gendl.
For further background, conceptual, and licensing information, please
view the README.md file in the root directory of the Gendl source
distribution available from
https://gitlab.common-lisp.net/gendl/gendl.git.
Startup
......@@ -31,35 +38,18 @@ See "Troubleshooting" below if you experience trouble starting up.
Updating
=========
The function (update-gdl) will load a bootstrap file which knows how
to fetch and install the currently available patches for this version
of GDL. (Note: you may need to request this bootstrap file from
support@genworks.com)
Documentation
=============
The following manual is currently available in PDF format:
http://genworks.com/downloads/tutorial.pdf
The following Video Playlist is available (YouTube):
Further documentation is published at http://genworks.com/documentation.
https://youtu.be/aoTbtGhSHkE
Additionally, reference documentation is available "live" from your
running system, at
Additionally, reference documentation is available "live" from your
running system, at
http://localhost:9000/yadd
==================
Authoring GDL Code
==================
......@@ -67,11 +57,9 @@ Authoring GDL Code
Gnu Emacs
==========
All things considered, Gnu Emacs is the most powerful, portable, and
future-proof IDE (Integrated Development Environment) available for
working with Lisp-based systems like GDL. Spending some time getting
familiar with Gnu Emacs is perhaps the best small investment you can
make.
Gnu Emacs remains the recommended IDE (Integrated Development
Environment) available for working with Lisp-based systems including
Gendl.
If you are new to Emacs, you can get a general Emacs Tutorial under
the Help menu above. After completing the Tutorial, try to practice
......@@ -91,39 +79,13 @@ Preferences. For Windows, here are some resources which can help you
do this:
http://johnhaller.com/jh/useful_stuff/disable_caps_lock/
https://docs.microsoft.com/en-us/windows/powertoys/
Note that if you are running Windows in a Virtual Machine hosted under
MacOS or Linux, it is sufficient to map the Caps Lock to to Control in
the host system.
Finally, please see the Genworks Documentation (URL below) for some
screen-cast videos on using Emacs in the GDL environment.
==============================
Learning GDL and Documentation
==============================
Absolutely the best way to learn GDL is to dive in and start using
it for small exercises and projects.
The work-in-progress tutorial.pdf is published here:
http://genworks.com/downloads/tutorial.pdf
Other Documentation:
http://www.genworks.com
Then click the link for Documentation, which contains lecture slides
and videos.
Additionally, reference documentation is available "live" from your
running system, at
http://localhost:9000/yadd
=========
Quitting
......
......@@ -727,70 +727,6 @@ and the return-code was:
"
command-list output error-output return-code)))))))))
#+nil
(defun rsync (source dest &key directory
print-command?
dry-run?
(options (list "a"))
long-form-options)
#+os-windows (declare (ignore source dest directory print-command? dry-run?
options long-form-options))
#+os-windows (error "~&Sorry, glisp:rsync is not yet implemented for MS Windows.~%")
#-mswindows
(labels ((expanded-pathname-string (pathname)
(replace-regexp (namestring (translate-logical-pathname pathname)) "~/"
(namestring (user-homedir-pathname))))
(dotted-relative-pathname (source-list)
(destructuring-bind (head tail) source-list
(format nil "/~{~a/~}./~{~a/~}" head tail))))
(let ((command-list
(remove nil
(cons "rsync"
(cons (when options (format nil "-~{~a~}" options))
(append
(mapcar #'(lambda(option) (concatenate 'string "--" option))
long-form-options)
(let ((source
(list
(etypecase source
(list (dotted-relative-pathname source))
((or string pathname)
(expanded-pathname-string (namestring source)))))))
(gdl:print-variables source) source)
(list (if (search ":" (namestring dest)) dest
(expanded-pathname-string (namestring dest))))))))))
(when (or print-command? dry-run?) (format t "~s~%" command-list))
(unless dry-run?
(uiop:with-current-directory (directory)
;;
;; FLAG capture this pattern as a standard form of run-program:
;;
(multiple-value-bind (output error-output return-code)
(run-program command-list :output :string :error-output :string :ignore-error-status t)
(unless (zerop return-code)
(error "The following command returned an error:
~s
The output was:
~a
The error-output was:
~a
and the return-code was:
~a
"
command-list output error-output return-code))))))))
(defun getuid ()
#-(or allegro ccl) (error "need getuid impl.")
......
NOTE: See the README.txt for important installation information.
Release Notes for Build Stamp 2012080200 w.r.t. previous 2012052101
===================================================================
o ADDED billboard support for x3d/x3dom. Use :billboard
:billboard-vector keyword in :display-controls.
o ADDED partial text-line support for x3d, added anchor support for
x3d and x3dom. Bind gdl:*onclick-function* dynamically around call
to (with-format (x3d ...)) to apply an onclick function to the
anchor.
o ADDED STEP assembly output with names and colors.
Produce assembly with
(with-format (step <path>.stp :assembly? t) (write-the ...))
Still missing: nested coordinate system transforms at
subassemblies.
o ADDED sections to documentation/training/g102-tud/
o ADDED ability to have gpl/ directory (with gnu-emacs and
ghostscript) as a sibling directory of Gendl application directory,
in addition to the old style of having it be within the Gendl
directory.
o ADDED M-x gendl as startup equivalent to M-x slime
o ADDED M-x quit-gendl as shutdown equivalent to M-x slime-quit-lisp
o ADDED ability to use .gdl or .gendl as file extension, instead of
.lisp. This will work with Slime-mode, cl-lite, and asdf/quicklisp.
o ADDED surf:spiral-curve primitive (documented).
o ADDED surf:non-rational-curve primitive (documented).
Note that the driver for this was the fact that it appears that
lofted-surface will not work properly with a mixture of rational
and non-rational profile curves, so this primitive provides a
workaround. We will be confirming that this is indeed a limitation
of lofted-surface.
o ADDED Allegro :mysql client module to this release. Requires
installation of OpenSSL libraries on windows.
o FIXED bug with nested orientations in x3d lens.
o FIXED weight issues with rational b-spline-curve, b-spline-surface,
boxed-curve, boxed-surface.
o FIXED x3d display of left-handed coordinate systems (equivalent to
patch-003 in 2012052101)
o FIXED base-ajax-sheet to respect the specified doc-type-string.
Known Bugs:
===========
approximated-curve is still not functional in the SMLib included with
this release. This should be resolved in the next release which has
an SMLib update.
Other Notes:
============
smlib::assembly-import is still available on experimental basis, not
documented. Accepts file-name as the main input-slot. Will
automatically choose the reader to use (step or iges) based on file
extension (.stp, .step, .igs, or .iges).
See the README.txt for important installation information.
Release Notes for Build Stamp 2012080300 w.r.t. previous 2012080300
===================================================================
o FIXED glisp:set-gs-path to look in level up for gpl/ directory as
well, since Slime etc. work with it there now.
o REMOVED :mysql client support -- this will be included only in
special releases. The normal release will not include it, to
simplify installation by avoiding the need for additional .dll's to
be installed.
Release Notes for Build Stamp 2012080200 w.r.t. previous 2012052101
===================================================================
o ADDED billboard support for x3d/x3dom. Use :billboard
:billboard-vector keyword in :display-controls.
o ADDED partial text-line support for x3d, added anchor support for
x3d and x3dom. Bind gdl:*onclick-function* dynamically around call
to (with-format (x3d ...)) to apply an onclick function to the
anchor.
o ADDED STEP assembly output with names and colors.
Produce assembly with
(with-format (step <path>.stp :assembly? t) (write-the ...))
Still missing: nested coordinate system transforms at
subassemblies.
o ADDED sections to documentation/training/g102-tud/
o ADDED ability to have gpl/ directory (with gnu-emacs and
ghostscript) as a sibling directory of Gendl application directory,
in addition to the old style of having it be within the Gendl
directory.
o ADDED M-x gendl as startup equivalent to M-x slime
o ADDED M-x quit-gendl as shutdown equivalent to M-x slime-quit-lisp
o ADDED ability to use .gdl or .gendl as file extension, instead of
.lisp. This will work with Slime-mode, cl-lite, and asdf/quicklisp.
o ADDED surf:spiral-curve primitive (documented).
o ADDED surf:non-rational-curve primitive (documented).
Note that the driver for this was the fact that it appears that
lofted-surface will not work properly with a mixture of rational
and non-rational profile curves, so this primitive provides a
workaround. We will be confirming that this is indeed a limitation
of lofted-surface.
o ADDED Allegro :mysql client module to this release. Requires
installation of OpenSSL libraries on windows.
o FIXED bug with nested orientations in x3d lens.
o FIXED weight issues with rational b-spline-curve, b-spline-surface,
boxed-curve, boxed-surface.
o FIXED x3d display of left-handed coordinate systems (equivalent to
patch-003 in 2012052101)
o FIXED base-ajax-sheet to respect the specified doc-type-string.
Known Bugs:
===========
approximated-curve is still not functional in the SMLib included with
this release. This should be resolved in the next release which has
an SMLib update.
Other Notes:
============
smlib::assembly-import is still available on experimental basis, not
documented. Accepts file-name as the main input-slot. Will
automatically choose the reader to use (step or iges) based on file
extension (.stp, .step, .igs, or .iges).
See the README.txt for important installation information.
Release Notes for Build Stamp 2012113000 w.r.t. previous 2012081900
===================================================================
o Moved to Allegro CL 9.0
o Added preliminary draft documentation/tutorial/pdf/tutorial.pdf
o Added cardinal-spline primitive
o Added support for 64-bit version of ACL 9.0 (sans SMLib for now)
o Added support for Symmetric Multiprocessing version of ACL 9.0
Release Notes for Build Stamp 2012081900 w.r.t. previous 2012080300
===================================================================
o REMOVED :agraph built-in support -- want to be able to load the
Franz Lisp client for Agraph 4.2x.
o ADDED :pxml support.
o ADDED :mysql client support -- this will be included in TU Delft
releases. We are trying to figure out how to include optional
support for this module, i.e. not to have it pre-loaded but to have
it available. This might not be possible in Gendl Professional
editions; it might be that Pro editions are limited to the
additional Franz commercial modules which are built-in by Genworks
at build time.
Release Notes for Build Stamp 2012080300 w.r.t. previous 2012080200
===================================================================
o FIXED glisp:set-gs-path to look in level up for gpl/ directory as
well, since Slime etc. work with it there now.
o REMOVED :mysql client support -- this will be included only in
special releases. The normal release will not include it, to
simplify installation by avoiding the need for additional .dll's to
be installed.
Release Notes for Build Stamp 2012080200 w.r.t. previous 2012052101
===================================================================
o ADDED billboard support for x3d/x3dom. Use :billboard
:billboard-vector keyword in :display-controls.
o ADDED partial text-line support for x3d, added anchor support for
x3d and x3dom. Bind gdl:*onclick-function* dynamically around call
to (with-format (x3d ...)) to apply an onclick function to the
anchor.
o ADDED STEP assembly output with names and colors.
Produce assembly with
(with-format (step <path>.stp :assembly? t) (write-the ...))
Still missing: nested coordinate system transforms at
subassemblies.
o ADDED sections to documentation/training/g102-tud/
o ADDED ability to have gpl/ directory (with gnu-emacs and
ghostscript) as a sibling directory of Gendl application directory,
in addition to the old style of having it be within the Gendl
directory.
o ADDED M-x gendl as startup equivalent to M-x slime
o ADDED M-x quit-gendl as shutdown equivalent to M-x slime-quit-lisp
o ADDED ability to use .gdl or .gendl as file extension, instead of
.lisp. This will work with Slime-mode, cl-lite, and asdf/quicklisp.
o ADDED surf:spiral-curve primitive (documented).
o ADDED surf:non-rational-curve primitive (documented).
Note that the driver for this was the fact that it appears that
lofted-surface will not work properly with a mixture of rational
and non-rational profile curves, so this primitive provides a
workaround. We will be confirming that this is indeed a limitation
of lofted-surface.
o ADDED Allegro :mysql client module to this release. Requires
installation of OpenSSL libraries on windows.
o FIXED bug with nested orientations in x3d lens.
o FIXED weight issues with rational b-spline-curve, b-spline-surface,
boxed-curve, boxed-surface.
o FIXED x3d display of left-handed coordinate systems (equivalent to
patch-003 in 2012052101)
o FIXED base-ajax-sheet to respect the specified doc-type-string.
Known Bugs:
===========
approximated-curve is still not functional in the SMLib included with
this release. This should be resolved in the next release which has
an SMLib update.