freenode/#lisp - IRC Chatlog
Search
11:24:56
kora9
shka: Cool. Yeah I used an array first but it seemed like the benefits of using an array for that small a list would be outweighed by having to use generic functions right?
11:28:29
kora9
shka: Yeah, I had something like (nth (random (length (aref i wordlist))) (aref i wordlist)) for the array
11:29:16
shka
anyway, program looks fine, if you want to make it better, you may perhaps add local function so this long inner form won't be so cryptic
11:31:36
Shinmera
dim: It's implementation dependant, but not storing array dimensions in the metadata would be quite stupid.
11:48:56
Shinmera
Symbols are there to name finite quantities of things. So they're fine if you control that set. If you're processing potentially random data from elsewhere, symbols are probably not the right format.
11:53:36
Shinmera
You can use uninterned symbols for arbitrary data, but at that point the advantage of using symbols (easy typing, fast comparison) goes away.
11:58:51
schweers
I have a question for the more experienced folks here: do you miss the encapsulation and hiding mechanisms that other languages (for instance C++ and java) have?
12:00:43
schweers
I think so too, but I’m not that experienced yet, especially not with larger projects, so I wanted a second opinion. Thanks for providing it, altough I would be interested in arguments for wanting such encapsulation
12:01:09
Shinmera
The argument is "so we don't have to potentially break code our customers made in error against our library"
12:02:20
Shinmera
I like to trust users to know what they're doing, so I don't want to hinder them from doing it. If they use stuff I didn't explicitly document, and I break it in the future, that's their fault though, and it's only right that it breaks.
12:02:56
phoe
but you' can freely poke around the package's internals, inspect them, debug them, change them.
12:03:40
phoe
And if someone wants to hack your code, they'll do it anyway, so why not make it easier for them? If they're hacking around, then they're going to have a good reason for doing it.
12:04:52
schweers
debugging is a good point. I once had to edit and recompile a C++ library in order to access some field which was private, of which I thought it may have been of some use to me. Turn out it wasn’t, but that’s not the point ;) It really was a hassle to go through
12:05:03
Shinmera
Anyway, in the industry you want to minimise support requests. So, in order to do that forwards and backwards compatibility is important. So, you want to prevent your users from "doing stuff" that isn't 100% intended.
12:05:13
kora9
How do programming languages interact with hardware when they are highly abstracted like CL?
12:05:48
kora9
Shinmera: Well, say you create a graphics engine or something, at some point you have to interact with the hardware right?
12:06:11
Shinmera
kora9: For graphics you go through OS libraries that interact with the display drivers.
12:06:30
schweers
kora9: basically the same way other languages do it: calling libraries which---eventually---call the OS via syscalls
12:06:46
Shinmera
kora9: Most lisp implementations have CFFI support, so you can call any C library.
12:06:58
jackdaniel
because how it's build, you may inline C in it like you may inline assembly in C language
12:07:23
schweers
kora9: while it is not part of the standard, you can in practice poke around in “C data” and call “C functions”
12:07:23
kora9
It's too early for me to try and do any of that, but I was curious about how people who were experienced went about things like that
12:07:59
Shinmera
You practically never talk to hardware directly from any language, unless you're in the sad and miserable position of having to write a driver or operating system.
12:08:31
kora9
So you're still abstracted away, but on a slightly lower level interacting with whatever interfaces the drivers / API exposes?
12:09:10
jackdaniel
well, I've worked on writing drivers for documented hardware (like, with actual datasheets)
12:09:33
schweers
speaking of which: I have some code which uses FFI (I think CFFI, I have a really bad memory) which pokes around in a file I open via mmap. I mostly operate on machine words, i.e. 8 byte integers and floats. Is there any way to make at least the int part fast? If I understand the warning correctly, sbcl has to convert types as 8 bytes is too much to fit into a fixnum.
12:10:41
Shinmera
schweers: A fixnum is going to have less than 64 bits (due to tagging), so it needs to convert across function boundaries.
12:10:57
Shinmera
schweers: The solution is to inline as much as possible, or avoid 64 bit numbers altogether.
12:11:11
schweers
Shinmera: I don’t call any C functions, I just use it to put data into a file and read said data from there
12:12:14
schweers
so the short answer is no? accessing 8 byte memory words is expensive and will always be so (in sbcl)?
12:12:15
Shinmera
kora9: You can optimise if you want to, but I try not to focus on that at the moment.
12:13:00
Shinmera
kora9: I get acceptable performance for my current games, even without having spent any time optimising at all.
12:13:22
Shinmera
kora9: I'm sure the time will come when I do need to optimise, but I got bigger fish to fry for a long time to come.
12:15:03
Shinmera
If you want to make modern games with graphical fidelity and the kinds of things one would expect out of respectable titles, then the answer is: extremely so
12:15:22
kora9
Yeah I meant more simple things, not next-gen stuff which seems to be seriously complex
12:15:28
Shinmera
If you want to just make simple 2D sprite games or something like that, then the answer is: kinda, not really.
12:17:28
Shinmera
Well, usually when one talks about a "graphics engine" it's about stuff like OpenGL or DirectX. Implementing a renderer yourself is fun, but won't be very practical for anything due to performance.
12:18:01
kora9
Shinmera: Ah yes. What sort of things does OpenGL do for you? I figure it kind of has some features to draw things?
12:18:03
schweers
I.e. if I use a rendering engine someone else wrote, I don’t have to call OpenGL or DirectX?
12:18:04
Shinmera
I assume kora9 means a "game engine" though. As in, something that manages assets and sets up the pipelining and whatever to allow you to build games by putting together objects and their interactions.
12:18:58
Shinmera
kora9: Modern opengl gives you a programmable pipeline on the GPU to render triangles to textures. It does a whole bunch of stuff that's really complicated to explain.
12:19:09
kora9
Shinmera: I'd like to build a game engine too, and I'd like to build a graphics engine (i.e. to show graphics in general)
12:19:27
kora9
Shinmera: Ah. Yeah I figure it's complex :) But thanks for trying to explain some at least
12:20:28
jackdaniel
cepl is a nice project for working with 3d (written by baggers), there is also clinch (by warweasel), and dto's xelf
12:26:48
jackdaniel
yes, cepl is for interactive programming from REPL and providing DSL for writing shaders in lisp
12:27:19
jackdaniel
clinch has nice abstraction for objects in world, so you are encouraged to reuse parts of it. it's also easy to write in
12:27:52
kora9
Oh, so it's an abstraction for building an engine rather than an engine in and of itself?
12:28:22
Shinmera
kora9: CEPL is intended to make GPU programming accessible. You could build an engine on top of it, sure.
12:28:44
kora9
Ah, that sounds like a good starting point for me then, when the time comes that I'm good enough with CL to even attempt something like that!
12:32:40
kora9
Shinmera: The answer to this is probably very complex, but what's with graphics and triangles? I've noticed that there's a heavy emphasis on making triangles in engines
12:33:59
Shinmera
Triangles are the smallest geometric entity that has a surface. Thus anything else can be made out of triangles.
12:35:11
Shinmera
Higher polygons also have the problem that if their edge points are not on a plane, the way the shape is formed in 3D is not inherently clear.
12:40:27
Shinmera
Usually you don't have models that require tesselation anyway, so it's not a big deal.
12:44:54
kora9
Shinmera: I'm watching the youtube videos of CEPL and it seems absolutely awesome (provided you know what you're doing) :)
12:50:38
kora9
It's kind of neat to see how experienced devs are doing things even if I don't understand all of it
13:16:16
phoe
Guys - I'll need some proofreading. I've answered the recently posted Lisp Expert Questions and I need to know if I haven't said something stupid in there. https://gist.github.com/phoe/bd2f30d33c75f265ba61453dc84d8f15
13:17:34
shka
phoe: Are there any efforts to bring innovative libraries from the Clojure (or elsewhere) community into Common Lisp?
13:18:21
phoe
Shinmera: I actually wanted to write much more in here. This was meant to be the first paragraph. Thanks for pointing it out.
13:18:29
shka
phoe: you could point transactional memory implementatation, monadic parsers, lparallel
13:20:37
dlowe
shka: phoe has been doing a lot of good stuff over the years, and for you to dismiss him as trolling is just pathetic.
13:26:26
phoe
shka: Shinmera: https://gist.github.com/phoe/bd2f30d33c75f265ba61453dc84d8f15 updated. Please keep on bashing the stupidity out of this text.
13:28:08
phoe
edgar-rft: and John said, "let there be parens to delimit lists, let there be an opening paren and a closing paren"
13:56:06
edgar-rft
phoe: Why can't Google search find many good resources? Beause there are *very little* good resources of anything at all in the internet. Most other things are much shittier than Common Lisp, so nobody there notices. That's the only difference. It's a perceptional illusion.
14:03:33
zulu_inuoe
schweers: Primer style. Avoid yourself at all times. Invest in stock market. Become rich. Move to France. Build bigger time machine.
14:05:47
zulu_inuoe
In more serious news: Logging. I'm using log4cl, it's very fancy, very sleek. But I noticed it hasn't been updated since 2013. Is this a case of "It's perfect don't break it" or has it been superseded by something else?
14:09:40
zulu_inuoe
axion: Thank you. I'm checking it out now.The immediate casual glance shows me that it doesn't have slime integration, which is pretty great in log4cl
14:10:09
zulu_inuoe
shka: I fully understand, and that's why I'm trying to understand the situation rather than asking for a replacement.
14:10:47
zulu_inuoe
shka: I also believe in community involvement, so I like to keep track of what projects are getting focused on, etc.
14:16:09
kora9
One thing in Land of Lisp that's completely insane to me, is that the author uses a short url service for all links. One that happens to not be up.
14:16:51
schweers
umm … I can control and view logging from SLIME? What have I been doing with my life?
14:17:47
schweers
oleo: you don’t want to know. I hardly do it, but this seems like it could be useful for debugging
14:18:26
phoe
shka: I don't want to remove the question. If it was asked, it should be answered. In the worst case, it's a silly question.
14:19:29
shka
phoe: well, for starter, redmonk graph says that we are above the curve in github repos
14:19:32
yegortimoshenko
why (pathname (osicat:open-temporary-file)) doesn't work, at least in sbcl? osicat returns a stream
14:26:03
kora9
beach: I was asking more to gain some level of insight if generic functions in that specific scenario might impact the speed more than using an array helps (as I thought I had to use generic functions for that, then)
14:29:19
schweers
I’m trying to figure out what’s wrong with the what yegortimoshenko asked and it is weird. I have the return value of open-timporary-file in a global variable. So I can inspect it. It is an fd-stream. Yet, when I pass it to PATHNAME, it says that NIL is not a pathname!?
14:31:28
schweers
I supposed that would be the case, that is why I tried it. I find the error a little confusing though. But ok, I understand now.
14:31:37
oleo
why would pathname know anything about the stream, until the stream was yelling i'm the file located blabla
14:32:22
oleo
you have to capture information of the path additionally, at the time you are opening it....
14:49:47
yegortimoshenko
schweers: https://gist.githubusercontent.com/yegortimoshenko/445aa9c7e8d61790eb3cead3240c7903/raw/e1d7918fc1002362ae6d18e0f6416fe08d451a72/osicat.log
14:53:11
schweers
btw: if you’re on linux you might find out where the file lies by checking the contents of /proc/self/fd/
14:55:11
yegortimoshenko
schweers: thanks, nice hack. really perplexed what/why pathname on fd-streams is so broken
15:13:24
fiddlerwoaroof
phoe: as far as the "extend the standard" question goes, my sense is that the Python community has discovered that the standard library is where libraries go to die
15:13:57
fiddlerwoaroof
Once a library gets incorporated into a "standard", it can no longer develop at its own pace, but only at the pace of the various implementations of the standard
15:14:21
fiddlerwoaroof
Whereas, if you implement the library in terms of other language features and maintain it, it can evolve as necessary
15:20:58
fiddlerwoaroof
Supposedly rust people have also found this... https://news.ycombinator.com/item?id=12177545
15:21:46
loke
I know nothing about the python ecosystem, but it cannot possibly be any worse than the Javascript one.
15:25:01
whoman
cliffhanger! i grew up on C, didnt like JS for the longest time, then seen some functional stuff, played with its "hackable" ways, and i like it now. if there wasnt lisp or haskell or erlang or ocaml (in that order) i would be in JS land
15:26:48
fiddlerwoaroof
I think so, I forget all the details, but there are a couple weird edge cases for automatic semicolon insertion
15:27:03
fiddlerwoaroof
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return#Automatic_Semicolon_Insertion
15:27:10
loke
ACTION has been using Kotlin recently, and while it's overall a better language than Java (and Javascript), it also has the same "optional semicolon" rule, and I'm not sure what will happen if you do return\n123 in it.
15:27:41
loke
Since you have to declare the return value from a function, I guess it could infer the intent (which wouldn't be out of place given the language as a whole)
15:27:51
fiddlerwoaroof
The general rule of Javascript is that you can't implement any feature in the expected way: you have to implement it in the "Javascript" way.
15:37:39
fiddlerwoaroof
I don't understand why webassembly didn't start out with a DOM integration story
15:40:39
whoman
the first two forms from: https://kratofragments.wordpress.com/2014/04/26/defstruct-vs-defclass-a-2x-difference/
15:50:02
edgar-rft
whoman: defstruct and defclass are no Elisp built-ins, they are implemented in Elisp libraries, what is known for not being really fast
17:23:38
gremdrus
yesterday someone was talking about bootstrapping sicl, and I really didn't understand their argument. Was it that host-based clos could be used instead of a proto one?
17:25:19
jackdaniel
first version was compiled with some other compiler (or bootstrapped from assembly, it doesn't matter)
17:25:20
kora9
jackdaniel: I've always had issues wrapping my head around that stuff. It's very chicken and egg for me :)
17:26:22
vtomole
kora9: Me too. I've been writing a toy compiler and its starting to make sense now.
17:26:30
Bike
well, when you compile-file you get a fasl file. you can then load the fasl file in a (slightly) different lisp implementation. sicl does the same thing writ large. or will.
17:26:32
jackdaniel
but imagine situation: you have ECL bootstrapped from C (assuming you have C compiler), and using ECL you compile SICL
17:26:34
kora9
jackdaniel: Yeah I understand it on a basic level, that it makes sense that at some point, with any language that's not machine code you're going to have to compile it using something else the first time
17:27:12
kora9
jackdaniel: What I have issues wrapping my head around is how there can be performance improvements and not performance degradation when you just layer things like that
17:28:21
kora9
jackdaniel: Here's where I'm lost, because I don't get how the new compiler can produce better machine code than the one that compiled it
17:28:31
jackdaniel
compiler doesn't have to compile to the language it was bootstrapped from, it may produce native code
17:29:10
jackdaniel
what Bike said, compiler is just ordinary program, which takes as input program, and outputs machine code
17:29:19
kora9
I didn't think about that. I figured that the machine code produces would somehow be derived from the machine code used in the original compiler used to compile the new one
17:29:48
jackdaniel
kora9: for instance cross-compilers produce machine code, which is most probably impossible to run on host machine
17:30:49
jackdaniel
it doesn't matter what you compile your program (compiler) in, because what you are interested is input and output
17:31:06
jackdaniel
of course, if you compile your compiler with non-performant compiler, than compilation process may be slow
17:31:31
jackdaniel
because it doesn't matter what you compile in statement "print 'hello world'", it will always have the same result
17:32:21
jackdaniel
I think I've said everything I know about compilers, so I'm going to take a break, have a nice evening :-)
17:32:35
kora9
I've mainly used Java and Lisp and so I kind of think of programs as not being compiled in that sense
17:33:01
kora9
jackdaniel: Have a nice evening, and thanks for explaining. I'm learning, gradually :)
17:33:03
TMA
kora9: it was done previously (in the sixties) -- an assembler was written in assembly language, then a high level language (fortran) compiler was written in assembly...
17:33:57
TMA
kora9: the first lisp was written by translating the interpreter (as written on paper) to assembly by hand
17:34:53
TMA
kora9: the first LISP, it was customary to name languages with uppercase names then (as is the case with e.g. FORTRAN)
17:34:58
phoe
I remember the fun I had when compiling GCC once; I think I had GCC 4.3, I needed to compile GCC5 with GCC4, then GCC6 with GCC5, then GCC7 with GCC6, oh boy
17:35:04
kora9
phoe: I didn't know that! I've heard the term bootstrap a lot, but I never knew what it meant
17:35:46
jackdaniel
I imagine how beach is glad that he doesn't have to explain this stuff *once again* ;-)
17:36:01
TMA
kora9: originally it's from a tale about a man that pulled himself from a swamp by pulling on the straps on his boots :)
17:36:14
phoe
So either you grab an already compiled SBCL, or you need another Common Lisp implementation.
17:37:08
TMA
kora9: it is impossible to do that in reality. but the existence of that story about Munchhausen is a fact :)
17:37:48
kora9
TMA: Though when I was younger I always wondered if it would work to jump in an elevator that was crashing, to survive :)
17:39:26
kora9
TMA: That if you jump close to when the elevator crashes, you'll decrease your velocity. Probably not enough, but some :)
17:40:05
TMA
kora9: well, in theory it might (as it is the rapid deceleration that kills you. if you jumped just right you would be decelerating slower) but the timing is tricky, and you probably do not jump fast enough
17:41:08
oleo
kora9: and even if you jumped high enough, the rest kinetic energy would very probably still be too high.....
17:41:48
oleo
kora9: if you spared 10km/h from 50 km/h you'd still be jammed with 40 km/h on the ground
17:42:57
kora9
Kind of as surprising as what he said about lift and airplanes. That the theory that planes fly because of airflow being different speeds over and under the wing is wrong. They taught that at my school!
17:46:26
dlowe
yeah, airplanes fly because the wings are slanted with respect to the direction of force
17:46:44
kora9
I don't understand it exactly, because tetro said it was wrong, wait I have the link he said
17:48:38
kora9
He gave me this, I don't understand it, he tried explaining it but I'm not good with physics things :)
17:53:57
vtomole
kora9: I was a new programmer over a year ago. #lisp is a very helpful and friendly place and the people here have helped me grow a lot :)
17:55:10
kora9
vtomole: Yeah, people here are great. I'm very happy that people who are very knowledgable has the patience to put up with some of my questions. I know that sometimes they're stupid. :-P But i'm trying and I'm learning every day.
18:02:42
dlowe
well, "You might want to additionally join #clnoobs" seems like a common-sense suggestion
18:02:43
kora9
Personally I don't take offense in being called a noob unless it's being used in a derogatory fashion. I /am/ a noob
18:03:05
Shinmera
dlowe: Sure, but I mean, that's only after the question has already been addressed in here, heh
18:06:00
kora9
I think I'll ask my questions there first before bothering this channel. That seems like the polite thing to do
18:06:03
dlowe
Has value anyway, just because the people in there are a) beginners or b) experienced lispers who are there specifically to help
18:06:29
Shinmera
Right. It's just not as good at segregating traffic as one might desire it to be is all I'm saying.
18:06:52
kora9
Shinmera: Maybe it would work better to make #lisp the noob channel and #lisp-notnoobs the not noobs channel :D
18:07:13
Shinmera
That'll work as well as trying to make #lisp about all dialects and not just common lisp
18:07:37
kora9
That /was/ confusing for me when I first joined! I didn't even know the difference between Lisp/Common Lisp
18:09:21
Shinmera
Have you heard about the parens in that other language? They have edges. What do you think?
18:18:37
zulu_inuoe
I graduated school as an idealistic Computer Scientist, demanding everything be perfect. It's not until a year later that I became a "This is good enough" practical Engineer. I think you need a little of both!
18:21:49
zulu_inuoe
Unfortunately, no. I learned all my source control, working with teams, devops, etc at my first job. My school did not have a very good focus on real-world projects, and at that time I was not smart enough to reach out for myself.
18:22:15
jsjolen
I had to re-install roswell, how the heck do I set up sbcl source locationsnow again :-/?
18:23:21
zulu_inuoe
That's not the ideal, but I was lucky to land a job at a -very- practical company, so the contrasting viewpoints between me and my colleagues I think really helped me grow.
18:23:57
zulu_inuoe
^I mean to say, a lot of the people I worked with went to schools (one school in particular) that was pretty much all hands-on, and very little theory
18:30:27
sukaeto
zulu_inuoe: fwiw, a degree in computer science isn't meant to prepare you for work as a software developer (though some departments are expanding their program in that direction these days)
18:32:08
zulu_inuoe
sukaeto: Yes. That is 100% correct and a thing some people often misunderstand. I don't regret the school not giving me more hands-on experience, I regret not going out and getting it myself. But again, it all worked out well for me
18:34:45
zulu_inuoe
jsjolen: A lot of schools (including the one I went to, -after- I graduated) will have a "Senior Project", which is a big, open-ended development project. You get aquainted with source control, working in a team, documentation, setting goals, dealing with third-party libraries and tools, etc.
18:35:40
jsjolen
zulu_inuoe: Nice. We had the same in 2nd year, with the addition of working with a company to produce some sort of product/deliverable
18:59:41
ptdel
hello, could somebody tell me why when I run this, only the second make-instance is returned? I think I am misunderstanding how to use defmethod, my understanding was i could redefine the method multiple times http://sprunge.us/FgiY
19:03:11
Bike
even if you didn't, it's a progn method combination, you're only getting one thing out of it
19:04:20
ptdel
ah ok, I was looking at the yason example code and it defines a few classes and then makes multiple defmethods from yason:encode-object
19:04:50
Bike
kind of seems like you meant them to specialized on LIST-NAMED-QUERIES and LIST-QUERY-EXECUTIONS
19:06:24
Bike
if encode slots has two methods, one on list-named-queries and one on list-query-executions, and neither of those classes inherits from the other, and you call encode-slots an object of type list-named-quries
19:12:43
ptdel
ACTION shrugs trying to bootstrap myself into the language i still dont know the full spec of most keywords offhand
19:49:12
gremdrus
this is my horrible code: https://gist.github.com/gremdrus/7b03dad2fdaffe472d3d978700bb2a5f
19:49:28
_rumbler31
I bet the function you're calling is expecting to see the symbol :path "somepath" and you're not giving it that
19:50:49
gremdrus
(defun foo (&key ((:apple a)) ((:box b) 0) ((:charlie c) 0 c-supplied-p)) (list a b c c-supplied-p))
19:53:50
_rumbler31
additionally, isn't a keyword argument to a function exposed by the name, not the keyword?
19:57:59
gremdrus
now I am getting: odd number of &KEY arguments https://gist.github.com/gremdrus/aed0062155d44b48286d15bedcfca084
19:58:52
sjl
gremdrus: it would help if we had the full error, like where is it complaining about an odd number of key args?
20:18:12
phoe
and the first thing I'll do after publishing it is posting it to /r/lisp and hackernews
20:37:44
phoe
There: https://gist.github.com/phoe/d93f968f22bbcc87070cdc5831762021 <- this is a non-public preview.
20:38:14
phoe
tl;dr: I grabbed all the comments I found and reparsed them into something more readable, and also added mine.
20:50:01
pjb
phoe: re: github, one problem is that github is github.COM and is located in the USA ; gitlab on the other hand was gitorious.ORG and was located in Europe. At a time when network or github failures meant that European workers were stuck half a day without being able to push to the central repository, and considering that most CL libraries are freedom software, and not privative COMmercial software, it would seem more logical to
20:50:28
pjb
phoe: on the other hand, nowadays, gitorious has been bought by gitlab.COM, but there's framagit.ORG which is located in France.
20:51:46
pjb
phoe: there are also licensing restrictions that were imposed by github with some self generated FUD. (It seems they're cleared it up, but still, the point remains that if you use only one such repository, you're at the mercy of the US enterprise and their shareholder).
21:02:56
phoe
(I'll gladly accept some HN upvotes, too. https://news.ycombinator.com/item?id=15012678)
21:15:43
fiddlerwoaroof
This is a bit naïve, but I think it solves most of my html sanitization problems:
21:17:03
fiddlerwoaroof
Shinmera: I'm using a variant of TeMPOraL's code in this issue: https://github.com/Shinmera/plump/issues/7 I'm not sure what the best way to add an html-compliant serialization mode is.
21:17:10
fiddlerwoaroof
https://github.com/fiddlerwoaroof/html-sanitizer/blob/master/html-sanitizer.lisp#L6
21:20:28
sukaeto
fiddlerwoaroof: fwiw, that looks similar to approaches I've applied in the past (except I just changed tags not on the whitlelist into <div>s or some such)
21:21:12
sukaeto
just in case validation from some dude on the internet, who's presented no credentials, and who hasn't particularly considered/researched in depth the security implications of such an approach means anything to you at all :-D
21:21:56
fiddlerwoaroof
Yeah, with this sort of things the best thing is to get a bunch of eyes on it
21:55:30
Shinmera
fiddlerwoaroof: Though I'm not sure myself, hence why I haven't resolved the issue yet.
21:57:07
fiddlerwoaroof
Yeah, I don't really want to depend on the server's configuration for proper operation. It might be a good idea to add an optional serializer argument to the serialize function?
21:57:21
Posterdati
I do not know why lispers don't like openbsd as develop platform... For certain things is far superior to linux
21:57:45
fiddlerwoaroof
That way, if you defined a protocol for such objects, users could add whatever features they need.
22:00:36
fiddlerwoaroof
Also, I don't know if anyone here is in the LA / Santa Barbara area, but it would be great to have some more lispers at https://www.meetup.com/codecraftgroup/events/242348019/
22:13:19
fiddlerwoaroof
Every once in I while, I wish I had the ability to create anonymous generic functions
22:17:09
fiddlerwoaroof
I don't know :) I suspect one could create a generic function metaobject and then add methods to it using the MOP