<jasom>
With CXML, that will include the contents of /etc/passwd in the resulting parse (but specifying an entity-resolver that always throws an error will prevent that)
<jasom>
at least nobody wired an http client into cxml, so out-of-the-box it won't let you make arbitrary http requests, unlike many other XML parsers
lisp-machine has joined #lisp
lisp-machine has quit [Client Quit]
terpri has joined #lisp
Wezl has quit [Ping timeout: 272 seconds]
supercoven_ has joined #lisp
terpri_ has joined #lisp
supercoven has quit [Ping timeout: 245 seconds]
terpri has quit [Read error: Connection reset by peer]
egp_ has quit [Read error: Connection timed out]
egp_ has joined #lisp
IPmonger_ has joined #lisp
IPmonger has quit [Ping timeout: 264 seconds]
warweasle has quit [Quit: later]
Wezl has joined #lisp
terpri_ has quit [Remote host closed the connection]
<Nilby>
Don't forget to check the sequences section when looking for functions useful for strings.
<pyc>
thanks Nilby
<louis771>
Good morning
Cymew has joined #lisp
<louis771>
Fukamachi does a lot for the CL community it seems
gioyik has quit [Quit: WeeChat 3.0]
<asarch>
Caveman2 is awesome!
<asarch>
He is my hero!
<asarch>
:-)
<louis771>
I'm just getting starting with CL and want to do some web backend stuff with it... there is no way around his libraries.
<pyc>
i see that in some code examples, people write list and in some places people write '(). how do you decide which one to use where? For example, yesterday, Xach provided this example: (make-pathname :directory (list :relative "baz")). But I could write it as (make-pathname :directory '(:relative "baz")) too. so what should be my guiding principle to decide if I should use the list function or quoted
<pyc>
list?
<louis771>
And I totally agree that quickdocs.org must be revived if CL wants to attract newbies
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<louis771>
pyc AFAIK use ' for lists you won't change, use list for lists you will add/remove stuff from
<pyc>
louis771: thanks that is a good principle.
<louis771>
if you use ' then the compiler is permitted to allocate l1 and l2 in a way that they share their common tail in the read-only memory
<louis771>
i.e. if you have lists l1 and l2 with some same data in it
wusticality has quit [Remote host closed the connection]
<beach>
pyc: Though you can always (and should always) use '() for the empty list if it is a form, so intended to be evaluated.
aartaka has joined #lisp
<pyc>
how do you use SLIME REPL and code buffer together? if you want to test out the usage of some CLHS functions before using them in your app code, do you go to the REPL and type trial code there, or do you type it in the source code file buffer itself and evaluate there?
aartaka_d has joined #lisp
<beach>
Usually, the former.
<susam>
I use the file buffer itself. I almost never enter anything into the REPL directly. That way I am always editing a file. The main reason why I adopted this style of working is so that I don't have to type M-p to bring up old inputs in the REPL buffer.
<beach>
So do you have a specific buffer for REPL interactions?
Ardent has joined #lisp
aartaka has quit [Ping timeout: 240 seconds]
Ardent has quit [Client Quit]
<moon-child>
beach: why '() over ()?
<beach>
moon-child: Let me find the relevant section in the Common Lisp HyperSpec. It is very hard to find usually.
<susam>
beach: I use the same file code buffer that I am currently working on. Say there is a (defun foo () ...) and there is a (defun bar () ...) in my buffer and I am working on foo. I just use the space between foo and bar as my scratch pad. I let that area become a mess. When I complete foo, I delete all the lines in the scratch pad area.
<beach>
I see.
<moon-child>
beach: heh, I can imagine, () is not a very searchable string
<Nilby>
When you have the spec in emacs info you can search with ^S
<beach>
moon-child: Yes, that's the problem.
<pyc>
interesting. let me see if I can adopt editing a file only workflow. I go to REPL often by habit. it will be nice if I don't have to switch context between REPL and file buffer so often
<susam>
Truth be told, I don't know if my style of working is more efficient than others'. I just shared what I do and it works for me. But always eager to learn better ways. I care a lot of coding ergonomics. I often wonder it would have been nice to have some sort of live coding community for CL so that I can see how others navigate their workspace, write code, manipulate code, etc. so that I can learn something from them.
<beach>
moon-child: That link was for you.
pankajsg has joined #lisp
<beach>
Notice the line "Yes '() use as an empty list"
<beach>
moon-child: So () is used only for things like empty parameter lists or empty lists of superclasses.
shka_ has joined #lisp
<Nilby>
That lucky section is very hard to search for.
<beach>
Indeed.
rgherdt has joined #lisp
<Nilby>
Interestingly section (sqrt 2) is called Numbers.
<beach>
Heh.
pillton has quit [Quit: ERC (IRC client for Emacs 27.1)]
abhixec has quit [Quit: leaving]
aartaka has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
aartaka_d has quit [Ping timeout: 246 seconds]
aartaka_d has joined #lisp
aartaka has quit [Ping timeout: 260 seconds]
ljavorsk has joined #lisp
<moon-child>
beach: thanks!
<beach>
Pleasure.
tuoyuz has joined #lisp
ldbeth has joined #lisp
<ldbeth>
good afternnon
<beach>
Hello ldbeth.
surabax has joined #lisp
<ldbeth>
susam: maybe we can find a place to do streaming or helding regular meetings remotely.
<ldbeth>
do you suggest (cons a nil) or (cons a '())?
random-nick has joined #lisp
<jdz>
(list a)
<jdz>
But if you have to use CONS, then the latter: '().
<jdz>
ldbeth: Did you see the CLHS section beach linked above?
<ldbeth>
I see (cons a nil) a lot in old lisp source files.
<ldbeth>
Maybe that causes some confusion
<ldbeth>
jdz: yes i did
<edgar-rft>
I think I've never used '() in my code, but maybe that's because I'm an idiot :-)
<Nilby>
suam, ldbeth: I think it's quite useful to see how other Lispers work. e.g. check out Baggers or Shinmera's livestreams. It'd be cool to see people share their coding setup.
pve has joined #lisp
<Nilby>
s/suam/susam/
anticrisis has quit [Read error: Connection reset by peer]
<susam>
ldbeth: Nilby: I agree. Will check out the live streams you suggested.
karlosz has joined #lisp
actuallybatman has left #lisp [#lisp]
heisig has joined #lisp
charles` has quit [Ping timeout: 240 seconds]
actuallybatman has joined #lisp
<pyc>
(first '(1 2 3)) returns the integer 1. But (last '(1 2 3)) returns a list containing an integer: (3). Why this inconsistency?
<edgar-rft>
first returns a pointer to the first cons cell, last returns a pointer to the last cons cell, no inconsistency
<beach>
ldbeth: You use (cons a nil) if you want to create a CONS cell where the CAR is the value of A and the CDR is the Boolean value false. You use (cons a '() if you want to create a singleton list with the element in it that is the value of A.
<ldbeth>
probably because someone what last works on '(1 2 3 . 4) too
<ldbeth>
it makes no sense to return 3 for (last '(1 2 3 . 4))
<Nilby>
pyc: because (1 2 3) is really (1 . (2 . (3 . nil)))
<ldbeth>
while '(1 2 3) is equal to '(1 2 3 . nil)
<edgar-rft>
it's the way how lisp *prints* cons cells and lists that causes the confusion
<beach>
ldbeth: And the fact that you see things in code (old or new) is no guarantee, because it depends on who wrote the code. As you have probably noticed, many people here don't give a damn about conventions.
<ldbeth>
beach: quite right, many people wrote these code probably learned lisp before ANSI CL
<beach>
Possibly. But you see violations of conventions in recent code as well.
<pyc>
Nilby: I am not sure I understand the consistency. I know that '(1 2 3) is (1 . (2 . (3 . nil))). Here the first cons cell contains 1 and a pointer to (2 . (3 . nil)). The last cons cell contains 3 and a pointer to nil.
<beach>
... written by younger people.
<pyc>
Yet first returns only 1, no pointer to anything. But last returns 3 and a pointer to nil: (3 . nil) which is equivalent to (3).
asarch has quit [Quit: Leaving]
<beach>
pyc: Be careful with how you use "is". '(1 2 3) *is* (quote (1 . (2 . (3 . nil))))
holycow has quit [Quit: Lost terminal]
<beach>
pyc: It is just that LAST is more useful the way it is defined, because you can then use (SETF CDR) to add elements to the end.
<beach>
pyc: Forget about the name.
<ldbeth>
beach: I'm probably one of them, if havn't noticed this
<beach>
ldbeth: It's never too late.
<beach>
ldbeth: While you are at it, check your code for confusion between false and the default value NIL.
<beach>
Like (let ((person (find ...))) (when person...))
<Nilby>
pyc: I guess you're right. Maybe that's why I like Lisp. It seems to value programming practicality over total abstract consistency.
<markasoftware>
how do I get a method combination object by name?
<beach>
In SICL I use the first argument for dispatch only.
<pyc>
thanks beach, Nilby for the explanation of 'last' behavior
terpri has joined #lisp
<beach>
Pleasure.
terpri has quit [Remote host closed the connection]
<ldbeth>
beach: do you use any specific schema for implementing multiple return values in SICL? I don't find it in the current specification.
terpri has joined #lisp
<beach>
What do you mean by "schema". The idea on the x86 is to use the unused space immediately beyond the stack pointer, plus a few registers. That turns out to be enough for the minimum limit.
<ldbeth>
It is about what will happen if the called function is inlined
hiroaki_ has joined #lisp
<beach>
If a function that returns multiple values is inlined, then, depending on what is known about that function at compile time, some optimization can take place. Is that what you are asking?
<ldbeth>
Yes
<beach>
But I haven't implemented such optimizations yet. Maybe Clasp has.
ljavorsk has quit [Ping timeout: 240 seconds]
ljavorsk has joined #lisp
tuoyuz has joined #lisp
<ldbeth>
Ah, I think mv return is a feature been overlooked, especially in functional programming languages that having nice optimization to reduce consing for currying, but still return an vector/tuple for multiple results.
<ldbeth>
beach: Thank you, I'll try if i can get something from Clasp
bitmapper has quit [Quit: Connection closed for inactivity]
luni has joined #lisp
kenran has joined #lisp
ldbeth has quit [Ping timeout: 260 seconds]
tuoyuz has quit [Ping timeout: 260 seconds]
ldbeth has joined #lisp
hendursa1 has joined #lisp
retropikzel has joined #lisp
karlosz has quit [Quit: karlosz]
hendursaga has quit [Ping timeout: 268 seconds]
ldbeth has quit [Ping timeout: 246 seconds]
nicktick has quit [Ping timeout: 240 seconds]
catt has joined #lisp
ldbeth has joined #lisp
ldbeth has quit [Remote host closed the connection]
ldbeth has joined #lisp
galex-713 has joined #lisp
iskander has quit [Quit: bye]
<pyc>
what do you prefer: car or first? cdr or rest?
<beach>
pyc: You use CAR when you are manipulating CONS cells and FIRST when you are manipulating lists.
<pyc>
beach: nice rule. thanks!
<beach>
Like for instance in an alist, the elements are not lists, they are CONS cells with key and value.
<pyc>
oh the CLHS offers coding convention guidelines too! thanks!
<beach>
Definitely. It even tells you how many semicolons to use in comments.
<beach>
And, don't forget the NIL rule we just discussed.
pranavats has joined #lisp
kenran has quit [Quit: leaving]
ldbeth has quit [Ping timeout: 240 seconds]
frost-lab has quit [Ping timeout: 240 seconds]
<pve>
It's good that the NIL-rule was brought up. I wasn't aware that it (or that hyperspec page) existed. I knew people sometimes used '(), but always assumed it was for reasons related to personal taste.
<beach>
Now you know.
flip214 has quit [Ping timeout: 265 seconds]
flip214 has joined #lisp
flip214 has quit [Changing host]
flip214 has joined #lisp
<pve>
I might need to do some find 'n' replacing to hide my shameful past.
<warweasle>
scymtym: Ah... Ok. I ended up wrapping each case with multi-value-binds.
vegansbane6963 has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
<ebrasca>
is there media server in common lisp?
narimiran has quit [Ping timeout: 240 seconds]
<ebrasca>
like images , video web server.
varjag has joined #lisp
slyrus_ has joined #lisp
slyrus has quit [Ping timeout: 264 seconds]
Feldman has joined #lisp
luni has quit [Quit: Connection closed]
ewd has joined #lisp
niac has quit [Ping timeout: 264 seconds]
Feldman has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<flip214>
ebrasca: using HTTP, or RTP? what protocols do you require?
slyrus has joined #lisp
Feldman has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
Alfr has quit [Quit: Leaving]
Alfr has joined #lisp
slyrus has quit [Ping timeout: 245 seconds]
Alfr has quit [Changing host]
Alfr has joined #lisp
luni has joined #lisp
kenran has joined #lisp
<ebrasca>
http
<flip214>
well, just use hunchentoot?!
<ebrasca>
are there RTP in lisp?
<ebrasca>
flip214: Thanks!
kevingal has joined #lisp
<flip214>
ebrasca: well, perhaps it would be easiest to just pass an RTP socket on to ffmpeg or so...
skapata has joined #lisp
iskander has quit [Quit: bye]
Sheilong has joined #lisp
ljavorsk has quit [Ping timeout: 245 seconds]
shka_ has quit [Read error: Connection reset by peer]
iskander has joined #lisp
mrchampion has quit [Ping timeout: 245 seconds]
niac has joined #lisp
slyrus has joined #lisp
Bike has joined #lisp
slyrus has quit [Ping timeout: 260 seconds]
<ebrasca>
How to stream videos with hunchentoot?
hjudt has quit [Ping timeout: 240 seconds]
catt has quit [Read error: Connection reset by peer]
VincentVega97 has joined #lisp
VincentVega has quit [Ping timeout: 240 seconds]
VincentVega97 has quit [Client Quit]
kam1 has quit [Ping timeout: 264 seconds]
<jackdaniel>
hunchentoot serves files, it is a web server. you may either serve a static file (i.e webm like here http://turtleware.eu/static/paste/9736edb5-eduardo.webm), embed the link ink html, or write some fancy javascript program that performs actual streaming
<jackdaniel>
in other words hunchentoot does not concern itself with anything beyond http(s) protocol, hunchensocket adds websockets to the mix - you could use that if you had wanted to implement streaming
kam1 has joined #lisp
orivej has joined #lisp
terpri has quit [Ping timeout: 240 seconds]
terpri has joined #lisp
catt has joined #lisp
nicktick has joined #lisp
Nilby has quit [Ping timeout: 240 seconds]
niac has quit [Ping timeout: 260 seconds]
niac has joined #lisp
kaiwulf has joined #lisp
<warweasle>
I made one of the classic blunders: I forgot to define my problem before I started coding.
ukari has quit [Remote host closed the connection]
<Josh_2>
Afternoon
<warweasle>
Josh_2: Morn'n.
ukari has joined #lisp
<Josh_2>
warweasle: It's okay to not define your problem because I bet you run into lots of them when you start xD
<warweasle>
This is a true thing you said.
rogersm has quit [Quit: Leaving...]
ljavorsk has joined #lisp
narimiran has joined #lisp
bitmapper has joined #lisp
niac has quit [Ping timeout: 240 seconds]
long4mud has quit [Quit: WeeChat 3.0.1]
niac has joined #lisp
jonatack has joined #lisp
Alfr has quit [Quit: Leaving]
galex-713 has quit [Ping timeout: 272 seconds]
nicktick has quit [Ping timeout: 240 seconds]
<Josh_2>
How do I convert a hex string (from ironclad) to a normal string?
niac has quit [Ping timeout: 245 seconds]
<Bike>
what do you mean, a normal string?
niac has joined #lisp
<Josh_2>
well i'm not sure
<pyc>
"4142" becomes "AB"?
<jackdaniel>
maybe feed it to #'babel:octets-to-string
<Josh_2>
I tried that jackdaniel
<Bike>
could you give us some kind of description of what you have versus what you want
<Josh_2>
when using the sha256 digest in ironclad it returns a byte array, then this byte array is converted to a string using ironclad:byte-array-to-hex-string
galex-713 has joined #lisp
<Josh_2>
I tried using babel:octets-to-string but it signals an condition about illegal characters
<Bike>
well it's a sha256 digest, right? it's not text
attila_lendvai has quit [Ping timeout: 245 seconds]
<Josh_2>
right, however I'm trying to compare the output of the ironclad implementation to the implementation I am calling with FFI
<mfiano>
Then you should be comparing bytes
<Josh_2>
but the FFI version returns a base64 encoded string
<Bike>
the one you're calling with FFI isn't giving you text either
<Bike>
you should decode it into bytes, then
<Josh_2>
Okay
<Bike>
or base64-encode the bytes you get from ironclad, i guess
iskander has quit [Quit: bye]
<Josh_2>
I will try a different base64 library
<Josh_2>
base64 doesn't support binary conversion
<Bike>
your library can encode numbers into base64 text but not decode?
Alfr has joined #lisp
jonatack has quit [Read error: Connection reset by peer]
<Josh_2>
huh?
rpg has joined #lisp
<Josh_2>
base64 isn't my library
<pyc>
I know we discussed 'first' vs. 'car' usage today. One is used when we are thinking of lists and the other when we are thinking of cons cells even though they are equivalent. But I am confuesd about this. To select the last item in a list, should I use (first (last '(1 2 3))) or (car (last '(1 2 3)))?
<Bike>
well, whatever you're using
<mfiano>
base64 does everything it needs to do
<Bike>
having a library that can encode but not decode just sounds a little weird to me
<Bike>
that "doesn't support binary conversion"
<pyc>
even though I think I am working with lists here, I get the feeling that 'car' is more appropriate than 'first' because 'last' works on a list and returns a cons cell, so now that we are thinking "cons cell", 'car' becomes more appropriate than 'first'.
<pyc>
good point. maybe I should just choose one and be consistent.
<beach>
Sounds good.
<mfiano>
Josh_2: What is your point? That does both
<Bike>
why does this library work only on characters...
<Bike>
you can encode text into other text? i thought the point of base64 was for transmitting arbitrary data over text over channels
<mfiano>
Ah yes. Personally I have used #'cl-base64:usb8-array-to-base64-string for this
iskander has joined #lisp
nicktick has joined #lisp
<Josh_2>
mfiano: I don't have a point, Bike was enquiring about the library I was using
aartaka_d has quit [Read error: Connection reset by peer]
sjl has joined #lisp
vaporatorius__ has quit [Quit: Leaving]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
mrchampion has joined #lisp
aartaka has joined #lisp
kenran has quit [Quit: leaving]
phantomics has joined #lisp
slyrus has joined #lisp
terpri has quit [Quit: Leaving]
terpri has joined #lisp
slyrus has quit [Ping timeout: 240 seconds]
<Josh_2>
Nice, finally got all my tests done and integrated nicely into the system
<Josh_2>
Xach: can I ask for someone else's code to go into quicklisp? borodust created bindings for me that are on his github and I don't see the point in using my fork as the version in quicklisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
amk has quit [Remote host closed the connection]
amk has joined #lisp
shka_ has joined #lisp
niac has quit [Ping timeout: 276 seconds]
jonatack has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
heisig has quit [Quit: Leaving]
Cymew has joined #lisp
dbotton has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 26.3)]
catt has quit [Ping timeout: 245 seconds]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
toorevitimirp has quit [Remote host closed the connection]
<pyc>
While editing in Emacs, is there a shortcut to autocomplete function names?
dbotton has quit [Quit: This computer has gone to sleep]
tinhatcat has quit [Read error: Connection reset by peer]
tinhatcat has joined #lisp
<beach>
C-c C-i
<pyc>
thanks beach
<beach>
Sure.
orivej has quit [Quit: orivej]
luni has quit [Quit: Connection closed]
orivej has joined #lisp
aindilis has quit [Ping timeout: 260 seconds]
actuallybatman has quit [Ping timeout: 276 seconds]
<borodust>
Josh_2: the most important point that my repo is unmaintained on birth and also linux-only :) i'm not planning to keep an eye on that codebase
<borodust>
Josh_2: also, congratz! :)
<Josh_2>
Well I don't have the means to update any of your bindings because you use claw
<borodust>
Josh_2: those are plain cffi ones, you can copy paste and edit as you see fit
<Josh_2>
I don't think that the matrix folks have updated the API for a long time
<borodust>
i do think they actually might work on windows/macos w/o chaning anything
<Josh_2>
oh I see
<Josh_2>
Okay I will use my fork then
<borodust>
due to api being ABI friendly
arpunk has joined #lisp
frgo has joined #lisp
orivej has quit [Ping timeout: 276 seconds]
<pyc>
are the parentheses useful to the programmer? I see some of lines have 5-6 trailing parentheses and sometimes even more than that. I find it hard to keep track of which one pairs with what manually. Emacs matches them up for me and that is the only way I am able to make sense of them.
<pyc>
is this how you guys deal with parentheses too? or are experienced Lisp programmers able to make sense of the parentheses manually too?
<Josh_2>
the parens indicate structure, but eventually they just fade away
<Josh_2>
you almost dont see them anymore
<borodust>
pyc: paredit is the key
<gabc>
I see the indentation, and if it's weird I feel that there's a problem in the structure
<borodust>
pyc: some also use rainbow parens
<Josh_2>
I use rainbow parens
<pyc>
borodust: thanks! I am using Emacs4CL that setup paredit and rainbow-delimiters for me. I am using both.
<borodust>
pyc: adventuruous folks sport parinfer
<gabc>
personally I don't like the rainbow distraction
<gabc>
I find lispy really nice tho
<pyc>
gabc: I did not find rainbow-delimiters distracting. but I didn't find it helpful either. It just makes the parentheses darker in color and they appear to fade away.
<gabc>
If it works for you, it works for you :)
<pyc>
see the Emacs4CL screenshot here: https://github.com/susam/emacs4cl - I never understood how rainbow-delimiters are helpful. all the parentheses look gray. do you also feel so? or am I the only one unable to appreciate rainbow delimiters in the screenshot?
orivej has joined #lisp
<pyc>
I do see some difference in color of the parentheses. I don't know if it is my eyesight that is poor or if the difference between the colors is very negligible. I have to stare at them hard to be able to see any difference in colors by rainbow-delimiters.
<gabc>
Nah it looks quite dim
<Bike>
you can use emacs in like a window, right, where there will be actual colors
<borodust>
personally, paredit is all i need
<Bike>
in this particular screenshot they do just look all grey to me
<gabc>
Tho since it's really easy to try stuff in emacs I would recommend trying stuff out
<pyc>
glad to know it is not just me. if they all look grey indeed what is the value that rainbow-delimiters offer?
<Josh_2>
If I want to add a library that depends on a foreign library how does Xach test if it builds?
<pyc>
Bike: thanks for that link. I never bothered to dig into rainbow-delimiters earlier to realize that the colors are configurable. of course it must be due to the nature of Emacs. but never bothered about it because my priority was to learn common lisp. will try the config in this post tonight.
dbotton has quit [Quit: This computer has gone to sleep]
dbotton has joined #lisp
dbotton has quit [Client Quit]
<Demosthenex>
pyc: here's some rainbow generated i found somewhere once which i use in my init. https://dpaste.org/ohQw
jonatack has quit [Ping timeout: 260 seconds]
jonatack has joined #lisp
Lycurgus has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mmmattyx has quit [Quit: Connection closed for inactivity]
Aurora_v_kosmose has quit [Remote host closed the connection]
dbotton has joined #lisp
Aurora_v_kosmose has joined #lisp
vaporatorius has quit [Ping timeout: 240 seconds]
drdee has joined #lisp
drdee has quit [Remote host closed the connection]
ljavorsk has quit [Ping timeout: 245 seconds]
varjag has joined #lisp
<phantomics>
Hey, a question: in CL implementations supporting Unicode, does (char-code) always give the Unicode code point for a character?
vaporatorius has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
<Bike>
usually. obviously there's no standard.
rpg has joined #lisp
<Bike>
and of course with how unicode works there's not exactly a 1-1 mapping there
<Bike>
in my sbcl, "̀a" has length 2
judson_ has joined #lisp
<phantomics>
Thanks Bike, combining characters can be confusing like that
<pyc>
what do you normally do for unicode support? do you code for a specific CL implementation? or is there a portability layer available for it too?
kevingal has quit [Remote host closed the connection]
andrea_ has left #lisp [#lisp]
<phantomics>
I looked at cl-unicode but it doesn't seem to have a function that gets the code point for a given character
<phantomics>
The lowercase-mapping and uppercase-mapping functions can get a char's code point, but letters have their case changed; there's no function I can see that just gets the code point
<Bike>
the docs here imply that it assumes char-code is the code point
gioyik has joined #lisp
<phantomics>
Ok, they must be trusting current implementations to do that
<aeth>
other interpretations of what char-code and characters are in an implementation with Unicode wouldn't really be standards-compliant afaik.
<aeth>
I guess unless they wanted to randomly shuffle which char-code corresponds to which thing in unicode for no reason
<aeth>
So I think the main risk with char-code/code-char is that the implementation is using something other than Unicode.
Lycurgus has quit [Quit: Exeunt]
<phantomics>
My concern is for April, which you need Unicode to use in the first place
<aeth>
I think the main issue is that sb-unicode has a bunch of useful things that no portable library has. cl-unicode gets you only some of it, with a much worse API (and probably much slower performance on SBCL, too)
<aeth>
So my Scheme will only handle Unicode 100% correctly on SBCL until someone resolves this issue. I set out to make a Scheme, not a huge Unicode library.
gioyik_ has joined #lisp
<phantomics>
That's annoying
<aeth>
That is, I use babel (for UTF8<->strings) and cl-unicode outside of SBCL, and I use SBCL's libraries for SBCL. Some things only work fully conforming on SBCL if cl-unicode doesn't have a clear alternative to a thing in sb-unicode. And technically you can always use babel for the part that babel does, but that'll just hurt you on benchmarks since SBCL's internal octet conversion is faster.
gioyik has quit [Ping timeout: 268 seconds]
<aeth>
It's annoying, but it's only temporary. It will be resolved by someone later on. We had to work around floating point for a long time before float-features was released.
<aeth>
(Now there's a bunch of libraries that are still only efficient with floating point in SBCL when they should be moving to float-features:with-float-traps-masked instead.)
slyrus has joined #lisp
pfdietz has joined #lisp
slyrus has quit [Ping timeout: 260 seconds]
actuallybatman has joined #lisp
nicktick has quit [Ping timeout: 245 seconds]
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
judson_ has joined #lisp
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 240 seconds]
kevingal has joined #lisp
actuallybatman has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 264 seconds]
louis771 has joined #lisp
slyrus has joined #lisp
slyrus has quit [Ping timeout: 264 seconds]
sauvin has quit [Remote host closed the connection]
long4mud has joined #lisp
dbotton has quit [Quit: This computer has gone to sleep]
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
judson_ has joined #lisp
dbotton has joined #lisp
iskander has quit [Quit: bye]
luni has joined #lisp
slyrus has joined #lisp
slyrus has quit [Ping timeout: 265 seconds]
warweasle has quit [Quit: rcirc on GNU Emacs 26.1]
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
landakram has joined #lisp
dtman34 has quit [Ping timeout: 260 seconds]
dtman34 has joined #lisp
rogersm has joined #lisp
sxmx has quit [Quit: WeeChat 3.0.1]
judson_ has joined #lisp
rozenglass has joined #lisp
Cymew has quit [Ping timeout: 264 seconds]
hiroaki_ has quit [Ping timeout: 272 seconds]
supercoven has joined #lisp
rozenglass has quit [Client Quit]
supercoven_ has quit [Ping timeout: 245 seconds]
karlosz has joined #lisp
karlosz has quit [Read error: Connection reset by peer]
karlosz has joined #lisp
kevingal has quit [Remote host closed the connection]
Oladon has joined #lisp
hiroaki_ has joined #lisp
sxmx has joined #lisp
rozenglass has joined #lisp
ebrasca has quit [Remote host closed the connection]
paulj has joined #lisp
pankajsg has quit [Ping timeout: 260 seconds]
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
narimiran has quit [Ping timeout: 260 seconds]
hiroaki_ has quit [Ping timeout: 245 seconds]
rozenglass has quit [Remote host closed the connection]
Ardent has joined #lisp
rogersm has quit [Remote host closed the connection]
rogersm has joined #lisp
aeth has quit [Ping timeout: 240 seconds]
rogersm has quit [Remote host closed the connection]
aeth has joined #lisp
interruptinuse has quit [Ping timeout: 256 seconds]
shoshin5 has joined #lisp
AdmiralBumbleBee has quit [Ping timeout: 256 seconds]
daniel1302_ has joined #lisp
interruptinuse has joined #lisp
nitrix_ has joined #lisp
nitrix has quit [Ping timeout: 256 seconds]
emma has quit [Ping timeout: 256 seconds]
_death has quit [Ping timeout: 256 seconds]
save-lisp-or-die has quit [Read error: Connection reset by peer]
shoshin has quit [Ping timeout: 256 seconds]
daniel1302 has quit [Ping timeout: 256 seconds]
shoshin5 is now known as shoshin
AdmiralBumbleBee has joined #lisp
emma has joined #lisp
emma has quit [Changing host]
emma has joined #lisp
adeht has joined #lisp
hiroaki_ has joined #lisp
mmmattyx has joined #lisp
anticrisis has joined #lisp
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
louis771 has joined #lisp
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
supercoven has quit [Ping timeout: 245 seconds]
anticrisis has quit [Read error: Connection reset by peer]
louis771 has joined #lisp
anticrisis has joined #lisp
dbotton has quit [Quit: This computer has gone to sleep]
aartaka has quit [Ping timeout: 245 seconds]
dbotton has joined #lisp
iskander has joined #lisp
mindCrime has joined #lisp
attila_lendvai has quit [Ping timeout: 272 seconds]