freenode/#lisp - IRC Chatlog
Search
0:48:38
aeth
I think I can just take all of the methods and functions I use for freeing and similar things and just make them methods on a generic CLEANUP
0:49:32
aeth
(This code interfaces with foreign libraries so the GC can't be relied on here. Or, more accurately, it's way more complicated to rely on the GC than to just have a bunch of WITH-FOOs built on top of UNWIND-PROTECT calling CLEANUP)
1:34:27
gendl
I know you can intersperse regular Lisp forms like dolist, then drop back into lhtml with (htm ...)
1:35:16
no-defun-allowed
[here](https://gitlab.com/Theemacsshibe/cl-pixelcanvas/blob/master/bot/pages.lisp#L23)
1:37:56
no-defun-allowed
can slime do emacs-style symbol shortening? for example, sa-l-a-d becomes save-lisp-and-die
1:41:04
gendl
within the body of the with-h-o-t-s, I want to call another macro which itself returns valid lhtml.
1:41:39
trn
beach: I have a couple of questions for you about the old Ford network that I'm hoping you can answer in regards to 3270 apps on Multics at Ford .
1:45:07
trn
beach: Specifically, did 3270 users login a 3270-related project that defined a restricted process_overseer_?
1:45:38
trn
beach: Or did they login to a standard project via the answering service as usual users?
1:45:46
gendl
like you said, I just had to wrap (htm ...) around the lhtml which my macro was emitting.
1:46:35
gendl
doing it like that, I can include calls to macros at will within my with-html-output-to-string and similar.
2:38:09
AeroNotix
http://man7.org/linux/man-pages/man2/timer_create.2.html is there a library out there that exposes this?
2:41:24
AeroNotix
I was looking in the sb-* docs. I thought timer related things would be under sb-posix/sb-unix
3:01:17
trn
beach: No problem, thanks anyway. We're trying to see if some behaviour we are seeing is something we are doing wrong, need to fix, or the way it actually was. :)
5:41:12
johnjay
" Due to its many novel and valuable ideas, Multics had a significant impact on computer science despite its faults"
5:42:07
beach
And now, most computer users are brainwashed to think that Unix-like systems are actually good.
5:42:17
johnjay
wiki goes right into the fact ther was no distinction between memory and main storage
5:45:42
beach
It didn't start a new process for each command, so the stack was intact when there was a problem. So it was closer to using a Common Lisp system in that respect.
5:46:14
johnjay
Ken Thompson, in a transcribed 2007 interview with Peter Seibel[23] refers to Multics as "…overdesigned and overbuilt and over everything. It was close to unusable. They [Massachusetts Institute of Technology] still claim it’s a monstrous success, but it just clearly wasn't."
5:46:18
beach
Anyway, the fact that Multics had unified memory is why it bothers me when people have me justify that decision in CLOSOS as if it had never been done before.
5:48:37
johnjay
beach: i'm impressed about the reliability parts, apparently you could remove cpus, disks, anything and the system kept running
5:48:49
no-defun-allowed
gotta get a kangaroo to kill the insurance inspector if he comes near me barbie now
5:49:27
beach
johnjay: Yes, it was designed partly for the US military, so there were tough specifications.
5:50:06
johnjay
right. someone in another channel just complained about firefox taking up all the system memory. in fact i have the command 'taskkill /f /im firefox.exe' ready to go always on this pc.
5:50:30
johnjay
since i guess you said there's not a new stack per process it doesn't have that problem?
5:50:30
beach
I have said this before, but the Common Lisp condition system was inspired by that of Multics PL/I.
5:51:39
johnjay
it's hard to conceptualize some of this because i'm so used to the typical stack/process/pc setup
5:52:54
no-defun-allowed
it'd all leak cause of --holes in the rusty bucket-- i mean reference counting
5:53:01
johnjay
is it something you can actually study in an emulator or is it mostly the conceptual aspect of it?
5:55:01
beach
Sure, there was a guy here not too long ago who announced a web site running an emulator.
6:00:28
jackdaniel
there is also MicroEmacs, but if we limit software to lisp-only systems, then it doesn't count either ;-)
6:40:35
johnjay
but someone, aeth i think, said to build a lisp on top of linux you'd need 5 or 6 things
6:43:10
jackdaniel
beach: I guess that means to use linux as a kernel for userspace which would be fully implemented in Lisp
6:47:35
jackdaniel
there is a kernel space and a user space, that referes to a virtual memory segregation on today operating systems
6:49:12
beach
And that sound more like implementing a Unix system (except the kernel) in Lisp than "build a lisp on top of linux".
6:50:40
jackdaniel
following wikipedia: "The term userland (or user space) refers to all code that runs outside the operating system's kernel." that's the meaning I had in mind
6:51:43
jackdaniel
and regarding implementing that: you may have a single process on the system which would be a lisp process, then you have a single address space for all applications in that image
6:52:13
jackdaniel
that way linux kernel serves a purpose of being a host. I don't think it is necessarily unix-like
6:53:25
aeth
My personal approach would be fairly Unix-like because I'd be aiming at various compatibility things that aren't strictly necessary, like a Unix shell.
6:55:23
jackdaniel
I was employed at some point of time as an embedded system's engineer, so I'm fed up with linux kernel internals ,p
7:10:48
jackdaniel
johnjay: yes, from the linux kernel internals perspective. I still use it of course
7:11:43
no-defun-allowed
here's a stupid research idea: how much effort is put into making a computer unix-like?
7:12:05
no-defun-allowed
for example, there's a hell of a lot of microcode that interprets x86 nowadays
7:13:51
jackdaniel
ober: I didn't work with fat which is well implemented afaik. mostly drm (direct rendering mechanism) and writing custom drivers. it is well written, but it is a frustrating work: i.e you have to restart device to reboot the kernel and check your changes. debugging is hard too (though jtags help)
7:14:29
LdBeth
EvilTofu: A lower level machine code generator and optimizer for CL, may or may not be llvm
7:14:36
jackdaniel
johnjay: it is based on 2.6.x I think. it is good, you'll get a grasp of the abstractions which exist there, but there is much more to learn from the code (like with any non-trivial source code)
7:15:12
johnjay
i was thinking of writing some drivers for reactos, and i wondered how much studying linux driver model would help for that
7:16:08
jackdaniel
reverse-engineering custom protocol is way harder. but this is offtopic on this channel. sorry for bringing this up
7:35:15
jackdaniel
EvilTofu: opengenera is a full operating system with a development environment etc etc, it is not a CL implementation (however it has CL implementation in it)
7:47:05
aeth
I would imagine that quite a few libraries would be broken. Maybe even the majority on Quicklisp.
7:55:26
Demosthenex
hrm. i'm having to learn about GC and scaling now. i hadn't realized my latest rest-api downloads were over 300mb... no wonder it's taking ages. parallelism doesn't help
7:56:15
Demosthenex
parallel wget's can download it in 5.6 seconds, but in lisp it's running a half hour or more. but that's download, parse, and insert into db.
7:57:33
Demosthenex
no-defun-allowed: dexador is pulling it down gzipped. but it appears to uncompress before passing it to me
8:27:23
schweers
CatchMe: I’ve never done this, but my guess would be: make a lisp function which can be called from C (implementation dependent), have that object create/obtain said object and return it. But I’m not sure this works in general.
8:28:30
schweers
I’m not sure what has to be done so the object will not be collected while some C code still holds a reference to it, and how to collect it once C no longer has a reference.
8:39:28
schweers
you can always pass pointers? This kind of code is probably always going to be pretty ugly.
8:53:29
no-defun-allowed
i can read some french but probably not enough to read a book. "je ne parlais francais"
8:53:32
beach
I have vague plans for translating it to English, but I would need to get the copyright back from the editor.
8:53:34
smokeink
quick question: https://github.com/norvig/paip-lisp/blob/master/lisp/macsyma.lisp#L211 <- shouldn't this line be (1 `(- ,(integrate (exp-lhs exp) x))) ? Otherwise (simp '(int (- x) d x)) returns `(1/2 * (X ^ 2)) instead of `(-1/2 * (X ^ 2))
8:54:40
smokeink
I'm surprised that this bug has survived up to the latest code on github. It's in the book as well
8:55:12
loke
smokeink: The latest version of Macsyma is called Maxima, and I don't think it has such bugs.
8:55:57
no-defun-allowed
if i had to guess, the PAIP copy would be a clone in the spirit of ma{csyma,xima}
8:56:12
smokeink
I mean the sourcecode for the book PAIP , which has been studied by many students and teachers
12:28:26
jackdaniel
you may find plenty of examples how to work with cl_objects directly in ECL's code and documentatino about ffi
12:32:04
jackdaniel
beach: it's the other way around. that bridge could be used to access Lisp from C++ (i.e from LLVM module)
12:32:23
jackdaniel
we already can interface with C++ from ECL if compiler is built with C++ support