freenode/#lisp - IRC Chatlog
Search
10:31:36
akr
so if you pass example@example.com as the envelope, cl-smtp tries to use <example@example.com>
10:33:10
akr
the problem seems to be here: https://gitlab.common-lisp.net/cl-smtp/cl-smtp/blob/master/cl-smtp.lisp#L398
10:37:19
akr
#<SMTP-PROTOCOL-ERROR a command failed:\\ncommand: \\\"MAIL FROM:noreply@domain.eu\\\" expected: 250 response-code: 555 response-message: 5.5.2 Syntax error. w3sm148620wrp.51 - gsmtp>
10:37:21
akr
#<SMTP-PROTOCOL-ERROR a command failed:\\ncommand: \\\"MAIL FROM:noreply@domain.eu\\\" expected: 250 response-code: 555 response-message: 5.5.2 Syntax error. w3sm148620wrp.51 - gsmtp>
10:44:45
akr
there was a problem with my envelope which I fixed and then there was a problem with Google SMTP denying our requests doe to wrong IP or somesuch
10:47:55
beach
prite: There are two common ways, either "see loss" or "kloss". I use the former. I know nobody to pronounces each individual letter.
11:21:50
jackdaniel
some pronouce it c-loss, as an ultimate argument in favor of Common Lisp (and not for C). of course it sounds all the same, but it is the feeling you put into words what counts here ,)
15:32:29
MichaelRaskin
Well, a lot of fun is not really planned. There are just around 5 or 10 repos that are not business logic but relatively general libraries
15:33:17
MichaelRaskin
Most of them don't even change much, because next layer of code depends on them and they just work more or less fine as they are
15:34:20
MichaelRaskin
Just a generally good idea to have previously published code mentioned at ELS available at Common-Lisp.net; so not fun, just adding a few lines to a list of repos to mirror
15:41:47
drmeister
What's the deal? Do I implement something like a simple-vector for simple data types where I keep a pointer to an arbitrary location in memory?
15:42:00
phoe
AFAIK you need to ensure that they are never garbage-collected (unless you free them manually) and that they are never moved
15:42:37
phoe
and once that happens, these vectors are static - they don't move, they aren't GC-managed, you can get a pointer to their storage and send it to C code
15:43:04
phoe
and once the C code returns, you can access the same data in Lisp by using the vector reference that you created when you created the static vector
15:43:47
drmeister
Ok, that's one thing - but can the data be stored anywhere in memory? If it can - then I need to have a GC managed object that contains an indirection to the data that can be stored anywhere.
15:44:28
drmeister
In Clasp there is GC managed memory and then there is C/malloc/C++/new managed memory.
15:45:31
phoe
they are the equivalent of calling standard malloc - you get some memory that won't ever move, and you can reference that memory all over your program.
15:45:36
drmeister
Say I call a C function and it allocates an array of double values and returns a pointer to that data to me. Do I want to be able to then create a static-vector that points to that data?
15:47:20
drmeister
If I do point into C++/C memory - then I need an object in GC memory that points to that C++/C memory and all static-vector accesses are through that indirection.
15:48:03
phoe
You can't allocate the vector's storage in C and then use it in Lisp to create a vector from it.
15:49:23
drmeister
Then I could implement static-vectors by simply allocating our current simple vectors of simple types in a non-moving pool.
15:50:14
drmeister
That means I just need to add some creator functions that use the non-moving pool allocator rather than the moving pool allocation in MPS.
15:50:54
drmeister
Well, I need to create an interface that for boehm will do nothing more than it already does.
15:52:15
drmeister
But it's always Common Lisp that allocates the memory and passes the pointer to the non-moving memory to the C or C++ code. It's NEVER the C or C++ code that allocates memory and tells Common Lisp where it is.
15:53:06
drmeister
Static vectors have come up again and again - and now with the netcdf stuff it looks like I really need them.
16:26:23
phoe
No no, I didn't mean that one - I thought that with your goal of bonding C++ and CL, you would have needed them much earlier.
16:27:55
drmeister
I haven't really dealt with arrays of data yet between C++ and Clasp. It's been more about exposing hundreds of little niggly functions for the llvm and clang API's.
16:29:29
drmeister
But I've prepared for this by implementing all sorts of specialized arrays for plain-old-data types.
16:44:40
Xach
Hmm, I have a libboost problem on debian 8. I need a newer version than backports provides.
16:57:04
makomo
MichaelRaskin: i just remembered a reason why i couldn't use MACROLETs for that thing we discussed yesterday -- package locks.
17:01:44
makomo
and i think it would be neat to be able to syntactically overload + (or other standard operators) in some cases (without having to deal with package issues, shadowing, w/e)
17:02:22
casouri
Is there any difference between inherited sybmols and imported ones? IFAIK I have to use ``prefix:'' for inherited ones. But on the other hand, if I import two packages with the same exported symbol, there is a conflict, dispite that they have different prefixes.
17:03:32
casouri
And to resolve the conflict I need to import either one as shdow, and I don't use prefix for that symbol?
17:09:24
beach
casouri: Because when you import a symbol with a name S to a package P, then that symbol becomes available as P:S (or P::S if not exported) no matter the home package of S.
17:09:48
beach
casouri: So, since you can't have two different symbols referred to as P:S, there is a conflict.
17:11:32
makomo
MichaelRaskin: so going back to rewriting the code using AL itself: there's another "issue" that i see here. if there are any MACROLETs in the outer lexical scope of WITH-OVERLOAD, AL will expand the occurences of those within the body of W-O before the rewriting logic gets to see them
17:11:54
casouri
If I have (defpackage :P (:use :S)), does exported symbols in S all become P:symbol? Because when I use them in P I use S:symbol.
17:12:48
beach
casouri: If you do that, then you never need the :USE S. Which is the best way anyway.
17:13:04
makomo
MichaelRaskin: right, but can i reliably (taking of course the inherent limitations of code walking) tell whether an operator is a macro or not?
17:13:21
makomo
MichaelRaskin: i saw that there's a metanv function that gives you "function-like" entries
17:13:32
beach
casouri: :USE S means that you want to import them to P so that you can use them inside P without a prefix, our from outside P with prefix P:.
17:15:41
MichaelRaskin
Of course, that means that macrolets _inside_ the with-overload cannot override overload
17:16:04
beach
casouri: As soon as the package S is created, you can use the exported symbols in it by providing the S: prefix, from any other package.
17:17:35
MichaelRaskin
makomo: I guess you can ask metaenv if it is a locally-for-overload defined macro
17:20:49
makomo
MichaelRaskin: in this case i'm considering both function and macro operators. in general, what if i wanted to collect only the macro operators, how could i tell, once my :on-function-form-pre handler is called, that the operator is really a macro?
17:21:35
MichaelRaskin
Well, you could ask metaenv if it knows such a macro, and if not, ask its fallback-env for a macro-function
17:30:32
akater
casouri: There's a nice little guide to symbols and packages http://www.flownet.com/ron/packages.pdf
17:31:51
Xach
there are a few things i really dislike about that guide. it is ok if you disregard the tone of "isn't this a badly-designed and foolish thing I have to explain for you?"
17:36:51
akater
I guess it's very subjective. I tried to consult PCL on exactly 3 subjects: packages, CLOS, conditions. Each time I failed to find an answer to my question. Since then I don't recommend that book. But this paper did help me with packages.
17:42:32
Xach
Well, "better" is perhaps not the right term. I appreciate their breadth and accuracy.
17:47:43
akater
Why is it that (time (series:subseries (series:scan-range) 0 4)) reports 0 consing, and yet SERIES object has DATA-SO-FAR slot that is filled with some apparently cached results?
17:53:11
Xach
akater: (time (cons 1 1)) similarly returns 0. perhaps there is a certian amount of available allocated space that must fill up before it registers in TIME. (i don't know the true answer, sorry.)
18:27:09
Moosef
Hey I am trying to create a simple web api. Does anyone know a good library/libraries for this. I have been looking at ningle so far.
19:07:44
slightlycyborg
I cant access a slot of a parent class using slot-value. The parent class is defined in a seperate package. I am getting the slot-missing error.
19:09:32
pjb
slightlycyborg: this is why you should instead define an accessor function, and export the name of the accessor function.
19:21:48
fiddlerwoaroof
cage_: that library looks interesting, I've generally used https://github.com/fukamachi/ningle
19:22:54
fiddlerwoaroof
One nice thing about ningle is that you can switch between various webservers fairly easily, including a fastcgi one, for proxying with nginx or similar
20:47:10
makomo
MichaelRaskin: not sure if i already asked you this before, but i definitely forgot if i did: does the EXPAND-VIA-FUNCTION macro in your paper have a slight typo regarding backquote/commas?
20:59:14
makomo
MichaelRaskin: hm, but if e-v-f expands into code which evaluates to the expansion of its body, how is it possible for the evaluation of the example to yield (1 3)? shouldn't the evaluation yield the mentioned expansion?
21:01:04
makomo
MichaelRaskin: oh, also, when trying to load e-v-f itself i get an error because there are nested commas without a corresponding backquote
21:10:17
makomo
MichaelRaskin: even with that fix the example doesn't evaluate to a list of 2 elements. does macroexpanding something that looks like '<form> make sense? sorry if i'm missing something obvious. the transcribed code is here: https://plaster.tymoon.eu/view/1203#1203
21:16:29
makomo
true, but isn't the macroexpand-all in this case recieving the result of `',form, i.e. the result of (list quote form), so that it ends up macroexpanding a quoted form (which iiuc doesn't do anything)?