freenode/#lisp - IRC Chatlog
Search
13:50:44
Xof
I just spent 5 minutes trying to find a reference and failed, so my feeling might be wrong
13:52:00
Xof
I mean specifically list structure, but, again, I'm failing to find a reference so I might well be wrong
13:52:24
Xof
(and I use (do ((x #1=(complicated thing) #1#)) ...) all the time, so I'm a hypocrite as well)
13:54:19
schweers
I can’t help but think that its more readable to use a local binding (i.e. with a name) instead, at least in most cases
13:56:31
Bike
infinitely deep or long code is banned somewhere, i think, but i doubt structure sharing is banned in general
13:56:51
Bike
macroexpansion can get you that pretty easily, and e.g. the clhs page on load-time-value talks about the possibliity
14:25:22
beach
makomo: Yes, common sub-expression elimination is usually done on the level of a flow graph.
14:27:18
beach
ym: You can't legally transform proprietary code. It is called "derivative work" and it is subject to the restrictions of copyright law.
14:30:29
ym
What do you mean telling "transform"? I can use the proprietary code as a textbook and write my own free implementation of principals I learned.
14:31:40
Bike
it's "intellectual" property because it's tied to actual ideas, not some kind of physical labor
14:32:28
beach
ym: That's debatable. And that is also the reason why people who write free software avoid looking at proprietary code as much as possible.
14:33:44
flip214
clean-room implementations typically go the route of a description that's surely "different enough"
14:34:28
Bike
i don't think using the leaked code as a textbook would really be clean room reimplementation
14:36:01
flip214
Bike: no, surely not. you'd need a transcription step inbetween, eg. via an english text.
16:15:13
skidd0
I'm looking for a framework that's "lispy" to help me learn lisp, but hopefully without a lot of boilerplate
16:15:50
skidd0
for html/templating, I'd like to stay on the traditional HTML side, so something like Clip
16:16:37
skidd0
i've looked at hunchentoot but that seems to be best as a server, not an app framework
16:18:04
skidd0
from people with experience in them, not just my superficial overviews from project homepages
16:26:14
beach
skidd0: You can ask Shinmera about Radiance, since he wrote it. But he has his own channel I think. Can't remember the name.
16:42:48
on_ion
https://github.com/quakerquickoats/hoovy/blob/master/nova-js/parenscript-additions.lisp
16:52:32
on_ion
skidd0: i forget, that was a few years ago =) it felt like i had puppet strings on top of javascript though, which is my main aim with LISP, do more effect with less cause
16:52:46
on_ion
like setting up a bunch of gears to move the world but only having to turn a little wheel =P
16:53:24
skidd0
i am attracted to the bottom up, top down programming that Paul Graham's talked about in some of his essays
16:53:39
on_ion
human time and effort is precious , may as well get the machine working as we designed them (, prolog too)
16:54:15
on_ion
yes me too, and the idea of starting out prototype dynamically, then working toward (molding/guiding) a static implementation of whatever we are doing
16:56:24
skidd0
it's really nice to just "have an idea" > "make a basic prototype of idea" > "refine that" > "have another idea"
16:58:02
on_ion
yes =) when i pick up a guitar or piano, i just play, realtime improv, no premeditated design tech spec to implement, just let creation happen joyfully
17:13:19
on_ion
skidd0: certainly two sides of the same coin, as creation destroys and destruction creates, but in fun or not may decide which side we are looking at=)
18:09:35
ZigPaw
as I long time ViM user I found doom-emacs config for emacs and sly for common lisp interaction quite sleek and functional (and I can use org-mode as an added bonus).
18:30:08
sukaeto
(granted, there's no requirement to use Djula with caveman2, but it comes along for the ride when you ql:quickload caveman2)
18:32:35
sukaeto
also also: if you really want to get experience with Lisp. Eitaro Fukamachi's (the guy who wrote caveman) documentation tends to be pretty Spartan - usually a simple crash course on possible uses of the library. For the rest of it, you've got to look at his code.
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”