freenode/#lisp - IRC Chatlog
Search
22:55:22
Demosthenex
dim: and i saw that. i even considered using a virtual copy from my views into tables, but i thought i'd do it in lisp first instead of leaning on the DB
22:59:14
Demosthenex
dim: in the case of numbers, i still had to type cast text to int for comparison constantly, and that was slow.
0:11:33
AeroNotix
Is there anything in commonqt like the C++/python tools that will convert the .ui files into proper clos classes?
0:13:56
AeroNotix
seems like: https://en.wikipedia.org/wiki/List_of_language_bindings_for_Qt_4 the answer is no
0:14:46
AeroNotix
haha omg, seems like I made a vague attempt at this years ago though: https://github.com/AeroNotix/cluic
6:01:34
Shinmera
AeroNotix: When I was more active doing Qtools stuff I thought about doing that, but then I remembered that I hated UI designers with a raging passion so I dropped it.
6:02:39
smokeink
question for the web experts: https://github.com/fukamachi/myway/blob/master/src/mapper.lisp if there is an "add-route" function, shouldn't there also be a "del-route" counterpart?
6:05:04
smokeink
so I went along trying to patch one in.. but I was surprised to find that for some reason the authors chose to use collectors instead of lists. And you can't delete stuff from collectors
6:08:04
Shinmera
Not to be a downer, but fukamachi code often has decisions I don't quite understand.
6:10:46
smokeink
it happens to many of us.. no prob, I'll just fork his proj and hack the guts out of it until it works as I want it to. Just wanted to make sure it's not me who's missing something obvious.
6:12:39
Shinmera
No, seriously though, even if you don't use Radiance, I assume there's other libraries that provide routing for Clack
6:18:44
jackdaniel
smokeink: collectors manage a simple list. removing thing from such collector is no more than a list operation. if you want to pop from it you'll have a little harder time though
6:20:39
jackdaniel
something like (rplaca (col) (cadr (col)) (rplacd (col) (cddr (col))) ; need to be tested™
6:23:54
smokeink
Shinmera: okay. Radiance is good when one wants a full-stack solution . Ningle is minimal, I tried it after tried a few other more complex alternatives and after Someone had told me that he just uses hunchentoot + his own macros, so I wanted to try such an approach. This approach suits me and is quite cool, you can implement on top of ningle's routing just what you need , and you don't clutter the app with stuff that you might never use, (or in the case
6:23:54
smokeink
of RESTAS , stuff which don't really work as you would want and are hard to be modified)
6:29:21
Shinmera
Well the thing with Radiance is that it isn't a full stack if you don't need it to be.
6:30:51
Shinmera
But you are right in the sense that the advantages it offers are likely not going to benefit every kind of project.
7:48:37
flip214
when I have a GF, can I write a compiler macro that calls that function to evaluate the result for some constant inputs?
7:50:24
Shinmera
Calling a function you're writing a compiler macro for is infinitely recursive. You can't do that.
7:52:27
Shinmera
After all, if you did that the function would sometimes act like a macro, sometimes like a function, depending on whether the compiler macro is expanded or not.
7:54:44
Shinmera
flip214: I frankly don't know what you're misunderstanding about compiler macros, nor what you're trying to do, so
7:56:10
flip214
for (CONSTANTP what) I'd like to just insert either (PRINC "string" stream) resp. "string" (if (NULL stream)).
7:56:25
Shinmera
(define-compiler-macro (&whole whole &environment env what &optional stream) (if (constantp what env) `(load-time-value ,whole) whole))
7:56:29
flip214
so I thought I can write a compiler macro that just inserts either of these two in call sites.
7:56:58
Shinmera
constantp does not do what you think it does either. the `what` is a quoted form, not a value necessarily.
7:57:14
Shinmera
In compiler macros you pretty much always need to emit l-t-v forms if you want to constant-fold.
7:57:46
Shinmera
Also my above snippet is not quite right yet, you need to check the stream too, of course.
7:57:59
flip214
and L-T-V requires me to have all the methods in another file (ASDF-required) or to use an EVAL-WHEN to have them available at load-time of the compiler-macro, right?
7:58:32
Shinmera
load-time loads methods sequentially so if all methods happen before a call to your function you're fine.
8:58:00
remix2000
Hello, What’s the difference between passing a lambda prefixed with #' or without that prefix to a function?
9:01:33
smokeink
remix2000: https://letoverlambda.com/index.cl/guest/chap2.html "There are few good reasons to prefix your lambda forms with #' thanks to the lambda macro."
9:09:34
edgar-rft
What Doug Hoyte wants to point out is that ((lambda (x) (+ 1 x)) 2) works but (#'(lambda (x) (+ 1 x)) 2) signals an error.
9:13:52
remix2000
Ok, thanks :) For me it looks more obvious without that prefix. I was only curious whether it’s permitted by ANSI standard or is there some performance overhead.
9:30:53
Shinmera
XachX: Any news on when the next QL release cycle hits? I have quite a few things piled up now.
10:04:47
no-defun-allowed
if you do it you tend to mash different components together which often is a pain in the ass to look at later
10:06:04
smokeink
is there a portable way to catch simple-parse-error exceptions thrown by (parse-integer)? When I catch sb-int:simple-parse-error inside handler-case it says style warning Undefined function:; SB-INT:SIMPLE-PARSE-ERROR , but it seems to work just fine
10:08:15
White_Flame
smokeink: you probably have parens where you shouldn't, making an expression look like a function call
10:08:58
Shinmera
While you're at it you might also want to set the default-bindings to something like `((*standard-output* . ,*standard-output*) (*error-output* . ,*error-output*) (*trace-output* . ,*trace-output*) (*query-io* . ,*query-io*) ... etc)
10:09:53
Colleen
smokeink: Clhs: function parse-integer http://www.lispworks.com/documentation/HyperSpec/Body/f_parse_.htm
10:11:50
no-defun-allowed
my code scans a list for nodes it doesn't have and forks off to probe new ones
10:14:17
White_Flame
you could loop over the common-lisp package symbols, test which ones are special, and copy them all :-P
10:15:32
no-defun-allowed
[i much prefered `(bt:make-thread (lambda () ,@body))`](http://people.cs.uchicago.edu/~wiseman/humor/large-programs.html)
10:16:07
Shinmera
no-defun-allowed: Regarding your convention of writing URLs into chat, please note that parens are valid constituents of URL parts, so some chats might invalidly think the closing paren is part of the URL.
10:16:39
no-defun-allowed
that's fair but my matrix client hates me and puts gibberish on non-fancy markdown URLs