freenode/#lisp - IRC Chatlog
Search
20:47:19
ealfonso
I know it might be silly to ask this here. I want to write a simple web application. I have used clojure (ring, etc) and hunchentoot in CL. why should I prefer one over the other?
20:55:47
ealfonso
It seems that clojure is more 'sophisticated' for web app development, but I liked working with hunchentoot and I haven't used clojure in a while... I guess I'm looking for the lack of a strong reason to use clojure
21:13:49
aeth
Does anyone use unit testing with CI, especially Gitlab CI? Is testing beyond unit testing ever done in CL?
21:45:30
ZigPaw
aeth yes, look at tests in ceramic for example: https://github.com/ceramic/ceramic/tree/master/t there are integration tests there as well (not much sophisticated but they are there). And you can see travis.yml file how they are executed by CI (and it is quite similar I think to yaml file from gitlab).
23:04:00
jasom
https://github.com/gschjetne/json-mop <-- this looks very interesting to me; anyone here have experience with it?
23:24:56
jasom
pillton: encoding to json from a class should be mechanical for all specifiers except :any
23:25:03
pillton
In data flow programming you often have computations where the output is the input with a few entries added. It is possible to create an instance of the class representing the input and the class representing the output from the same data structure.
23:26:48
jasom
pillton: this looks like it's specifically for round-tripping objects in JSON, so there doesn't appear to be a way to add or remove slots when encoding
23:27:27
pillton
I am not sure if it is a good idea to do what I said earlier, but the pattern occurred often enough that I wondered if was worth thinking about the relationship between type and the representation of state.
23:29:10
jasom
I have an ad-hoc unspecified implementation of half of json-mop's functionality in one of my webapps...
23:34:22
pillton
It is probably worth banding together and giving it some more thought. This functionality with support in parenscript would be cool.
23:40:43
jasom
oh right, my implementation did have support on the parenscript side, which this doesn't appear to provide...
0:09:37
ealfonso
I'm using this json library which uses plists as default type when deserializing json... and I'm reading that "Common Lisp does not use a symbol's property list as extensively as earlier Lisp implementations did. Less-used data, such as compiler, debugging, and documentation information, is kept on property lists in Common Lisp." https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node108.html is it worth using this library, or should I
0:13:16
White_Flame
it's simply the difference between (key val key val ...) and ((key . val) (key . val) ...)
1:16:29
LdBeth
In CCL I (DEFCLASS CLASS-WITH-SLOT (STANDARD-CLASS) (SLOT)) and then (DEFCLASS FOO () () (:METACLASS CLASS-WITH-SLOT)), but it complains “SIMPLE-ERROR The class #<STANDARD-CLASS STANDARD-OBJECT> was specified as a super-class of the class #<STANDARD-CLASS FOO>; but the meta-classes #<STANDARD-CLASS CLASS-WITH-SLOT> and #<STANDARD-CLASS STANDARD-CLASS> are incompatible”
2:27:33
ealfonso`
I can't seem to find how to get a hunchentoot stream to use with cl-who... is there an example?
6:14:50
White_Flame
is there some way in slime to see how the dynamic bindings for a symbol change throughout the backtrace?
6:33:44
White_Flame
I think 'e' might work to evaluate the variable, but it's curiously consistent throughout the trace
6:34:13
White_Flame
I'm getting symbols from READ-FROM-STRING that are from the CL-USER package instead of the package I'm in, for no discernable reason
6:34:29
White_Flame
so I want to trace what's happening with *PACKAGE* in the stack trace as it blows up
6:34:57
White_Flame
when starting a thread, it appears to default *package* to cl-user, which is one thing
6:58:44
on_ion
something in here perhaps? https://stackoverflow.com/questions/1511981/how-to-examine-list-of-defined-functions-from-common-lisp-repl-prompt
7:17:16
beach
White_Flame: Set the *package* to the KEYWORD package. Then it always prints package prefixes.
7:17:48
beach
White_Flame: A new thread does not take the current thread-local values of special variables by default.
7:18:36
beach
I think SBCL has some extra arguments to the thread-creating function to bind special variables.