freenode/lisp - IRC Chatlog
Search
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.
6:05:13
jackdaniel
I'm not sure if I understand, even spec says explicitly "defstruct defines a structured type, named structure-type (...). "
6:06:21
Bike
"If no :type option is involved, then the structure name of the including structure definition becomes the name of a data type"
6:06:45
Bike
er, wrong bit. "For structures defined with a :type option, type-of returns a type specifier such as list or (vector t), depending on the type supplied to the :type option. The structure name does not become a valid type specifier. "
6:08:40
axion
That's where deftype comes in, so I don't have to (declaim (ftype (function (some-long-array-type ..))))
9:24:19
Bike
with :type defstruct turns into a convenient way to define a bunch of thin wrapper functions
9:25:04
Bike
and perfectly implementable in the rest of common lisp, except for boa constructors probs
9:59:07
phoe_
there's a gzip library for CL, you could technically use it to extract files into strings, streamify them and supply them to LOAD.