Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the ucw Reference Manual, version 0.9, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:43:21 2018 GMT+0.
• Introduction: | What ucw is all about | |
• Systems: | The systems documentation | |
• Modules: | The modules documentation | |
• Files: | The files documentation | |
• Packages: | The packages documentation | |
• Definitions: | The symbols documentation | |
• Indexes: | Concepts, functions, variables and data types |
-*- outline -*- This directory contains UnCommon Web (UCW), a Common Lisp web application platform. * Getting Started Well, there's a shortcut nowadays. Marco Baringer made a UCW boxset with all the dependencies boxed up and ready to fire. wget http://common-lisp.net/project/ucw/ucw-boxset.tar.gz tar -zxf ucw-boxset.tar.gz cd ucw-boxset YOURLISPHERE (-)-load start.lisp This will start UCW with the built in httpd server backend. But if you want to get the dependencies seperately or want a different initial setup, then read on! Assuming that every dependency is set up correctly then evaluating (load (merge-pathnames "etc/start.lisp" (asdf:component-pathname (asdf:find-system :ucw)))) should start up the examples at http://localhost:8080/ ** Dependencies UCW depends an a number of external libraries: * arnesi - an all purpose lisp toolkit * yaclml - yet another common lisp markup language * parenscript - javascript in common-lisp * iterate - a lispy loop * rfc2388 - implements multipart/form specification * rfc2109 - implements cookie specification * trivial-garbage - portable weak hashtables and pointers * bordeaux-threads - portable threads * split-sequence - splits sequences * slime - Superior Lisp Interaction Mode for Emacs * cl-ppcre - regular expressions lib * cl-l10n - l10n and i18n lib * trivial-sockets - handles stream sockets for undemanding network applications * net.uri or PURI - parses URI's according to the RFC 2396 specification * cl-fad - a portable pathname library based on code from PCL * net-telent-date - an RFC822-compliand date parser and printer * cl-launch - invokes lisp code from the command line * detachtty - a screen-like detachment tool to be able to detach and reattach the lisp server from and to a console * a server backend - be it mod_lisp (apache 1 or 2), araneida, allegroserve, portable aserve or the built in httpd server * asdf - a package loader facility *** arnesi Arnesi is a Common Lisp utility suite. It contains various "bits 'n pieces" of code which were useful while developing other code. It can be found on http://common-lisp.net/project/bese/arnesi.html. You will need the latest version: darcs get http://common-lisp.net/project/bese/repos/arnesi_dev/ Daily snapshots are available at http://common-lisp.net/project/bese/tarballs/arnesi_dev-latest.tar.gz *** yaclml yaclml is a collection of macros and utilities for generating XML/HTML like markup from lisp code. It can be found on http://common-lisp.net/project/bese/yaclml.html. You will need the latest version: darcs get http://common-lisp.net/project/bese/repos/yaclml/ Daily snapshots are available at: http://common-lisp.net/project/bese/tarballs/yaclml-latest.tar.gz *** parenscript - ucw version Parenscript is a javascript compiler. You will need to get the latest development version: darcs get http://common-lisp.net/project/ucw/repos/parenscript/ Daily snapshots are available at: http://common-lisp.net/project/ucw/tarballs/parenscript-latest.tar.gz *** iterate Iterate is an iteration construct for Common Lisp. It can be found on http://common-lisp.net/project/iterate/ Download link: http://common-lisp.net/project/iterate/releases/iterate-current.tar.gz *** rfc2388 - ucw version Rfc2388 is a lisp implemantation of RFC 2388, which is used to process form data posted with HTTP POST method using enctype "multipart/form-data". UCW uses its own fork of rfc2388. You can get the latest code from the darcs repository located at http://common-lisp.net/project/ucw/repos/rfc2388: darcs get http://common-lisp.net/project/ucw/repos/rfc2388/ Daily snapshots are available at http://common-lisp.net/project/ucw/tarballs/rfc2388-latest.tar.gz *** rfc2109 - ucw version Rfc2109 is the lisp implementation of the cookie protocol. You can get it at: http://common-lisp.net/project/rfc2109/: darcs get http://common-lisp.net/project/rfc2109/rfc2109 Daily snapshots are available at http://www.common-lisp.net/project/rfc2109/release/rfc2109-latest.tar.gz *** split-sequence splits sequences info: http://www.cliki.net/SPLIT-SEQUENCE download: http://ww.telent.net/cclan/split-sequence.tar.gz (you might have to select a mirror first) If said link is dead, go to http://ww.telent.net/cclan-choose-mirror to delete your CCLAN-SITE cookie and choose another mirror. At least some of them are definitely working. *** SLIME The Superior Lisp Interaction Mode for Emacs. Download and install the latest CVS version of SLIME from http://common-lisp.net/project/slime. To checkout from CVS you must first login to the repository: export CVSROOT=:pserver:anonymous@common-lisp.net:/project/slime/cvsroot cvs login Enter anonymous when prompted for the password. You can then check out the latest version with: cvs checkout slime It's swank you want to add to your asd systems dir. To solve a current problem with cl-launch you might want to overwrite your swank.asd file with this one: http://cl-debian.alioth.debian.org/repository/pvaneynd/slime/debian/swank.asd Check the description on cl-launch to see why. *** cl-l10n Localization and internationalization library: http://common-lisp.net/project/cl-l10n/ Get the latest version with: darcs get http://www.common-lisp.net/project/cl-l10n/repos/cl-l10n *** cl-ppcre Edi Weitz's regular expression library: http://www.weitz.de/cl-ppcre/. Download the latest version: http://weitz.de/files/cl-ppcre.tar.gz *** trivial-sockets Networking library to create small server applications. Download the latest version from: http://ww.telent.net/cclan/trivial-sockets.tar.gz (you might have to select a mirror first. If said link is dead, go to http://ww.telent.net/cclan-choose-mirror to delete your CCLAN-SITE cookie and choose another mirror. At least some of them are definitely working. Or use asdf install. *** net.uri/PURI All of the backends (except araneida) depend on Franz's open-source net.uri library. It only works on Allegro but Kevin Rosenberg has made a portable version called PURI. For allegro users, NET.URI can be downloaded from here (it may be included in your version of acl): http://opensource.franz.com/uri/index.html If you're not using allegro you'll need puri which can be downloaded from http://puri.b9.com/download.html *** cl-fad A portable pathname library based on code from Peter Seibels book Practical Common Lisp. info: http://www.cliki.net/CL-FAD download: http://weitz.de/files/cl-fad.tar.gz *** net-telent-date A library consisting mostly of the time parsing routines from CMUCL that were removed from SBCL. Additionally it has a universal-time to rfc822 date convertor. info: http://www.cliki.net/net-telent-date download: http://ww.telent.net/cclan/net-telent-date.tar.gz *** cl-launch A bash script to make your Lisp software easily invokable from the shell command-line. info: http://www.cliki.net/cl-launch download page: http://fare.tunes.org/files/cl-launch/ Download and add to your shell executable search path so ucw can find it while loading. Cl-launch can either be called cl-launch or cl-launch.sh, ucw will check for both. Also cl-launch depends on swank behavior other than that of the current cvs code, at least under sbcl, eg via swank-loader it looks for files under the load path, which is not what you want if you made a symbolic link to another dir. The easiest way to get around this problem is to overwrite your swank.asd file (in the slime directory root), with this one: http://cl-debian.alioth.debian.org/repository/pvaneynd/slime/debian/swank.asd If you are a Debian user and you got slime/swank through apt-get, you already have this version on your harddisk/pendrive. The downside might be that swank won't work anymore as it should, although i haven't heard anyone about this yet. Another approach is to copy your swank*.fasls from the slime directory to the relevant shadow directory under ~/.cache/... Check this thread for more info: http://common-lisp.net/pipermail/slime-devel/2006-March/004664.html Yes, ucw is bleeding edge ;) *** detachtty - ucw version A screen-like detachment tool to be able to detach and re-attach the lisp server from and to a console. Ucw uses a custom detachtty version, e.g. detachtty-9 plus a patch by Kevin Rosenberg. It accepts an eval argument when invoking a lisp, with obvious benefits. Get it through Darcs: darcs get http://common-lisp.net/project/bese/repos/detachtty/ Go to the directory root and compile and install: make make install ** the backend choose one of mod_lisp/mod_lisp2, araneida, aserve/paserve or the built-in httpd server *** mod_lisp/mod_lisp2 for apache You can choose between apache 1 and 2. First of course you have to have a Apache web server up and runnnig; then you have to add the mod-lisp module by Marc Battyani which you find at http://www.fractalconcept.com/asp/html/mod_lisp.html First download the mod_lisp c file. Watch out, don't follow the logic of the website. Except for the windows version the info is outdated concerning the apache 1 version and info about apache 2 is non-existent. Go to subversion from the download page or click the links below: * apache 1 .c file - mod_lisp.c * apache 2 .c file - mod_lisp2.c use the command: apxs -i -c mod_lisp.c or apxs2 -i -c mod_lisp2.c for respectively apache 1 or 2. This will install the module in the appropriate apache directory. Then add the following lines to 'httpd.conf' in your apache configuration directory for both apache 1 and 2. Just be sure to change mod_lisp.so to mod_lisp2.so for apache 2: # This goes near the other LoadModlue directives LoadModule lisp_module modules/mod_lisp.so LispServer 127.0.0.1 3001 ucwSetHandler lisp-handler This means that ucw INTERNALLY talks to apache on port 3001 at the internet address 127.0.0.1 (so in this case your localhost). The locationmatch part redirects all traffic from (in this case) 127.0.0.1 with prefix "/path/" and files ending on .ucw to ucw. So http://127.0.0.1/path/something.ucw as well as http://127.0.0.1/path/anotherpath/somethingelse.ucw will be redirected, but not http://127.0.0.1/somethingfaulty.ucw or http://127.0.0.1/path/somethingfaulty.html. *** allegroserve or portableaserve Should you want to use the aserve backend you will need to download and install either the AllegroServe if you use acl or portableaserve for any other. AllegroServe doesn't seem to have an asdf file, you're going to have to load it manually or however AllegroServe handles it's own files. Portableaserve does however. AllegroServe can be downloaded from here (it may be included in your version of acl): http://opensource.franz.com/aserve/ portableaserve is hosted on sourceforge: http://portableaserve.sf.net portableaserve download: http://constantly.at/lisp/aserve.tar.gz To use portableaserve you'll also need the Allegro Common Lisp compatibility package (acl-compat). It's part of portableaserve and so it's home is also the before-mentioned sourceforge site. acl-compat download: http://constantly.at/lisp/acl-compat.tar.gz *** araneida Should you want to use the araneida backend you will need to download araneida. Get the latest version just to be on the safe side. Originally araneida was meant to live behind apache and it can of course still be configured as such. Explaining this is beyond the scope of this document but have a look at this site for more info. info: http://www.cliki.net/Araneida} download: http://common-lisp.net/project/araneida/release/araneida-latest.tar.gz or use darcs, although the connection seems a bit slow: darcs get http://verisons.telent.net/araneida/ *** httpd Ucw's in-house server. It's a simple server bundled with ucw. Nice for testing. ** Setting up ASDF UCW, and all the libraries it depends on, use ASDF for loading and compiling the code in the proper order. The first thing you must do is make sure that ASDF can find the system definitions for ucw and all the related libraries. ASDF searches for system definition files by looking in the directories in the list asdf:*central-registry*. To make a system definition visible you can either push the name of the directory which contains the .asd file onto the list asdf:*central-registry* or you can create a symlink from the .asd file to a directory which is already in the list asdf:*central-registry*. For example: on some linux installations the directory /usr/share/common-lisp/systems is in the list asdf:*central-registry*, by creating a symlink from a particular .asd file to /usr/share/common-lisp/systems (ln -s /path/to/library/lib.asd /usr/share/common-lisp/systems) we guarentee that (adsf:oos 'asdf:load-op :lib) will Just Work(TM). ** Testing UCW When you have set up all your dependencies correctly, you can test ucw by first creating either /etc/ucw/applications.d or /path/to/home/.ucw/applications.d, firing up your favorite distribution and type: (load "/path/to/ucw/etc/start.lisp") If all went well, you have started ucw with the httpd backend. Surf to \link{\href{http://127.0.0.1:8080}\text{http://127.0.0.1:8080}} and again if all went well you should see the example page. That's it! Start hacking!! To run ucw detached use the ucwctl script under /path/to/ucw/bin/ For an explanation of it's configuration check the ucw-intro html under /docs/ucw-intro. * Documentation Check the docs section for various introductions, tutorials, quickstarts and code examples. The API documentation is, as much as possible, contained in the docstrings of the various classes, methods, and packages which make up UCW itself. Using a good inspector (SLIME's inspector for example) you should be able to easily navigate and browse the API. * Developing UCW Eventually (probably too soon) you'll discover a bug or a missing feature in UCW and want to fix it. The first thing to do is to send an email to bese-devel@common-lisp.net and make sure it's a real bug or missing feature (and not a user or documentation error). If you do have a bug fix or feature improvement you'd like to submit there are two ways to go about sending the patch: if the patch is relativly small than just send a plain old diff or a tar ball of the arch changeset to the list. If it is bigger, send it to ucw_public and eventually it will find it's way to ucw_dev. If the change is bigger than bigger or requires multiple patches over time then branch off of ucw_dev and publish your repository with your changes. ** Reporting BUGS The simplest thing you can is just send an email to bese-devel@common-lisp.net. We keep a collection of all the known bugs and issues as text files in the directory docs/issues. *** Using darcs **** Creating a changeset # darcs send or, if you don't have sendmail properly set up; # darcs send -o CHANGESET Then just mail the file CHANGESET to bese-devel@common-lisp.net **** Branching from ucw--dev You already have a branch. :)
Next: Modules, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The ucw system: | ||
• The ucw-core system: |
Next: The ucw-core system, Previous: Systems, Up: Systems [Contents][Index]
Drew Crampsie <drewc@tech.coop>
Marco Baringer <mb@bese.it>
BSD (sans advertising clause)
UncommonWeb : Standard Components
Containts a simple, standard component library.
0.9
ucw.asd (file)
src (module)
Previous: The ucw system, Up: Systems [Contents][Index]
Marco Baringer <mb@bese.it>
BSD (sans advertising clause)
Core features of UnCommon Web
Contains the base features essential for a useful Read Eval Render Loop (RERL).
0.9
ucw-core.asd (file)
src (module)
Modules are listed depth-first from the system components tree.
Next: The ucw/src/ucw-standard module, Previous: Modules, Up: Modules [Contents][Index]
ucw (system)
src/
ucw-standard (module)
Next: The ucw/src/ucw-standard/application-mixins module, Previous: The ucw/src module, Up: Modules [Contents][Index]
src (module)
src/ucw-standard/
Next: The ucw/src/ucw-standard/components module, Previous: The ucw/src/ucw-standard module, Up: Modules [Contents][Index]
ucw-standard (module)
src/ucw-standard/application-mixins/
Next: The ucw/src/ucw-standard/yaclml module, Previous: The ucw/src/ucw-standard/application-mixins module, Up: Modules [Contents][Index]
standard-components.lisp (file)
ucw-standard (module)
src/ucw-standard/components/
Next: The ucw-core/src module, Previous: The ucw/src/ucw-standard/components module, Up: Modules [Contents][Index]
standard-tags.lisp (file)
ucw-standard (module)
src/ucw-standard/yaclml/
tal.lisp (file)
Next: The ucw-core/src/backend module, Previous: The ucw/src/ucw-standard/yaclml module, Up: Modules [Contents][Index]
ucw-core (system)
src/
Next: The ucw-core/src/rerl module, Previous: The ucw-core/src module, Up: Modules [Contents][Index]
src (module)
src/backend/
accept-headers.lisp (file)
Next: The ucw-core/src/rerl/standard-component module, Previous: The ucw-core/src/backend module, Up: Modules [Contents][Index]
src (module)
src/rerl/
Next: The ucw-core/src/core-components module, Previous: The ucw-core/src/rerl module, Up: Modules [Contents][Index]
rerl (module)
src/rerl/standard-component/
Previous: The ucw-core/src/rerl/standard-component module, Up: Modules [Contents][Index]
rerl (module)
src (module)
src/core-components/
window.lisp (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files: |
Next: The ucw-core<dot>asd file, Previous: Lisp files, Up: Lisp files [Contents][Index]
ucw.asd
ucw (system)
Next: The ucw/src/ucw-standard/standard-package<dot>lisp file, Previous: The ucw<dot>asd file, Up: Lisp files [Contents][Index]
ucw-core.asd
ucw-core (system)
Next: The ucw/src/ucw-standard/standard-action<dot>lisp file, Previous: The ucw-core<dot>asd file, Up: Lisp files [Contents][Index]
ucw-standard (module)
src/ucw-standard/standard-package.lisp
Next: The ucw/src/ucw-standard/standard-dispatchers<dot>lisp file, Previous: The ucw/src/ucw-standard/standard-package<dot>lisp file, Up: Lisp files [Contents][Index]
standard-package.lisp (file)
ucw-standard (module)
src/ucw-standard/standard-action.lisp
Next: The ucw/src/ucw-standard/standard-tags<dot>lisp file, Previous: The ucw/src/ucw-standard/standard-action<dot>lisp file, Up: Lisp files [Contents][Index]
standard-package.lisp (file)
ucw-standard (module)
src/ucw-standard/standard-dispatchers.lisp
Next: The ucw/src/ucw-standard/standard-components<dot>lisp file, Previous: The ucw/src/ucw-standard/standard-dispatchers<dot>lisp file, Up: Lisp files [Contents][Index]
standard-action.lisp (file)
ucw-standard (module)
src/ucw-standard/standard-tags.lisp
Next: The ucw/src/ucw-standard/file-serve<dot>lisp file, Previous: The ucw/src/ucw-standard/standard-tags<dot>lisp file, Up: Lisp files [Contents][Index]
standard-tags.lisp (file)
ucw-standard (module)
src/ucw-standard/standard-components.lisp
Next: The ucw/src/ucw-standard/application-mixins/cookie-session-application<dot>lisp file, Previous: The ucw/src/ucw-standard/standard-components<dot>lisp file, Up: Lisp files [Contents][Index]
standard-package.lisp (file)
ucw-standard (module)
src/ucw-standard/file-serve.lisp
Next: The ucw/src/ucw-standard/application-mixins/secure-application<dot>lisp file, Previous: The ucw/src/ucw-standard/file-serve<dot>lisp file, Up: Lisp files [Contents][Index]
application-mixins (module)
src/ucw-standard/application-mixins/cookie-session-application.lisp
Next: The ucw/src/ucw-standard/application-mixins/static-roots-application<dot>lisp file, Previous: The ucw/src/ucw-standard/application-mixins/cookie-session-application<dot>lisp file, Up: Lisp files [Contents][Index]
application-mixins (module)
src/ucw-standard/application-mixins/secure-application.lisp
Next: The ucw/src/ucw-standard/application-mixins/tal-application<dot>lisp file, Previous: The ucw/src/ucw-standard/application-mixins/secure-application<dot>lisp file, Up: Lisp files [Contents][Index]
application-mixins (module)
src/ucw-standard/application-mixins/static-roots-application.lisp
Next: The ucw/src/ucw-standard/application-mixins/transactional-application<dot>lisp file, Previous: The ucw/src/ucw-standard/application-mixins/static-roots-application<dot>lisp file, Up: Lisp files [Contents][Index]
application-mixins (module)
src/ucw-standard/application-mixins/tal-application.lisp
tal-application-mixin (class)
Next: The ucw/src/ucw-standard/components/html-element<dot>lisp file, Previous: The ucw/src/ucw-standard/application-mixins/tal-application<dot>lisp file, Up: Lisp files [Contents][Index]
application-mixins (module)
src/ucw-standard/application-mixins/transactional-application.lisp
Next: The ucw/src/ucw-standard/components/cached<dot>lisp file, Previous: The ucw/src/ucw-standard/application-mixins/transactional-application<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/html-element.lisp
*xml-id-counter* (special variable)
Next: The ucw/src/ucw-standard/components/container<dot>lisp file, Previous: The ucw/src/ucw-standard/components/html-element<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/cached.lisp
Next: The ucw/src/ucw-standard/components/error<dot>lisp file, Previous: The ucw/src/ucw-standard/components/cached<dot>lisp file, Up: Lisp files [Contents][Index]
html-element.lisp (file)
components (module)
src/ucw-standard/components/container.lisp
Next: The ucw/src/ucw-standard/components/option-dialog<dot>lisp file, Previous: The ucw/src/ucw-standard/components/container<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/error.lisp
Next: The ucw/src/ucw-standard/components/paged-list<dot>lisp file, Previous: The ucw/src/ucw-standard/components/error<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/option-dialog.lisp
Next: The ucw/src/ucw-standard/components/redirect<dot>lisp file, Previous: The ucw/src/ucw-standard/components/option-dialog<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/paged-list.lisp
Next: The ucw/src/ucw-standard/components/tal<dot>lisp file, Previous: The ucw/src/ucw-standard/components/paged-list<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/redirect.lisp
render (method)
Next: The ucw/src/ucw-standard/components/task<dot>lisp file, Previous: The ucw/src/ucw-standard/components/redirect<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/tal.lisp
Next: The ucw/src/ucw-standard/components/user-login<dot>lisp file, Previous: The ucw/src/ucw-standard/components/tal<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/task.lisp
Next: The ucw/src/ucw-standard/yaclml/tal<dot>lisp file, Previous: The ucw/src/ucw-standard/components/task<dot>lisp file, Up: Lisp files [Contents][Index]
components (module)
src/ucw-standard/components/user-login.lisp
Next: The ucw-core/src/core-package<dot>lisp file, Previous: The ucw/src/ucw-standard/components/user-login<dot>lisp file, Up: Lisp files [Contents][Index]
yaclml (module)
src/ucw-standard/yaclml/tal.lisp
render-template (method)
Next: The ucw-core/src/helpers<dot>lisp file, Previous: The ucw/src/ucw-standard/yaclml/tal<dot>lisp file, Up: Lisp files [Contents][Index]
src (module)
src/core-package.lisp
Next: The ucw-core/src/loggers<dot>lisp file, Previous: The ucw-core/src/core-package<dot>lisp file, Up: Lisp files [Contents][Index]
src (module)
src/helpers.lisp
Next: The ucw-core/src/vars<dot>lisp file, Previous: The ucw-core/src/helpers<dot>lisp file, Up: Lisp files [Contents][Index]
src (module)
src/loggers.lisp
defucwlogger (macro)
Next: The ucw-core/src/control<dot>lisp file, Previous: The ucw-core/src/loggers<dot>lisp file, Up: Lisp files [Contents][Index]
core-package.lisp (file)
src (module)
src/vars.lisp
Next: The ucw-core/src/backend/accept-headers<dot>lisp file, Previous: The ucw-core/src/vars<dot>lisp file, Up: Lisp files [Contents][Index]
src (module)
src/control.lisp
Next: The ucw-core/src/rerl/protocol<dot>lisp file, Previous: The ucw-core/src/control<dot>lisp file, Up: Lisp files [Contents][Index]
backend (module)
src/backend/accept-headers.lisp
parse-accept-language-header (function)
Next: The ucw-core/src/rerl/rerl-variables<dot>lisp file, Previous: The ucw-core/src/backend/accept-headers<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/protocol.lisp
Next: The ucw-core/src/rerl/rerl-utils<dot>lisp file, Previous: The ucw-core/src/rerl/protocol<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/rerl-variables.lisp
Next: The ucw-core/src/rerl/conditions<dot>lisp file, Previous: The ucw-core/src/rerl/rerl-variables<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/rerl-utils.lisp
Next: The ucw-core/src/rerl/backtracking<dot>lisp file, Previous: The ucw-core/src/rerl/rerl-utils<dot>lisp file, Up: Lisp files [Contents][Index]
protocol.lisp (file)
rerl (module)
src/rerl/conditions.lisp
Next: The ucw-core/src/rerl/request-loop-error<dot>lisp file, Previous: The ucw-core/src/rerl/conditions<dot>lisp file, Up: Lisp files [Contents][Index]
basic-classes.lisp (file)
rerl (module)
src/rerl/backtracking.lisp
Next: The ucw-core/src/rerl/basic-classes<dot>lisp file, Previous: The ucw-core/src/rerl/backtracking<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/request-loop-error.lisp
Next: The ucw-core/src/rerl/basic-action<dot>lisp file, Previous: The ucw-core/src/rerl/request-loop-error<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/basic-classes.lisp
Next: The ucw-core/src/rerl/basic-application<dot>lisp file, Previous: The ucw-core/src/rerl/basic-classes<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/basic-action.lisp
Next: The ucw-core/src/rerl/standard-component/standard-component<dot>lisp file, Previous: The ucw-core/src/rerl/basic-action<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/basic-application.lisp
Next: The ucw-core/src/rerl/standard-component/control-flow<dot>lisp file, Previous: The ucw-core/src/rerl/basic-application<dot>lisp file, Up: Lisp files [Contents][Index]
standard-component (module)
src/rerl/standard-component/standard-component.lisp
Next: The ucw-core/src/rerl/standard-component/standard-component-class<dot>lisp file, Previous: The ucw-core/src/rerl/standard-component/standard-component<dot>lisp file, Up: Lisp files [Contents][Index]
standard-component.lisp (file)
standard-component (module)
src/rerl/standard-component/control-flow.lisp
Next: The ucw-core/src/rerl/standard-component/transactions<dot>lisp file, Previous: The ucw-core/src/rerl/standard-component/control-flow<dot>lisp file, Up: Lisp files [Contents][Index]
standard-component (module)
src/rerl/standard-component/standard-component-class.lisp
standard-component-class (class)
Next: The ucw-core/src/rerl/basic-dispatchers<dot>lisp file, Previous: The ucw-core/src/rerl/standard-component/standard-component-class<dot>lisp file, Up: Lisp files [Contents][Index]
standard-component.lisp (file)
standard-component (module)
src/rerl/standard-component/transactions.lisp
Next: The ucw-core/src/rerl/standard-request-context<dot>lisp file, Previous: The ucw-core/src/rerl/standard-component/transactions<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/basic-dispatchers.lisp
Next: The ucw-core/src/rerl/standard-server<dot>lisp file, Previous: The ucw-core/src/rerl/basic-dispatchers<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/standard-request-context.lisp
Next: The ucw-core/src/rerl/basic-session<dot>lisp file, Previous: The ucw-core/src/rerl/standard-request-context<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/standard-server.lisp
Next: The ucw-core/src/rerl/standard-session-frame<dot>lisp file, Previous: The ucw-core/src/rerl/standard-server<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/basic-session.lisp
Next: The ucw-core/src/core-components/window<dot>lisp file, Previous: The ucw-core/src/rerl/basic-session<dot>lisp file, Up: Lisp files [Contents][Index]
rerl (module)
src/rerl/standard-session-frame.lisp
Previous: The ucw-core/src/rerl/standard-session-frame<dot>lisp file, Up: Lisp files [Contents][Index]
core-components (module)
src/core-components/window.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
Next: The ucw-user package, Previous: Packages, Up: Packages [Contents][Index]
ucw.asd
ucw.system
Next: The ucw-tags package, Previous: The it<dot>bese<dot>ucw<dot>system package, Up: Packages [Contents][Index]
standard-package.lisp (file)
Next: The ucw-standard package, Previous: The ucw-user package, Up: Packages [Contents][Index]
standard-package.lisp (file)
<ucw
Next: The it<dot>bese<dot>ucw<dot>core<dot>generated package, Previous: The ucw-tags package, Up: Packages [Contents][Index]
standard-package.lisp (file)
ucw
Next: The it<dot>bese<dot>ucw<dot>core package, Previous: The ucw-standard package, Up: Packages [Contents][Index]
core-package.lisp (file)
Next: The it<dot>bese<dot>ucw<dot>loggers package, Previous: The it<dot>bese<dot>ucw<dot>core<dot>generated package, Up: Packages [Contents][Index]
core-package.lisp (file)
ucw-core
Previous: The it<dot>bese<dot>ucw<dot>core package, Up: Packages [Contents][Index]
core-package.lisp (file)
ucw-log
defucwlogger (macro)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions: | ||
• Internal definitions: |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported special variables: | ||
• Exported symbol macros: | ||
• Exported macros: | ||
• Exported functions: | ||
• Exported generic functions: | ||
• Exported classes: |
Next: Exported symbol macros, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
The current request-context object.
protocol.lisp (file)
When rendering this is bound to the current component (the second argument passed to render).
protocol.lisp (file)
The default, system wide, value for debug-on-error. Applications may override this.
vars.lisp (file)
Default action class for MAKE-ACTION
vars.lisp (file)
The application object to use when none is explicitly specified.
protocol.lisp (file)
The server object to use when none is explicitly specified.
protocol.lisp (file)
standard-dispatchers.lisp (file)
standard-dispatchers.lisp (file)
When rendering, should we put links next to components that will bring up the inspector?
vars.lisp (file)
When T, load the UCW lisp files so that it will be used in a production system.
This means that debug-only blocks are skipped and various variables are initialized accordingly.
ucw-core.asd
While uploading a file the size of the request may go higher then this in which case UCW signals an error. See also the REQUEST-CONTENT-LENGTH-LIMIT slot of BASIC-BACKEND.
vars.lisp (file)
protocol.lisp (file)
standard-action.lisp (file)
Each element of this list is evaluated and should return an application instance. (A CLOS object instance evaluates to itself, so you are free to provide either app instances or expressions evaluating to app instances.)
vars.lisp (file)
vars.lisp (file)
vars.lisp (file)
vars.lisp (file)
vars.lisp (file)
UCW logger messages below this level will not be compiled into the code, so they will have no performance penalty.
vars.lisp (file)
This is the default runtime log level for the UCW loggers.
vars.lisp (file)
vars.lisp (file)
vars.lisp (file)
ucw-core.asd
The asdf systems listed here will be loaded as part of the configuration process.
vars.lisp (file)
standard-action.lisp (file)
rerl-variables.lisp (file)
rerl-variables.lisp (file)
rerl-variables.lisp (file)
Next: Exported macros, Previous: Exported special variables, Up: Exported definitions [Contents][Index]
vars.lisp (file)
#a((12) base-char . "202 accepted")
vars.lisp (file)
#a((26) base-char . "401 authorization required")
vars.lisp (file)
#a((15) base-char . "502 bad gateway")
vars.lisp (file)
#a((15) base-char . "400 bad request")
vars.lisp (file)
#a((12) base-char . "409 conflict")
vars.lisp (file)
#a((12) base-char . "100 continue")
vars.lisp (file)
#a((11) base-char . "201 created")
vars.lisp (file)
#a((22) base-char . "417 expectation failed")
vars.lisp (file)
#a((21) base-char . "424 failed dependency")
vars.lisp (file)
#a((13) base-char . "403 forbidden")
vars.lisp (file)
#a((20) base-char . "504 gateway time-out")
vars.lisp (file)
#a((8) base-char . "410 gone")
vars.lisp (file)
#a((25) base-char . "500 internal server error")
vars.lisp (file)
#a((19) base-char . "411 length required")
vars.lisp (file)
#a((22) base-char . "405 method not allowed")
vars.lisp (file)
#a((21) base-char . "301 moved permanently")
vars.lisp (file)
#a((21) base-char . "302 moved temporarily")
vars.lisp (file)
#a((16) base-char . "207 multi-status")
vars.lisp (file)
#a((20) base-char . "300 multiple choices")
vars.lisp (file)
#a((14) base-char . "204 no content")
vars.lisp (file)
#a((33) base-char . "203 non-authoritative information")
vars.lisp (file)
#a((18) base-char . "406 not acceptable")
vars.lisp (file)
#a((13) base-char . "404 not found")
vars.lisp (file)
#a((19) base-char . "501 not implemented")
vars.lisp (file)
#a((16) base-char . "304 not modified")
vars.lisp (file)
#a((6) base-char . "200 ok")
vars.lisp (file)
#a((19) base-char . "206 partial content")
vars.lisp (file)
#a((20) base-char . "402 payment required")
vars.lisp (file)
#a((23) base-char . "412 precondition failed")
vars.lisp (file)
#a((33) base-char . "407 proxy authentication required")
vars.lisp (file)
#a((28) base-char . "413 request entity too large")
vars.lisp (file)
#a((20) base-char . "408 request time-out")
vars.lisp (file)
#a((25) base-char . "414 request-uri too large")
vars.lisp (file)
#a((35) base-char . "416 requested range not satisfiable")
vars.lisp (file)
#a((17) base-char . "205 reset content")
vars.lisp (file)
#a((13) base-char . "303 see other")
vars.lisp (file)
#a((23) base-char . "503 service unavailable")
vars.lisp (file)
#a((23) base-char . "101 switching protocols")
vars.lisp (file)
#a((22) base-char . "307 temporary redirect")
vars.lisp (file)
#a((26) base-char . "415 unsupported media type")
vars.lisp (file)
#a((13) base-char . "305 use proxy")
vars.lisp (file)
#a((25) base-char . "505 version not supported")
vars.lisp (file)
"http://www.w3.org/1999/xhtml"
Next: Exported functions, Previous: Exported symbol macros, Up: Exported definitions [Contents][Index]
A Simple <:A which does not require javascript.
standard-tags.lisp (file)
standard-action.lisp (file)
Macro for defining a component class.
This macro is used to create component classes and provides
options for easily creating the methods which often accompany a
component definition.
NAME, SUPERS and SLOTS as treated as per defclass. The following
extra options are allowed:
(:ENTRY-POINT url (&key application class)) - Define an
entry-point on the url URL which simply calls an instance of
this component. Any request parameters passed to the entry-point
are used to initialize the slots in the component. This option
may appear multiple times.
(:DEFAULT-BACKTRACK function-designator) - Unless the slots
already have a :backtrack option FUNCTION-DESIGNATOR is
added. As with the ’regular’ :backtrack options if you pass T
here it is assumed to mean #’IDENTITY.
(:RENDER (&optional COMPONENT) &body BODY) - Generate a render
method specialized to COMPONENT. COMPONENT may be a symbol, in
which case the method will be specialized on the componnet
class. If COMPONNET is omited the component is bound to a
variable with the same name as the class.
(:ACTION &optional NAME) - Generate a defmethod/cc form named NAME (which defaults to the name of the component) which simply CALL’s this component class passing all the arguments passed to the action as initargs.
standard-component.lisp (file)
Define an entry point bound to the url URL of type CLASS.
URL must be a string which, when appended to APPLICATION’s
url-prefix, specifies the complete url for this entry
point. CLASS is a symbol naming the dispatcher class.
APPLICATION (evaluated) specifies the application object this
entry point will be attached to. If NIL *default-application*
will be used, otherwise it must be the name of an existing
application.
REQUEST-LAMBDA-LIST is a request lambda list as per
WITH-REQUEST-PARAMS.
The body of the entry-point is executed whenever the server
recieves a request for the specified url. The body can contain
calls to components but must not contain answer forms.
If the backend supports it then the url is
automatically registered with the backend, otherwise (mod_lisp)
developers must manually configure the backend.
basic-action.lisp (file)
A Simple form which does not require javascript.
standard-tags.lisp (file)
This macro handles a raw request. Will set the http cache control headers according to the supplied arguments, send the headers, execute the BODY and close the request. WITH-NETWORK-STREAM will be bound to the network stream unless it’s nil. When WITH-YACLML-STREAM is not nil the body will run inside a with-yaclml-stream block and after it finished it will be properly encoded and written into the network stream. Additionally if it is a symbol then it will be bound with that name.
basic-action.lisp (file)
standard-tags.lisp (file)
Create a new place around FORM.
backtracking.lisp (file)
Replacement for the standard OPTION tag, must be used with <UCW:SELECT tag. Unlike "regular" OPTION tags the :value attribute can be any lisp object (printable or not).
standard-tags.lisp (file)
option-dialog.lisp (file)
Makes a new action and registers it in FRAME. For more details see make-action.
standard-session-frame.lisp (file)
standard-tags.lisp (file)
standard-tags.lisp (file)
standard-tags.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
loggers.lisp (file)
rerl-utils.lisp (file)
rerl-utils.lisp (file)
Bind, according the REQUEST-LAMBDA-LIST the parameters in
REQUEST and execute BODY.
REQUEST-LAMBDA-LIST is a list of the form:
( [ ( symbol string ) | symbol ]
[ default-value [ supplied-symbol-name ]? ]? )
If the request contains a param (no distinction between GET and
POST params is made) named STRING (which defaults to the symbol
name of SYMBOL) the variable SYMBOL is bound to the associated
value (which is always a string) . If no parameter with that name
was passed SYMBOL will be bound to DEFAULT-VALUE and the variable
named SUPPLIED-SYMBOL-NAME will be bound to NIL.
NB: Parameter names are matched case insensitively.
basic-action.lisp (file)
Next: Exported generic functions, Previous: Exported macros, Up: Exported definitions [Contents][Index]
Calling it without arguments means a graceful abort, while providing a failure message means there was an error. An ajax request will for example show the FAILURE-MESSAGE in one way or another when provided.
basic-action.lisp (file)
Given an action returns an URL (as a string) which will call
the action lambda.
The COMPONENT parameter is passed directly to COMPUTE-URL, FRAME
is passed to REGISTER-ACTION. ACTION may be a lambda
or an action object made with MAKE-ACTION factory methods.
basic-action.lisp (file)
helpers.lisp (file)
standard-action.lisp (file)
helpers.lisp (file)
standard-action.lisp (file)
Sets up a proper request-handling environment around THUNK
standard-server.lisp (file)
standard-server.lisp (file)
standard-action.lisp (file)
standard-session-frame.lisp (file)
Creates and returns a UCW server according to SERVER-CLASS, HOST and
PORT. Affects *DEFAULT-SERVER*.
BACKEND is a list of (BACKEND-TYPE &rest INITARGS). BACKEND-TYPE
may be :HTTPD, :MOD-LISP, an existing
backend, an existing UCW server backend or :DEFAULT in which case
it attempts to return a sane default from the UCW backends loaded
and available, or any other value for which a valid MAKE-BACKEND
method has been defined. INITARGS will be passed, unmodified, to
MAKE-BACKEND.
APPLICATIONS is a list of defined applications to be loaded into the
server.
Logs are generated in verbosity defined by LOG-LEVEL and directed to LOG-ROOT-DIRECTORY if defined.
control.lisp (file)
vars.lisp (file)
standard-component.lisp (file)
Convenience wrapper around session.value.
SESSION defaults to the current session.
protocol.lisp (file)
(setf get-session-value) (function)
Convience wrapper around (setf session.value).
SESSION defaults to the current session.
protocol.lisp (file)
get-session-value (function)
basic-application.lisp (file)
standard-action.lisp (file)
Makes a new unregistered action.
basic-action.lisp (file)
helpers.lisp (file)
basic-session.lisp (file)
helpers.lisp (file)
helpers.lisp (file)
Returns the part of the context’s request’s query-path after the context’s application’s url-prefix. NB: The returned value shares structure with the query-path. NB: We assume the proper application has already been placed in CONTEXT.
Makes a new callback and registers it in FRAME. For more details see make-callback.
standard-session-frame.lisp (file)
basic-application.lisp (file)
request-loop-error.lisp (file)
file-serve.lisp (file)
Write SEQUENCE into the network stream and clean up the request. SEQUENCE may be a string or a byte vector. When it’s a string it will be encoded according to what the (encoding response) protocol answers.
file-serve.lisp (file)
file-serve.lisp (file)
secure-application.lisp (file)
secure-application.lisp (file)
(setf session-user) (setf expander)
secure-application.lisp (file)
session-user (function)
loggers.lisp (file)
Generates a unique DOM id
html-element.lisp (file)
Next: Exported classes, Previous: Exported functions, Up: Exported definitions [Contents][Index]
Isolated actions are invalidated after the first call.
basic-classes.lisp (file)
Add component at the end of the component list.
container.lisp (file)
Return control to CALLEE’s CALLER, continuing
with the value VALUE.
answer-component can be called by user code though it will generally be called through the UCW:ANSWER function.
protocol.lisp (file)
control-flow.lisp (file)
Check user credentials to call TO by FROM in APPLICATION.
secure-application.lisp (file)
Validate PASSWORD against USER for APPLICATION.
secure-application.lisp (file)
Find USER by USERNAME for APPLICATION.
secure-application.lisp (file)
Default charset for sent text/html documents.
basic-classes.lisp (file)
A list of request
dispatchers. The user supplied list of dispatchers is extended
with other dispatchers that are required for UCW to function
properly (action-dispatcher, a parenscript-dispatcher, etc). If
you want full control over the active dispatchers use the (setf
application.dispatchers) accessor or, if you want control over
the order of the dispathcers, (slot-value instance
’dispatchers).
basic-classes.lisp (file)
basic-application.lisp (file)
automatically generated reader method
secure-application.lisp (file)
automatically generated writer method
secure-application.lisp (file)
automatically generated reader method
basic-classes.lisp (file)
automatically generated writer method
basic-classes.lisp (file)
A list of (URL-subdir . pathname)
pairs to use when looking for static files. This follows
standard CL pathname syntax i.e. you must include a
trailing / in both the URL-subdir and pathname.
Returns the url prefix (a string) for APPLICATION.
The URL prefix is that string which, when used as the prefix of an incoming http query path, identifies an application.
protocol.lisp (file)
(setf application.url-prefix) (generic function)
A string specifying the
start (prefix) of all the urls this app should handle.
This value is used by the standard-server to decide what app a particular request is aimed at and for generating links to actions within the app.
basic-classes.lisp (file)
application.url-prefix (generic function)
A string specifying the
start (prefix) of all the urls this app should handle.
This value is used by the standard-server to decide what app a particular request is aimed at and for generating links to actions within the app.
basic-classes.lisp (file)
backtracking.lisp (file)
backtracking.lisp (file)
This protocol is started when we are ready to call the action.
If the action was found to be valid then the default implementation simply funcalls
the action wrapped in an error handler.
protocol.lisp (file)
basic-action.lisp (file)
basic-action.lisp (file)
The base method simply funcalls the action.
basic-action.lisp (file)
Install an error handler that redirects all errors to the HANDLE-TOPLEVEL-CONDITION protocol.
basic-action.lisp (file)
Call all the callbacks in REQUEST for FRAME.
Methods defined on this generic function must be built up from using map-parameters (part of the backend protocol). Return nil iff there were no callbacks executed.
protocol.lisp (file)
basic-action.lisp (file)
Execute all the callback lambda in CONTEXT’s request.
Simply goes through the request’s params and, for every param
which isn’t +action-parameter-name+, +frame-parameter-name+ or
+session-parameter-name+, looks up and call the associated lambda
in the current frame. Makes sure dependent callbacks are executed after
their dependencies.
standard-session-frame.lisp (file)
Transfer control from the component CALLER, to
the component CALLEE.
CALLEE should replace CALLER in the user interface (by setting
itself in CALLER’s place). CALLEE can return control to CALLER by
calling answer-component.
call-component can be called by user code even though it will generally be called through the UCW:CALL function.
protocol.lisp (file)
cc-standard (long method combination)
secure-application.lisp (file)
Passes control to the TO when there is no current (FROM) component. This method is called in dispatchers, actions should always have a FROM component.
control-flow.lisp (file)
Transfer control from FROM to the component TO.
This method grabs the current continuation (and so doesn’t return
normally) passes it to TO and puts TO in FROM’s place (by
modifying FROM’s component.place).
This method does not return normally but simply stops the execution of the current action and returns when TO answers.
control-flow.lisp (file)
protocol.lisp (file)
basic-action.lisp (file)
user-login.lisp (file)
cc-standard (long method combination)
Return the children of a component.
standard-component.lisp (file)
container.lisp (file)
Find all children components of the given components.
This will only return children components that were declared on the class
as a component and have components in those slots.