freenode/#clim - IRC Chatlog
Search
4:40:41
loke
beach: After having spent time understanding Maxima a bit, I now have reached the point where I want to create a first version of a CLIM interface. Now, the interaction model of Maxima is basically that of a REPL: You type a command, you get some output. The commands a strings in Maxima format, and the output are equations, or sets of equation (and sometimes other things). What model should I base this on? Something that allows me to
4:40:41
loke
both input and output stuff, something like the interactor. Should I just use an appliction pane and put some input box there?
4:43:37
beach
The output seems straightforward, right? You receive math formulae from Maxima, so you format it into output records and display them.
4:45:08
loke
Right, but how do I read the input? So far I've alweays used the interactor to input stuff.
4:46:16
loke
I know that, but the interactor pane doesn't allow me to input arbitrary text, does it? It has commands with arguments and stuff.
4:47:06
loke
Exactly. And I guess that's my question. How do I do that? Is there an example I can look at?
4:50:03
loke
I just tested READ-LINE in a display funciton. And remarkably enough, it works, but the UI hangs white it sites in the READ-LINE and there is no echoing of characters, not editing capabilities.
4:51:35
loke
As for the interactor, there is no clear way to actually call READ-LINE. Also, the interactor will always fall back to its own input mechanism after it's done, so I don't think that's the correct way to go.
4:53:34
loke
I'm looking at the CLIM LIstener code. They use something called (MAKE-CLIM-STREAM-PANE) with an INTERACTOR-PANE
5:00:30
beach
The CLIM listener uses Drei as an input editor. Drei is the input-editor subset of (first) Climacs. I think you would want to do the same.
5:02:05
nyef
Actually, (ACCEPT 'STRING) might make a lot of sense, since it provides a natural path to (ACCEPT 'MAXIMA-INPUT) or whatever.
5:04:51
loke
When using interactor-pane, it automatically calls %ACCEPT (and I get an error because of unimplemented method)
5:09:00
loke
I'm still researching. I don't want you to waste time trying to sove something that I can fix within a few minutes of further study.
5:09:56
beach
Thanks. I'll be happy to help if you get stuck. But it's a bit early in the morning. I am still working on my coffee.
5:12:02
loke
Right. CLIM Listener implements the CLIM:READ-FRAME-COMMAND method. That's where the intelligence lies, I think.
5:12:33
red-dot
While I have never seen an implementation of this outside Genera, looking at the source for the command processor might provide a few hints about how to implement it.
5:14:03
red-dot
https://www.google.com.sg/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwjb58yM1PzZAhXHOY8KHVmHDUAQjRx6BAgAEAU&url=http%3A%2F%2Fwww.jmpol.com%2Fgenera.html&psig=AOvVaw0nuDOImEFY93C5f3Nchxg6&ust=1521695626843263
5:34:48
loke
And I can reuse previous commands by clicking on them (I need to change this so that clicking on a command brings it back to the propt for editing, but I'm sure that can be done easily)
6:13:36
red-dot
loke: excellent. I have been looking for a version of the DLL to use. Sadly I cannot use McCLIM, and CLIM-TOS listener still has some bugs.
6:21:27
loke
(I honestly don't know what license mcclim has, since I have never considered using it in a commercial setting)
6:51:11
beach
The only reason I can think of for not wanting any GPL is if someone wants to take the free code, turn it into closed source commercial code without giving anything back to the authors.
8:31:54
loke
beach: GPL specifically establishes that “linking” the GPL-licensened code with other cause, requires the other code to also be covered by the GPL.
8:32:15
loke
What “linking” even means in terms of Lisp isn't very clear, and as far as I know has not ever been established.
8:32:52
red-dot
As well, there is a lot of commercial entities backing open source, but nearly always with an Apache license.
8:33:03
loke
With that in mind, is obvious why many companies legal departments simply decide to avoid any risk by simply not allowing GPL at all, even though that's an overreaction.
8:34:35
jackdaniel
loke: check out this post: https://common-lisp.net/project/ecl/posts/ECL-license.html
8:36:07
beach
loke: That would be a problem for those companies only if they don't intend to make their software free.
8:36:11
jackdaniel
in this post I argue, that it doesn't really matter, because any alternative interpretation than what llgpl provides is pure nonsense and is no different than GPL (hence, why would someone add lgpl license)
9:32:43
loke
It would be neat if it was possible to just load the ASD and be done with it, but it isn't that easy. Right now I ahve to run their makefile and install all the datafiles. Then I have to comment out a form in the ASD file before I can load it.
9:34:33
loke
and admittedly, the fact that I _am_ able to load it and run it suggests that it's not too bad.
9:34:56
jackdaniel
well, ASDF is not pure Lisp (i.e if you have conforming implementation downloaded from the moon - it won't work)
9:35:08
loke
Look at the DEFMTHOD on line 15. I don't know what is the purpose of that. https://gist.github.com/lokedhs/e32ff6b1e9fedd851c25558847f86660
9:36:05
loke
Also, Maxima runs on a huge range of CL's. In fact, I beliebve it runs on literally all of them (even GCL, I htink!)
9:36:39
loke
Maybe they dropped GCL support... Because I'm pretty sure I've seen defmethod calls in there (outside of the .asd)
9:43:34
loke
This months, there have been a handful of fixes that applies to Alpha and S390 platforms
9:44:08
jackdaniel
in that case ECL and CMUCL are as dead as they are. I'm sorry that you think that way
9:46:17
loke
I've had this discussion with pjb in the past. With his definition of “dead”, an open source project can never die.
9:46:40
jackdaniel
I think I don't want to have this discussion, just signalling that declaring projects dead despite people working on them is simply rude
9:49:04
loke
That made me wonder how we can look at this in such different light. I think that it's simply a case of me not attributing such negative value to the word “dead”. I have projects that I occasionally fix bugs in, and even push new releases (gnu-apl-mode for emacs is the best example). I'd consider that project to be for all intents and purposes dead at the moment.
9:50:39
jackdaniel
my point is that you have projects which have contributors devoted to keep thing alive. declaring these projects (despite having people working on them) you basically claim, that their effort is insignificant and worthless
9:51:10
loke
jackdaniel: Hmm... Not at all. I _think_ I can see how you came to that conclusion though.
9:53:07
jackdaniel
well, if someone would tell me, that ECL is practically dead (despite me making my best effort to improve it) - I'd feel offended
9:53:23
loke
What I'm saying is that if people are actually working on CLISP, they've taken an active decision to not make them undead (yet?). They may have a good reason for it. Perhaps working on a project while keeping it dead is a good way to not put pressure on themselves.
9:54:37
loke
jackdaniel: I think it's best if I simply don't use that word then, because it obviously causes misunderstanding. I'm struggling to find a better word that describes the state of a project which receives no public updates.
9:56:39
loke
jackdaniel: In any case, please be assured that I have no intetion of being rude to anyone who devotes time to the public good. I'm an open source developer too.
9:57:54
jackdaniel
sure, I didn't think that was in purpose, just a carefree remark - maybe *that* is the problem?
9:58:24
jackdaniel
people declare things "dead" too easy - "Lisp is dead" - how many times did I hear this phrase from outside cl community?
10:03:15
loke
Far too many times. Although for some definitions of the word, perhaps Lisp is dead in somce contexts? :-)
10:32:37
scymtym
loke: the state you describe w.r.t. your apl emacs mode is sometimes called "maintenance mode". i don't know whether it also applies to gcl or clisp, but when applicable, it seems like a fair description