Nilby has quit [Remote host closed the connection]
Nilby has joined #commonlisp
davep has joined #commonlisp
yauhsien has joined #commonlisp
aartaka has quit [Ping timeout: 276 seconds]
aartaka has joined #commonlisp
attila_lendvai has joined #commonlisp
ttree has quit [Ping timeout: 250 seconds]
kathe has joined #commonlisp
<kathe>
good morning everybody. :)
<rotateq>
Good morning kathe. :)
<kathe>
can i get suggestions for any book or online material to understand internals?
<kathe>
i meant commonlisp internals.
moon-child has left #commonlisp [#commonlisp]
<rotateq>
kathe: The book "Practical Common Lisp" is a good start that we often recommend.
<kathe>
rotateq: okay. thanks for that.
<kathe>
i have a c++ background and there are books presenting "under the hood".
<rotateq>
It's readable online too.
<rotateq>
Yes ok.
<kathe>
i'm interested in understanding how compiling and linking (internally) work.
<Nilby>
if by "interals" you mean how to make a Lisp, PCL isn't really that
<rotateq>
kathe: You mean in Common Lisp?
<rotateq>
There are presentations online that talk about the differences to batch compilers.
<kathe>
no, not how to "make a lisp". just how compilation and linking work.
<kathe>
rotateq: yes, i only want to look into commonlisp.
<rotateq>
Only :)
<kathe>
beach explained that there's a vast difference from c/c++ style approach.
<kathe>
:)
<kathe>
i am focusing entirely on commonlisp. :)
<rotateq>
Yes indeed. As you also normally have your compiler around in the actual running program.
<kathe>
i have even let-go of smalltalk fiddling. :)
<rotateq>
That's good, so first learning a bit more of the language might be helpful too as a basis.
<kathe>
rotateq: what intrigues me most is how a 'cl' compiler and linker work.
<kathe>
since they are all inside the image.
<rotateq>
Yes I understood that now.
<Nilby>
unfortunately, there are as many different answers as there are CL implementations
<kathe>
Nilby: oh, okay.
<rotateq>
Nilby: So many over newer history. :)
<kathe>
so after i'm comfortable, it would be advisable to dive into say 'sbcl' internals?
<Nilby>
e.g. ecl compiles to C and then links into the image, sbcl/ccl write compiled code into a running image, and execute it, clisp compiles to byte code, etc.
<kathe>
i'm sorry about it, but my network is a mess today, as usual.
<kathe>
i got to go. will get here after a while.
<kathe>
again, sorry to leave so abruptly, especially while i was being helped.
kathe has quit [Quit: Leaving]
<Nilby>
no worries :)
varjagg has joined #commonlisp
<contrapunctus>
kathe: not sure if I asked before, but - know of any Common Lisp jobs in India? Even an internship would do. 🙃️
WBarends has joined #commonlisp
<Nilby>
i wonder if there is a simple "make a lisp" style code explaination of compiler techniques. i'm not sure i could recommend reading lisp 1.5 in pdp10 assembly
<pjb>
contrapunctus: the best way to get a lisp job, is to start up your own company. Customers don't care you write their solution in lisp!
<pjb>
Nilby: but even the new edition of the dragon book includes chapters of compiler techniques that can be applied to lisp, such as garbage collection, etc.
<contrapunctus>
pjb: hm, I see...
<rotateq>
contrapunctus: Don't worry, even here in Germany are literally none.
<Nilby>
or stick your CL code inside another program, and say it's just data
<ck_>
sometimes you can also make any job a lisp job, there are mystical tales of people writing systems that write C++ and then do their work in Lisp, for example
shka has joined #commonlisp
<contrapunctus>
Nilby: good old "code as data" 😏️
<ck_>
rotateq: no lisp jobs? that's not really true I think
<rotateq>
ck_: Okay fair enough, so I can still have hope in the long run. But where? :)
<contrapunctus>
rotateq: I suppose you mean "no Common Lisp jobs", because the company behind CHICKEN Scheme is German 😶️ https://www.bevuta.com/
<ck_>
rotateq: when I looked for a job last, maybe 10 years ago, there was a listing on lispjobs.wordpress.com . I suggest going through ELS history, looking for speakers
<rotateq>
Yeah okay.
<ck_>
contrapunctus: the company is not behind chicken as far as I know. chicken was independently conceived
<ck_>
maybe you mean "behind" as in "supporting it right now", that might be the case. Sorry for any misunderstanding if that is what you meant
<Nilby>
i rewrote my C++ code in CL at a job, they didn't mind since it only took 2 days, vs 2 years
<contrapunctus>
ck_: yeah, I was probably a little loose with my words there, I'm not exactly sure of the relationship between the two. 🙂️
<contrapunctus>
Nilby: lmao nice
<rotateq>
Nilby: :D
<rotateq>
Okay, or we finally write this metacompiler for COBOL legacy code.
<ck_>
contrapunctus: https://www.bevuta.com/en/about-us/ says "One of our team members designed and implemented the Chicken compiler and interpreter"
<ck_>
but: Chicken was first released in July 2000, and Bevuta GmbH was started and incorporated in 2002
<rotateq>
ehuelsmann said last year in another channel he thought now for some years to collect some CLers and write an ERP system.
<ck_>
so while this blurb may suggest that chicken got created during the creators time at the company, it isn't the case
<rotateq>
Hehe, GmbH, not "UG (haftungsbeschränkt)" :)
<pjb>
rotateq: first, choose a job where you can choose your system and tools. If you're forced to use visual basic on ms-windows, no good. if you are asked whether you want a macbook or a linux laptop, and if you're free to install any system and tools you want on your laptop, you have better chances of being able to use lisp in your day job.
<rotateq>
ck_: In summer I tried to apply for a Lisp job in Bremen, but it was just via a recruitment agency and AutoLISP. They still search for someone.
<pjb>
rotateq: start by installing emacs and use emacs lisp to help you programming!
<ck_>
rotateq: yeah I have heard that story a few times now..
<rotateq>
pjb: Don't worry I make compromises in the first ones.
<rotateq>
ck_: Oh sorry. :/
<ck_>
rotateq: that's not what I meant :) I have heard the "someone is looking for AutoLISP developers over there. seems like nobody wants it" story from many people
<Nilby>
i wonder if the xlisp author, ever went to autodesk and said "btw, i wrote that"
<rotateq>
Ahh okay. The problem was again my university studies didn't work out to finish (yet) and then you're worth nothing to those mechanical working people.
<rotateq>
Nilby: :D And edgar-rft_ told me there have been thougts reimplementing it in a sane way with CL, but then again managers came by.
<Nilby>
rotateq: yes, now that it doesn't have to run in 64k
<rotateq>
So that it not just *look* like a Lisp, but is one. Crazy world.
yauhsien has quit [Remote host closed the connection]
<flip214>
is there something like destructuring-bind that doesn't bind but uses setf, so that it can be used with an outer with-slots?
<flip214>
(with-slots (a b c d) obj (destructure-setf (a (b (c) d)) json-tree)) or similar
dider has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
<rotateq>
Not directly, but you could write it expanding as (destructuring-bind (%a (%b (%c) %d)) json-tree (setf a %a b %b c %c d %d)) or better with gensyms to let the macro distinguish between slot-names and destructuring-names.
<rotateq>
Is the json-tree always guaranteed to have such structuring?
<jackdaniel>
where ,names shoudl be ,(names structure)
<Nilby>
heh, there used to be a desetq, but i think didn't include it in CL because a corresponding desetf has conceptual problems
<rotateq>
Nilby: In which dialect was that?
<Nilby>
probably maclisp/zetalisp
<jackdaniel>
and multiple-value-setq is only setq, so perhaps (setf (values ,@names) …)
<Nilby>
as jackdaniel show, it's fairly easy to make desetq
<jackdaniel>
on the other hand multi-valued setf is not guaranteed to work portably
<jackdaniel>
Nilby: thanks for docs - I gather that sab format is for concordia?
<Nilby>
yes
<jackdaniel>
either way I was still able to scrap the text, so that's not a problem
<jackdaniel>
(very informative, but I haven't found what I was looking for)
<Nilby>
or maybe there's also a non-full-concordia reader
<flip214>
jackdaniel: might simply work, yeah
<flip214>
rotateq: "guaranteed" as in "may throw an error if not", yes
<rotateq>
Or signalling one. :)
<jackdaniel>
or even signaling
<flip214>
yeah, sorry
<rotateq>
flip214: No problem, I had the same.
<flip214>
simple hints don't work with most of the people, you need to throw stuff so they notice ;)
<rotateq>
Haha this "throw" gives me pictures that a program crashes immediately by that.
<jackdaniel>
speaking technically correct is always appreciated, but sometimes it is at the cost of comprehensibility (especially when talking with people who don't care much about lisp and its wonderful condition system)
<jackdaniel>
of course it is their fault that they are not deeply immersed in the wonderful world of CL, but the problem is still ours !
dider has left #commonlisp [ERC 5.4 (IRC client for GNU Emacs 28.1)]
hhdave_ has joined #commonlisp
hhdave has quit [Ping timeout: 272 seconds]
hhdave_ is now known as hhdave
<jackdaniel>
henceforth I'm proclaiming the "doublespeak common lisp community" movement; we'll sell common lisp as java with extra features
<flip214>
rotateq: similarly to falling, it's not throwing that causes problems... it's landing resp. catching!
<flip214>
jackdaniel: doubleplus good
<jackdaniel>
:)
davep has quit [Quit: Connection closed for inactivity]
Inline has quit [Quit: Leaving]
<Nilby>
it's weird, since java has gc, they could have done execptions just fine, but no. it's probably because they didn't want to include a guaranteed runtime debugger
<rotateq>
maybe it will be fixed in newer releases ..
<jackdaniel>
rotateq: I want to turn your attention to sbcl - it is the new version of java (with a few extra features) that has the particular feature you are looking for
<rotateq>
Even being good when C is too high-level :D
<jackdaniel>
these features come at a small cost of slightly odd syntax, but you'll get used to it
<jackdaniel>
still in doubt? the first letter in SBCL comes from the name "Steele", and he's one of people who created Java
<rotateq>
hehe yes kind of
azimut has quit [Ping timeout: 240 seconds]
azimut has joined #commonlisp
<flip214>
can I tell the reader to intern symbols in other packages, even if they're written with only a single colon, without signalling a reader-error?
<beach>
You can use Eclector.
<flip214>
the only alternative I see is to load a file, handle the error, intern the symbol, and re-try
<flip214>
beach: I knew you'd suggest that ;)
<jackdaniel>
flip214: that's basically what you need to do - check the condition that the implementation signals and handle it (i.e intern the symbol) but that's implementation dependent
<jackdaniel>
i.e it is not even guaranteed that the condition won't be a simple error
<rotateq>
I asked scymtym_ last week if it could make sense too using eclector in a way that it's remembered like "this integer was read in as a hexadecimal with #x". So opens up new possibilities.
<jackdaniel>
alternatively use a third-party reader
<Nilby>
it is very irksome to have 2 readers in an image, when one with *read-intern* would suffice
<beach>
Nilby: You are right. We should stamp out implementation-specific reader.
<jackdaniel>
you can always use the implementation with an extensible reader (i.e eclector ,)
<jackdaniel>
i.e ccl has a built-in restart for interning the symbol
<flip214>
beach: does eclector handle symbols in not-yet-existing packages as well, returning them as a structure or class that can be handled (and then replaced by some symbol)?
<scymtym>
flip214: i don't think you can implement LOAD semantics when some symbols are READ as placeholder objects
tyson2 has joined #commonlisp
lisp123 has joined #commonlisp
igemnace has quit [Remote host closed the connection]
<lisp123>
anybody got a sample hunchentoot function to receive JSON via POST and return JSON?
<lisp123>
ok i remember now, need to read as string
yauhsien has joined #commonlisp
MajorBiscuit has joined #commonlisp
<lisp123>
wonder if nyxt will hire some CL developers in the future
<lisp123>
seems like its growing
<beach>
If you are looking for a job, there were a few announcements at ELS about available positions.
<lisp123>
otherwise what you could do is go to LW and Franz's success stories pages and try contacting some of the companies
<lisp123>
beach: Nice
<beach>
I wasn't paying attention, because I am not looking for a job, but maybe someone else will remember.
<beach>
Ravenpack is probably hiring.
<lisp123>
I was going to say that
<lisp123>
I wonder if a curse of Lisp is that it requires less developers to do the same work as another language
<beach>
Maybe Siscog too.
yauhsien has quit [Ping timeout: 260 seconds]
<beach>
If you work for any of those companies, you can take the opportunity to live in very nice European cities.
<lisp123>
That's a dream life for sure :)!
<beach>
If I were looking for a job today, I would certainly try out one of them.
<beach>
... partly for that reason.
<lisp123>
Indeed, I would too. Hopefully some people have been reaching out to them - RavenPack seems quite stable too
<lisp123>
If I wasn't tied down to living in Aus, I would try for Europe too :)
<beach>
It doesn't matter much in the domain of software though. There are jobs everywhere, so if it doesn't work out, then it is easy to move.
<lisp123>
Or Japan (but language barrier)
<beach>
I don't see any particular reason to be tied down to living in Australia.
<lisp123>
Family, but going off topic now
<beach>
I don't see why you need to live in the same country as your family. The important thing is that you can see them (if that's what you want) from time to time.
<beach>
But yes, off topic.
lisp123 has quit [Quit: Leaving...]
dlowe has quit [Ping timeout: 250 seconds]
frgo has quit [Remote host closed the connection]
dec0d3r has joined #commonlisp
frgo has joined #commonlisp
knusbaum has quit [Ping timeout: 250 seconds]
knusbaum has joined #commonlisp
igemnace has joined #commonlisp
frgo has quit [Remote host closed the connection]
yewscion has joined #commonlisp
Mandus_ is now known as Mandus
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 240 seconds]
patrix has quit [Remote host closed the connection]
OlCe has quit [Remote host closed the connection]
patrix has joined #commonlisp
Bike has joined #commonlisp
patrix has quit [Remote host closed the connection]
dlowe has joined #commonlisp
treflip has quit [Remote host closed the connection]
treflip has joined #commonlisp
MajorBiscuit has quit [Ping timeout: 250 seconds]
MajorBiscuit has joined #commonlisp
ttree has joined #commonlisp
dlowe has quit [Remote host closed the connection]
OlCe has joined #commonlisp
triffid has quit [Remote host closed the connection]
<ehammarstrom>
Why is the first form not a valid application of 10 to the lambda returned by the let form? https://plaster.tymoon.eu/view/3057#3057 I wanted the first top-level form to have an equivalent effect as that to the second top-level form in the paste
Devon has joined #commonlisp
bollu4 has joined #commonlisp
bollu has quit [Ping timeout: 272 seconds]
bollu4 is now known as bollu
MajorBiscuit has quit [Ping timeout: 250 seconds]
<Bike>
ehammarstrom: in common lisp, and unlike scheme, the operator is not evaluated in the same was as the other forms
<Bike>
the same way*
<Bike>
all you can put there is an operator name or a lambda expression
tyson2 has joined #commonlisp
<Bike>
you can use funcall instead of apply, though
poselyqualityles has quit [Ping timeout: 272 seconds]
<ehammarstrom>
Bike: I see, thanks!
<Bike>
i.e. (funcall (let ...) 10) is fine
<Bike>
as is (let ((x 1) (y 10)) ((lambda ...) 10))
poselyqualityles has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
MajorBiscuit has joined #commonlisp
tyson2 has joined #commonlisp
aeth has quit [Ping timeout: 246 seconds]
aeth has joined #commonlisp
NotThatRPG has joined #commonlisp
Inline has quit [Quit: Leaving]
orestarod has joined #commonlisp
jmdaemon has joined #commonlisp
poselyqualityles has quit [Ping timeout: 246 seconds]
akoana has joined #commonlisp
poselyqualityles has joined #commonlisp
MajorBiscuit has quit [Ping timeout: 240 seconds]
MajorBiscuit has joined #commonlisp
Dynom has quit [Quit: WeeChat 3.5]
tane has quit [Quit: Leaving]
shka has quit [Remote host closed the connection]
yewscion has joined #commonlisp
shka has joined #commonlisp
Inline has joined #commonlisp
morganw has joined #commonlisp
Inline has quit [Quit: Leaving]
livoreno has quit [Ping timeout: 240 seconds]
Inline has joined #commonlisp
kpoeck has quit [Quit: Client closed]
kevingal has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
rawley has quit [Remote host closed the connection]
Goheeca has joined #commonlisp
Oladon has quit [Quit: Leaving.]
MajorBiscuit has quit [Quit: WeeChat 3.4]
attila_lendvai has quit [Ping timeout: 256 seconds]
yewscion has quit [Ping timeout: 250 seconds]
orestarod has quit [Ping timeout: 240 seconds]
sjl has quit [Quit: WeeChat 2.2-dev]
tyson2 has quit [Remote host closed the connection]
poselyqualityles has quit [Ping timeout: 276 seconds]
matt` has joined #commonlisp
cosimone has quit [Read error: Connection reset by peer]
waleee has quit [Ping timeout: 240 seconds]
waleee has joined #commonlisp
dra has joined #commonlisp
livoreno has joined #commonlisp
Goheeca has quit [Quit: Client closed]
shka has quit [Ping timeout: 240 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
perrierj1 has joined #commonlisp
perrierjouet has quit [Ping timeout: 248 seconds]
cosimone has joined #commonlisp
karlosz has joined #commonlisp
Oladon has joined #commonlisp
karlosz_ has joined #commonlisp
Inline has quit [Ping timeout: 240 seconds]
yauhsien has joined #commonlisp
cosimone has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
karlosz has quit [Ping timeout: 250 seconds]
karlosz_ is now known as karlosz
karlosz_ has joined #commonlisp
karlosz has quit [Ping timeout: 250 seconds]
karlosz_ is now known as karlosz
yauhsien has quit [Ping timeout: 240 seconds]
matt` has quit [Remote host closed the connection]
matt` has joined #commonlisp
flip214 has quit [Ping timeout: 246 seconds]
flip214 has joined #commonlisp
karlosz has quit [Quit: karlosz]
igemnace has quit [Remote host closed the connection]
morganw has quit [Remote host closed the connection]