IN/Clojure 2020

India's annual Clojure and ClojureScript conference. 14th-15th Feb, 2020. Pune, MH, IN.

Debuggers in Lisps

Submitted by Suvrat Apte (@suvratapte) on Nov 7, 2019

🌑 Submission Type: Full (40 minutes) Status: Under evaluation

Abstract

Debuggers are one of the most essential tools for any kind of development.

Debuggers in Lispy languages make use of Lisp’s homoiconicity. They are a bit different from debuggers for languages like C or Java.

This kind of information is usually not needed in day to day development and hence it remains hidden.

In this talk, I will take Clojure’s cider-debug as an example and explain how it uses homoiconicity. Along with cider-debug, I will also talk about REPLs and how REPL client-server communication happens (with nREPL as an example).

Outline

  1. Why do we need debuggers.
  2. How GDB works.
  3. Properties of Lisp.
  4. REPLs.
  5. Cider-nrepl.
  6. Cider-debug.
  7. How Cider debug works.
  8. Conclusion.

Requirements

I’m going to try and explain most of the things without assuming any prior knowledge of Clojure.
But being familiar with Clojure (or some Lisp) will surely help.

Speaker bio

Software Artisan at Helpshift Inc.

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}