freenode/#lisp - IRC Chatlog
Search
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
10:17:27
no-defun-allowed
see, it'll pop a %thing on the end here: http://people.cs.uchicago.edu/~wiseman/humor/large-programs.html
10:18:16
Shinmera
In Lisp graphics news, here's another short video of my clipmaps implementation. https://www.youtube.com/watch?v=dTRDlgw-C50
10:19:02
splittist
Shinmera: mmap looks great. Thanks for all your work! (The "No documentation provided." entry under the package name looks a bit out of place. It doesn't appear in your documentation for documentation-tools, for example. Which (doc...-tools) also looks very interesting.)
10:19:29
Shinmera
splittist: It appears because packages can have docstrings, but I usually don't provide them.
10:19:44
Shinmera
and the docs for documentation-utils were generated before Staple was fixed to do that.
10:22:06
Shinmera
It looks a bit cruddy right now due to low framerates and a bug in the terrain generator that makes the splatmaps too low res
10:26:47
Shinmera
When I booted it up today still FPS were ~50 while yesterday it was ~100. I don't remember changing anything so I don't know what's going on.
10:31:04
no-defun-allowed
i pushed the refactored stuff for cl-decentralise including a simple netsplit solution
10:34:46
no-defun-allowed
my cl-decentralise stress test gets only 20 synchronous ops/second, which i can't pin on any lisp functions
10:38:48
Colleen
Function socket-connect https://common-lisp.net/project/usocket/api-docs.shtml#socket-connect
10:39:02
Shinmera
There's a :nodelay option for client connections. Not sure about server connections.
10:55:27
flip214
there's no debian-stable or -security update yet, that might have come in automatically even
11:10:52
schjetne
Hmm, turns out SSL in CL wasn't trivial on any platform when you want fancy stuff like TLS 1.2
11:12:44
schjetne
I just needed to write a quick command line tool that should also work on Windows in the least painless way possible. It needs to talk HTTPS with TLS 1.2 and I'd figured I'd take the chance to sneak in some CL in the project
11:23:49
no-defun-allowed
You can't talk about Intel not being fast, they'll cease and desist you, flip214 and Shinmera!!
11:49:46
jdz
Does anybody know where's the source .org file Postmodern documentation is generated from?
12:26:22
schjetne
shrdlu68: I thought I might try seeing what version of OpenSSL CL+SSL links against and see if I can get it working that way. Or maybe just writing a script that calls cURL.
12:26:35
jdz
sabrac: I need (well, want) prepared statements to work after DB reconnect, and I have it working locally. But bits of documentation need to be updated.
12:56:20
AeroNotix
Shinmera: reason using the designer/ui files is that half of the application doesn't really need to be written.
12:58:30
AeroNotix
Exactly, that's what I want to do, write code, but relatively interesting code though. I find placing widgets/setting defaults etc is akin to writing html/css
12:59:11
AeroNotix
I'll have a play when I finish my current thing to pick up cluic again, clearly I didn't get very far.
13:00:06
AeroNotix
Shinmera: btw, when running commonqt code through slime if there's an exception in the Qt thread (it seems?) then I can't start an Qt application again in slime, needing a restart. I'm assuming there's some state left over somewhere that I need to clear.
13:00:37
Shinmera
If the exception happens outside of a slot or override then Qt slits its throat and it's game over.
14:37:30
jdz
sabrac: my changes to Postmodern currently live here: https://github.com/jdz/Postmodern/tree/local
16:12:01
random-nick
is there a standard function to determine if a character represents whitespace?
16:18:27
pjb
random-nick: there's only 1 standard whitespace character: #\space. There are a few semi-standard whitespace characters such as #\tab and #\page. But it's an application domain question whether #\return #\backspace and #\newline should be considered whitespaces or not.
16:19:38
pjb
Even while unicode specifies a whitespace character class, it's still application dependent what character should be considered whitespace!
16:24:11
fouric
is there a pattern to which quicklisp releases have system names prefixed with "cl-" and which do not?
16:25:13
Shinmera
A sub-pattern of that is: the library is a re-implementation or binding library to another, already existing algorithm/system/library