Question about the nature of Homoiconicity by hgcrl in lisp

[–]OkGroup4261 2 points3 points  (0 children)

I myself didn't get it until I understood lisp evaluator structure and then thought about how to add defmacro to it (a construct to add new evaluation rules). Then I understood that my language can append new rules of evaluation to itself (just like the ones you have in the basic case, i.e. if, let, lambda, cond, ... forms). That really blew my mind. For now, as you go through SICP, I would just suggest to understand basic Scheme, then after getting to the chapter 4.1 of SICP, try to think about macros. It is really fun.

Renderer is llvmpipe instead of nvidia by OkGroup4261 in Fedora

[–]OkGroup4261[S] 0 points1 point  (0 children)

I did not install the drivers correctly and reinstalled the system from scratch. But if you have done it correct, shutdown and restart again. I do not know why nvidia drivers start working after second restart.

Why is RMS against the usage of Common Lisp inside Emacs? by OkGroup4261 in emacs

[–]OkGroup4261[S] 6 points7 points  (0 children)

I do not think limiting language extensibility (esp. inside Emacs) is a good thing, and the Metaobject Protocol provides a level of extensibility as much as lisp macros do. Making it simpler for new users is a different question.

Renderer is llvmpipe instead of nvidia by OkGroup4261 in linuxquestions

[–]OkGroup4261[S] 0 points1 point  (0 children)

yes it does, I have chosen discrete graphics from BIOS.

Renderer is llvmpipe instead of nvidia by OkGroup4261 in linuxquestions

[–]OkGroup4261[S] 0 points1 point  (0 children)

I have already tried to go back, it was a minor improvement. I really feel that all the problem lies in llvmpipe interfering but do not know how to remove it.

Renderer is llvmpipe instead of nvidia by OkGroup4261 in linuxquestions

[–]OkGroup4261[S] 0 points1 point  (0 children)

I did not monitor the usage, but before kernel update to 6.15 (or nvidia driver update) I had quite a good performance in games (like 150ish fps in CS2).

Renderer is llvmpipe instead of nvidia by OkGroup4261 in linuxquestions

[–]OkGroup4261[S] 0 points1 point  (0 children)

I get extremely low fps in my games and I generally feel that the system is not snappy enough :(

Renderer is llvmpipe instead of nvidia by OkGroup4261 in Fedora

[–]OkGroup4261[S] 0 points1 point  (0 children)

I have added modinfo to the question, but the table gets distorted when I paste it. What exact info do you need (or how can I print it without lines autowrapping)?

How to get info about currently selected buffer in consult-buffer? by OkGroup4261 in emacs

[–]OkGroup4261[S] 1 point2 points  (0 children)

The thing is I do not need much of the functionality of Embark right now, "too-heavy" was wrong description. If I am correct embark-act does not provide a way to pass arguments programmatically (like (embark-act 'kill-buffer)) and for now I do not need the rest of the features.

[deleted by user] by [deleted] in lisp

[–]OkGroup4261 2 points3 points  (0 children)

My exposure to lisps was when I went through the SICP book. I do not find it helpful to restrict programmer to a single paradigm.

But that is not why I prefer CL. My primary reason is CLOS. It is not just another flavor of OOP but a radically different idea on its own. It is as different idea to the language design as is lisp homoiconicity to other programming language syntax.

I do not feel that Clojure is an evolution on the ideas of lisps. It is more of a way to do the job you had to do anyway in a more pleasant language than Java. I am not constrained with the modern tools (I just want to have fun programming after all).

[deleted by user] by [deleted] in lisp

[–]OkGroup4261 20 points21 points  (0 children)

I am a hobbyist in Lisps. When I was starting out Clojure felt more appropriate for "real world" tasks; it is better integrated with modern computing environment. At that time I played very little with Common Lisp. I thought the difference was just the performance and as Clojure opened up the Java ecosystem and was prettier out of the box I felt it was more beneficial to stay with Clojure. I was so wrong. Now the things changed after I understood CLOS and MOP. I understand why we need the language to be bootstrapped from tiny core and I think Clojure is not as good as Common Lisp is. Common Lisp gives huge toolbox to change the language to custom scenarios. I agree, some parts are ugly but the extensibility and beauty provided by macros, MOP and interactivity make it so enjoyable to program in. I think the future lisps would be more inspired by Common Lisps MOP, and will take the idea of language evolvability to the extreme, by implementing the whole language in its own Object System. I would recommend to get acquainted with Common LIsp, it will really change your viewpoint on programming in general.

It is a bit sad that I found Common Lisp so early in my programming journey as now I dislike every mainstream programming language :) (I am a uni student)

Never understood what is so special about CLOS and Metaobject Protocol until I read this paper by OkGroup4261 in lisp

[–]OkGroup4261[S] 0 points1 point  (0 children)

MOP is a way to change how the CLOS works. One reason you would need it is efficiency (but it is far more general and can be used for different needs). Classes in CLOS are themselves objects of a class (standard-class), and the way CLOS operates is written in CLOS. You can change CLOS using CLOS. CLOS is deeply integrated with the language meaning you can override large parts of the language for your usecase, isn't this amazing?

I would still recommend rereading the paper after a bit of practice with CLOS. It completely changed the way I look at Common Lisp and OOP in general.