libera/#commonlisp - IRC Chatlog
Search
9:37:20
_death
it seems usocket has been broken on sbcl for almost a month now as it uses inaddr-any as a host to connect to, no matter the host provided? what am I missing here? https://github.com/usocket/usocket/commit/7a24c571541b1d046976f0c175f1f2658dbdf0f7#diff-eced9d709105db28d76a7b3d2182cb547fc815a4c1e37faa249df9d699b116a3R454
12:14:46
jcowan
_death: for local-domain (aka Unix-domain) sockets the host is always localhost, so the socket doesn't care what you specify
12:17:38
_death
it's not about unix sockets.. it's just a bug that causes ordinary tcp socket-connect to fail, including everything that uses usocket for that, like drakma or dexador.. so I just reverted to 3006689e
14:02:37
beach
On the one hand, DECLARE takes a "declaration specifier" which is a list where the CAR is a "declaration identifier", and a "declaration identifier" is a symbol.
14:02:41
beach
On the other hand, the dictionary entry for TYPE says that (typespec var*) is an abbreviation for (TYPE typespec var*) and as far as I can see, it doesn't restrict typespec to be a symbol.
14:02:42
beach
Furthermore, SBCL accepts the example, which suggests that the SBCL maintainers considered the syntax valid.
14:05:10
thuna`
It is convenient if valid but I would say that the more strict restriction applies so it's not valid
14:08:09
beach
Oh, I guess I can ask people to run the example in the implementations at their disposal.
14:18:01
semz
beach: http://www.lispworks.com/documentation/HyperSpec/Issues/iss349_w.htm seems to explicitly allow it.
14:19:50
pfdietz
So, this was something that appeared in the final version, rather than in this draft of the standard?
14:26:11
beach
Brucio-61: The s-expression-syntax library rejects this syntax. Does this fact reflect your choice of interpretation of the standard?
14:30:40
Brucio-61
beach: i simply haven't thought about that case before. i can probably adjust the syntax description to allow the compound type specifier variant
14:31:20
beach
I see. Well, we should think about it at least. I wonder what other Common Lisp implementations do.
14:31:21
Brucio-61
i will probably have to perform some implicit conversion since the resulting node cannot use a compound type specifier as the declaration identifier (is that the term?)
14:47:44
jcowan
I'd say that given a conflict between the main text and the glossary, the main text should normally win
14:51:54
Colleen
Shorthand notation for type declarations http://www.lispworks.com/reference/HyperSpec/Body/03_cca.htm
15:24:46
gilberth
The trouble with that shorthand notation is that there is no way in ANSI-CL to tell whether a symbol names a type nor whether a symbol names a declaration. So you can't have macros that actually look at declarations. This may be troublesome when you want to implement a macro which binds variables serially, yet you want to use nested LETs. As you would need to pull out declarations applying to a specific symbol.
15:26:16
gilberth
Consider e.g. that you want to implement DESTRUCTURING-BIND on your own. You would need to make it turn into just one LET. Can be done, but it may be awkward.
16:59:36
pfdietz
gilberth: I don't understand that objection. You can always recognize declaration forms, since they are conses who car is the symbol declare.
17:01:13
gilberth
Suppose I want to lift all type declarations for 'x', do I need to lift that declaration, or don't I need to do that?
18:13:37
gilberth
I was specifically speaking about ANSI-CL. I'm aware of that olde lexical environment access. And it's not SBCL-specific in any way. In practice I am fine with using implementation-specific means.
18:14:42
gilberth
More severe IMHO is that neither EVAL nor COMPILE does take an environment argument. This makes it impossible to write a code walker.