freenode/lisp - IRC Chatlog
Search
20:09:23
Xach
can anyone figure out this failure? http://report.quicklisp.org/2017-02-22/failure-report/trivial-ws.html#trivial-ws-client
20:39:53
mood
Xach: trivial-ws-client depends on websocket-driver, which used to depend on cl-async. It stopped doing so 3 days ago
20:50:57
jasom
TIL there is a 2am. 1am is a stripped down fiveAM, and 2am is 1am plus some extra features...
20:59:12
drmeister
Hey - does anyone use docker and would have some time to answer some questions? I'm trying to build and deploy Clasp as a docker container and I have a few questions.
21:04:09
jasom
TruePika 2017-02-21 00:43:17 beach phoe_: You need an instance, but you can use the class prototype, so you don't need to make a new instance.
21:09:34
alecigne
Hi all. Would you know a library for Common Lisp that I could use to write text on image files (jpeg or png for example)? I use SBCL. Thanks :)
21:14:22
TruePika
I'm not sure there's a single library for watermarking, but it should be possible with a font render library and an image access library
21:15:36
Xach
alecigne: When I wanted to do that, I generated a watermark file in lisp, and combined it by calling imagemagick.
21:16:05
Xach
alecigne: i used a system like that to make hundreds of thousands of watermarked graphics on the fly, no issues.
21:16:45
Xach
for very very large files, i found imagemagick too slow, so i wrote a small C program that combines images (including watermarks). it has a somewhat unfriendly command-line, though.
21:18:46
TruePika
of note, you need to have e.g. "-alpha" and "remove" as seperate entries in the list, so they bind to consecutive ARGV (versus having an argument that contains a space)
21:24:02
alecigne
I was looking at opticl today, but I don't know if it can composite (not talking about text here)
21:25:24
alecigne
That's what I was thinking but it might be out of my league (I'll look into it though)
21:31:40
Xach
Hmm, Allegro Express takes rather less fiddling to try than I remember from last time. Download and run, no license file or anything.
21:41:19
jasom
TruePika: https://github.com/ds26gte/scmindent is setup to work with vim I think. Not as smart as slime but better than vim's lisp mode (which is in turn better than nearly all non-emacs lisp indentors)
21:42:00
TruePika
jasom: I normally use whatever Limp uses, which I know is different from the default lisp mode
21:46:29
TruePika
I'm too used to my Limp setup; F12 to go to/from REPL, '\cl' to compile+load file, etc.
21:48:14
TruePika
and if emacs doesn't use lock files like #P".*.swp" I have to rewrite lots of .gitignore files
21:49:19
TruePika
...though, granted, these aren't in repos themselves (partially since I don't know what files need to be ignored in emacs-based setups)
21:52:09
TruePika
the client doesn't work nicely on Windows systems without window compositing (esp. Win7 w/o Aero)
21:58:12
fiddlerwoaroof
One thing I haven't satisfactorily figured out is how to get paredit-wrap-sexp to wrap from the beginning of the current word, rather than from the cursor
21:58:50
fiddlerwoaroof
I have a sort of hacky solution that sends the cursor forward a word and then back a word before invoking the wrap function, but it's not really ideal
22:00:26
TruePika
I don't know of anyone nearby who started with Emacs (and heck, from what I've heard, one of Pierce College's (community college) classes has a section on Vim)
22:03:28
TruePika
I'm sure emacs would have been fine if I had e.g. a Space Cadet, versus an IBM-compatible
22:05:24
TruePika
varjag: sounds like Virus, the Vi implementation used on NAO for config file editing
22:06:03
prxq
i don't think that many people use Vi for serious stuff. It's mostly editing config files and stuff.
22:07:22
fiddlerwoaroof
prxq: I'm not really sure, but it's definitely really nice for serious stuff
22:14:55
jasom
prxq: that reminds me, I need to work on my geany plugin for lisp; with a little tweaking it could become a netbeans plugin I bet.
22:20:21
jasom
antoszka: spacemacs felt like an "uncanny valley" to me; to close to vim, but also too far.
22:21:34
fiddlerwoaroof
Just starting from evil mode and a fairly simple set of keymappings works really well
22:27:29
antoszka
i've always hated the limited non-modal editing possibilities of vim in insert mode
22:28:02
prxq
If all I knew was netbeans, eclipse, or visual studio, the idea of moving to vi would probably seem utterly ridiculous (slightly less of emacs, but still)
22:33:20
fiddlerwoaroof
I did a tiny bit of Android development with Intellij, and I realized that having something to autocomplete the boilerplate almost makes Java a bearable language
22:34:28
prxq
without an ide it's a language so crappy as to be completely out of the question. But then - blinkenlights and mouse-driven prgramming make for a phase change
22:35:25
TruePika
I don't understand why it is so widely used, when better alternatives can be developed
22:35:52
TruePika
I mean, one of my sisters was taught Java in high school, and she's completly put off programming now
22:37:08
TruePika
Pretty much the only selling point for Java is the platform-independant bytecode, but that can be replicated for any language
22:37:38
pillton
I mean, one of my sisters was taught math in high school, and she's completely put off math now.
22:38:44
aeth
You don't even need platform-independent bytecode, just compile a language to CL. It's large and capable enough, and then you have access to all of Quicklisp.
22:39:10
fiddlerwoaroof
Yeah, but "all of Quicklisp" is a drop in the bucket compared to what's available on the JVM
22:39:26
aeth
Afaik, though, the problem with Java isn't the language (mostly... it does have some verbosity issues), it's that Java is the language that was taking off right when design pattern overuse was taking off.
22:40:42
TruePika
prxq: nowadays, but that's partially because of the large number of devs that use it
22:41:38
fiddlerwoaroof
Also, you get things like a GC that is well-tested and that people have spent millions of dollars on
22:56:42
fiddlerwoaroof
The main problem is that they don't really reflect the state of the art anymore, as far as I'm aware
23:31:01
foom
Xach: well, I have lots of experience with sbcl's being non-optimal. CCL's I have less experience with; it might be at the very least a better-working stop-the-world single-threaded generational gc. (I don't know). But, either way, that's still far from what anyone would call a good GC these days.
23:34:01
pjb
I'm still have to encounter a situation where the particular gc algorithm is a problem.
23:34:42
fiddlerwoaroof
I suspect it would be places where latency is the most important consideration
23:35:12
foom
Reading about the huge advanced made in Go's GC implementation over a few releases can give a pretty nice picture of what a modern GC can be expected to do.
23:35:50
fiddlerwoaroof
foom: from what I understand, Go's gc isn't really "good" so much as it's been tuned for a very specific set of uses
23:38:12
libreman
Is there any better way to interact with couchdb than clouchdb? It seems to contain a lot of bugs and the code quality is also quite poor.
23:38:53
foom
fiddlerwoaroof: I'm not going to argue about the definition of "good", but, let's just say it has a lot of goodness in it.
23:39:43
drmeister
Hey folks - I thought I'd toss this out if anyone is interested and has free time for a little Common Lisp project.
23:40:29
drmeister
Clasp's compiler doesn't currently signal warnings for unknown special variables or functions - nor does it match calls to lambda lists.
23:41:15
drmeister
If you or anyone you know might be interested in beefing up this aspect of Clasp's Common Lisp compiler (which runs Cleavir) - I'd love to talk with you.
23:41:46
drmeister
Nice error messages and warnings would be really helpful rather than discovering problems at runtime.
23:42:56
Bike
cleavir already signals both of those, you just want it to assume things about missing variables/warnings. with functions that involves waiting for the compilation unit, but variables can be immediate if you just warn in the handler
23:46:14
raydeejay
I started reading Communicating Sequential Processes and I'm trying to implement the first examples in CL... does this look sound?
23:46:40
Bike
it would actually warn now if there's an explicit declaim ftype, but declaim ftype doesn't work on clasp
23:51:34
Bike
well, you might want to make the warning clearer, like "found an unbound variable, assuming it's special" kind of thing, but yeah essentially
23:54:08
Xach
i am a-wrasslin with all implementations today, and their treatment of DIRECTORY and symlinks (which might be dead). does clasp copy ecl in its directory interface?
0:01:40
Xach
drmeister: I mean the standard cl:directory function, which is almost always augmented by implementations with new arguments.
0:05:56
Xach
drmeister: Ok. I'm curious about two things - is there a way to not resolve symlinks? and what happens to dead symlinks?
0:07:25
drmeister
I can't answer those questions off the top of my head. But here's an example of the differences between ECL and Clasp...
0:10:20
Xach
but in my case, i need to go against that standard behavior, and most (maybe all?) implementations enable that.
0:12:40
Xach
drmeister: it varies by implementation. on sbcl, it's :resolve-symlinks nil. on ecl, it's the same.
0:12:57
drmeister
This is clasp's directory lambda list: (mask &key (resolve-symlinks t) &allow-other-keys)
0:14:27
drmeister
Yes - clasp pays attention to the :resolve-symlinks argument and acts accordingly.
0:17:22
drmeister
Clasp may have a problem in that it returns /private/etc for (directory "/*") where ECL doesn't
0:18:16
Xach
drmeister: if you do (directory "/etc/*.*" :resolve-symlinks nil) do you get ("/private/etc/..." ...) or ("/etc/..." ...)?
0:21:11
drmeister
Is what clasp is doing non-conformant - or does this count as implementation dependent behavior?
0:21:42
Xach
very implementation-dependent. but it seems to go against the intent of the argument - it looks like it *is* resolving symlinks, just a symlink at a higher level
0:21:55
drmeister
Also, as a rule, I try to reproduce what ECL does because it simplifies things like this.
0:24:58
drmeister
This is clasp: https://github.com/drmeister/clasp/blob/dev/src/core/unixfsys.cc#L1358
0:39:25
myrkraverk
That is, can I "use" something in a package only if the user already ql:quickload;ed it?
0:42:21
myrkraverk
Does ql:quickload have something to propagate such options to the system/package?
0:43:37
myrkraverk
Specifically, I'm wondering if a user can specify flexichains as on optional dependency on my punycode decoder.
0:44:28
myrkraverk
Though even if I haven't yet done some benchmarks, I'm thinking about making it some sort of an optional thing; not a requirement.
0:45:47
myrkraverk
Maybe I can have punycode use some sort of plugins and punycode+flexychains load it with that plugin.
0:47:17
myrkraverk
I just have to do some experimentation and see if I can come up with a sane plugin API.
0:48:17
myrkraverk
In other news, I have finished the decoder implementation; now I just have to splice in flexichains (and maybe plugins) for some sort of efficient string building.
0:57:18
myrkraverk
"punycode-decode doesn't implement it at all." <-- also lies. There is a decoder in the source.
1:41:07
TruePika
these are base methods for a base class; they'll _work_ for properly-defined subclasses, but it is best to have a version specifically for each subclass which is optimized to its architecture
4:26:57
krwq
hello, I'm trying to port my app to windows, when running it, it tries to do something with gcc and says that it can't find it - i have installed mingw hoping it will discover it after but it didn't - anyone has done that before?
4:30:45
krwq
Thank you pillton - i still am getting errors but ill try to figure it out myself first
4:44:45
krwq
is there any way to tell what error did the grovel process exit with? when i run that manually from command line i get different error depending if im in mingw/bin or not
4:52:54
pillton
From what I recall the 64bit version of mingw had to be downloaded and installed separately.
5:32:57
axion
Given that the recommended style for predicates is foop/some-foo-p, how should a defstruct slot be defined? Should it be ex: foo-p such that the concatenated accessor is some-foo-p? Or some other way?
5:34:59
loke
Since I pretty much always use DEFCLASS rather than DEFSTRUCT, that's a natural thing anyway.
5:38:01
axion
Not just that, but for type defining structs as arrays and such: http://paste.lisp.org/display/336028
5:40:18
Bike
i mean the defstruct is completely different, it doesn't define a type, it defines a copy function, like five other functions
5:42:33
axion
It doesn't have to be. This way I get an array that can be uploaded to OpenGL and be able to access it like an object, and declare the input of all functions as a specific type of array.
5:45:45
axion
Because the :type on the struct allows SBCL to treat it purely like a vector type, so the optimization can work very nicely on it.
5:46:14
axion
Also, I can know exactly the size of the structure in memory, since it is a real array of a certain type, but it is harder to know for defclass instance.