freenode/lisp - IRC Chatlog
Search
0:20:20
no-defun-allowed
what was that program that typeset mathematical equations using boxes and stuff in the terminal?
2:18:08
Bike
clschool is for learning the language, lisp is for when you've learned the language but not really
4:40:06
aeth
elderK: Meanwhile a question about e.g. "what web libraries should I use?" would belong here
4:44:17
aeth
There are also channels for specific topics, e.g. #lispgames so questions aren't just in one of the two
5:02:35
elderK
beach: Is there a place that details the method combination types? CLHS tells me about +, and, progn, etc. But there doesn't seem to be a page that actually describes how these combinations function.
5:03:43
beach
Oh, those are trivial. The effective method is just (<operator> method1 method2 .... methodn)
5:05:44
specbot
Built-in Method Combination Types: http://www.lispworks.com/reference/HyperSpec/Body/07_ffd.htm
5:10:41
elderK
Thanks beach. I was reading that last night but got kind of confused. I'll give it a another shot.
6:36:02
fiddlerwoaroof
Anyways, depending on how much information you want elderK, Didier Verna has a recent paper on method combinations
6:37:28
beach
He defines a different mechanism, called "method combinators". But he doesn't really provide a solution to the enigmas of the AMOP and the Common Lisp HyperSpec as to how to define method combinations.
6:38:36
beach
However, I figured out how to do it in the context of SICL, and the solution provides a behavior that is consistent with both the AMOP and the Common Lisp HyperSpec, and it doesn't have the strangeness of the PCL solution.
6:39:23
beach
So, Didier and I are going to write a joint paper about it, and submit it to ELS 2019.
6:40:08
beach
I mean, what would you do with this: (defclass t () () (:metaclass built-in-class)) outside SICL?
6:40:36
fiddlerwoaroof
I was thinking more of using it to get predictable MOP behavior across implementations
6:40:55
beach
fiddlerwoaroof: Yes, they are, during bootstrapping, because I use first-class global environments to make such definitions operational.
6:41:30
beach
I don't see how you can reasonably redefine any native MOP classes in any implementation.
6:43:13
beach
The minute I do, I lose all my nice tools in a more comfortable environment than UNIX.
6:43:38
beach
So the current plan is to create a fairly complete SICL system inside a host Common Lisp implementation and debug most of the code like that first.
6:44:17
fiddlerwoaroof
So, can I do something like load SICL in a host lisp and then dump an image that runs a sicl toplevel?
6:44:50
no-defun-allowed
i know some assembler but after you run out of registers then what do you do? how do you juggle between regs and the stack/heap?
6:45:06
beach
fiddlerwoaroof: I suppose that would be possible fairly soon, but I hadn't considered that.
6:45:53
beach
no-defun-allowed: Yes, you implement a register allocator that decides where to put lexical variables at various points in time. Typically the stack frame is used as backing memory.
6:46:02
loke`
(SBCL specific answer is acceptable) If I build a standalong application by dumping it, and then it's later started the source files have moved. Is there a way for me to tell the Lisp runtime what the new source location is?
6:46:58
fiddlerwoaroof
At least, that's what I generally do: open the .asd in Emacs, C-c C-k + then (ql:quickload :my-system)
6:47:22
loke`
(the application is very large, constiging of all of Maxima as well as McCLIM, so loading the asd is not fast)
6:47:45
loke`
I'm trying to package it up into a single directory that can be launched from anywhere
6:47:50
fiddlerwoaroof
Maybe a bit, you might be able to update ASDF's notion of where the system lives some other way
6:48:58
fiddlerwoaroof
So, I just went through a bunch of work to package a smallish app as a redistributable executable
6:49:19
fiddlerwoaroof
Here's the CircleCI build setup: https://github.com/fiddlerwoaroof/daydreamer/blob/master/.circleci/config.yml
6:49:56
fiddlerwoaroof
With minor tweaks you can make CFFI statically link all the ffi dependencies into the image.
6:50:24
fiddlerwoaroof
Although if you have non-source assets, I suppose that won't work very well.... maybe logical pathnames or a configuration prompt would help in that case?
6:52:30
fiddlerwoaroof
If you use cloudformation, you should be able to download a binary of that from the github releases and run ./daydreamer -s to get a list of all your CF stacks
6:56:52
fiddlerwoaroof
loke`: this might work, https://common-lisp.net/project/asdf/asdf.html#Using-logical-pathnames-1
6:58:15
fiddlerwoaroof
That is, adjusting your system definition to use logical pathnames and then figuring out how to set it up before running the app. That might also be a huge can of worms, but this seems to be the sort of thing they were meant to solve.
7:38:53
beach
loke`: What if you just pre-loaded all files that Maxima might need (except user defined files of course)?
8:40:37
fiddlerwoaroof
Has anyone ever had the issue where the slime documentation for the current form disappears
8:59:18
jdz
fiddlerwoaroof: the autodoc thing is quite flaky for me, i sometimes type extra spaces and a backspace to get it back.
9:00:03
jackdaniel
it also doesn't work if some form is being evaluated in repl (so there is no prompt)
9:00:46
jackdaniel
(so if something runs longer than a few seconds, you may want to start it in a separate thread)
10:55:43
elderK
Guys, I'm a little confused by the "Sorting the applicable methods by precedence order" part of CLHS. It states that if two parameter specifiers are of the type like, (foo (eql something)), that they must agree.
10:56:33
elderK
But, I've seen examples in PCL where there are methods that are like, (defmethod something ((type (eql whatever) stuff...) body....0