p_l changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | ASDF 3.3.4
wxie has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
nicktick has joined #lisp
quazimod1 has quit [Ping timeout: 265 seconds]
quazimodo has joined #lisp
<ralt> fe[nl]ix: I'm available here if you want to discuss the cffi-devel post :)
corpix has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
corpix has joined #lisp
corpix has quit [Remote host closed the connection]
corpix has joined #lisp
quazimodo has quit [Ping timeout: 256 seconds]
quazimodo has joined #lisp
rogersm has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #lisp
rogersm has quit [Ping timeout: 260 seconds]
oxum has joined #lisp
Lord_of_Life_ has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life_ is now known as Lord_of_Life
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
freixo has joined #lisp
<fe[nl]ix> ralt: as far as I can tell, static-program-op on SBCL does not link statically
nicktick has quit [Quit: Leaving.]
nicktick has joined #lisp
Lycurgus has joined #lisp
akoana has joined #lisp
GuerrillaMonkey has joined #lisp
Jeanne-Kamikaze has quit [Ping timeout: 246 seconds]
Lycurgus has quit [Read error: Connection reset by peer]
ldb has joined #lisp
<ldb> good morning everyone
<Josh_2> Mornin'
oxum has quit [Ping timeout: 246 seconds]
bitmapper has quit [Ping timeout: 258 seconds]
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
Jeanne-Kamikaze has joined #lisp
GuerrillaMonkey has quit [Ping timeout: 272 seconds]
Jeanne-Kamikaze has quit [Read error: Connection reset by peer]
shifty has joined #lisp
ldb has quit [Ping timeout: 264 seconds]
ldb has joined #lisp
ldb has quit [Ping timeout: 265 seconds]
orivej has quit [Ping timeout: 272 seconds]
orivej_ has joined #lisp
oxum has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
oxum has quit [Ping timeout: 265 seconds]
ldb has joined #lisp
Bike has quit [Quit: leaving]
rogersm has joined #lisp
ldb has quit [Ping timeout: 258 seconds]
pjb has quit [Ping timeout: 272 seconds]
rogersm has quit [Ping timeout: 246 seconds]
TwoNotes has joined #lisp
orivej_ has quit [Ping timeout: 272 seconds]
oxum has joined #lisp
lavaflow has quit [Ping timeout: 256 seconds]
lavaflow has joined #lisp
orivej has joined #lisp
lavaflow has quit [Ping timeout: 260 seconds]
jesse1010 has quit [Ping timeout: 256 seconds]
ldb has joined #lisp
freixo has quit [Ping timeout: 272 seconds]
ldb has quit [Ping timeout: 246 seconds]
freixo has joined #lisp
oldtopman has quit [Ping timeout: 264 seconds]
oldtopman has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
orivej_ has joined #lisp
<beach> Good morning everyone!
TwoNotes has quit [Quit: Leaving]
pjb has joined #lisp
ldb has joined #lisp
ldb has quit [Ping timeout: 272 seconds]
fluxwave has joined #lisp
ldb has joined #lisp
rogersm has joined #lisp
ldb has quit [Ping timeout: 256 seconds]
orivej_ has quit [Ping timeout: 272 seconds]
orivej has joined #lisp
akoana has quit [Quit: leaving]
rogersm has quit [Ping timeout: 256 seconds]
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 264 seconds]
dddddd has quit [Ping timeout: 258 seconds]
wxie has quit [Ping timeout: 264 seconds]
pjb has quit [Ping timeout: 272 seconds]
oxum has quit [Remote host closed the connection]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
freixo has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
ldb has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
ldb has quit [Ping timeout: 265 seconds]
slyrus has joined #lisp
orivej_ has joined #lisp
wxie has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
orivej_ has quit [Ping timeout: 240 seconds]
ldb has joined #lisp
ldb has quit [Ping timeout: 246 seconds]
pjb has joined #lisp
wxie has quit [Ping timeout: 264 seconds]
rumbler31 has joined #lisp
<emacsomancer> morning!
<beach> Hello emacsomancer.
<emacsomancer> how's tricks?
akoana has joined #lisp
rumbler31 has quit [Ping timeout: 256 seconds]
<beach> Me? I'm working hard on SICL bootstrapping. Right now I am working on some simple arithmetic functions. We have decided (in #sicl) that we will be able to make the arithmetic functions fast enough, even though they are defined as generic functions.
<beach> emacsomancer: What about you? What are you working on?
ldb has joined #lisp
<emacsomancer> beach: much smaller, more trivial sort of thing: a frontend interface for wireguard: https://gitlab.com/emacsomancer/volemad
<emacsomancer> (or, a subset of wireguard servers rather)
<beach> I see.
<markasoftware> How long has SICL been in the works? I've never heard of it before.
<beach> Several years, maybe six or more.
<beach> I haven't worked full time on it during all that time.
rogersm has joined #lisp
ech has quit [Ping timeout: 246 seconds]
bhartrihari has joined #lisp
<beach> If I were better with GIT, I could find out. But I'm not. :(
ldb has quit [Ping timeout: 260 seconds]
<markasoftware> git log | tail?
<beach> Ah, OK. Let me try it.
<beach> 2010
<beach> So 10 years.
<emacsomancer> are portable modules the main goal for SICL? or that more a happy benefit of trying to write things in more portable fashion?
<markasoftware> damn that's a serious project, I'll check it out some time
rogersm has quit [Ping timeout: 256 seconds]
<beach> Portable modules are one goal, but they are actually not that portable, given how most implementations are built. It is mainly a maintainability issue right now.
oxum has joined #lisp
<no-defun-allowed> Many of the modules are portable, in the sense that you can run them on an implementation like SBCL or Clozure using their data representations, some not so much.
<emacsomancer> but the idea is a more common Common Lisp generally?
<beach> That's true, but some, like LOOP requires the existence of LOOP to compile, so you couldn't replace the native LOOP by SICL LOOP.
<beach> minion: Please tell emacsomancer about SICL.
<minion> emacsomancer: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL
<emacsomancer> I see
<beach> emacsomancer: Most existing Common Lisp implementations started life as pre-ANSI CLtL1 implementations, so the code is different from what we would write these days.
<beach> emacsomancer: And most of them assume that you must write the core in some low-level language like C or C++. I think that's a bad idea.
<emacsomancer> that makes sense. it sounds like an exciting project. somehow I wasn't aware of it. (and I certainly don't want to have to write C/C++)
<emacsomancer> doesn't sbcl have fairly minimal C?
<beach> It does.
<beach> But its bootstrapping technique is a bit fishy.
<beach> Xof wrote a paper about it.
<emacsomancer> yeah, I remember seeing that paper
<emacsomancer> (or, at least, a paper about sbcl's bootstrapping)
<beach> Yeah, "A Sanely Bootstrappable Common Lisp".
<emacsomancer> yes, that one
<beach> But I was told (I haven't looked too closely) that the SBCL compiler is written without the use of generic functions and standard classes. That would be very painful to maintain.
<beach> And our compiler framework can be customized to fit other implementations.
<beach> minion: Please tell emacsomancer about Cleavir.
<minion> emacsomancer: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future
<beach> Cleavir is used in SICL, of course, but also by Clasp. And karlosz wrote a Cleavir-based compiler for CLISP.
SGASAU has quit [Remote host closed the connection]
<emacsomancer> this all certainly seems like good things to do for ensuring Lisp's long-term future
<beach> Thanks!
ldb has joined #lisp
<emacsomancer> it looks like the repo has a bunch of papers and documentation too
ldb has quit [Ping timeout: 264 seconds]
stereosphere has joined #lisp
<beach> Yeah.
<beach> Like I said, we have published 15 or so SICL-related papers since 2014.
<emacsomancer> (yeah, once I figured out I had to install fig2dev, I got all of the papers to compile - a bunch of interesting reading ahead!)
<beach> Thanks! If you have any questions, feel free to ask. Maybe in #sicl.
<emacsomancer> thanks! (adding #sicl to my autojoin list)
ldb has joined #lisp
ldb has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
emys has joined #lisp
sdumi has quit [Ping timeout: 264 seconds]
sdumi has joined #lisp
ldb has joined #lisp
rogersm has joined #lisp
SGASAU has joined #lisp
pjb has quit [Remote host closed the connection]
ldb has quit [Ping timeout: 256 seconds]
pjb has joined #lisp
rogersm has quit [Ping timeout: 246 seconds]
shifty has quit [Ping timeout: 258 seconds]
shifty has joined #lisp
SGASAU has quit [Remote host closed the connection]
zaquest has quit [Ping timeout: 260 seconds]
SGASAU` has joined #lisp
v3ga has joined #lisp
ldb has joined #lisp
SGASAU` has quit [Remote host closed the connection]
ldb has quit [Ping timeout: 260 seconds]
shifty has quit [Ping timeout: 256 seconds]
SGASAU has joined #lisp
shifty has joined #lisp
twelvemonkeys has quit [Ping timeout: 272 seconds]
rgherdt has joined #lisp
twelvemonkeys has joined #lisp
sdumi has quit [Read error: Connection reset by peer]
JohnMS_WORK has joined #lisp
sdumi has joined #lisp
twelvemonkeys has quit [Ping timeout: 256 seconds]
twelvemonkeys has joined #lisp
gravicappa has joined #lisp
Bit_MCP has quit [Read error: Connection reset by peer]
SGASAU has quit [Remote host closed the connection]
andrei-n has joined #lisp
SGASAU has joined #lisp
ldb has joined #lisp
ldb has quit [Ping timeout: 265 seconds]
Cymew has joined #lisp
srazzaque has joined #lisp
varjag has joined #lisp
rogersm has joined #lisp
bebop has joined #lisp
rogersm has quit [Ping timeout: 256 seconds]
shifty has quit [Ping timeout: 260 seconds]
SGASAU has quit [Remote host closed the connection]
random-nick has joined #lisp
ldb has joined #lisp
SGASAU has joined #lisp
va has joined #lisp
ldb has quit [Ping timeout: 265 seconds]
FreeBirdLjj has joined #lisp
Archenoth has joined #lisp
FreeBirdLjj has quit [Ping timeout: 260 seconds]
ldb has joined #lisp
nicktick has left #lisp [#lisp]
nicktick has joined #lisp
wxie has joined #lisp
SGASAU has quit [Ping timeout: 256 seconds]
<nicktick> Is there anything in lisp like that of "define f(x) " to substitute "define f(x) {foo } " with C's macro ?
<beach> Er, you are asking of Common Lisp can provide as stupid macros as C does?
<beach> You are much better off using Common Lisp macros.
ldb has quit [Ping timeout: 256 seconds]
<phoe> if you're asking if Lisp has a macro system: yes, it does
<no-defun-allowed> What would that transform in Common Lisp?
<nicktick> (defun f (x) ) .... (defun f (x) (foo))
<beach> What would be the purpose of something like that?
<phoe> I don't understand just yet, where is (foo) supposed to come from?
<beach> Yeah, that.
<nicktick> foo is some debug/test code, but I want to not use it after debugging.
<no-defun-allowed> Well, no, you can't define a macro for a built in...macro.
<phoe> oooh, now we're talking
<phoe> you want code that is only compiled in while debugging
<phoe> correct?
<nicktick> yes
<nicktick> I disassemble code using f, there is a call entry for f(x) in caller even (defun f(x))
<phoe> that's a simple compile-time switch that you can flip
<nicktick> yes! that's what I need, thank you , phoe.
<phoe> also note that "I need a compile-time debug switch" is a different question than "is there an equivalent of C's #define f(x)"
<phoe> the issue is known as https://en.wikipedia.org/wiki/XY_problem
JohnMS_WORK has quit [Read error: Connection reset by peer]
<nicktick> sure, compiled with C's "#define f(x) ", the code of f(x) will be disappear in binary code. the code becomes more compact and faster.
JohnMS_WORK has joined #lisp
<phoe> if that is the question, then no, Lisp has no textual macros
<phoe> it has structural macros though, which operate on Lisp code, and these macros are expanded before other compilation steps
<phoe> ...as we've just demonstrated up there
<nicktick> is it possible that feature implemented in lisp in the future ?
<beach> Feature?
<no-defun-allowed> Why would you want that?
<nicktick> sorry,
<phoe> what do you mean by a feature
<nicktick> english isn't my mother tongue.
<phoe> no worries, we'll somehow understand each other over time
<beach> C-style macros using textual substitution will luckily never be part of the Common Lisp standard.
sugarwren has joined #lisp
<nicktick> how can we get the goal in lisp : compiled like with C's "#define f(x) ", the code of f(x) will be disappear in binary code. the code becomes more compact and faster.
<phoe> I have just posted it up there
<phoe> the WITH-DEBUG macro we have defined above makes it possible to achieve that
<phoe> compare the two disassemblies here: https://plaster.tymoon.eu/view/1873#1873
<nicktick> but the test code left in binary code.
<phoe> the first one is compiled with debug mode on, and you can see #<FDEFN PRINT> which means that the function PRINT is called in there
hineios8 has joined #lisp
<phoe> the second one is compiled with debug mode off, and the PRINT call is not present in that function
<phoe> so, the code becomes more compact and faster
<phoe> isn't that what you want?
<nicktick> sounds like yes.
gaqwas has joined #lisp
* nicktick reading the disassemble code...
pve has joined #lisp
zaquest has joined #lisp
orivej has joined #lisp
<nicktick> phoe: that's right ! it's what I want.
oxum has quit [Remote host closed the connection]
<phoe> <3
<nicktick> phoe, thank you again.
hineios has quit [Ping timeout: 265 seconds]
hineios8 is now known as hineios
<phoe> no problem, enjoy your Lisp time
<ralt> fe[nl]ix: see the first resolved discussion there https://github.com/cffi/cffi/pull/158
<ralt> phoe: don't you need an eval-when around your defvar?
<phoe> ralt: not when I evaluate stuff in the REPL
<phoe> if that gets put in code, then EVAL-WHEN might be required
toorevitimirp has joined #lisp
<ralt> 👍
ljavorsk has joined #lisp
SGASAU has joined #lisp
<beach> phoe: Did I understand it correctly, that you created a PR for the koans and it was merged?
<phoe> beach: correct, I ended up rewriting them completely.
<phoe> Like, most of the actual ideas that were in the original koans are still there now, but the code is now mostly bug-free and portable (hopefully) and the style is consistent.
oxum has joined #lisp
<beach> Great! Good work!
stereosphere has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
oxum has quit [Ping timeout: 258 seconds]
<nicktick> if there are multi-parts of source code to debug(eg. A/B/C three parts), after debugging A, I start to debug B, but I don't want to run the debug code in A, is there a way that I don't need to remove the debug code in A but only run the debug code in B? questiong: Is *debug-mode-p* way suitable for multi-thread code debugging?
<phoe> nicktick: *debug-mode-p* has nothing to do with multiple threads
<phoe> it is a compile-time switch that works only when code is being compiled
<phoe> if you want to debug only function A, then compile everything with *debug-mode-p* set to NIL
<nicktick> ah...I see.
<phoe> then set *debug-mode-p* to T and compile just the function that you want to debug
<phoe> and then you might want to read up on how to use the Common Lisp debugger instead of writing debug statements inside code - I suspect you are doing printf-style debugging, which isn't optimal for working with Common Lisp
<nicktick> thx! phoe
<nicktick> yes
orivej_ has joined #lisp
<nicktick> printf-sytle debugging
<phoe> what is your primary speaking language if it's not English?
<nicktick> there are lots of msg generated to leave afterward analysing.
<nicktick> chinese
orivej has quit [Ping timeout: 258 seconds]
<phoe> hmmm... I don't know many Chinese Lisp programmers who could help you in that language
<phoe> lemme take a look
<phoe> there is https://github.com/xh4/ who, judging by my limited googling skills, might know how to find and get support from other Chinese lispers
oxum has joined #lisp
<phoe> that is, if English is a language barrier for you
lemoinem is now known as Guest43342
lemoinem has joined #lisp
orivej_ has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
<nicktick> phoe: thank you, have a try to connect him.
<phoe> there's also people listed in the commit list at https://github.com/acl-translation/acl-chinese/commits/master who might point you to other places who speak Chinese
<phoe> I don't know any of them, I'm just hoping I'm pointing you at proper people :D
rogersm has joined #lisp
<fe[nl]ix> ralt: please don't use standard terms with different meaning
<fe[nl]ix> whatever cffi-toolchain does (I find the code impenetrable), that's not static linking
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
<ralt> fe[nl]ix: the whole existing thing is full of standard terms with different meanings :)
orivej has quit [Quit: No Ping reply in 180 seconds.]
<ralt> fe[nl]ix: the `ar` call + subsequent `cc` does generate an image where the library is statically linked
orivej has joined #lisp
bhartrihari has joined #lisp
<fe[nl]ix> ralt: I don't believe that's the case
<fe[nl]ix> I tried it and the resulting binary does not contain the expected symbols
<ralt> fe[nl]ix: I have been compiling sqlite3.c using c-file, closing the foreign library before dumping, and it is then used at runtime without using dlopen() (or without having sqlite3 installed at all), so I'm pretty sure static linking is working. Or at least some sort of linking where you don't need the shared library at runtime.
<ralt> I can make a small example with only osicat if you want?
<fe[nl]ix> sure
terpri_ has joined #lisp
terpri has quit [Ping timeout: 260 seconds]
terpri has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
terpri_ has quit [Ping timeout: 256 seconds]
shangul has joined #lisp
<ralt> `strace -s1000 -f ./static-program-op 2>&1 | grep lib` shows it loading libsqlite, but `| grep osicat` shows nothing
karlosz has quit [Quit: karlosz]
<ralt> (and you can delete your `~/.cache/common-lisp` to confirm that it still loads, despite osicat.so no longer existing)
gaqwas has quit [Remote host closed the connection]
emys has quit [Ping timeout: 272 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
emys has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
gaqwas has joined #lisp
bhartrihari has joined #lisp
<srazzaque> Xach: (or anyone else who's online who knows) - do you typically take the latest cut of code for each repo _at the time of preparing the QL release_ ? or at the time of request (i.e. when someone posts a 'please add X' into the quicklisp-projects github repo)
emys has quit [Ping timeout: 260 seconds]
libertyprime has joined #lisp
<phoe> srazzaque: whenever a new dist is made, which is usually monthly
<phoe> but you can specify which branch, or which release, QL should use
emys has joined #lisp
<srazzaque> Thanks phoe - I've requested he pull the master branch, but raised my request 20+ days ago
<srazzaque> just wondering if, when Xach does the release, it'll get the changes I've done since that point
<phoe> most likely he'll just grab whatever is at the master branch at the moment of building the dist
<srazzaque> Yep, that's my hope - thx!
orivej_ has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
<fe[nl]ix> ralt: the asdf:make step errors out here
<ralt> fe[nl]ix: ugh. What's the error?
<ralt> and what's your sbcl version?
<fe[nl]ix> undefined reference to `main'
<ralt> sbcl 2.0.4?
<fe[nl]ix> 1.5.9 and 2.0.4
<ralt> 1.5.9 is because sbcl wasn't compiled with --with-sb-linkable-runtime, and 2.0.4 has a known bug preventing it
<phoe> hah
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
<ralt> fe[nl]ix: essentially, it's not finding your $SBCL_HOME/sbcl.o file because it's appending "contrib/" to the sbcl automatically-discovered-home folder. Can you try `SBCL_HOME=/usr/local/lib/sbcl make` if you have your sbcl libs there?
<ralt> I realize this is annoying, sorry.
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
gaqwas has quit [Read error: Connection reset by peer]
gaqwas has joined #lisp
bhartrihari has left #lisp ["Disconnected: Broken pipe"]
<fe[nl]ix> ralt: I updated sbcl and recompiled it, still doesn't work
<fe[nl]ix> yes
orivej has quit [Ping timeout: 240 seconds]
<ralt> fe[nl]ix: can I see your `$SBCL_HOME/sbcl.mk` file?
gaqwas has joined #lisp
gaqwas has quit [Changing host]
orivej has joined #lisp
<ralt> I suspect that the sb-linkable-runtime feature is no longer visible, but not enabled by default...
<fe[nl]ix> I enabled it
<ralt> my assumption is that it cannot find this file and fails later on with your cryptic main error https://github.com/cffi/cffi/blob/master/toolchain/c-toolchain.lisp#L163
msk has quit [Ping timeout: 272 seconds]
msk has joined #lisp
wxie has joined #lisp
bhartrihari has joined #lisp
<fe[nl]ix> ralt: that's probably the case
<ralt> if you compiled with --sb-linkable-runtime, it should put this sbcl.mk file in /usr/local/lib/sbcl (assuming default prefix), so nudging it by setting SBCL_HOME should work
akoana has quit [Quit: leaving]
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
<fe[nl]ix> I'm not installing sbcl
<fe[nl]ix> I ran it from the source directory using run-sbcl.sh
<ralt> fe[nl]ix: hm, you need sbcl.mk, sbcl.o (which are in src/runtime) and the contrib/ folder in your SBCL_HOME to make it work
emys has quit [Ping timeout: 256 seconds]
<fe[nl]ix> they're all there
<ralt> fe[nl]ix: alternatively, I can build this binary in CI, and you can download the binary?
<ralt> in gitlab CI, so you can verify the input
<fe[nl]ix> that's beyond the point
emys has joined #lisp
<fe[nl]ix> it should work with sbcl compiled and executed from a source directory, without installing
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
SGASAU has quit [Remote host closed the connection]
<ralt> that's not really the original point. I'm trying to discuss how to make static-program-op work correctly, i.e. not load foreign libraries as shared libraries when they're statically linked. (or close them when dumping, given that we can't know at the point we're loading if it's going to be statically linked or not.)
SGASAU has joined #lisp
bhartrihari has left #lisp ["Disconnected: Broken pipe"]
<ralt> you can download the appropriate package from there to see a statically compiled sqlite3 (using c-file) https://gitlab.com/ralt/ballish/-/releases/0.0.30
Krystof has quit [Remote host closed the connection]
Grauwolf has quit [Quit: WeeChat 2.7.1]
Grauwolf has joined #lisp
Grauwolf has quit [Changing host]
Grauwolf has joined #lisp
<ralt> I can make all of that work for me. That's not the problem. The problem as I see it, is that static-program-op, as currently is, is broken whenever (grovel or c-file) foreign libraries are involved. So I'm trying to make it work for everyone else.
nicktick has quit [Ping timeout: 240 seconds]
anticrisis has quit [Read error: Connection reset by peer]
<fe[nl]ix> since it doesn't work for me, I can't help you
<ralt> are you at least willing to discuss further improvements assuming that cffi-toolchain is doing static linking?
slyrus has quit [Ping timeout: 265 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
slyrus has joined #lisp
bhartrihari has joined #lisp
rogersm has quit [Quit: Leaving...]
jesse1010 has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
<phoe> three mails later: Pearson still did not answer me regarding the re-issue of Sonja's CLOS book
<phoe> sigh
<phoe> do I really need to write my own or something
<beach> I have been working on something like that.
<beach> I forget how far I got.
<phoe> beach: mind showing me? I'd gladly (eventually) contribute, since we don't have a good modern CLOS resource.
<beach> Let me check...
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
ravndal has quit [Quit: WeeChat 2.8]
orivej has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
wxie has quit [Ping timeout: 264 seconds]
xof has joined #lisp
gigetoo has quit [Ping timeout: 265 seconds]
<phoe> (let ((me 'check)) ...)
gigetoo has joined #lisp
cosimone has joined #lisp
rogersm has joined #lisp
xof has quit [Remote host closed the connection]
dtman34 has joined #lisp
Krystof has joined #lisp
gigetoo_ has joined #lisp
gigetoo has quit [Ping timeout: 264 seconds]
gigetoo_ is now known as gigetoo
wxie has joined #lisp
<eta> oh are people trying to get static-program-op to work?
* eta has always wanted to do that
dtman34 has quit [Remote host closed the connection]
<jmercouris> it will happen...
<jmercouris> I'm personally really excited by the prospect
<jmercouris> I think it'll be revolutionary for ease of distribution and packaging
<eta> yeah, same
<flip214> phoe: (let 's (list quote s))
<phoe> flip214: yes
<flip214> phoe: sadly (nil nil), but that might be a kind of smilie
dtman34 has joined #lisp
dtman34 has quit [Remote host closed the connection]
<ralt> eta: jmercouris: fwiw it's working perfectly for me, albeit with a couple of patches.
<jmercouris> :-)
<eta> ralt: mine failed with that linkable runtime error last I tried
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
<beach> phoe: Nah, there is not a lot of material. There's a lot of blabla that I might suggest you include some day.
<phoe> beach: I could take a look at that and then digest and include it, sure. Something is always better than nothing.
<beach> No problem. But right now I am taking a break. No rush I guess.
<phoe> There's little rush in general in the Lisp world~
oxum has quit [Ping timeout: 264 seconds]
<phoe> still, it's a bad situation that the most recent book about CLOS in particular happened thirty years ago, has no modern ebook formats, and the non-portable parts of its code have bitrotted
<beach> I totally agree.
<phoe> if I fail at my quest to get Pearson to mail me back, we might need to construct new learning material from scratch
<jmercouris> woah, speak for yourself
<jmercouris> I'm rushing to release 2.0 of Next :-D
<phoe> jmercouris: point taken
orivej has quit [Quit: No Ping reply in 180 seconds.]
<beach> phoe: I'm off for a long-ish break. Talk to you later.
<phoe> See you!
<jmercouris> goodbye Robert
<aeth> phoe: Back then, OOP was new and exciting and no one knew where it would go. These days, I bet the main thing people use CLOS for is polymorphism, which is actually kind of boring.
<phoe> aeth: that's kind of the principle behind my current book about the condition system
<phoe> try/catch is kinda boring too
<aeth> Using CLOS just for polymorphism is kind of like using a racecar to buy groceries.
<jmercouris> however, it does cover 99.99% of cases without much problem
orivej has joined #lisp
<jmercouris> i've very rarely wished for Lisps' condition system in other languages
Krystof has quit [Read error: Connection reset by peer]
<phoe> jmercouris: if the 99.99% of your cases include monstrosities like Java dependency injection frameworks then I don't want to think of these use cases
<aeth> phoe: And, yeah, conditions are the same thing... people just treat them like any language's exception system, if they even use them. I wouldn't be surprised if half the people just do (error "An error.") instead of bothering to define a condition for that, too.
<jmercouris> don't get me started on dependency injection
<jmercouris> i will become inconsolable
Krystof has joined #lisp
<jmercouris> sometimes though (error "an error") is enough
<jmercouris> lots of times there is nothing you can really do about it
<phoe> jmercouris: so much for the "polymorphism alone does cover 99.99% of cases without much problem" approach
<jmercouris> phoe: I was talking about try/catch with the 99.99
<aeth> jmercouris: Importantly, (error "an error") is a good starting point. It's easy to grep for "error" much later on in the library's life and it's an easy thing to procrastinate until later
<phoe> oh, *that*, sure - if your program is not meant to be extensible
<aeth> And if you ever get stuck and want to add dozens of lines, name your errors later on :-p
igemnace has joined #lisp
<phoe> or programmable from the outside by providing hooks and callbacks and recovery strategies
<phoe> and, in truth, most programs are like that
<phoe> the condition system is for when your program shouldn't be like that
<jmercouris> most programs are not extensible at all
<phoe> uh, that's what I meant
<jmercouris> extension is usually an after thought when some PM adds requirements
<phoe> most programs are not meant to be programmable or extensible
<phoe> but, that's already kinda getting off-topic
<jmercouris> except for Next
<jmercouris> Next is the infinitely extensible browser™
<aeth> You kind of have to build in extensibility from the start if you want it, and it's harder than not caring. It's sort of like when a game designs itself so that the game itself is a mod, which is really the way you want it to be if you want to make it moddable.
<phoe> is there any way I could contact Sonja E. Keene?
Krystof has quit [Remote host closed the connection]
Krystof has joined #lisp
rogersm has quit [Ping timeout: 240 seconds]
<jmercouris> it is Sonya Keene
<phoe> Thanks - it seems their last name is misspelled in some places
<jmercouris> Sonya is a first name
<phoe> oweruiouignfg
dtman34 has joined #lisp
<phoe> first name, yes
<jmercouris> anywys, I don't see an easy way to contact her
<mood> Huh, my printed copy says Sonja
<phoe> mood: the plot thickens
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
dtman34 has quit [Remote host closed the connection]
bhartrihari has joined #lisp
<jmercouris> maybe she changed the spelling of her name
emys has quit [Ping timeout: 258 seconds]
emys has joined #lisp
heisig has joined #lisp
<mood> I'd suggest contacting Symbolics Press, but that's probably not going to be possible
<phoe> it doesn't exist anymore
<mood> On a very different note: https://link.joram.io/wf.txt
<phoe> the publisher of the original book is Addison-Wesley which seems to be a part of Pearson now, and they don't answer my mail
<phoe> mood: wait wait WAIT WHAT
<mood> :)
<phoe> who did this? where's that patch?
<phoe> I want to review it
<mood> I have some stuff to clean up, but then I'll open an MR on the GitLab repo
<phoe> this is amazing news!!!
<no-defun-allowed> I can't seem to get that page to load.
<mood> I probably did everything wrong regarding mutexes, so don't expect this to be ready too soon
<no-defun-allowed> Congratulations!
<no-defun-allowed> Well done mood
<phoe> I am literally grinning right now
<phoe> this means that PLNs have become successfully adopted across all of the Lisp world - we'll only be waiting for LispWorks to release 7.2
<mood> I'm LOADing the file because QL doesn't seem to work in my development build, but perhaps that's just because I'm running straight from the source directory
<phoe> mood: where can I throw money at you
scymtym has quit [Ping timeout: 246 seconds]
<mood> phoe: Haha, wait until it's done :)
<phoe> mood: please don't make me wait too long
<mood> I hope to have things cleaned up tonight, but then it needs some thorough review. I'm not at all familiar enough with the codebase to know what I'm doing
wonderer has joined #lisp
<phoe> mood: neither do I, but I can try to review it once it's there
wonderer has left #lisp [#lisp]
emys has quit [Ping timeout: 246 seconds]
<phoe> once that lands in, there absolutely should be a 2.50 release
davsebam1e has joined #lisp
oxum has joined #lisp
davsebamse has quit [Ping timeout: 246 seconds]
emys has joined #lisp
oxum has quit [Ping timeout: 256 seconds]
oxum has joined #lisp
Bike has joined #lisp
scymtym has joined #lisp
pfdietz has joined #lisp
<pfdietz> "Well, no, you can't define a macro for a built in...macro"
<pfdietz> Ah, but you can override it with *macroexpand-hook*
<phoe> pfdietz: for the love of god please no
<pfdietz> It's becoming a favorite trick of mine for instrumenting code. Not for a regular build of the code, though.
<axion> It wouldn't be a day without pfdietz praising *macroexpand-hook* :)
emys has quit [Ping timeout: 260 seconds]
<pfdietz> :)
<Bike> bring 👏 back 👏 evalhook 👏
<axion> In other news, I forgot that CLISP is intentionally not conforming with its arbitrary precision floats.
kpoeck has joined #lisp
<MichaelRaskin> pfdietz: we have to say «please no» every time, otherwise people might use *macroexpand-hook* for something except temporary instrumentation, and then it gets unusable even as temporary instrumentation
<pfdietz> Fair
emys has joined #lisp
gaqwas has quit [Quit: Leaving]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
dddddd has joined #lisp
wxie has quit [Ping timeout: 265 seconds]
ljavorsk has quit [Ping timeout: 272 seconds]
<minion> phoe: *macroexpand-hook*: please do not use it in production code, even when pfdietz advertises it to you
<phoe> minion: tell phoe about *macroexpand-hook*
<phoe> MichaelRaskin: there
<no-defun-allowed> pfdietz: Please don't encourage someone who thought the C textual replacement system was a feature.
emys has quit [Ping timeout: 240 seconds]
<jmercouris> C textual replacement system?
<flip214> #define
<jmercouris> what do you mean? c macros?
<jmercouris> ah, c macros
orivej_ has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
gaqwas has joined #lisp
<jmercouris> i don't see how that isn't a feature, but OK
shangul has quit [Ping timeout: 264 seconds]
<jdz> jmercouris: It's a misfeature because people use them instead of enums.
<jdz> C is everywhere, and when getting a result from a function it's impossible to tell which "constant" it corresponds to. Not exactly #define's fault, and off topic, anyway.
emys has joined #lisp
orivej_ has quit [Ping timeout: 240 seconds]
<Bike> i think in context it was function-like macros and their textual substitution basis that was the issue?
<jmercouris> i think it is a misnomer to call them macros
<jmercouris> maybe thats what no-defun-allowed meant
orivej has joined #lisp
<phoe> in context it was that in C you can write { foo(1); bar(1); baz(1); } and if you "#define foo(x) " then this causes foo(1) to disappear from the resulting code that is fed to the compiler
<phoe> because foo(1) is replaced with an empty string
wxie has joined #lisp
<jdz> Ouch.
<phoe> which is therefore a poor man's debug switch
<Bike> i've done #-debug (defmacro foo (&rest args)) a few times, because i am destitute
pjb has quit [Ping timeout: 272 seconds]
<phoe> that's also an option, but removing :debug from *features* is kinda eh
<phoe> unless we are, like, (let ((*features* (cons :debug *features*))) (asdf:load-system :foo))
<phoe> preferably with :force t, too
wxie has quit [Ping timeout: 260 seconds]
<Bike> well i mean it would actually be debug-whatever
toorevitimirp has quit [Read error: Connection reset by peer]
Balooga has quit [Ping timeout: 260 seconds]
toorevitimirp has joined #lisp
emys has quit [Ping timeout: 264 seconds]
sz0 has quit [Ping timeout: 260 seconds]
terrorjack has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
lerax has quit [Remote host closed the connection]
shangul has joined #lisp
Balooga has joined #lisp
pent has quit [Ping timeout: 260 seconds]
sz0 has joined #lisp
EvW has joined #lisp
terrorjack has joined #lisp
pent has joined #lisp
gko has joined #lisp
gxt__ has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
shangul has quit [Ping timeout: 246 seconds]
rogersm has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
emys has joined #lisp
bhartrihari has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
pjb has joined #lisp
<jmercouris> you can just use log4cl and set the config to debug or not
<jmercouris> i guess if you don't want to load it, i get it
emys has quit [Ping timeout: 272 seconds]
Lord_Nightmare has quit [Ping timeout: 258 seconds]
Lord_Nightmare has joined #lisp
jonatack has quit [Ping timeout: 260 seconds]
rozenglass has joined #lisp
Lord_of_Life_ has joined #lisp
rozenglass has quit [Client Quit]
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
lavaflow has joined #lisp
rogersm has quit [Quit: Leaving...]
orivej has quit [Read error: Connection reset by peer]
orivej_ has joined #lisp
emys has joined #lisp
rozenglass has joined #lisp
shangul has joined #lisp
bhartrihari has left #lisp [#lisp]
orivej_ has quit [Ping timeout: 256 seconds]
antaoiseach has joined #lisp
antaoiseach has quit [Client Quit]
emys has quit [Ping timeout: 256 seconds]
antaoiseach has joined #lisp
orivej has joined #lisp
jonatack has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
emys has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
jonatack has quit [Ping timeout: 244 seconds]
ech has joined #lisp
jonatack has joined #lisp
libertyprime has quit [Remote host closed the connection]
gaqwas has quit [Quit: Leaving]
gaqwas has joined #lisp
oxum has quit [Remote host closed the connection]
bitmapper has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
orivej_ has joined #lisp
emys has quit [Ping timeout: 260 seconds]
oxum has joined #lisp
fluxwave has quit [Ping timeout: 260 seconds]
pjb has joined #lisp
orivej_ has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
oxum has quit [Ping timeout: 260 seconds]
oxum has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
gaqwas has quit [Remote host closed the connection]
emys has joined #lisp
emys has quit [Ping timeout: 264 seconds]
Cymew has quit [Quit: Konversation terminated!]
Cymew has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
<splittist> phoe: would folks at LispWorks or Global Graphics be able to pass a message on to Son[jy]a?
<phoe> splittist: I don't know, I haven't asked. I guess I can try.
<phoe> I don't know who to ask at Global Graphics though.
antaoiseach has left #lisp [#lisp]
igemnace has quit [Quit: WeeChat 2.8]
emys has joined #lisp
gko has quit [Ping timeout: 246 seconds]
<splittist> phoe: in the absence of a better idea, you could try Jill Taylor, the Corporate Communications Director. At least her 'no, don't care' will be polite. I don't have an email, though. (LinkedIn /jill-taylor-0802793/ ) If you do write, you could congratulate GG on their sale of URW.
<phoe> splittist: thanks, will do in a moment.
emys has quit [Ping timeout: 260 seconds]
samlamamma has joined #lisp
kpoeck has quit [Remote host closed the connection]
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
emys has joined #lisp
oxum has quit [Ping timeout: 256 seconds]
srazzaque has quit [Ping timeout: 265 seconds]
emys has quit [Ping timeout: 260 seconds]
Bit_MCP has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
emys has joined #lisp
bfig has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
orivej has joined #lisp
<bfig> hello, I'm trying to get started w/ lisp and I'm testing LFE (lisp flavored erlang) and having some issues w/ syntax. I am trying to extract the parameters from a quoted lambda function through pattern matching: (defun getparams (((quote (lambda . rest))) (car rest))). Any ideas for what's wrong?
<bfig> ohh this is a common lisp channel... probably not the right place to ask
<beach> Probably not. That syntax looks very strange.
<beach> What does your lambda list look like?
<bfig> lambda list?
<beach> Parameter list.
<bfig> i'm trying to use it on the following function: '(lambda (x y z) (+ x y z))
<Bike> this kind of pattern matching doesn't look like the kinds common lisp has. you are in the wrong place.
<arpunk> bfig: No, that won't work, you get *erlang* pattern matching.
<Bike> there's ##lisp, i think.
nicktick has joined #lisp
<Bike> and probably an erlang channel
<arpunk> bfig: #erlang-lisp is what you want
Bit_MCP has quit [Quit: Leaving]
Bit_MCP1 has joined #lisp
<bfig> I'm there, there's like 3 people
<Bike> but they'll probably be more helpful than we can be.
<arpunk> bfig: Yea, I stopped LFE a few years ago
Bit_MCP has joined #lisp
Bit_MCP1 has joined #lisp
<bfig> arpunk: what do you mean you stopped LFE?
Josh_2 has quit [Ping timeout: 265 seconds]
<arpunk> bfig: Is just Erlang on a Lisp disguise, single developer, etc.
karswell has joined #lisp
Bit_MCP has quit [Client Quit]
<arpunk> stopped writing*
Bit_MCP1 has quit [Client Quit]
<bfig> for a second I thought maybe you were rvirding in disguise
Bit_MCP has joined #lisp
emys has quit [Ping timeout: 258 seconds]
rippa has joined #lisp
Lycurgus has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
emys has joined #lisp
oxum has joined #lisp
phantomics_ has quit [Quit: Ex-Chat]
<beach> Maybe people should choose what programming language to use according to the helpfulness and the number of participants of the corresponding IRC channel.
emys has quit [Ping timeout: 240 seconds]
<beach> It seems we frequently see phrases such as "yes, I know I am not using Common Lisp, but the IRC channel for my problem is dead, so I came here instead".
<ralt> well stop being helpful!
<beach> Hmm, that would be a bit radical.
<beach> Oh, to people with unrelated problems?
<beach> Sure.
oxum has quit [Ping timeout: 264 seconds]
orivej has quit [Ping timeout: 258 seconds]
emys has joined #lisp
orivej has joined #lisp
oxum has joined #lisp
samlamamma has quit [Ping timeout: 260 seconds]
emys has quit [Ping timeout: 246 seconds]
gaqwas has joined #lisp
pjb has joined #lisp
samlamamma has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
SGASAU has quit [Remote host closed the connection]
Blukunfando has joined #lisp
SGASAU has joined #lisp
emys has joined #lisp
Lycurgus has quit [Remote host closed the connection]
shifty has quit [Ping timeout: 256 seconds]
<flip214> wasn't the CL community known for their notority 20 years ago or so? seems to have changed. +1 to beach for welcoming newbies!
sdumi has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
Josh_2 has joined #lisp
<beach> notority?
<beach> I think the friendliness of this channel goes way further back than that.
emys has quit [Ping timeout: 256 seconds]
<bfig> beach: you have a good point but I am just getting started here. I started looking at LFE because I'm buliding things in elixir and I need a single component that will require lisp as I'll do a lot of AST manipulation. LFE seems like the right choice but it's unusable in it's current state for somebody like me
<beach> Aha, so you might be interested in Common Lisp after all.
<beach> Then the solution to your problem is (second '(lambda (x y z) ...))
<bfig> maybe, if I can do what I need. I basically want to manipulate an AST, I will interpret it using a persisted workflow management system, but I want to describe the workflows and the transformations using lisp
<beach> What kind of AST are we talking about?
<bfig> its' going to be just a simple DSL, but I will have to be able to perform some special functions on it and also allow for some 'nonsense' to happen
<bfig> so I want to represent workflows as a dsl and then represent other workflows as transformations, combinations and alterations of the same DSL. To have as much power as possible I will want to combine them in ways that are super flexible, ie, i want to parametrize pieces of them through functions
rogersm has joined #lisp
sdumi has joined #lisp
<beach> I believe you, but I don't understand much of what you are describing. Lack of domain knowledge, I presume.
<flip214> well, I can only judge what I've seen in the Naggum article archive... perhaps that's a bad sample
<beach> flip214: I just don't know the word you were using.
<samlamamma> bfig:Perhaps you can implement it in Elixir using other means? Such as higher-order functions
emys has joined #lisp
<bfig> samlamamma: so for example, you could have a valid dsl piece: '(lambda (a b) (step (components (produce a b))), and that will be combined in place with other stuff, but I have to represent the new DSL piece as a combination of variables of the subpieces
orivej has quit [Ping timeout: 256 seconds]
<bfig> so i want to combine several small pieces like this and 'hoist' the variables. I use apostrophes cause I am not sure the definition of hoist applies here, but imagine part of the DSL is alterations of the underlying structure, like converting something fixed/shadowing an element into a free variable
orivej has joined #lisp
<phoe> bfig: the issue is that this channel is about Common Lisp, not LFE or Erlang, so what you describe sounds a little bit off-topic unless you want to add a CL runtime to the mix and use e.g. CLERIC to communicate between CL the and Erlang worlds
<phoe> sadly, LFE has gone stalled as of late; I don't see much new development happening there, which is a sad thing
<phoe> s/gone//
<bfig> phoe: this sounds great, I am starting to think about alternatives, will look at this in more detail
<samlamamma> If I needed to implement a DSL where I had to determine the lexical environment of variables and so on then the macro would only be there to quote my code and I'd implement an interpreter for my DSL language.
<flip214> beach: a quick example is https://www.xach.com/naggum/articles/3124184876945775@naggum.no.html, but there are many much more heated ones
<beach> flip214: I still do not know a word such as "notority".
<phoe> s/notority/notoriety/
<phoe> ;; "s" in the above regex stands for "spellcheck"
<bfig> samlamamma: i will implement the interp in elixir as I need to do a lot of distributed stuff, but the DSL management in elixir sounds like the worst possible thing to do. I just need to format it into something that makes sense so I don't have to rewrite the wheel in elixir
<beach> phoe: Ah thanks.
<phoe> bfig: once upon a time, I was thinking of a swank server in LFE.
<flip214> phoe: thanks
<phoe> That would allow Common Lisp and LFE to exchange code via S-expressions; you could even send them from LFE, manipulate the lists in CL, and send them back to LFE for evaluation.
<samlamamma> bfig: The Haskell guys has decent work in supporting eDSLs utilizing standard language features such as ADTs, have you looked into that for Elixir?
emys has quit [Ping timeout: 260 seconds]
efm has quit [Ping timeout: 264 seconds]
flazh has quit [Quit: flazh]
<bfig> samlamamma: i don't think i can do what I need with haskell, how would I work around the types? the idea is allowing the user to define functions at any point and combine them by hoisting the variables
<phoe> bfig: what do you mean, hoisting?
<bfig> the following code is nonsense:
<phoe> bfig: please use a pastebin
<phoe> ...saying that just in case
<bfig> ok, sorry, just got used to discord by now
* phoe whew
emys has joined #lisp
ravndal has joined #lisp
flazh has joined #lisp
ebrasca has joined #lisp
rogersm has quit [Quit: Leaving...]
karswell has quit [Remote host closed the connection]
karswell has joined #lisp
<phoe> bfig: other than the very weird indentation, it looks OK
<phoe> I mean, I don't know what the symbols STEP, COMPONENTS, PRODUCE, TRANSPORT, and BANANAS do
efm has joined #lisp
<phoe> but the lambda seems okay overall
<bfig> phoe: they are symbols that the interp will understand. I need to provide an html/js interface for the values, at the time of interpretation all those functions need to be executed with the right variables
<phoe> ouch, where does the HTML/JS come from
<bfig> so the interface for the DSL i just showed will be two fields which the inter should know are locations that you can pick from your list of locations
<phoe> your problem just became more complex to understand
bebop has quit [Ping timeout: 265 seconds]
<samlamamma> bfig:http://okmij.org/ftp/tagless-final/ If you care about eDSLs in Haskell
<bfig> ok let's just talk about the core. The core of the system is a dsl that will represent value streams with free variables. Those free variables need to be completed, and then you have a DSL for an executable sequence of actions that an inter will use to interface with different systems (inventory, production, etc)
EvW has quit [Ping timeout: 252 seconds]
<phoe> OK, I can understand this so far. Are X and Y the free variables in your example? That you bind with a LAMBDA form?
<bfig> yes. It doesn't need to be lambda, it could be anything, it just needs to be something that can be used to denote that they are free variables
<bfig> i mean the whole thing will be quoted anyway
orivej has quit [Ping timeout: 256 seconds]
<samlamamma> Technically they're bound variables inside of the lambda
<bfig> samlamamma: will review a bit more in detail but I'm pretty sure that I'll have to deal with the problem I want to avoid
orivej has joined #lisp
<bfig> sorry I'm misusing the terms
<phoe> samlamamma: correct; I asked because they'd be free without the encompassing lambda
<samlamamma> bfig:Have you considered writing a grammar for your language?
<bfig> imagine if what I had were terms with free variables, i just want to compose them without having to care, and then at the end I want to do typechecking (based on an interpretation of the argument position of the DSL) and just gathering everything so I can generate an interface for the user to complete
<bfig> the interface would be be just variables to be bound to the free terms
<phoe> bfig: OK, you can do that with just list manipulations. If you compiled this in CL, then the compiler would tell you which variables were unbound; I imagine LFE has something similar.
aindilis has quit [Read error: Connection reset by peer]
<bfig> samlamamma: i already have a basic grammar to start: wf = (wf . steps), steps = step | (cons step step), step = (step . components) ...
pjb has quit [Ping timeout: 272 seconds]
dtman34 has joined #lisp
<bfig> the idea is that I can extend this grammar with components (as in entity component systems), so for typechecking purposes I will have a runtime that could gather the information necessary to figure out the types. I don't intend to do crazy stuff
<bfig> (ie, my first components that I already have programmed are elixir apps that do inventory management and production)
emys has quit [Ping timeout: 256 seconds]
aindilis has joined #lisp
dtman34 has quit [Remote host closed the connection]
dtman34 has joined #lisp
dtman34 has quit [Remote host closed the connection]
Jeanne-Kamikaze has joined #lisp
* bfig is looking at GRAIL
bitmapper has quit [Remote host closed the connection]
<bfig> you know this CLERIC thing actually is all i need I think
<bfig> phoe: do you know if this has OTP support so I can add it to my supervision tree_
ech has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
bitmapper has joined #lisp
<phoe> bfig: it doesn't. All it does is causes a Lisp image to advertise itself as a node on the Erlang network.
<phoe> It does not implement any Erlang VM instructions, so it cannot execute Erlang code or funs.
<bfig> mmm :/
<phoe> It implements the wire protocol, so it allows one to receive and send messages.
<phoe> this includes Erlang code as black-box data that cannot be executed.
emys has joined #lisp
<phoe> it allows you to send Erlang data for processing in CL and vice versa.
<bfig> yeah but if I can't make it work in an OTP supervision tree i have to build that on my own :/
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale` is now known as X-Scale
emys has quit [Ping timeout: 256 seconds]
orivej_ has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
<phoe> splittist: Dave Moon forwarded my mail to Sonya! I got a response.
ChoHag has quit [Remote host closed the connection]
pjb has joined #lisp
ech has joined #lisp
<splittist> phoe: wow!
EvW1 has joined #lisp
orivej_ has joined #lisp
<splittist> phoe: I don't know what technical book contracts were like in the 80's, but I would imagine the copyright has reverted to her since it hasn't been reprinted in so long.
orivej has quit [Ping timeout: 272 seconds]
scymtym_ has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
pfdietz has quit [Ping timeout: 245 seconds]
Bit_MCP has quit [Ping timeout: 265 seconds]
slyrus has quit [Quit: Leaving]
scymtym_ has quit [Ping timeout: 260 seconds]
<phoe> splittist: I've asked her about that. Let's see how it works; I'm glad to know that she's alive and well, and also curious about the Lisp platform I use. :)
epony has quit [Quit: upgrades]
karswell has quit [Remote host closed the connection]
karswell has joined #lisp
<jackdaniel> what is the context here? (I can't find it in the backlog)
<phoe> jackdaniel: you mean my stuff?
<jackdaniel> yes
<phoe> I'm basically looking at what can be done related to modernizing Sonya's CLOS book from 1989
<_death> just don't mention that ORDERED-LOCK-MIXIN bug :D
<jackdaniel> ah
<jackdaniel> thanks
<phoe> _death: what is it? I might be able to fix it if^Wwhen the book is re-released
<_death> in seize :before method specialized on ordered-lock-mixin I have commented the check-for-mylock form and remarked "ORDERED-LOCK-MIXIN should not assume an owner."
<_death>
* phoe adds it to the idea bin for CLOSbook fixes
epony has joined #lisp
oxum has quit [Remote host closed the connection]
<_death> I'm not sure I found the code useful in any way, just played with it when I read the book more than a decade ago.. so may be wrong
oxum has joined #lisp
orivej has joined #lisp
orivej_ has quit [Ping timeout: 256 seconds]
oxum has quit [Ping timeout: 264 seconds]
tsrt^ has joined #lisp
pjb has quit [Ping timeout: 246 seconds]
efm has quit [Ping timeout: 265 seconds]
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
bhartrihari has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
theseb has joined #lisp
theseb has quit [Remote host closed the connection]
rogersm has joined #lisp
ArthurStrong has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
scymtym has joined #lisp
madnificent has joined #lisp
<jmercouris> hello
<jmercouris> let's say I have a list (list "salmon" "fish" "mollusk"), I want to loop, first iter: "salmon" "fish" "mollusk", second iter: "fish" "mollusk"
<jmercouris> basically I'd like to do by :pop or something
<jmercouris> best way?
<jmercouris> OK to do that?
cosimone has quit [Read error: Connection reset by peer]
<Bike> (loop for sublist on list ...)
<jmercouris> that will just work?
cosimone has joined #lisp
<Bike> yeah, that's what "on" means
<Bike> instead of "in" which takes each element
<beach> (loop for sublist on list do (loop for element in sublist do ...))
<jmercouris> ah, indeed indeed
orivej has quit [Ping timeout: 246 seconds]
<jmercouris> thanks
<Bike> there's also mapl, maplist, mapcon
<jmercouris> today I learned about what the "on" keword really does
<jmercouris> I'd been using it like an automaton :-D
stoneglass has joined #lisp
orivej has joined #lisp
<jmercouris> I've been avoiding really getting into LOOP if I am honest
oxum has joined #lisp
kamid has quit [Quit: WeeChat 2.7.1]
pjb has joined #lisp
gxt__ has joined #lisp
Bit_MCP has joined #lisp
oxum has quit [Ping timeout: 272 seconds]
<jmercouris> ON actually does the reverse of what I want
<jmercouris> I would have to reverse the list or instead POP through it
<Bike> er, what?
<Bike> you said first you wanted the whole list, then all elements but the first, etc
<jmercouris> ah, damnit you are right I did
<jmercouris> I guess I need to reverse no matter what
<jmercouris> Bike: this works, http://dpaste.com/0VE5YTE
<jmercouris> what do you think of it?
<jmercouris> given "libgio-2.0.0.dylib" -> ("libgio-2.0.0.dylib" "libgio-2.0.dylib" "libgio-2.dylib")
<Bike> it might go a bit faster if you generated them forward and then reversed at the end, but it does'nt seem like you're going to use this in a tight loop anyway
<jmercouris> other than that, looks OK?
<Bike> sure, it's fine. maybe i'd move the format into a separate implode function
<jmercouris> thanks for the fe3db4ck
lain` has joined #lisp
Bit_MCP has quit [Ping timeout: 256 seconds]
midre has quit [Ping timeout: 260 seconds]
midre has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
Bit_MCP has joined #lisp
pjb has quit [Ping timeout: 244 seconds]
Archenoth has quit [Quit: Leaving]
lain` has left #lisp ["ERC (IRC client for Emacs 26.3)"]
EvW1 has quit [Ping timeout: 260 seconds]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
slyrus has joined #lisp
SAL9000 has quit [Remote host closed the connection]
stoneglass has quit [Quit: stoneglass]
SAL9000 has joined #lisp
rogersm has quit [Quit: Leaving...]
karswell has quit [Remote host closed the connection]
SAL9000 has quit [Quit: WeeChat 2.7.1]
shangul has quit [Ping timeout: 272 seconds]
pjb has joined #lisp
orivej has joined #lisp
orivej_ has quit [Ping timeout: 264 seconds]
karlosz has joined #lisp
even4void has joined #lisp
even4void has quit [Remote host closed the connection]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
sugarwren has quit [Quit: Leaving]
theseb has joined #lisp
even4void has joined #lisp
even4void has quit [Remote host closed the connection]
even4void has joined #lisp
karswell has joined #lisp
even4void has quit [Remote host closed the connection]
<theseb> Can at least a big subset of C and Python be compiled to lisp?
<samlamamma> theseb: Nope, impossible :-)
<Bike> you can compile anything to anything.
* madnificent wonders if these are jokes
jason_m has joined #lisp
<theseb> seems lisp would make a good intermediate representation for compilers....just convert everything to it
<samlamamma> In many ways not really
<theseb> no need to reinvent the code to convert to assembly or machine code
<theseb> just do it for lisp
<theseb> everything else just convert to lisp!
<samlamamma> Naaaaah
<theseb> samlamamma: why not?
<Bike> common lisp would not be a very good ir
<samlamamma> Sorry guys, I shouldn't write such silly messages. I'm really tired haha :-)
<Bike> most IRs don't have textual syntax anyway
<Bike> since they only exist in the compiler
<theseb> Bike: CL has too much goodies...an subset of CL/Scheme seems nicer
<theseb> many*
<samlamamma> theseb: Look at WebAssembly :-)
<Bike> it wouldn't really be a subset
<Bike> for example there's no arithmetic on machine integers in either language, and you probably want that
<Bike> you can do that with declarations, but then it's hardly an IR
<theseb> samlamamma: i have high hopes for WebAssembly
<theseb> Bike: in that case you'd probably want to ditch CL and create a half-baked lisp like lang strongly tied to your processor of choice for this
<Bike> it wouldn't be half baked, it would just be a language for a different purpose
<Bike> and, again, it probably wouldn't have a character syntax, or at least that syntax wouldn't be the most common way to use it
<Bike> so no parens
<samlamamma> ^- what's happening in WASM
<theseb> Bike: what do you mean why you say it wouldn't have a character syntax? Do you mean
<theseb> it would be binary instead of ASCII?
<Bike> when you write a compiler, you parse the language into internal data structures, and make an IR of internal data structures
<theseb> yes i agree
<phoe> (IR = intermediate representation)
<Bike> for example, in Cleavir, AST (abstract syntax tree) nodes are represented with ASTs, which are standard-objects
<Bike> so, there's no text
<theseb> Bike: yes complex structures like with OOP would be a pain...but at least for the basics of C and python....defining variables, defining/using functions, doing arithmetic...i can see easily how it could be translated into s expressions
<phoe> mood: reviewing this now
<Bike> but they wouldn't be s expressions, they would just be data structures.
<Bike> there's no need for the IR to be written out to a file at all except maybe for debugging.
<samlamamma> You don't want S-expressions.
<samlamamma> You probably want to attach info to the nodes
pjb has quit [Ping timeout: 265 seconds]
<theseb> Bike: yes! debugging...that is what I was thinking about too
<samlamamma> theseb:You're not wrong in that what you're saying can be done, but it's completely unnecessary to do so and impractical because of the work that compilers have to do
<samlamamma> theseb: Read all of this: https://docs.racket-lang.org/redex/
younder has joined #lisp
<theseb> Bike: let me come clean...I want to build a compiler for a subset of C and Python for a learning project...the idea of just parsing both to a lispy IR and then just focusing on the IR to asm conversion in one swipe sounds delicious
<Bike> just build up an IR the usual way
<Bike> i recommend using clos or structures or something, not conses
<theseb> i'm good at parsing....so C, Python, ... ...each new lang "just" adds another parsing component
<Bike> it's more than parsing.
<samlamamma> Have you ever written a compiler before?
<younder> samlamamma, who are you asking?
<samlamamma> theseb:
<samlamamma> Sorry, good point
<Bike> seems pretty obvious from context
<samlamamma> Oh, sorry. younder: Sorry, good point
<samlamamma> ;-)
<theseb> samlamamma: i've done the parsing...that's it
<samlamamma> theseb:Okay, how did you do the parsing?
<theseb> samlamamma: i wrong a recursive descent parser generator
<theseb> then i just wrote separate recursive descent parsers
<samlamamma> Okay, nice. If you parse let's say "def foo(x): return x" then what do you get back?
<theseb> samlamamma: i haven't done python yet...but clearly you'd get a lambda function bound to foo with 1 argument x ....etc.
<Bike> samlamamma is asking what kind of values your parsing function returns.
<Bike> your parser probably doesn't return an actual lisp function
<theseb> correct
<samlamamma> So what does it return?
<theseb> samlamamma: trying to remember..just a sec...been a while.....see github.com/cseberino/pgen
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
even4void has joined #lisp
gravicappa has quit [Ping timeout: 260 seconds]
<theseb> samlamamma: it emits the abstract syntax tree...in a huge s-expression
ven4voide has joined #lisp
pjb has joined #lisp
<Bike> so it actually returns a string?
<phoe> mood: reviewed.
<Bike> (the answer is probably "no", but i don't see where things are defined)
even4void has quit [Remote host closed the connection]
TwoNotes has joined #lisp
<samlamamma> theseb:Okay, replace the s-expressions with instances of abstract data types, then you have a typical first AST. Now you can compile that AST directly, or you can do re-write passes from that AST to other intermediate representations (like SSA).
<samlamamma> Then emit code.
<samlamamma> Anyway, it's late, I have to go home.
<phoe> mood: also posted on Reddit in hope anyone else is able to review that code.
orivej_ has joined #lisp
<phoe> mood: also posted to a Planet Lisp-indexed block in hope it reaches more people.
orivej has quit [Read error: Connection reset by peer]
ven4voide has quit [Remote host closed the connection]
samlamamma has quit [Ping timeout: 260 seconds]
<theseb> Bike: a string representation of s expressions
<phoe> so it returns an AST serialized into a string?...
<theseb> yes
hiroaki has quit [Ping timeout: 265 seconds]
<Bike> so if you want to actually work with it, you have to parse the string?
<phoe> sounds like it
<pjb> prin1-to-string and read-from-string
<mood> phoe: Thanks!
heisig has quit [Quit: Leaving]
<theseb> Bike: well i'm going to do more work on it...that's old code...i'm thinking compile C down to s-expressions....then write something to compile s expressions
<theseb> to assembly
<theseb> Bike: how does that sound?
<younder> ahem. I'm a bit rusty, but won't parsing stuff as a string make it exactly a if you had written it in something else like C? I'd go for a quoted SEXP if i could.
<Bike> i mean, you have some code
<Bike> you parse it and output a string
<theseb> Bike: and i ready have my working lisp subset....See github.com/cseberino/crux for debugging!
<Bike> then you parse that string
<Bike> it's dumb.
<phoe> you now need to parse that string again, even if just by reading it
<Bike> just parse directly to whatever your internal structures are. your AST nodes.
<theseb> Bike: i'm going to skip the string stage...just go from C source to s expressions
even4void has joined #lisp
bfig has quit [Read error: Connection reset by peer]
<Bike> what do you think an s expression is
bfig has joined #lisp
<theseb> Bike: welll i'm literally going to convert my c source to working lisp code
<Bike> s expressions are textual syntax. that's what i've been talking about.
<Bike> if you're doing something else, great
<theseb> Bike: oh....maybe i'm using the wrong language
<theseb> terminology
defaultxr has joined #lisp
<theseb> sorry
<theseb> Bike: it just seems so beautiful because i can immediately run my intermediate lisp code to make sure the c parser is 100% correct
<theseb> all the immediate feedback will be motivating
<theseb> i'm not a professional compiler write but presumably i'm not the 1st person that has thought of this
<theseb> .....executable IRs you can test and debug
<Bike> no, it's pretty common.
<theseb> that's why lisp seems so perfect here
<younder> theseb, C to lisp.. you might well be the first
<theseb> because you can implement a mini lisp so quickly
<Bike> IRs shared by multiple language frontends are also common. That's how LLVM works.
<Bike> i think poplog too, for a lisp example, but i'm not sure
grewal has joined #lisp
<grewal> Are there any libraries that implement elliptic curve pairings?
hiroaki has joined #lisp
slyrus has quit [Quit: Leaving]
<younder> I found a couple using google.
shifty has quit [Ping timeout: 246 seconds]
<grewal> I have to work on my search skills. I couldn't (and still can't) find any
even4void_ has joined #lisp
<_death> grewal: may want to check out emotiq
<younder> Seems more of a Haskell thing really. They are more mathematically inclined. In NSA stuff at least.
even4void_ has quit [Client Quit]
_paul0 has quit [Ping timeout: 260 seconds]
rozenglass has quit [Ping timeout: 272 seconds]
even4void has quit [Remote host closed the connection]
orivej_ has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
<grewal> _death: thanks, that helped
rumbler31 has joined #lisp
karswell has quit [Read error: Connection reset by peer]
rumbler31 has quit [Ping timeout: 246 seconds]
karayan has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
ChoHag has joined #lisp
<ChoHag> What does &whole do in a lambda list?
random-nick has quit [Ping timeout: 265 seconds]
<_death> clhs 3.4.4
rozenglass has joined #lisp
choegusung has joined #lisp
<mood> ChoHag: It binds the given variable to the entire macro invocation form. For example, when you call this macro (defmacro foo (&whole whole a b c) `(print ',whole)) like this: (foo 1 2 3), it expands to (print '(foo 1 2 3))
TwoNotes has quit [Quit: Leaving]
bhartrihari has left #lisp [#lisp]
bhartrihari has joined #lisp
karayan has joined #lisp
SAL9000 has joined #lisp
jonatack has quit [Ping timeout: 258 seconds]
jonatack has joined #lisp
Jesin has quit [Quit: Leaving]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
zmt00 has quit [Quit: Leaving]
pve has quit [Quit: leaving]
zmt00 has joined #lisp
Archenoth has joined #lisp
anticrisis has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
marusich has quit [Quit: Leaving]
andrei-n has quit [Quit: Leaving]
frgo has quit [Remote host closed the connection]
Guest4 has joined #lisp
frgo has joined #lisp
dale has joined #lisp
milanj has joined #lisp
corpix_ has joined #lisp
corpix has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
milanj has quit [Ping timeout: 272 seconds]
marusich has joined #lisp
milanj has joined #lisp
ArthurStrong has joined #lisp
marusich has quit [Read error: Connection reset by peer]
marusich has joined #lisp
Jesin has joined #lisp
orivej_ has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
marusich has quit [Read error: Connection reset by peer]
marusich has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 258 seconds]
Lord_of_Life_ is now known as Lord_of_Life
Jesin has quit [Quit: Leaving]
wxie has joined #lisp
Jesin has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
sdumi has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
cosimone_ has joined #lisp
libertyprime has joined #lisp
ArthurStrong has quit [Read error: Connection reset by peer]
cosimone has quit [Ping timeout: 260 seconds]
cosimone_ is now known as cosimone
eta has quit [Ping timeout: 256 seconds]
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
froggey has quit [Ping timeout: 256 seconds]
sdumi has joined #lisp
ArthurStrong has joined #lisp
nicktick has quit [Ping timeout: 256 seconds]
orivej has quit [Read error: Connection reset by peer]
orivej has joined #lisp
froggey has joined #lisp
Bit_MCP has quit [Ping timeout: 264 seconds]
igemnace has joined #lisp
delial has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
delial has quit [Quit: delial]
cosimone_ has joined #lisp
cosimone has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
Necktwi has quit [Ping timeout: 240 seconds]
Necktwi has joined #lisp
rgherdt has quit [Ping timeout: 260 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
seok has quit [Remote host closed the connection]
orivej has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
cosimone_ is now known as cosimone
dmiles has joined #lisp