freenode/#lisp - IRC Chatlog
Search
23:41:06
aeth
no-defun-allowed: eh... idk, if your main concern is performance, you often/usually need to write your own things, that's just how things go
23:41:38
fiddlerwoaroof
Anyways, at the time, I managed to split a multi-gigabyte csv file significantly faster with this than split-sequence
23:43:06
aeth
well, that's not too surprising because it's less generic (strings instead of sequences)
23:43:23
no-defun-allowed
aeth: When I did write my own reader, it ran at half the speed of split-sequence.
23:46:27
no-defun-allowed
And I would really like to avoid writing my own splitter because that would be more code I have to maintain.
0:11:15
pjb
fiddlerwoaroof: instead of renaming imports, you have define-symbol-macro; but indeed, this works only for variables.
0:38:19
pjb
there are various defalias macros. For functions, (setf (symbol-function 'foo) (symbol-function 'bar)) can be used.
2:07:32
pfdietz
(looks at cl-strings) This doesn't preserve element-type. That's very important: SBCL base strings use as little as 1/4 the space of general strings.
2:08:06
pfdietz
It would be better to implement those functions as methods that specialize on the string argument(s).
2:09:38
pfdietz
Interesting aside: the standard allows a lisp reader to produce base strings when reading string constants, if all the characters in the constant are base chars. When SBCL Is tweaked to do this, some failures occur in quicklisp. Some people assume the strings are always element-type CHARACTER.
4:46:07
loke
Question 1: WOuld you be able to put it on Quicklisp, in order for users to not have to manually download it?
4:47:04
loke
Question 2: Do you have a suggestion how to implement ranges? (similar to how Emacs implements text properties and overlays)
4:47:54
loke
I was thinking of implement a rangeusing two cursors. That would track the start/end of the range properly. However, I need an efifcient way to find all ranges that cover a given cursor position.
4:49:54
ck_
but maybe you'll want to read the discussion on that during the xemacs / gnu emacs diverging. I believe there's a balancing tree for intervals in emacs since then.
4:50:06
beach
ck_: It might be more difficult than that, given that individual cursors can change independently, and that text can be inserted and deleted anywhere.
4:51:47
LdBeth
a character with properties could also be a pair of the codepoint and a reference to the properties
4:53:11
LdBeth
I don’t think emacs does this with ranges, since text properties can be preserved even cut and paste from a buffer to another
4:54:13
loke
But the ranges are not directly accessible. The API presented to the user is simply a set of text properties per character.
4:54:25
beach
An interesting idea would be to exploit the open/closed line idea of Cluffer. Conceptually, each character would be what LdBeth suggests, namely a pair of code-point and properties. But when a line is closed, a more compact representation could be computed.
4:57:03
loke
Well, the peorperties describe things like fonts/colours/etc, as well as arbitrary other things), so there is a lot of variations.
4:59:28
beach
Otherwise, you will have to scan the entire buffer for each character you insert or delete.
5:00:18
loke
Well, not the entire buffer. It scans backwars to some synchronisation point (usually the beginning of the defun)
5:01:24
loke
Clearly I want to make best use of your parser. I should probably take a look at its API to make sure I understand it.
5:08:58
beach
But it will depend on Eclector, once scymtym adds the functionality to Eclector that I need.
5:15:36
beach
It is impossible to imagine a complete specification of things until different ways are tested in real code.
5:15:39
loke
So far, my “view” has been the visual representation of the buffer content on a line-by-line basis. I.e. every line in the cluffer buffer has a visual representation that has a given height.
5:17:54
beach
I think you need very different representations of different views for different kinds of text you are editing.
5:19:03
beach
And it may be right for many other things as well, like HTML, markdown, and other stuff with some syntax imposed.
5:25:52
beach
I think you just gave me some of the reasons why I prefer to invent my own solutions before looking at what was done in the past. I do not want to be influenced by solutions that may have been appropriate in one context, but that aren't in others.
5:27:39
beach
Of course, with my preferred way, I then occasionally re-invent something that has already been done.
5:28:37
beach
loke: I think they may have cooked up solutions to problems based on what they had to work with, i.e. the old core.
5:30:56
loke
My current work has been a learning experience, and has taught me a lot. That's the nicest thing I can say about it :-)
5:31:15
ArthurStrong
"Xterm originated prior to the X Window System. It was originally written as a stand-alone terminal emulator for the VAXStation 100 (VS100) by Mark Vandevoorde, a student of Jim Gettys, in the summer of 1984, when work on X started." ( https://en.wikipedia.org/wiki/Xterm )
6:02:48
beach
I don't know ECL in that level of detail, but technically, the MOP is not part of the Common Lisp standard.
6:03:12
beach
I guess jackdaniel would have to address that issue. He is the current ECL maintainer.
6:04:11
ober
so I'm interested in why if it's not in the standard, the statement that it's compliant with the standard would apply to a question about it...
6:06:42
beach
ober: There is a part of CLOS that is in the Common Lisp standard, but the MOP has many more features than that, some of which are even contradicting the standard.
6:29:08
aeth
loke: I think it's something small like something that's normally a function, but with MOP is a generic function instead or something. But apparently that isn't against the standard, so I have to be misremembering the details
6:56:53
beach
It may have been small stuff like one saying "the consequences are undefined" and the other one that "an error is signaled".
7:11:20
no-defun-allowed
I don't think whoever came up with the spam bot programmed it to explain itself, sadly.
7:12:04
beach
I am not looking for an explanation. I am looking for the absence of one, so that I don't have to follow the link.
7:13:31
White_Flame
LdBeth: one interesting use of &aux that I've found is computing derived struct slot values in the declared BOA constructor without needing a function body
7:17:31
loke
Wow. I didn't know that was possible. And even though I now know about it, I don't think I'll ever use it.
7:19:27
White_Flame
ACTION likes shortcuts when possible and fits the intent. Plus, with Lisp it's pretty easy to unroll into "full form" if it gets past the scope of the shortcut
10:51:24
jmercouris
Ok, so yesterday we established that we can't do FFI to C++ because the ABI is not standard in C++ world