freenode/#lisp - IRC Chatlog
Search
2:58:15
Xach
loke: had a power outage, now it does not react to power switch. replaced the power supply, still doesn't power on. haven't fully troubleshot.
3:00:55
skeuomorf
How do I start new common lisp projects? i.e. how to structure projects? FWIW I am going to use SBCL
3:01:09
Xach
I appreciate the offer, contributions will already more than cover replacement hardware. It's the time suck that is the main hassle.
3:01:47
Xach
skeuomorf: https://xach.livejournal.com/278047.html is something i wrote a while ago. there are other guides out there.
3:50:39
aeth
And in general, just follow the link to # instead of #p http://www.lispworks.com/documentation/HyperSpec/Body/02_dh.htm
6:38:33
skeuomorf
beach: Was gonna do a pseudo-"static site generator" to replace my current setup "Hakyll" but decided to discard the idea for the moment
6:41:53
skeuomorf
jackdaniel: Yeah, I saw that earlier but it doesn't really fit my needs, has a lot of things that I don't need (e.g. colorize, tweeting, gfycats, ..etc) and doesn't have stuff I need (I sometimes write in rst, org-mode, LaTeX)
6:44:58
jackdaniel
(ftr) https://common-lisp.net/project/ecl/ ; https://common-lisp.net/project/mcclim/ ; turtleware.eu
6:45:09
skeuomorf
jackdaniel: Yes, I am aware. I meant in regards to the codebase, I haven't looked at it yet though
6:47:12
jackdaniel
afair coleslaw is pretty extensible, so if you find rst->html converter adding a plugin should be straightforward
6:47:25
jackdaniel
I've added cl-who plugin at some point of time because I needed control over tables
6:48:03
skeuomorf
The main reason I'm moving away from Hakyll is that it's the embodiment of the Turing Tarpit
6:48:28
skeuomorf
jackdaniel: Yeah, I've used similar EDSLs in Haskell and more closely to CL in Clojure e.g. Hiccup
6:55:34
skeuomorf
jackdaniel: It seems it already has support for rst https://github.com/kingcons/coleslaw/blob/master/docs/plugin-use.md#restructuredtext
6:57:49
jackdaniel
(just to be clear – I'm not affiliated with the project, I just happen to use this software)
8:32:28
nowhere_man
two times in a row, I managed to corrupt somehow a FASL file in my SBCL, while doing something that nothing to do with it
8:33:24
nowhere_man
killed SBCL, started it again, loaded the system I'm working on, then I get "The variable BULK/CORE::+CORE+ is unbound."
8:36:49
xificurC
nowhere_man: which first list? (list x :y :z) == '(:x :y :z) in this case. I'm asking how can I inject a symbol's value into trivia's pattern matcher
8:38:48
xificurC
imagine you're trying to rewrite this into trivia::match (let ((x :x) (to-match '(:x :y :z))) (cond ((eq x (car to-match)) (cdr to-match))))
8:39:14
scymtym
xificurC: not directly afaik, but you can do (let ((x :x)) (optima:match '(:x :y :z) ((list* (optima:guard first (eq first x)) rest) (list :first first :rest rest)))) (which should work in trivia as well)
8:40:16
jackdaniel
I had problems with trivia not evaluating first match argument (so not being really compatible with optima)
8:44:37
xificurC
I looked over the pattern matching libraries on cliki, which is always fun to do after ~2 years. I also really liked cl-unification (except for find-variable-value) and screamer. Is anyone here using any of these? Would love some feedback from first hand experience
8:44:39
jackdaniel
I remember having optima match expression used in trivia what lead to compilation error
8:50:29
xificurC
loli: ok, now rewrite this to trivia::match (let ((x :x) (to-match '(:x :y :z))) (cond ((eq x (car to-match)) (cdr to-match))))
8:58:17
scymtym
xificurC: optima has a shortcut for the guard thing: (let ((x :x)) (optima:match '(:x :y :z) ((list* (eq x) rest) (list :rest rest))))
9:09:30
loli
I would suggest consulting the wiki, as it has information on special-patterns and what not
9:09:49
loli
also I would recommend looking into let-match if you only have 1 form inside of a match
9:18:14
loli
it seems forms like equal are implemented with defpattern, and they are a macro ontop of guard
9:20:04
loli
with defpattern, it seems pretty easy to implement rackets ?, thus giving you any predicate
11:10:09
dim
with sbcl 1.4.7 and asdf 3.3.2 under debian I get The symbol "*SYSTEM-DEFINITION-SEARCH-FUNCTIONS*" is not external in the ASDF/FIND-SYSTEM package.
13:31:38
dlowe
Serializing large objects seems like something that would require a lot of memory if you stored the serialization.
13:36:09
shrdlu68
shka: Sorry, not sure exactly what you need. Also haven't used any of those libs myself.
13:40:36
shrdlu68
Well, some of those mention that they serialize to streams, so they might not require as much memory.
13:58:48
schweers
I have a quesion regarding macros, environments and expansion. I’d like to gather pieces of code from various places and splice them together in another place, which happens later. I’m thinking of having a macro (lets call it on-way), which accepts code and stores it somehow. In addition, I’d need another macro, which takes this stored code and generates new code from it. I was thinking of storing not just the c
13:58:48
schweers
environment, so I could macroexpand while piecing things together. So far I’m not sure if I misunderstood something completely. The question which really bugs me though is: what about closures? What if the code I’m storing away refers to some lexical variable which will be long gone by the time the final code is assembled?
14:00:34
scymtym_
shka: if your data has no circularities, maybe binding CL-STORE:*CHECK-FOR-CIRCS* to NIL could help
14:02:53
beach
schweers: I for one have absolutely no idea what the purpose of your code gathering would be, nor of the use case you are thinking of.
14:03:17
beach
schweers: So you don't control where your code gathering takes place? Otherwise, just don't gather code that refers to lexical variables in parent functions.
14:03:18
schweers
jdz: not exactly mixing, but I know that my understanding is yet a little unclear. Hence my question. I already suspected that I could not have the code I collect refer to lexical variables
14:04:51
schweers
sorry, I should expand a little: I want to walk an OSM (openstreetmap) file, and would like to register handlers for when a node, a way, or a relation object is encountered. I already do this with functions, and it works. But, as a thought experiment, I wanted to know if I could gather the code at compile-time and paste it together to have one big blob of code in the end.
14:05:10
schweers
is seems that this would not work. So I have already learned something from the answers given here
14:06:33
schweers
ignoring the issue of refering to the lexical environment: is it at all considered sane to gather code from various places (together with the &environment) and splice them together somewhere else?
14:07:36
beach
schweers: Not really. In Cleavir, we convert the code to ASTs (which no longer refers to the environment), and those ASTs are more easily combined.
14:08:41
shka
schweers: take a look at the metabang-bind source code to see reasonable way to handle this kind of stuff
14:09:05
beach
schweers: By interrogating the environment to see what the code means, and as a result, creating the AST that the code stands for. Macros and compiler macros are expanded so that no such expansion is required by further processing.
14:11:02
beach
shka: It is, though. If different code snippets are in different environment, you can't gather them without first removing the environment information.
14:12:03
shka
beach: yeah, but why you would want to gather code snippets from different envs if you are not trying to build something that is basicly a compiler?
14:12:23
schweers
shka: the amount of code would not depend on the size of the openstreetmap input. I just want to gather the pieces of code on what to do with a node (for instance). But, the more I think about it, the less feasable it seems, for various reasons
14:13:03
beach
shka: Clearly if code can refer to lexical variables in a parent, then the environment will be different for that code.
14:14:35
schweers
I know there is no /need/. I just wanted to know if it could be done, and what it would take.
14:16:03
schweers
so again, thanks alot for all your answers. you’ve helped me understand some things a little better.
14:23:14
steven___
i have a question about commonqt, this is mycode (:qt-superclass "QGraphicsEllipseItem"), but it running with error, how can i resolve it
14:44:08
scymtym_
Xach: i have fixed versions of cxml and xpath (bug fixes, fewer warnings) which i would like to push into sharplispers repositories. any objections or suggestions?