freenode/#lisp - IRC Chatlog
Search
18:15:00
_death
you should also know that cl:+ has more roles than a function name, which your:+ may not be able to fulfil
18:27:10
earl-ducaine
phoe: I haven't contacted the Hemlock developers re: the :qt dependancy. But as far as I can tell there's been no active development for over a decade, so I wouldn't expect anyone to take action on it.
19:25:50
jasom
I'm writing some software for an rpi; any tips or gotchas for using lisp to develop for it? Will swank and tramp-mode just work similar to how I would do between two x86oids?
19:36:10
boeg
Is it possible to have an optional argument (with or without default value) as *not* the last parameter. So say a function takes argument (a b &optional (c "") d), and the function can then be called with 3 argument (where c will get default value) or 4 arguments?
19:37:33
_death
you could implement your own arglist parsing, though that's a good sign you should rethink the interface
19:39:48
pjb
boeg: you can either 1- use &key arguments they are optional! or 2- use &rest and parse the list of arguments yourself!
19:41:38
pjb
(defun foo (a b &rest args) (let (c d cp dp) (ecase (length args) ((0)) ((1) (setf d (car args) dp t)) ((2) (setf c (car args) cp t d (cadr args) dp t))) (list a b cp c dp d))) (foo 1 2 3) #| --> (1 2 nil nil t 3) |# (foo 1 2 0 3) #| --> (1 2 t 0 t 3) |#
20:39:08
eeeeeta
jasom: you'd want to use CCL on a pi if you want threading; I was able to get swank working that way
2:02:16
asarch
Is there any way to get the PNG file of the (com.informatimago.common-lisp.picture.cons-to-ascii:draw-list *values*)?
2:04:53
pjb
asarch: otherwise, there are ascii-art web services that will convert that into a svg and png…
2:06:59
no-defun-allowed
pjb: Well yes, screenshotting text is annoying, but no need to hang people who do that.
2:13:32
pjb
You can use: (progn (with-open-file (*standard-output* "/tmp/aa.txt" :direction :output :if-does-not-exist :create :if-exists :supersede) (com.informatimago.common-lisp.picture.cons-to-ascii:draw-list *values*)) (uiop:run-program "ditaa /tmp/aa.txt") (uiop:run-program "open /tmp/aa.png"))
2:44:31
LdBeth
It seems to be the only comprehensive book on macro assemblers http://www.davidsalomon.name/assem.advertis/AssemAd.html
5:50:43
no-defun-allowed
I think there was a front-end processor file system which was probably for booting and a LMFS which was for user data.
5:52:20
no-defun-allowed
The MIT CADR stuff got released to http://www.unlambda.com/cadr/, and I guess the (relatively) newer Symbolics machine OS is still available if you can find a lispm or can spend $5,000 on the emulator.
5:59:34
remexre
hm, I think I might have a memory leak in my interfacing w/ an FFI lib on SBCL; is there an easy way of determining where it's coming from?
6:00:28
White_Flame
HiRE: the emulator was around way back, ever since x86 started getting faster than the lisp hardware
6:01:09
HiRE
White_Flame, I see so it was there to maintain compatibility with old hardware during the transition
6:01:42
HiRE
my AI professor routinely talked about symbolics machines but I was surprised when it was mentioned someone might still be using one :P
6:03:08
beach
HiRE: The way the tools are integrated can not be replicated on Unix-like systems because of the process model of those systems.
6:04:53
beach
HiRE: I mean, the process model of "modern" operating systems requires tools to turn everything into a sequence of bytes in order to communicate with others.
6:05:31
HiRE
beach, that sort of confuses me. How did the symbolics machine differ? I figured it'd still need to translate lisp code down to CPU language
6:06:11
HiRE
> Symbolics' initial product, the LM-2, introduced in 1981, was a repackaged version of the MIT CADR Lisp machine design. The operating system and software development environment, over 500,000 lines, was written in Lisp from the microcode up, based on MIT's Lisp Machine Lisp.
6:06:15
no-defun-allowed
It's not really much of a CPU problem as much as it is an OS problem, but they did have CPUs that had instructions that mapped closer to Lisp functions.
6:06:28
beach
The important thing is that an application can just hand a pointer to another application.
6:07:30
no-defun-allowed
The OS didn't have seperate memory spaces and had a global garbage collector (I don't think they were first to it, but the lispms had generational collection very early on), so it was possible to pass objects around very easily between threads and functions.
6:08:49
no-defun-allowed
You could skim http://bitsavers.org/pdf/symbolics/software/genera_8/Genera_Concepts.pdf too.
6:09:26
beach
HiRE: There are already two such systems, Movitz and Mezzano, but what I am planning is a bit more sophisticated.
6:12:32
beach
HiRE: Here is one problem: People see the interactive REPL. Then they think "interpreter", and then, of course "interpreter" implies "slow".
6:12:49
no-defun-allowed
A Lisp operating system could be faster than a Un*x system in several ways, too.
6:13:24
HiRE
beach, yeah. A similar argument was made a few years back for haskell. Unfortunately the "REPL = Slow" argument is pervasive.
6:13:33
beach
HiRE: This implication is incorrectly assumed by ignorant people who do not know much about language implementation.
6:14:20
HiRE
beach, right. Whats even more amazing is even talking to graduates in CS the belief is still pervasive.