changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > demo / annotate examples/clos/fast.lisp

changeset 44: 99d4ab4f8d53
parent: 6b652d7d6663
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 11 Aug 2024 01:50:18 -0400
permissions: -rw-r--r--
description: update
40
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 (in-package :examples/clos/fast)
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 ;; (defclass foo (obj/meta/sealed:sealable-class)
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 ;;   ((n :initform 0 :type fixnum :accessor foo-n)))
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 ;; (defmethod binary-+ ((x foo) (y foo))
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 ;;   (+ (foo-n x) (foo-n y)))
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 (defmethod binary-+ ((x fixnum) (y fixnum))
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
   (declare (method-properties inlineable))
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
   (+ x y))
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 (seal-domain #'binary-+ '(t t))
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 (binary-+ 0 0)
6b652d7d6663 examples
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15