6:33:26phoebeach: regarding the shortness of the condition system, the original isn't very long either - see http://www.nhplace.com/kent/CL/Revision-18.lisp
6:36:21phoethe largest bloaters, size-wise, are all the DEFINE-CONDITIONs. And the largest bloater, cognition-wise, IMO, is HANDLER-CASE with its :no-error case
6:38:18phoeas Stas once said, a condition system is easy; dynamic variables, UNWIND-PROTECT, and GO/RETURN-FROM are hard
6:42:37beachphoe: I see, yes. We have already taken care of the hard parts in SICL then.
6:49:01beachphoe: Would you like to work on SICL with us?
6:50:06phoebeach: I will possibly be able to contribute a thing or two, sure. My main focus will be CLUS as soon as my book is finished, but I think I'll be able to add this or that to SICL in meantime.
6:50:38beachSounds great! Do you have a preferable subject you would like to dig into?
10:28:29phoeCCL defines a non-function setf expansion for gethash.
10:56:24pjbMcParen: the problem as you noted, is that there is NO setf accessor for random places.
10:57:42pjbMcParen: It can be a special case of the SETF macro, it can be a defsetf (2 forms) or a define-setf-expander, or it can indeed be a function named (setf foo). For places defined in CL, and defstruct, you cannot expect anything. Only for your own definition of a (setf foo) function (or generic function).
10:57:43jackdaniel(setf (random) 5) #| based on a dice roll |#
10:59:05pjbMcParen: If you want to extract some information about the implementation of gethash, you can use (macroexpand-1 '(setf (gethash k h) e)) #| --> #+ccl (ccl::puthash k h e) ; t |#
10:59:48pjbFor people who like to talk about primitives, well, (setf (gethash k h) e) IS a CL primitive! :-)
11:02:25jackdanielhaving (setf foo) as a valid function name is such an ugly exception