├── .gitignore ├── 00-dynavars └── tclcs-00-dynamic-variables.lisp ├── 01-hooks ├── tclcs-01-lets-meet-tom.lisp ├── tclcs-02-hook-1-launching-csgo.lisp ├── tclcs-03-hook-2-only-call-csgo-players.lisp ├── tclcs-04-hook-3-only-call-parents-maybe.lisp ├── tclcs-05-hook-4-holiday-wishes.lisp ├── tclcs-06-hook-5-calling-girlfriend-again.lisp └── tclcs-07-multiple-types-of-hooks.lisp ├── 02-handlers ├── tclcs-08-lets-meet-tom-again.lisp ├── tclcs-09-handler-1-launching-csgo.lisp ├── tclcs-10-handler-2-only-call-csgo-players.lisp ├── tclcs-11-handler-3-only-call-parents-maybe.lisp ├── tclcs-12-handler-4-holiday-wishes.lisp ├── tclcs-13-handler-5-calling-girlfriend-again.lisp ├── tclcs-14-exception-handling-1.lisp ├── tclcs-15-exception-handling-2.lisp ├── tclcs-16-protection-against-transfers-of-control.lisp └── tclcs-17-handler-clustering.lisp ├── 03-choices ├── tclcs-18-lets-meet-kate-and-mark.lisp ├── tclcs-19-choice-1-escape-through-front-door.lisp ├── tclcs-20-choice-1-escape-through-both-doors.lisp ├── tclcs-21-choice-1-same-named-choices.lisp └── tclcs-22-choice-2-excuse.lisp ├── 04-restarts ├── tclcs-23-lets-meet-kate-and-mark-again.lisp ├── tclcs-24-restart-1-escape-through-front-door.lisp ├── tclcs-25-restart-1-escape-through-both-doors.lisp ├── tclcs-26-restart-1-same-named-restarts.lisp ├── tclcs-27-restart-2-excuse.lisp ├── tclcs-28-restart-2-interactive-excuse.lisp ├── tclcs-29-actually-restarting-restarts.lisp └── tclcs-30-custom-restart-invoking-functions.lisp ├── 05-reporting ├── tclcs-31-reporting-conditions.lisp └── tclcs-32-reporting-restarts.lisp ├── 06-warnings └── tclcs-33-warnings.lisp ├── 07-assertions ├── tclcs-34-assert.lisp ├── tclcs-35-check-type.lisp └── tclcs-36-case-assertions.lisp ├── 08-debugger ├── tclcs-37-debugger-reporting-condition.lisp ├── tclcs-38-debugger-reporting-condition-type.lisp ├── tclcs-39-debugger-reporting-restarts.lisp ├── tclcs-40-debugger-choosing-restarts.lisp ├── tclcs-41-installing-custom-debugger.lisp ├── tclcs-42-recursive-debugger.lisp ├── tclcs-43-reducing-debugger-level.lisp └── tclcs-44-repl-in-debugger.lisp ├── 95-dynamic-variables-in-c ├── README.md ├── dynavars │ ├── dynamic-bind-explicit-stack-version.h │ ├── dynamic-bind-implicit-stack-version.h │ └── dynamic-bind-memcpy-version.h ├── example │ ├── random-state.inc.c │ └── simple-example.inc.c ├── tclcs-88-simple-example-explicit-stack.c ├── tclcs-89-simple-example-implicit-stack.c ├── tclcs-90-simple-example-memcpy.c ├── tclcs-91-random-state-explicit-stack.c ├── tclcs-92-random-state-implicit-stack.c └── tclcs-93-random-state-memcpy.c ├── 96-call-with-handler-restart ├── tclcs-94-call-with-handler-restart.lisp └── tclcs-95-call-with-handler-restart-cached.lisp ├── 97-handler-bind-star-case-star ├── tclcs-96-handler-bind-star.lisp └── tclcs-97-handler-case-star.lisp ├── 98-handler-bind-case └── tclcs-98-handler-bind-case.lisp ├── 99-macros-101 └── tclcs-99-macros-101.lisp ├── LICENSE ├── README.md └── tclcs-code.asd /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/.gitignore -------------------------------------------------------------------------------- /00-dynavars/tclcs-00-dynamic-variables.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/00-dynavars/tclcs-00-dynamic-variables.lisp -------------------------------------------------------------------------------- /01-hooks/tclcs-01-lets-meet-tom.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/01-hooks/tclcs-01-lets-meet-tom.lisp -------------------------------------------------------------------------------- /01-hooks/tclcs-02-hook-1-launching-csgo.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/01-hooks/tclcs-02-hook-1-launching-csgo.lisp -------------------------------------------------------------------------------- /01-hooks/tclcs-03-hook-2-only-call-csgo-players.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/01-hooks/tclcs-03-hook-2-only-call-csgo-players.lisp -------------------------------------------------------------------------------- /01-hooks/tclcs-04-hook-3-only-call-parents-maybe.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/01-hooks/tclcs-04-hook-3-only-call-parents-maybe.lisp -------------------------------------------------------------------------------- /01-hooks/tclcs-05-hook-4-holiday-wishes.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/01-hooks/tclcs-05-hook-4-holiday-wishes.lisp -------------------------------------------------------------------------------- /01-hooks/tclcs-06-hook-5-calling-girlfriend-again.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/01-hooks/tclcs-06-hook-5-calling-girlfriend-again.lisp -------------------------------------------------------------------------------- /01-hooks/tclcs-07-multiple-types-of-hooks.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/01-hooks/tclcs-07-multiple-types-of-hooks.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-08-lets-meet-tom-again.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-08-lets-meet-tom-again.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-09-handler-1-launching-csgo.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-09-handler-1-launching-csgo.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-10-handler-2-only-call-csgo-players.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-10-handler-2-only-call-csgo-players.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-11-handler-3-only-call-parents-maybe.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-11-handler-3-only-call-parents-maybe.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-12-handler-4-holiday-wishes.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-12-handler-4-holiday-wishes.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-13-handler-5-calling-girlfriend-again.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-13-handler-5-calling-girlfriend-again.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-14-exception-handling-1.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-14-exception-handling-1.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-15-exception-handling-2.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-15-exception-handling-2.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-16-protection-against-transfers-of-control.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-16-protection-against-transfers-of-control.lisp -------------------------------------------------------------------------------- /02-handlers/tclcs-17-handler-clustering.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/02-handlers/tclcs-17-handler-clustering.lisp -------------------------------------------------------------------------------- /03-choices/tclcs-18-lets-meet-kate-and-mark.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/03-choices/tclcs-18-lets-meet-kate-and-mark.lisp -------------------------------------------------------------------------------- /03-choices/tclcs-19-choice-1-escape-through-front-door.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/03-choices/tclcs-19-choice-1-escape-through-front-door.lisp -------------------------------------------------------------------------------- /03-choices/tclcs-20-choice-1-escape-through-both-doors.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/03-choices/tclcs-20-choice-1-escape-through-both-doors.lisp -------------------------------------------------------------------------------- /03-choices/tclcs-21-choice-1-same-named-choices.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/03-choices/tclcs-21-choice-1-same-named-choices.lisp -------------------------------------------------------------------------------- /03-choices/tclcs-22-choice-2-excuse.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/03-choices/tclcs-22-choice-2-excuse.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-23-lets-meet-kate-and-mark-again.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-23-lets-meet-kate-and-mark-again.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-24-restart-1-escape-through-front-door.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-24-restart-1-escape-through-front-door.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-25-restart-1-escape-through-both-doors.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-25-restart-1-escape-through-both-doors.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-26-restart-1-same-named-restarts.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-26-restart-1-same-named-restarts.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-27-restart-2-excuse.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-27-restart-2-excuse.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-28-restart-2-interactive-excuse.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-28-restart-2-interactive-excuse.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-29-actually-restarting-restarts.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-29-actually-restarting-restarts.lisp -------------------------------------------------------------------------------- /04-restarts/tclcs-30-custom-restart-invoking-functions.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/04-restarts/tclcs-30-custom-restart-invoking-functions.lisp -------------------------------------------------------------------------------- /05-reporting/tclcs-31-reporting-conditions.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/05-reporting/tclcs-31-reporting-conditions.lisp -------------------------------------------------------------------------------- /05-reporting/tclcs-32-reporting-restarts.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/05-reporting/tclcs-32-reporting-restarts.lisp -------------------------------------------------------------------------------- /06-warnings/tclcs-33-warnings.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/06-warnings/tclcs-33-warnings.lisp -------------------------------------------------------------------------------- /07-assertions/tclcs-34-assert.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/07-assertions/tclcs-34-assert.lisp -------------------------------------------------------------------------------- /07-assertions/tclcs-35-check-type.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/07-assertions/tclcs-35-check-type.lisp -------------------------------------------------------------------------------- /07-assertions/tclcs-36-case-assertions.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/07-assertions/tclcs-36-case-assertions.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-37-debugger-reporting-condition.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-37-debugger-reporting-condition.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-38-debugger-reporting-condition-type.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-38-debugger-reporting-condition-type.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-39-debugger-reporting-restarts.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-39-debugger-reporting-restarts.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-40-debugger-choosing-restarts.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-40-debugger-choosing-restarts.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-41-installing-custom-debugger.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-41-installing-custom-debugger.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-42-recursive-debugger.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-42-recursive-debugger.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-43-reducing-debugger-level.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-43-reducing-debugger-level.lisp -------------------------------------------------------------------------------- /08-debugger/tclcs-44-repl-in-debugger.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/08-debugger/tclcs-44-repl-in-debugger.lisp -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/README.md -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/dynavars/dynamic-bind-explicit-stack-version.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/dynavars/dynamic-bind-explicit-stack-version.h -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/dynavars/dynamic-bind-implicit-stack-version.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/dynavars/dynamic-bind-implicit-stack-version.h -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/dynavars/dynamic-bind-memcpy-version.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/dynavars/dynamic-bind-memcpy-version.h -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/example/random-state.inc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/example/random-state.inc.c -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/example/simple-example.inc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/example/simple-example.inc.c -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/tclcs-88-simple-example-explicit-stack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/tclcs-88-simple-example-explicit-stack.c -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/tclcs-89-simple-example-implicit-stack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/tclcs-89-simple-example-implicit-stack.c -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/tclcs-90-simple-example-memcpy.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/tclcs-90-simple-example-memcpy.c -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/tclcs-91-random-state-explicit-stack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/tclcs-91-random-state-explicit-stack.c -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/tclcs-92-random-state-implicit-stack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/tclcs-92-random-state-implicit-stack.c -------------------------------------------------------------------------------- /95-dynamic-variables-in-c/tclcs-93-random-state-memcpy.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/95-dynamic-variables-in-c/tclcs-93-random-state-memcpy.c -------------------------------------------------------------------------------- /96-call-with-handler-restart/tclcs-94-call-with-handler-restart.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/96-call-with-handler-restart/tclcs-94-call-with-handler-restart.lisp -------------------------------------------------------------------------------- /96-call-with-handler-restart/tclcs-95-call-with-handler-restart-cached.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/96-call-with-handler-restart/tclcs-95-call-with-handler-restart-cached.lisp -------------------------------------------------------------------------------- /97-handler-bind-star-case-star/tclcs-96-handler-bind-star.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/97-handler-bind-star-case-star/tclcs-96-handler-bind-star.lisp -------------------------------------------------------------------------------- /97-handler-bind-star-case-star/tclcs-97-handler-case-star.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/97-handler-bind-star-case-star/tclcs-97-handler-case-star.lisp -------------------------------------------------------------------------------- /98-handler-bind-case/tclcs-98-handler-bind-case.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/98-handler-bind-case/tclcs-98-handler-bind-case.lisp -------------------------------------------------------------------------------- /99-macros-101/tclcs-99-macros-101.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/99-macros-101/tclcs-99-macros-101.lisp -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/README.md -------------------------------------------------------------------------------- /tclcs-code.asd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phoe/tclcs-code/HEAD/tclcs-code.asd --------------------------------------------------------------------------------