Skip to content

Instantly share code, notes, and snippets.

@death
death / new-project.lisp
Created October 15, 2017 03:06
Generate new Lisp projects
(defpackage #:snippets/new-project
(:use #:cl)
(:export
#:*projects-directory*
#:new-project))
(in-package #:snippets/new-project)
(defvar *projects-directory*
(merge-pathnames
(defpackage #:snippets/stable-matching
(:use #:cl)
(:shadowing-import-from
#:fset #:empty-map #:reduce #:with #:set #:union #:image #:empty-set
#:lookup #:includef #:excludef #:find-if #:notevery))
(in-package #:snippets/stable-matching)
(defstruct (person (:constructor make-person (name preference-list)))
name
(defpackage #:snippets/slot-values
(:use #:cl))
(in-package #:snippets/slot-values)
(defun slot-values* (object &rest slot-names)
(mapcar (lambda (slot-name) (slot-value object slot-name))
slot-names))
(defun (setf slot-values*) (new-values object &rest slot-names)
;;;; +----------------------------------------------------------------+
;;;; | Advent of Code 2017 |
;;;; +----------------------------------------------------------------+
(defpackage #:snippets/aoc2017/day4
(:use #:cl)
(:import-from #:split-sequence #:split-sequence)
(:export
#:day4))
;;;; +----------------------------------------------------------------+
;;;; | Advent of Code 2017 |
;;;; +----------------------------------------------------------------+
(defpackage #:snippets/aoc2017/day6
(:use #:cl)
(:export
#:day6))
(in-package #:snippets/aoc2017/day6)
(defmacro with-list-properties (((&rest vars) plist &key modify) &body forms)
(if modify
(once-only (plist)
(let* ((keys (mapcar #'make-keyword vars))
(bindings (mapcar (lambda (var key)
`(,var (getf ,plist ,key)))
vars keys)))
`(symbol-macrolet ,bindings
,@forms)))
`(destructuring-bind (&key ,@vars &allow-other-keys) ,plist
TEST> (disasm (let ((seg (make-segment)))
(assemble (seg)
(loop repeat 2
do (assemble ()
(inst jmp L0)
(inst nop)
L0
(inst nop))))
(finalize-segment seg)
(segment-contents-as-vector seg)))
@death
death / gist:456e78c97c26e6cbdad5fc1ec06c50e5
Created December 10, 2017 02:12
SBCL test report after process-back-patches change
Finished running tests.
Status:
Expected failure: threads.pure.lisp / (WAIT-ON-SEMAPHORE SEMAPHORE-NOTIFICATION LP-1038034)
Expected failure: full-eval.impure.lisp / INLINE-FUN-CAPTURES-DECL
Failure: gc.impure.lisp / CODE/DATA-SEPARATION
Expected failure: packages.impure.lisp / USE-PACKAGE-CONFLICT-SET
Expected failure: packages.impure.lisp / IMPORT-SINGLE-CONFLICT
Failure: run-program.impure.lisp / IS-/BIN/ED-INSTALLED?
Failure: run-program.impure.lisp / (RUN-PROGRAM /BIN/ED)
Failure: run-program.impure.lisp / (RUN-PROGRAM INHERIT-STDIN)
From a07ad9d65805c63e33e5376c9cda97d6962b8900 Mon Sep 17 00:00:00 2001
From: death <death@adeht.org>
Date: Sun, 10 Dec 2017 04:55:15 +0200
Subject: [PATCH] assembler: Make sure to process all back-patches
---
src/compiler/assem.lisp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/compiler/assem.lisp b/src/compiler/assem.lisp
;;;; +----------------------------------------------------------------+
;;;; | Advent of Code 2017 |
;;;; +----------------------------------------------------------------+
(defpackage #:snippets/aoc2017/day10
(:use #:cl)
(:import-from #:alexandria #:iota)
(:import-from #:constantia #:outs #:out)
(:export
#:day10))