freenode/#lisp - IRC Chatlog
Search
17:21:29
aeth
in case anyone is wondering about how Lisp handles time, it has two ways. Something *almost* like a reverse-ordered ISO 8601 but as multiple return values, as well as non-leap-seconds since 1900. http://www.lispworks.com/documentation/HyperSpec/Body/f_get_un.htm
17:22:02
aeth
The distinction is afaik that ISO 8601 doesn't take daylight savings time into account, you move the offset, but in CL the offset is constant but with a boolean DST flag.
18:37:40
_death
it could.. (defun my-concatenate (&rest sequences) (apply #'concatenate (prompt "What result type?") sequences))
18:50:07
pjb
Notice that nothing prevents your implementation to provide a compiler-macro on concatenate (and map, etc), to optimize out the cases where the return type is known at compilation-time.
23:11:35
rmrenner
So in javascript, it's much more common to have functions called purely for their side-effects, and obviously sometimes these function calls end up being the final statement in a function
23:12:48
rmrenner
So how do you keep parenscript from automatically sticking a return before the last statement in a function?
23:13:36
rmrenner
As an example, I'm looking at using parenscript to generate files that work with p5, the javascript implementation of processing
23:14:35
rmrenner
A simple setup function would look like function setup() { createCanvas(640 480); }
23:16:47
rmrenner
However, if you write: (defun setup () (create-canvas 640 480)), parenscript generates function setup() { return createCanvas(640 480); }
23:23:30
rmrenner
Yeah, it struck me as a weird omission since js functions don't necessarily return anything. The manual says "void" is a reserved word, but I couldn't find any info on what it's used for.
23:35:43
rmrenner
Turns out this question has been raised on stackoverflow: https://stackoverflow.com/questions/28148147/parenscript-and-implicit-return
4:32:51
vtomole
beach: How do you make time for those kinds of things? I always feel like there's too much to learn. It's overwhelming.
4:36:25
vtomole
beach: Ha! The paper mentions that there is difference between a heap and a heap data structure. It has always bothered me how they are the same name..
4:58:47
beach
vtomole: By the way, I was very serious about what I said the other day. If you want to become very good at what you do, then you should begin a systematic activity of learning about all this stuff, like garbage collection, compilation, computer architecture, etc.
4:58:48
beach
I personally think that every software developer should know about these things just in order to avoid making the wrong decisions.
5:00:11
vtomole
beach: I took an architecture class last semester, but thats all the experience I have with it. We studied MIPS.
5:00:45
beach
It may take a decade or so to get up to speed, but then the incremental work to keep it up is not so bad.
5:01:42
beach
Many people avoid locks because they think they are expensive. With SLE, they are much cheaper these days.
5:02:10
vtomole
I can put a decade into this stuff, I'm 20. It's hard for me to read books. I like to start writing code ASAP.
5:03:39
beach
Unless you have direct access to the author, sometimes reading a book or a paper is the only solution. You might as well try to get used to it.
5:04:07
Bike
arm is also pretty complicated, but you probably won't break down sobbing if you try to write an instruction decoder
5:07:22
beach
Goodman was (probably still is) at the university of Auckland when I was visiting there for a year. I audited his advanced architecture class.
5:12:39
beach
That's very hard to say. It varies a lot. And it is not concentrated time. More than a month full time I would say.
5:15:21
vtomole
beach: It's a Common Lisp channel, but i did find that the Go garbage collector has sub-millisecond pauses.
5:16:17
beach
For most applications, that's good enough, yes. Even for applications involving sound, that's usually good enough.
5:18:05
beach
Good question. I don't know. SBCL's garbage collector is not very recent, and it is pretty basic technology from several decades ago.
5:18:44
pjb
(loop for i from 0 for c = nil then (cons nil c) when (zerop (mod i 1000000)) (setf c nil))
5:19:55
beach
vtomole: This paper: http://metamodular.com/sliding-gc.pdf suggests a GC technique that has bounded pauses.