freenode/#lisp - IRC Chatlog
Search
4:50:00
LdBeth
I think several months ago someone presented typing Math equations with McCLIM,but I forgot where I can find it
4:51:16
beach
I think Climaxima could very well be a very important application for showing the power of Common Lisp and CLIM.
4:55:44
akater
Last time I tried to use Maxima (for Android) to solve an ODE, it produced something bizarre for a trivial 2nd order one (constant coefficients)
4:56:48
loke
If the solvers cannot produce a full solution kit sometimes gives you a partial solution instea of giving yu an error.
4:59:46
akater
It was a long time ago during a trip, I don't have a record in my journals unfortunately. loke It was a linear ODE with constant coeffs.
5:02:02
akater
Overall, I found the only Lisp CAS to be sane, is Weyl. Maxima tries to introduce a mainstream syntax, this is an ostruction to programming in it. I wish a Lisp CAS was more like Mathematica.
5:04:15
akater
Mathematica introduces infix syntax by means of presentations, essentially. So the regular structure of expressions is never lost.
5:08:01
volkov
beach: thanks. i just googled "what is PCL PAIP etc" and was led to this 11 years old reddit thread https://www.reddit.com/r/programming/comments/1a73t/fine_i_will_look_at_lisp_where_do_i_start/
5:10:11
akater
I'm aware there is a way to feed lisp forms to it. But making them somewhat second-class like this is a bad decision. In Mathematica, it's much more smooth. Also, it offers proper expansion which means you never have to learn precedence rules for its infix as long as you use it.
5:12:51
akater
On Android, I found mangled TeX output. And e.g. :lisp (describe 'integrate) doesn't work.
5:15:03
akater
Anyway, I wish one day I could implement something more appropriate with representations in McCLIM.
5:16:22
loke
akater: So you would prefer to input and display the Sexp forms instead of maths equations?
5:17:21
akater
But of course, the fact that Maxima on Android works at all, utilizing codebase with history like this, is amazing and makes Sage look unattractive for me anyway.
5:19:51
fiddlerwoaroof
loke: it's probably a pretty niche view, but I generally prefer math in sexp form
5:20:08
fiddlerwoaroof
For one thing, it means I don't have to think about operator precedence and associativity
5:20:44
akater
loke: For starters, what I have in mind could display general sexps, not just mathematical expressions. Something arong the lines of (row-box "cons" ("a" "b"))
5:21:37
akater
^ that's basically exactly how mathematica does it. It has `box'es of various kinds, incl. those that display in 2D neatly.
5:21:43
loke
Climaxima can actually do that, to a limited extent. The framework is in place to extend it past the Maxima sexp forms.
5:22:36
loke
Each box is a subexpression. It just arranges those boxes in a maths-kinda way so that the result is standard maths equation syntax
5:24:26
akater
I'm still wondering if this interface could be better than purely text-based one. It *should be* but Emacs' pure text way is also impressive. I don't want to lose the ability to jump to text in arbitrary forms on screen.
5:28:24
akater
While Mathematica does presentations right (drew a ton of inspiration from Lisp for sure), its editing capabilities are mediocre. SLIME almost has it all when it comes to presentations, without compromising the convenience of navigation.
5:29:06
loke
but please tell me what can be improved when it comes to the Climaxima way of doin git.
5:30:01
fiddlerwoaroof
ACTION wants someone tom implement a CLIM-like interface for sending text from Lisp to an emacs buffer
5:31:24
fiddlerwoaroof
I've just added a swank-buffer-streams package to swank that implements the beginnings of something like CAPI's collector-panes or CLIM's app pane
5:31:35
loke
fiddlerwoaroof: Yes. SLIME exploses some functions on the Lisp side that results in an Elisp function being called in Emacs.
5:32:19
akater
Some day, I will have time for Climaxima. But for now, I need some tools in CL that I'm missing, and building them will take time.
5:35:35
loke
LdBeth: sly also doesn't support presentations, so it's lost kinda half its value there
5:36:16
akater
Sly froze my Emacs almost immediately when I tried flexi-search, or whatever it called. Almost led to data loss. When it happened the 2nd time, I uninstalled it until better times.
5:37:01
akater
Also, its printer has some ridiculous default settings when it comes to printing in org src blocks.
8:01:30
flip214
will ELS submissions end today? Then I could start reviewing papers -- last time new versions got in after I had read initial versions...
8:02:10
beach
It should end today, but I think the authors have the right to upload modified versions later.
12:03:12
splittist
margaritamike: not really, no. This is one of the benefits of First-Class Global Environments that is (kinda) part of the SICL project.
12:07:24
splittist
The wikipedia definition seems to make clear that this is an OS concern (where the jvm and clr and os-a-likes).
12:13:50
splittist
margaritamike: I think it goes like this. A CL image contains an evaluator and a compiler (EVAL and COMPILE). The compiler is necessary for important parts of the system - like CLOS - to operate, so you can't just rip it out. If the untrusted user has access to the compiler, then they can (eventually) do anything, regardless of what you have taken out of the environment to begin with.
12:14:49
splittist
Having multiple First Class Global Environments would allow the system to have access to COMPILE (and co) - via one environment - while not allowing the untrusted user to have access - via another environment.
12:18:06
margaritamike
You can't do something like say this lisp program can't write to file or use sockets in a security file?
12:20:06
splittist
As I said - that's an OS thing. Perhaps ABCL would work with the the java stuff. Otherwise, use a vast network of containers like everyone does for everything these days (:
12:25:56
margaritamike
Say you've set your restrictions in Java and you add in a dependency that uses java.net.SocketPermission whereas that was previously restricted
12:27:25
margaritamike
It would be good to catch that with a security policy before it has a change to execute during runtime or whatever
12:32:38
margaritamike
You have a lisp library you bring in from ql:quickload. Unknowingly, it does something malicious
12:33:11
margaritamike
You don't have the time, and probably not the skill either, to read and understand every line of code from the library
12:34:29
margaritamike
Until you read every line of the library's code or notice something strange one day?
12:39:30
splittist
How could it be any other way? You are including source code. You are basically asking someone else to type your program.
12:39:48
dim
you need capabilities for this kind of security, and you give capabilities to programs, with a very restricted default set
12:40:13
dim
also read this famous “Trusting Trust” paper from Thompson from back in the days, still relevant today
12:44:03
splittist
Common Lisp the language obviously can't do this, since it is a systems issue. Secure Common Lisp, which keeps track of which code comes from which set of source files and provides fine-grained access control to OS and other program resources based on this tracking.
13:50:48
Jachy
I wish for everyone who read the "trusting trust" paer they'd also read the newer "fully countering trusting trust through diverse double-compiling" paper.
13:53:06
lieven
nowadays you also need to worry about the backdoors to the CPU and the motherboard chipset
14:08:23
lieven
ebrasca: it's hard to prove anything backdoor free without checking the cpu wafer with an electron microscope to see if it conforms to the chip design and then verify your way up :)
14:09:44
lieven
and I guess, pace trusting trust, you would have to verify the working of the electron miscroscope too
14:17:38
xsperry
how can I get natural sort order in cl? is there a built-in for this, or do I have to write it myself?
14:20:54
beach
xsperry: You probably need to write it yourself. It doesn't look very "natural" to me.
14:27:53
nirved
xsperry: maybe you should first search for it? https://stackoverflow.com/questions/27307660/how-to-implement-natural-sort-in-common-lisp
14:29:35
xsperry
sometimes it takes 10 seconds. other times, you can't find what you want in 10 hours
14:30:32
xsperry
10 second searches often don't lead to correct code, btw. for all I knew, maybe alexandria or similar library already has battle tested version
15:37:33
dlowe
Prototyping is when you create a test for an idea with the idea that you will throw it away once it answers your question.
15:41:19
pfdietz
And then management says "don't throw that away, turn it into a shipping product. How hard could that be?" And the pain starts.
15:45:00
flip214
so it's a good idea to prototype in Lisp, so that turning it into a products isn't as painful as in other Languages[sic] ;)
15:55:22
trafaret1
Are there peple who develop lisp programm which automatically write code on another languages?
15:57:23
pfdietz
Althoughthere's a larger market for reverse engineering. For foward engineering, there's barriers to adding unproven and immature tools to the build process.
16:35:33
beach
pfdietz: Am I understanding it correctly that you are referring to some hypothetical Lisp program as such an unproven and immature tool?
16:36:48
verisimilitude
To address what you wrote, margaritamike, I do audit libraries before I use them. I consider anything else foolhardy.
16:43:38
dlowe
ebrasca: lisp arrays are pretty bad for this. Have you tried using alien structure definitions over a mmaped block?
16:45:42
pfdietz
code generation is bad if the generated code has to be maintained by itself, and is at all obfuscated.
16:47:03
pfdietz
If the code generator is kept as part of a build process it has to be integrated with it, which is expensive.