freenode/#lisp - IRC Chatlog
Search
11:23:05
jackdaniel
and my firefox seems to append https automatically, that's probably why I entered it that way
15:53:25
devon
jackdaniel: Your graph at https://common-lisp.net/project/ecl/static/quarterly/img/vol4/all-hierarchy.png implausibly shows Lisp-to-C --> Star Sapphire
16:00:18
jackdaniel
devon: it is based from scraps of information I've found on the internet, and as we all know internet is a trustworthy resource
16:09:43
devon
JackDaniel: lol, according to a list of Commercial Common Lisp implementations at https://www.cs.cmu.edu/Groups/AI/html/faqs/lang/lisp/part4/faq-doc-2.html ... Star Sapphire Common LISP 3.4 ... Sapiens Software also has a Lisp-to-C translator in beta-test
16:19:55
devon
I'd guess the ...> arrow points the wrong way as SSCL is a complete product and I don't know whether the later Lisp-to-C product ever made it out of Beta.
16:21:27
jackdaniel
I don't think Lisp-to-C translator has some code from Star Sapphire, if it is the component of the latter
16:26:00
jackdaniel
arrows are not about timeline, note clasp <--> ecl (even if clasp is ecl's fork)
16:28:59
jackdaniel
if there are two implementations with common roots which dross-pollute, they share code with each other
16:30:38
sjl
does "B shares code with A" means "some A's code is used by B" or "some of B's code is used by A"?
16:31:44
sjl
I think, judging by the directionality of the other kinds of arrows, that A --> B means "B contains some of A's code"
16:33:52
sjl
the legend says it means "B shares code with A", which might be interpreted the other way though. If "sjl shares coffee with jackdaniel" it's reasonable to expect that I've given you some of my coffee.
16:35:01
jackdaniel
if SSCL is a product which says, that it features LtC, then LtC is its component
17:00:28
devon
Lol, just a misleading graph on the internet, ho-hum. I'd like to see libre-licened source code to the Sapiens Software products - Star Sapphire Common Lisp & Lisp-to-C.
17:02:38
shrdlu68
Has any of you used adw-charting? http://ryepup.unwashedmeme.com/lisp/adw-charting/
17:05:24
jackdaniel
for instance (adw-charting:with-line-charts (200 100 :background '(1 .5 .5)) (adw-charting:add-series "foo" (list …)))
17:06:23
shrdlu68
jackdaniel: "Symbol "WITH-LINE-CHARTS" not found in the NET.ACCELERATION.CHARTING package."
17:07:52
shrdlu68
I think it ought to be "with-line-chart" without the "s" at the end, but even that doesn't work on my system.
17:18:30
shrdlu68
jackdaniel: I'me getting a different error this time: https://paste.pound-python.org/show/YyKp5c2pPI60SoeDCj7q/
17:39:43
jackdaniel
try using one of the examples in http://ryepup.unwashedmeme.com/lisp/adw-charting/
17:49:27
shrdlu68
jackdaniel: I had used the with-line-chart example in that webpage, but when I've tried the with-pie-chart example just now and it works.
18:27:57
jackdaniel
are there any worthy chatbots written in CL except cliki-bot cl-irc and derivatives?
18:30:59
Shinmera
there's also the predecessor which can only do IRC and is a lot more muddled in the design. https://github.com/Shinmera/colleen
18:32:07
jackdaniel
is there some pattern matching mechanism, or it's more about commands? (I can't find it at first glance)
18:33:40
jackdaniel
I'm not after anything particular, I'm poking the web about various ideas for a user interface
18:34:08
Shinmera
Maiden's commands agent is a bit "special" in that it does prefix matches, but the prefixes can have spaces
18:35:02
jackdaniel
fwiw from my quick look at elizee implementation in cliki-bot there is no NLP but rather simple pattern matching
18:35:39
jackdaniel
pattern matching may be used for many tasks, not only natural language processing
18:37:27
Colleen
Command Syntax: notify on join TARGET &STRING MESSAGE
Documentation: Send a notification message that will be displayed as soon as the user joins a channel the bot is on again.
18:38:15
Shinmera
You can do stuff like ^ with the commands. Nothing super fancy, but it's been serviceable so far.
18:38:42
jackdaniel
as of Colleen, I never can remember how to call memo on it, so it usually ends in a few tries
18:39:41
Shinmera
It's just "notify person bla bla bla", which I consider less obtuse than "memo for persona: bla bla", where you have to remember the : for it to work.
18:40:31
koenig
Holy cow, Maiden is exactly what I've been looking around for! Thanks for the discussion on this.
18:40:52
Shinmera
Where I do agree is that if you want to find a command for something, the help it gives is horrible. The "closest match" stuff is based on a really primitive distance algorithm that sucks badly for natural language.
18:41:16
Shinmera
As in, it considers "a" closer to "foo" than "foo bar", which is really not what you want.
18:42:42
koenig
I just wanted an IRC bot in CL that I could build from, to have a bot but also to improve CL skills/knowledge. I'm a very advanced programmer but a neophyte in CL.
18:43:20
koenig
I wanted something that had an abstract sense of Events, though. My goal would be to overload libev, actually. But it looks like the Event abstraction in Maiden could do exactly that.
18:43:27
Shinmera
Maiden is a bit over-engineered in some aspects, but I won't try to shush away potential users :)
18:44:23
koenig
Actually, I don't quite see how Events are implemented, and have to jump on a call in 15 minutes so probably don't have much time to look. But I'll enjoy digging around in this code. Thanks!
18:59:49
pjb
koenig: there are several IRC bots written in CL around. For example botihn. Ask it in #hn
19:02:11
pjb
koenig: another, more sophisticated example would be botil https://gitlab.com/com-informatimago/com-informatimago/tree/master/small-cl-pgms/botil (with several threads).
19:02:27
pjb
koenig: https://gitlab.com/com-informatimago/com-informatimago/blob/master/small-cl-pgms/botil/design/f-botil.png
19:03:31
koenig
Excellent. Thanks! I find when learning something (e.g., CL) it's best to have a high-interest project to work on to focus one's attention.
19:05:40
phoe
Funny, this is the documentation page that is linked from the github repo that this page links to.
19:06:34
shrdlu68
Heh, like the english dictionary defines "entity" using "thing" and then define "thing" using "entity".
19:10:02
shrdlu68
Just realized that is it didn't have some cicular definitions it would be infinite.
19:28:14
phoe
I have a list that always follows the form (FOO BAR BAZ QUUX), basically a list of four values. Can I somehow use this knowledge to shorten the writing of (destructuring-bind (foo bar baz quux) list (make-instance 'fred :foo foo :bar bar :baz baz :quux quux))?
19:34:09
Bike
i'd just write (defun make-fred-from-list (list) (destructuring-bind ...)) and inline it.
19:39:01
tfb
phoe: I think the Real Programmer's approach would be (apply #'make-instance 'fred (mapcan #'list kw-list val-list))
20:18:20
whoman
wow - https://matthias.benkard.de/objective-cl/ - anyone know where i can find this?
20:23:18
pjb
phoe: (defstruct (may (:type list)) foo bar baz quux) (make-instance 'fred :foo (may-foo m) :bar (may-bar m) …)
20:28:45
pjb
whoman: try: ftp://ftp.informatimago.com/users/pjb/clipboard/benkard-de--objective-cl.tar.bz2
20:31:05
pjb
whoman: but it has bitrotten a little. Nowadays we have Objective-C version 2.0 runtimes…
20:34:05
Younder
this one: ftp://ftp.informatimago.com/users/pjb/clipboard/benkard-de--objective-cl.tar.bz2
20:35:31
pjb
com.informatimago.objcl "Objective-CL" is a layer above the Clozure CL Objective-C bridge providing an "Objective-CL" syntax (similar to Objective-C, using brackets and @ and smalltalk-like syntax).
20:35:56
Younder
Just had all kid of hel with a gcc-70 which i wanted for open acc. Should have chrooted it
20:36:11
pjb
Eventually, the Objective-CL syntax should be able to work above the Objective-CL bridge as well as above the Clozure CL Objective-C bridge.
20:53:40
nyef
Shinmera: "Maiden" and "Deeds"? Would I be doing you an unkindness if I suspected a St. Trinians reference here?
21:09:37
osune
I have a question regarding the package internal symbols context and macros: this is in the context of StumpWM. StumpWm exports a macro called add-hook, which adds a hook function to a list. These function are called in the context of which package, if I use add-hook from with in my own package?
21:11:25
osune
Bike: no it does not it uses only external symbols; so no using directive in my package
21:12:10
jasom
osune: for example: (in-package foo) (defmacro macro1 (x) `(a ,x)) (in-package bar) (macroexpand '(foo:macro1 a)) => (foo::a bar::a)
21:13:35
jasom
osune: as soon as a symbol is read, it is interned into the current package. The first "A" was read when macro1's definition was read, the second "A" was read when reading the macroexpand form.
21:14:19
osune
jasom: that clears it up for me. the situation with foo:: was clear to me, but the situation for bar:: not so much. thanks!
21:16:31
osune
so that means I don't have to make my-hook-functions external nor do I have to write my-module::my-hook-function.
21:18:38
jasom
osune: correct. Also note that macros which use only internal symbols and symbols from the CL package are hygienic when used in other packages.
21:20:45
jasom
oh the "used" was "invoked" the "use" was rather loose to mean generate symbols in the expansion
21:21:56
jasom
If it were permitted to flet cl:list, then this following (stupid) macro would be unhygienic: (defmacro listm (&rest args) `(cl:list ,@args))
21:23:16
mfiano
Why does `(loop :for x :in "hello" :collect x)` properly error, but `(loop :for x :on "hello" :collect x)` not? I thought that `ON` requires a cons?
21:24:22
specbot
The for-as-on-list subclause: http://www.lispworks.com/reference/HyperSpec/Body/06_abac.htm