freenode/#lisp - IRC Chatlog
Search
15:24:22
ogamita
hectorhonn: You see, programming is addictive, right. Well, compiler writing is meta-addictive!
15:24:35
hectorhonn
i'm halfway through practical common lisp, and i really like how little noise there is in the code
15:24:56
ogamita
And then, lisp compiler writing, knowing that lisp is a meta programming programming language, is meta*-addictive!
15:26:32
ogamita
You start because you like parser generator, but soon with compilers, you find that you can develop a multitude of very sophisticated algorithms! register allocation, code optimization, etc with very sophisticated and beautiful mathematical algorithms (graphs, genetic programming, topology, etc).
15:27:56
ogamita
hectorhonn: you can try to write quines first. If you can bear the stuff, then you may do some parsers, and see how you support it.
15:28:34
jackdaniel
hectorhonn: there are many simple tasks in compiler maintanance approachable even for beginner programmers
15:30:02
jackdaniel
for instance this: https://gitlab.com/embeddable-common-lisp/ecl/issues/458 ; it is just about adding some ifs in C code
15:31:45
jackdaniel
last week someone sent me $4.20 via paypwal with a note, that the next bewerage is on him - that was increadibly nice :)
15:34:15
jackdaniel
common lisp foundation made a successful fundraiser not that long ago (and afaik they are planning a next one)
15:36:48
jackdaniel
there is not much to talk about at the moment, it is a foundation not a general discussion channel :)
15:38:02
jackdaniel
some people do, some don't. there are some open positions if you are willing to move around the world.
15:39:25
jackdaniel
I'm not sure what that means, but if it is about "fizz buzz enterprise edition" I had a good laugh looking at the repository
15:40:40
hectorhonn
jackdaniel: i did some java stuff, for example spring framework is enterprisy.. how to put it. things are well polished and not "hacky"
15:40:45
schweers
hectorhonn: Also, some people are lucky and work alone on some program or other. That is how I got to use CL at my day job.
15:43:36
schweers
Well, I was looking for such a position. But they are quite scarce, at least where I live.
15:44:00
hectorhonn
i actually started looking into lisp languages after getting bored of writing boilerplate
15:44:35
pfdietz
I use CL professionally, and have for more than two decades. But you do have to be willing to move.
15:47:32
schweers
Well, some of our legacy software is written in scheme, and the same person who wrote this is still on the team (which is good!). Together we are replacing said legacy. But I’m working on something somewhat isolated (i.e. he doesn’t need to read or modify my code), so I can use more or less whatever I want. I guess I could have used rust or go or whatever instead.
15:48:36
atgreen
I work with banks, and they are running software for wealth management and more written in scheme
15:49:08
schweers
I’m not even doing anything that demands such mad metaprogramming, but nevertheless lisp is simply a very good language.
15:52:02
atgreen
I don't code professionally anymore, but use CL for prototyping stuff, and some digital hardware design I play with
15:55:08
pfdietz
If you go to one of the job hunting sites, like Monster and the like, and look for Lisp jobs, you will find them occasionally. You'll also get hits for autolisp (which is CAD) and posting that mention Lisp but are really for Clojure and such.
15:56:42
pfdietz
Those would be the more common outsourcing languages. Although CL does get outsourced to (to Ukraine, of all places).
15:56:56
ogamita
hectorhonn: then find a customer, and start up your own company. As the boss, you'll be able to enforce the use of lisp for all your projects.
16:00:14
jackdaniel
it is perfectly suitable for so-called functional programming, oop programming or procedural programming
16:00:20
francogrex
if you want to continue using your favorite lisp implementation but want to interact with java, use foil
16:00:42
ogamita
hectorhonn: the fact that we defile global variables with those stars, shows that we don't encourage them at all!
16:00:56
Odin-
hectorhonn: They have a handful of features that make using them very different from global variables in most other languages.
16:02:00
jackdaniel
hectorhonn: nothing prevents you from using a lexical variable. special variable enables you to work with dynamic contexts
16:03:44
beach
hectorhonn: Bindings to special variables are per-thread so they are quite safe compared to global variables.
16:05:20
schweers
ogimata: or even if you are creating threads which start with a closure, and you think every one closes over a different variable, but they don’t ...
16:06:12
jackdaniel
schweers: lolol idiom: (let ((arg :something)) (lambda () (let ((arg arg)) ,@body))) gives you nice workaround for that
16:07:00
schweers
jackdaniel: I know, I ended up with something like that. You guys here helped me figure that one out, I’m still grateful for that :)
16:09:52
hectorhonn
but, one of the element, is an integer, which i want to convert to a date string
16:10:37
pfdietz
Converting an integer to a date string is a problem orthogonal to where that integer came from.
16:13:10
beach
hectorhonn: But, these are questions that are a bit to basic for #lisp. I suggest you ask them in #clschool instead.
16:14:03
pfdietz
(let ((x (list 1 2 3))) (let ((y (elt x 1))) (setf y 10) x)) ==> (1 2 3), not (10 2 3)
16:15:54
pfdietz
Often when these questions get asked, the hard part is figuring out what led to the question, not answering the question itself.
16:25:39
hectorhonn
(defun ff (list position function) (append (subseq list 0 position) (funcall function) (nth list position) (subseq list (1+ position))))
16:28:37
beach
Here is another (defun ff (list position function) (loop for element in list for i from 1 collect (if (= i position) (funcall function element) element)))
16:28:40
hectorhonn
hmm it says, ; Derived type of LIST is (VALUES SEQUENCE &OPTIONAL), conflicting with its asserted type UNSIGNED-BYTE.
16:29:06
pfdietz
The best solution, though, is seeing if one of the de facto standard libraries has a function that does what you want, and using that.
16:30:47
beach
hectorhonn: I don't usually write code using IRC, so I don't have the usual help from SLIME and the Common Lisp implementation.
16:37:47
hectorhonn
(defun ff (list position function) (append (subseq list 0 position) (list (funcall function (nth position list))) (subseq list (1+ position))))
16:39:48
hectorhonn
pfdietz: i looked in the CL quick reference but didn't find any.. might have missed it
18:03:10
jackdaniel
beach: this excerpt addresses this question: "the metaclass is changed from the standard generic function metaclass which in turn prevents certain optimizations, of the dynamic generic function dispatch, from being performed by the compiler." (part of comparison with inlined-generic-funcitons
18:07:20
pfdietz
This suggests that gf metaclasses need additional infrastructure to support these optimizations (perhaps in an implementation-dependent way).
19:18:33
jasom
fouric: late now I know, but the following should find symlink loops: find . -follow -printf ""
20:13:46
Younder
I say this in remembrance of Vladimir Voevodsky a brilliant mathematician who died before his time. This is his legacy.
20:15:53
Younder
Homtopy type theory, the univalent theorem and a program at Princeton Institute of Advanced Study for continuing it.
21:20:57
no-defun-allowed
Not in the standard but lparallel and Bordeaux threads are good starting points.
21:21:56
figurelisp
so when common lisp was popular people used these kind of libraries to handle concurrency?
21:24:37
no-defun-allowed
Well, probably not before the AI winter, concurrent machines probably had non-generic designs since those were expensive and new.
21:26:39
pfdietz
There's a common model of concurrency in CLs now, where special variables dynamically bound in a thread are thread local.
21:27:32
pfdietz
And I think there's de facto compatibility of the various thread primitives, at least through a compatibility layer?
21:33:10
figurelisp
I am still in my very early lisp phases. It was just that this question popped in my head