{"id":17166759,"url":"https://github.com/willf/a-simple-defsystem","last_synced_at":"2026-01-05T20:03:29.304Z","repository":{"id":3734733,"uuid":"4808525","full_name":"willf/a-simple-defsystem","owner":"willf","description":"A simple defsystem","archived":false,"fork":false,"pushed_at":"2012-06-27T13:32:43.000Z","size":100,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T12:52:23.695Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willf.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-06-27T13:22:34.000Z","updated_at":"2018-08-29T20:55:53.000Z","dependencies_parsed_at":"2022-09-16T02:30:49.116Z","dependency_job_id":null,"html_url":"https://github.com/willf/a-simple-defsystem","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willf%2Fa-simple-defsystem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willf%2Fa-simple-defsystem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willf%2Fa-simple-defsystem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willf%2Fa-simple-defsystem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willf","download_url":"https://codeload.github.com/willf/a-simple-defsystem/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245325221,"owners_count":20596818,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T23:06:33.965Z","updated_at":"2026-01-05T20:03:29.230Z","avatar_url":"https://github.com/willf.png","language":"Common Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":";; DEFINE-SYSTEM:\n;; \n;; a function (not a macro!) for defining systems:\n;; \n;; (ASD:DEFINE-SYSTEM name\n;;   :HOME-DIRECTORY directory \n;;   :DIRECTORY directory\n;;   :MODULES list-of-modules\n;;   :USE-BIN-DIR t or nil (default: T)\n;;   :PACKAGE package (default: *package*)\n;;    )\n;;\n;; \n;; The combination of the HOME-DIRECTORY and the DIRECTORY\n;; form the \"root\" of the system. Either or both of these\n;; can be used. The function (THIS-FILES-DIRECTORY) can\n;; be used to determine a system definition file's directory.\n;; To be portable, the HOME-DIRECTORY and DIRECTORY should be\n;; in list format (:ABSOLUTE .. ) or (:RELATIVE ...). If\n;; both HOME-DIRECTORY and DIRECTORY are defined, then the\n;; DIRECTORY should be RELATIVE to the HOME-DIRECTORY. The home\n;; directory can be overridden in the LOAD-SYSTEM, COMPILE-SYSTEM,\n;; etc. forms.\n;;\n;;A module is one of the following:\n;;\n;;  a file name with no extension. File names with extensions\n;;    are not guaranteed to work.\n;;    in which case the file is acted upon (ie, compiled, etc)\n;;\n;;  a file specification with the syntax\n;;    (:FILE :NAME name :TYPE type :DIRECTORY dir)\n;;    :TYPE and :DIRECTORY are optional. If :DIRECTORY is specified it\n;;    should be a 'relative directory list,' that is, of the form\n;;    '(:RELATIVE ...).  The file specification is merged with the root\n;;    directory of the system.  The file is acted upon (ie, compiled, etc);\n;; \n;;  a system name with the syntax:\n;;    (:SYSTEM name)\n;;    in which case the submodules are acted upon;\n;; \n;;  a system location\n;;    (:SYSTEM name location)\n;;    in which case the file at location is loaded, and then the system is\n;;    acted upon. The location has to have the same syntax as the file\n;;    specification described above;\n;;\n;;  a conditional module list\n;;    (name module+)\n;;    in which name is the name of the conditional module list, and name is\n;;    followed by any number of the allowed module specifications above.\n;;\n;;\n;; USE-BIN-DIR means to use a separate binary directory created,\n;; if necessary, at the same level as the system directory.\n;; The name of the system is implementation dependent, and can\n;; be retrieved with the function (BINARY-SUBDIRECTORY-NAME)\n;; and can be set with (SET-BINARY-SUBDIRECTORY-NAME).\n;;\n;;The files, etc. are loaded or compiled into PACKAGE.\n;; \n;; \n;; Examples:\n;; \n;; perhaps in: CODE/LISP/UTILITIES/UTILITIES.SYSTEM\n;;(ASD:DEFINE-SYSTEM \"UTILITIES\"\n;;  :DIRECTORY (this-files-directory)\n;;  :MODULES\n;;  '(\"PIPES\"\n;;    \"SHOW\"\n;;    \"TEST\")\n;;  :PACKAGE \"UTILITIES\")\n;;\n;; perhaps in: CODE/LISP/MEMORY/MEMORY.SYSTEM\n;;(ASD:DEFINE-SYSTEM \"MEMORY\"\n;;  :DIRECTORY (this-files-directory)\n;;  :MODULES\n;;  '(\"CLASS-DEFINITIONS\"\n;;    \"ACCESSORS\"\n;;    \"MACROS\")\n;;  :PACKAGE \"MEMORY\")\n;; \n;; perhaps in: CODE/LISP\n;; \n;; (ASD:DEFINE-SYSTEM \"TOP\"\n;;   :DIRECTORY (this-files-directory)\n;;   :MODULES\n;;   '((:SYSTEM \"UTILITIES\" '(:DIRECTORY \"UTILITIES\" :NAME \"UTILITIES\" :TYPE \"SYSTEM\"))\n;;     (:SYSTEM \"MEMORY\" '(:DIRECTORY \"MEMORY\" :NAME \"MEMORY\" :TYPE \"SYSTEM\")))\n;;   )\n;;\n;; \n;;(LOAD-SYSTEM name) ... loads system if it's not already loaded. \n;;  binary files are loaded if they are newer than source files,\n;;  otherwise the source files are loaded.\n;; \n;;(COMPILE-SYSTEM name)... compiles system\n;;\n;;Optional arguments are:\n;;\n;;(LOAD-SYSTEM name (force nil) (load-source nil) (verbose t) (test nil) (home-directory nil))\n;;  :force, if t, will load all files again\n;;  :load-source, if t, will load source files instead of binary files\n;;  :verbose, if t (default), will print messages along the way\n;;  :test, if t, will just print messages, not actually do anything\n;;  :home-directory, if specified, supercedes system's home directory\n;;\n;;(COMPILE-SYSTEM name (force nil) (recompile nil) (and-load? nil) (verbose t) (test nil) (home-directory nil))\n;;  :force, if t, will recompile source files newer than source files\n;;  :recompile, if t, will recompile every file\n;;  :and-load?, if t, will load the file after compiling it\n;;  :verbose, if t (default), will print messages along the way\n;;  :test, if t, will just print messages, not actually do anything\n;;  :home-directory, if specified, supercedes system's home directory\n;; \n;; (EDIT-SYSTEM name) ... calls the system  editor on the files in system\n;;\n;; (COPY-SYSTEM name :output-directory output-directory-pathname)\n;;                    ... copies the _source_ files to output directory.\n;;\n;; Optional arguments:\n;; (COPY-SYSTEM name :output-directory output-directory-pathname (test nil) (verbose t) (home-directory nil))\n;;  :verbose, if t (default), will print messages along the way\n;;  :test, if t, will just print messages, not actually do anything\n;;  :home-directory, if specified, supercedes system's home directory\n;;\n;;(DEFINED-SYSTEMS) returns a list of defined systems.\n;;\n;;(REMOVE-SYSTEM name) removes system \n;;\n;;(SYSTEM-NAMED name) finds system with this name.\n;;\n;;(FIND-SYSTEM name) same as SYSTEM-NAMED\n;;\n;; (UNSET-SYSTEM-STATE state name) \"unsets\" a particular system state\n;; to an unfinished state. For example, (UNSET-SYSTEM-STATE 'COMPILE name)\n;; informs the system that the system can be recompiled; similarly with\n;; (UNSET-SYSTEM-STATE 'LOAD name)\n;;\n;; The type of the typical source file is found in (SOURCE-FILE-TYPE),\n;; and be set with (SET-SOURCE-FILE-TYPE). It defaults to \"lisp\".\n;;\n;; There are a number of implementation dependencies in this file; if  you\n;; get an error of the type\n;; \"Add Code here to implement...\"\n;; this indicates  you've hit an implementation dependency.\n;; Sorry.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillf%2Fa-simple-defsystem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillf%2Fa-simple-defsystem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillf%2Fa-simple-defsystem/lists"}