freenode/#lisp - IRC Chatlog
Search
17:32:06
fe[nl]ix
tazjin: actually I misread that. it can happen and there are actually a few systems that offer simple compatibility for other libraries
18:29:50
inaimathi
Hello; I wrote a thing to give me some cross-implementation generic-function introspection https://github.com/inaimathi/cl-mop/pull/1/files
18:31:03
inaimathi
(Also, I've only got access to clisp, sbcl and ccl locally, so I'm hoping a Lispworks/Allegro/CMUCL user can give me a rundown on how to extend this for those lisps)
18:35:30
Bike
i don't know why you'd want these functions that operate on both methods and generic functions
18:36:00
Bike
since specializer-object only works on eql specializers, specializer-objects-of is not going to work on anything with any methods that have any specializers other than eql ones
18:40:08
inaimathi
It looks like `closer-mop` does the cross-platform imports I'm looking for here. Thanks!
18:41:32
inaimathi
(`specializer-object` works on anything; it returns the object of eql-specializers and the identity of other specializers (which should be a class reference))
18:45:14
makomo_
are there any other languages that have 2-argument versions of rounding functions such as FLOOR, CEILING, ROUND, etc.?
18:49:37
makomo_
excel also has a 2-argument version of CEILING for example, but the second argument is the "singificance" rather than the divisor
19:11:31
aeth
Other languages probably optimise floor(x/y) to do the same thing as (floor x y) in CL (assuming that / is defined similarly to CL's)... but most (all?) CLs don't optimize (floor (/ x y)) because (floor x y) exists.
19:12:41
aeth
what's great, though, is that (1) it's explicit and (2) you have plenty of options (floor, ffloor, ceiling, fceiling, truncate, ftruncate, round, fround)
19:14:24
pjb
And that they return 2 values, so you don't need to call two functions to get the quotient and the remainder.
19:15:52
aeth
But if you do want just the latter, you have both mod and rem available, which is rare. Check out the table to see comparable languages: https://en.wikipedia.org/wiki/Modulo_operation#Remainder_calculation_for_the_modulo_operation
20:26:00
jasom
ooh, this is interesting, cxml with klacks does it wrong, but cxml with sax does it right...
20:51:49
Bike
Is an implementation allowed to define documentation for things automatically if the user doesn't?
20:52:12
Bike
like for example, (defun foo (a b) ...), and then (documentation 'foo 'function) => "Function FOO (a b)" or something.
20:55:04
phoe
An implementation may drop docstrings at any time... but the spec is silent about the implementation *supplying* them at any time.
20:56:34
phoe
I believe that your implementation may call #'(SETF DOCUMENTATION) as a part of its DEFUN, DEFVAR, DEFGENERIC, ... with default values if no user-provided value is specified.
20:57:22
phoe
the accessor itself might decide to resort to some kind of default value when there is no user-specified documentation set.
20:59:05
jasom
Xach: here's a pie-in-the-sky feature request: a single command to generate a diff from what is currently in the directory for a project from what QL would put there if downloading it fresh
20:59:54
pjb
For used defined objects, I feel that if the user didn't specify a documentation then documentation should return nil.
21:02:01
jasom
Bike: usually implementations show what you suggest with DESCRIBE not with DOCUMENTATION
21:03:01
Bike
whether i can avoid having another slot in the environment by putting it in the docstring instead
21:27:09
combo1611
Having troubles installing Alegro CL on Ubuntu. bunzip2 is loaded and is extracting, but even with sudo, I am getting mkdir permission denied error.
21:33:36
phoe
combo1611: you should ask on the Franz support forums. #lisp@freenode is mostly about FOSS Lisp implementations.
21:36:55
combo1611
Oh, I'm not sure I even want Alegro, then. I'll search this FOSS term, thank you.
21:38:26
phoe
Steel Bank Common Lisp, a Common Lisp implementation that is open source and put in the public domain.
21:44:29
aeth
I would recommend trying SBCL, CCL, and ECL in that order, which is also the order of popularity on Quicklisp when you skip CLISP (no stable release in nearly 8 years!), ABCL (the JVM is in its own world), and the commercial implementations (LispWorks and Allegro). http://blog.quicklisp.org/2018/02/quicklisp-implementation-stats-for-2017.html
21:49:00
Shinmera
I own a root server, which is set up with several lxc containers. But this is getting offtopic.
21:55:57
combo1611
Nermind, I think that is a silly question. I guess I'm just thrown off by the newest version not available for Debian.
22:05:28
aeth
in 1.4.3: "bug fix: fixed heap exhaustion bug when consing millions of small objects" <- I think I might have encountered this before
22:09:11
phoe
If you're already an emacs user, then you might prefer to set up your own environment from bits and pieces.
22:12:51
combo1611
Mmm, I'll probably stick with the method in Practical CL -- besides the Allegro part.
22:13:46
combo1611
phoe: I see. That does sound like a nice download to have all that. Very helpful.
22:13:56
Shinmera
if I remember correctly PCL wants you to use lispbox, which is outdated and has been superseded by Portacle
22:31:50
combo1611
Dang! What a slick install Portacle was. SBCL was also very easy. Bravo CL community.
22:33:30
combo1611
Installs have always been tough for me. I'm starting to get the hang of tarballs.
22:35:38
whoman
sometimes it feels that the software we made to help us version stuff is when versioning became a problem
23:11:36
dTal
the JS people probably talk on some flashy web-based thing that uses 80% of your CPU and will be broken in 6 months
23:13:34
dTal
the idea that javascript, an admittedly impressive 3-week hack from someone who was told "Java" and wanted "Scheme", could actually be a serious programming language decades later, is a sign of computing culture's completely bankrupt engineering philosophy
23:14:28
jmercouris
I think we should encourage off topic conversation, it's part of keeping the community healthy and alive
23:15:10
dTal
remember when we all collectively regarded javascript accurately? When we are all like "oh, that warty language that runs in web browsers"? Remember that?
23:17:10
jmercouris
also programming the way we know it, interactively, is I guess much newer- to be fair
23:17:11
learning
plus you got 75% of people who will say two lines are the same length if everyone else does first. and those 75% of people will defend bad design.
23:17:25
dTal
Or rather, history is filled with languages that, while not perfect, were clearly on the right track, and were then completely abandoned
23:18:10
learning
if you released a program that had a UI as bad as programming no one would use your program
23:18:39
pjb
jmercouris: sure, theres even a day of the year for her: https://www.daysoftheyear.com/days/ada-lovelace-day/
23:19:53
dTal
the trouble is that the computing world does not regard ergonomics a top priority, and programming barely regards it at all
23:20:33
dTal
hell, Python invented the revolutionary idea that maybe a language shouldn't totally suck to use, and look at it now even though it's slow and warty and unprincipled
23:22:16
learning
you can do it lisp, but we dont. for good reasons, but you can't discount the value of familarity and simplicity in python
23:22:20
dTal
now Python pisses me off tremendously but it's almost always the path of least resistance
23:22:20
pjb
Indeed, you'd go at least as far as Basic to find a language that sucks as much as Python.
23:22:22
whoman
about "nerds make the coolest shit" - no one is selling that. just saying that if you want ergo, pay money
23:23:07
dTal
Python sucks and does not suck. You have to admit it does something right, or it would not be so popular.
23:23:22
pjb
But it wasn't worth the pain to make a new language and a whole new ecosystem to such that much really! What a shame. Even Ruby which sucks a lot, sucks way less than Python!
23:23:26
whoman
video games arent exactly "the coolest shiz" after reaching a certain level of maturity
23:23:36
learning
well i think part of being a lisper is looking at other languages for inspriation because you know you can do it in yours
23:24:34
whoman
in bible times babylon worshipped 'baal' aka "the lord of the flies" because their "sacrifices" (garbage) would be accepted based on flies/maggots/etc
23:25:11
whoman
observing the last couple of months, i think lisp promotes being social, at least online. i dont think that is a "problem
23:25:21
pjb
Those languages, ruby, python, clojures, etc, are just me-too languages that have had success.
23:25:52
whoman
the more "ego-centric" or "ego-filled" languages are easier for the flies to be attracted to and identify with.
23:26:39
dTal
whoman: social in the sense of talking about Lisp, but not neccesarily in the sense of writing code that works together
23:27:45
dTal
A big problem in the programming language world is how fans of a language embrace their chosen language's shitty parts in a tribalistic way
23:28:45
pjb
Not at a given time. But this may be the number programmer who have used lisp seriously at one time or another.
23:29:10
whoman
for myself personally, i like to draw the parallel of the meditating and chanting monks of the world -- compared to 'regular' people -- righteousness is more concentrated or whatever, but i like to think it holds up the world.
23:29:10
dTal
For example APL variants should be vastly more influential than they are. They aren't because APL fans are addicted to unreadable syntax. It makes them feel clever.
23:30:06
pillton
The biggest problem in the programming language world is that the runtime environments don't compose. This causes this conversation to occur over and over again.
23:30:10
pjb
However unicode should help APL, recentering on the glyp-based notation. J was really to wild for me. :-)
23:30:11
whoman
dTal: people get that way with spoken language too. i see it often, where a person excludes themselves further from their immediate family/neighborhood/culture by using more private and meaningful-only-to-me language
23:32:01
phoe
In production code, they are meant to be eliminated, and the people who put them in there are meant to be shot.
23:32:26
dTal
_death: you got me, I'm a fan of many aspects of Lisp but I'd hate to use it for my daily work
23:32:40
whoman
maybe its like religion - we serve a higher purpose, whatever that is. stepping back from our personal persuits - for sports fanatics, wearing their team's color, i wonder how many decide its their favorite color(s), or wear them despite/inspite of?
23:33:41
dTal
My perfect language would be something like Axiom - a strongly typed, highly symbolic, syntax-heavy language written in Lisp
23:34:12
dTal
Lisp, or something very like it, should definitely be the implementation language for everything else
23:34:47
whoman
depends what it is, i think; languages are tendencies toward certain mental concepts
23:36:57
whoman
dTal: ok i believe you, cant search for examples right now - looked at the API, seems cool. makes me think of Clean/Curry/Mercury/Coq
23:56:50
pfdietz
sbcl, abcl, and ecl support package local nicknames. cmucl, ccl, and clisp do not. I don't know about Allegro CL or Lispworks.
23:58:30
pillton
whoman dTal: There is precedent here with COM. The fundamentals of COM are incredibly simple. The COM specification did give rise to a marketplace of language independent components. I don't know why people stopped using those fundamentals.
23:59:10
whoman
pillton: heh, i tried some COM stuff, it seemed very complex; idl interface files and whatnot
0:00:05
pillton
whoman: Like I said, the fundamentals are very simple. You are talking about something higher level.
0:01:38
pillton
whoman: "IDL interface files". You don't need IDL interface files to understand the fundamentals of COM.
0:02:55
pfdietz
Technical churn like that is a way to get age discrimination without breaking the law.
0:06:09
pjb
In the mean-time it means that in practice, you always have half the programmers with less than 5 years experience, ie. half the programmers are always newbies.
0:06:40
pjb
This is why you have so much new dumb technology, stuff like perl, python, ruby, node.js, etc.
0:07:58
pjb
So the seasonned professional can avoid churn by realizing the spiral, and either follow the movement, or wait for the next cycle. :-)
0:12:24
_death
pjb: I found that many people assume you're either a web developer ("frontend or backend?") or a mobile developer ("android or ios?").. funny stuff
0:14:51
fouric
I'll poke you if I find issues or anything - I think that I'm just going to switch back to SLIME.
0:17:41
fouric
Nothing, but that's more a product of me not ever having sat down and read through the slime documentation.
0:18:46
_death
slime has documentation? :D .. well, I know it does.. and likely have read it when I started using it.. but the real documentation there is the source code
0:19:23
fouric
the energy required to set up a mental representation of a non-trivial codebase is significant
0:19:58
_death
also, it's lisp.. so you can just evaluate things in the repl to get an intuitive feel
0:22:10
mfiano
fouric: They are the same as the SLIME layer for the most part. You can also use Emacs style C-c C-c (not mentioned)
0:40:32
mfiano
fouric: What I mean to say is you aren't losing anything from the slime layer, only gaining
0:46:06
jasom
Shinmera: it looks like plump is for xml-ish documents rather than being a true xml parser
1:00:03
MetaYan
beach: trivial-garbage mystery solved. lispbuilder includes an old version of trivial-garbage. Having lisp-builder in local-projects caused that version to be used.
1:02:32
MetaYan
phoe: trivial-garbage mystery solved. lispbuilder includes an old version of trivial-garbage. Having lisp-builder in local-projects caused that version to be used.
1:38:19
MetaYan
Xach: Thanks for the ql:where-is-system tip anyway. Here's what it shows in this case: http://termbin.com/gwnr
1:42:02
learning
ah so when i want to use lisp's if statement in other languages i just gotta google ternary
2:19:40
aeth
In CL, return values and expressions make the most sense, like having if return a value and use the result
2:20:14
aeth
Using ternary in other languages is rarely as clear as using if in Lisp ime if you directly translate between Lisp and some other language.
2:21:04
aeth
Lisp is just really good at working with expressions where many other languages look like a mess when you can try to write what seems like the exact same thing.
2:25:17
aeth
(Of course, if multi-line expressions are painful in other languages, maybe the problem is with the syntax of the other languages.)
2:38:44
aeth
The main reason I wrote define-shader to translate from s-expressions to GLSL is because I kept slipping up in the syntax by switching back and forth between GLSL and CL and it was getting annoying.
2:51:56
attila_lendvai
this seems to do the trick: (setf uiop:*uninteresting-conditions* uiop:*usual-uninteresting-conditions*)
3:18:01
beach
flip214: I think I'll pass on the Alexandria issue. I have too many other things to do at the moment.
3:24:31
fouric
mfiano: would you, or anyone else, happen to know how to override evil-cleverparens' bindings?
4:23:31
krwq
got question, how do you convert string to utf-8 bytes? I've tried this but flexi-streams seem to be ignoring format: https://pastebin.com/DGkUCLnB
4:24:33
beach
If there is no library to do it, you would just have to apply the rules of UTF-8. They are not that complicated.
4:26:41
beach
ACTION now fully expects a complaint that the Common Lisp standard is deficient, since it doesn't define such a function.
4:33:49
Bike
if i understand the flexi streams manual correctly, in memory streams are binary, and don't have external formats so you can't use characters
4:35:09
krwq
beach: Bike: do you know any library providing a way to convert string to utf-8 without allocating new buffer (= using preallocated buffer)
4:36:43
Bike
(babel:string-to-octets "hello world" :encoding :utf-8) => #(104 101 108 108 111 32 119 111 114 108 100)
4:42:17
nydel
i'm curious why MOD and FLOOR both exist in any implementation i can think of. MOD in my mind being (CDR (FLOOR X)) ... is MOD actually quite a different program than that? documentation in sbcl or clisp offers little on how they are related.