libera/#commonlisp - IRC Chatlog
Search
4:30:30
mfiano
My workflow is entirely keyboard oriented, except for very few tasks that are unavoidable.
4:32:23
moon-child
to me, the problem is not switching. The problem is that mice are generally used to choose from among discrete objects and perform discrete actions, a task to which (as analogue instruments) they are not well suited
4:33:14
mfiano
I also tend to try to keep a similar working environment across all my hardware, some virtual/remote even.
7:05:45
jeosol
mfiano: I can attest to keep similar environment across machines - i run the same linux distro on my two working machines (one for dev and other for testing) - tend to upgrade OS similarly and compiler updates like SBCL. it makes for less surprises and issues
7:09:23
jeosol
beach: changed her prorities of how she likes to spend her time .... meaning she change areas of focus and interest?
7:11:34
jeosol
is there a lot of money in publishing these days? I don't know and asking genuinely. I guess it depends on the area of focus
7:12:09
jeosol
I believe a lot of people can benefit from using CL but they get bugged down with emacs and parentheses issues
7:12:50
beach
jeosol: I have a book "Introduction to Computer Science" self published through Amazon, and I make around 2€ per month.
7:12:51
jeosol
beach: very nice, I eventually worked through the algorithms and DS refreshers I was taking a while back. Finally the graphs and doing some dynamic programming.
7:13:36
beach
I see. About half of the books on algorithms and data structures are so bad that the authors should be spanked.
7:14:51
jeosol
binary search with the issue of computing the mid, remember seeing issues with that overflow or when high and low are very large
7:16:13
jeosol
beach: i take it you are aware of the CL book on algorithms, forgot the guys name, from Ukraine I think? vsevelod? or something like that
7:16:13
beach
Well, that one is fairly easy to fix. The main problem is that half the books start by testing for equality, thereby making the overall algorithm half the speed as it should be.
7:17:16
jeosol
Interesting point, I was looking at that lately, I see yesterday, don't recall it was wiki, or somewhere, the equality was put at the end
7:23:28
jeosol
Makes a lot of sense. One branch test for going left or right , and when R=L, break out of the loop andd check if A[L] == Target, and return T or nil
7:25:02
beach
Tanenbaum and Bos claim that it is impossible to write an operating system in a language with automatic memory management, just to take one example.
7:25:47
beach
That's why I feel compelled to write better books. But then, like I said, the projects are stalled.
7:28:45
beach
Thanks. I can come up with the general contents, but I don't have the time or the energy with all the details, hence the need for a meticulous coauthor.
7:30:39
beach
Oh, right, we have one about architecture published in French. That one also gives a few € per year.
7:32:03
beach
The book entitled "Concrete and abstract data types" hides Common Lisp in that it translates it to an algorithmic language. But I consider just using Common Lisp, because the additional work to check the code required my favorite coauthor.
7:35:24
beach
The book on operating systems mainly corrects the incorrect history of other books, and laments the fact that we still use derivatives of UNIX, even though the UNIX execution model exists because of the limitations on very small and very simple hardware.
7:37:12
jeosol
My adviser in school used the word pendantic, when I first turned in some plots and not analysing all the behavior, since then I remember that word and always double check and triple check things ...
9:05:23
pjb
Note that in CL, (truncate (+ low high) 2) is as good as (+ low (truncate (- high low) 2)). The only case where it may make a difference is if you go out-of-memory upon the bignum sum, (but then you'd probably go out-of-memory on the difference as well).
9:06:00
pjb
The problem is indeed, that most people don't program in their programming language, but instead program in an imagined language that ressemble their programming language.
9:07:16
pjb
Look at how beach strive to give more meaning to operators, so that (if a b) => (when a b) ; (return (when a b)) => (return (if a b nil)) etc… It doesn't matter if you write in CL, but it matters if you try to write in a imaginary language ressembling CL. And the problem is that you need to be able to read CL anyway, or else…
9:08:06
moon-child
eh, I would expect the difference code to be slightly faster. And, given high>low (presumably...), less likely to cons. It would never cons in the common case when high and low are array indices and fixnums
9:09:46
moon-child
and the difference code is clearer in some respects, imo. 'Start at low, and go halfway towards high.' Vector basically
11:10:18
phoe
minion: memo for Bike: I think this sort of snippet can work as some basic FBIND test, https://plaster.tymoon.eu/view/2899#2899 - Serapeum's FBIND obviously fails the identity comparison because it makes an intermediate function
11:10:44
phoe
minion: memo for Bike: I'll try to make an implementation that fulfills that test in a spare while
11:56:30
pjb
pingpongball: And there's no need to copyu the same question in all channels. The OR wasn't really an inclusive OR, but one where you select the channel best adapted to your question! http://cliki.net/IRC
15:01:18
Devon
Anybody here use SLY? ELPA [Install] hangs with the message Contacting host: elpa.nongnu.org:443
15:41:59
Guest74
I wonder if I can get any thoughts on this. https://github.com/JMC-design/surface/blob/master/surface.lisp
15:42:26
Guest74
What's missing, what shouldn't be there. some basic documentation is in documentation.lisp
15:50:59
Bike
usually for (find :linux *features*) you'd just do it at readtime, since you're probably not going to change OS at runtime
15:51:00
minion
Bike, memo from phoe: I think this sort of snippet can work as some basic FBIND test, https://plaster.tymoon.eu/view/2899#2899 - Serapeum's FBIND obviously fails the identity comparison because it makes an intermediate function
15:51:00
minion
Bike, memo from phoe: I'll try to make an implementation that fulfills that test in a spare while
15:51:48
phoe
Bike: the only issue I've ended up with is that I am puzzled by the current choice of code walkers and their abilities and state of documentation
15:52:42
Bike
though i haven't looked at how agnostic lizard works. i remember raskin saying it was supposed to deal with a lot of the issues.
15:52:50
Guest74
bike: isn't it possible you'd compile on one computer and ship the binary to someone on another computer?
15:53:18
phoe
in general a Lisp program cannot be cross-compiled, I don't know of an implemnetation that allows----
15:54:32
Guest74
Xach: the problem with that is that it uses the default for the environment when no type is supplied.
15:56:00
Bike
or you could do the two layer thing where CREATE is like there except it immediately calls CREATE-GF
15:57:40
Xach
I'm expressing a personal preference, a defun isn't wrong, but if you are making a GF protocol, I would put CREATE under its umbrella.
15:57:56
Guest74
Yeah, I just went with the simplest at this stage. The backends also have the same methods implemented as normal functions.
15:59:03
phoe
Bike: the only two options are see are code walking or implementation support, and both of them are going to be terrible to implement
15:59:12
Guest74
it just makes it easier that I can just copy/paste (the horrors) create into the backends for when people don't want to use the generic functions. But I guess I could wrap it in a GF.
16:00:41
phoe
macroexpand-dammit does not seem to have the functionalities I need, trivial-macroexpand-all is even simpler, agnostic-lizard is not really documented, and hu.dwim.walker is written in hu.dwim.common-lisp rather than CL *AND* has even less documentation than agnostic-lizard
16:01:45
phoe
and going the other way effectively requires adding a new special form to eight distinct compilers, two of which are closed-source
16:04:06
Guest74
Wondering if create should have WIDTH and HEIGHT as required parameters. Since resizing of some surfaces can be seen as expensive.
16:08:39
phoe
attila_lendvai: yes, that's a poor man's documentation - I'm trying to dig into it right now
16:08:41
attila_lendvai
and a non-trivial use in the form of hu.dwim.reiterate (which is sadly only 80% finished)
16:09:18
Guest74
Xach: do you have an example? I just tried and it told me no such class, while T worked fine.
16:09:19
phoe
my main problem is passing information in the walker's lexical environment - something that I'd solve with SYMBOL-MACROLET if I were writing macros
16:10:15
attila_lendvai
phoe, hu.dwim.walker has its own env class. it shouldn't be too hard to customize it, esecially with the use of contextl
16:11:25
phoe
how do I access that environment object? it doesn't seem like REWRITE-AST's visitor function accepts it as an argument
16:12:03
attila_lendvai
phoe, see infrastructure.lisp, sadly walk-environment is a struct for some reason, not a class. you'd need to dig into the walker's code to customize it.
16:12:49
attila_lendvai
phoe, doesn't seem to be too hard. that struct is internal to the lib, so the API wouldn't change
16:13:20
phoe
I wonder if I can do structure inheritance and somehow tell the walker to use the new class
16:13:32
Guest74
phoe: nice to know. Unfortunately both still require a nil to be supplied. I should perhaps get over my laziness.
16:14:09
phoe
...nope, it won't work, there's COPY-WALK-ENVIRONMENT and MAKE-WALK-ENVIRONMENT all over the place that won't mesh well with superstructures
16:14:54
attila_lendvai
phoe, if you decide to rewrite it to use a class instead of a struct then i'll merge the change. i have nothing against it.
16:16:23
phoe
I have no idea if I can do that easily - I'll need to learn some of that DEF magic before I become able to work with that codebase
16:18:31
attila_lendvai
phoe, def is a very trivial layer. the only magic is the char based Export/Inline/export-Accessors, etc. if you keep nagging me about it, i may give it a go myself sometime. not messing much with CL nowadays, though.
16:19:25
phoe
well - I'd like to have a portable FBIND that preserves function identity, and I'll certainly need a walker for that
16:19:59
phoe
and I want to have such a FBIND in other to put it as a recipe in a new edition of a popular Common LIsp book
16:20:13
phoe
so I hope you know what you're getting into if you give me the permission to keep on nagging you
16:22:41
attila_lendvai
phoe, heh... in that case i may end up giving you the commit bit to the hu.dwim universe... :)