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
toorevitimirp has joined #lisp
Josh_2 has joined #lisp
cosimone has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
ech has quit [Ping timeout: 264 seconds]
ech has joined #lisp
KingOfCSU has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU` has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
jeosol has quit [Ping timeout: 245 seconds]
refpga has quit [Read error: Connection reset by peer]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
refpga has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 264 seconds]
Lord_of_Life_ is now known as Lord_of_Life
gxt__ has joined #lisp
gxt_ has quit [Ping timeout: 240 seconds]
<ntr> in your opinion what would be the most representative lisp proyect that follows best coding practices, structure, testing, etc
libertyprime has joined #lisp
Oladon has joined #lisp
shifty has joined #lisp
cosimone has quit [Ping timeout: 265 seconds]
cosimone has joined #lisp
zaquest has quit [Quit: Leaving]
cosimone has quit [Ping timeout: 265 seconds]
SGASAU` has quit [Quit: ERC (IRC client for Emacs 26.3)]
SGASAU has joined #lisp
bitmapper has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 260 seconds]
zaquest has joined #lisp
cosimone has joined #lisp
wxie has quit [Ping timeout: 265 seconds]
corpix has joined #lisp
wxie has joined #lisp
libertyprime has quit [Read error: Connection reset by peer]
libertyprime has joined #lisp
cosimone has quit [Quit: Quit.]
<White_Flame> ntr: because CL is a programmable programming language, no 2 projects really look the same
<White_Flame> there isn't just 1 "style" to be used. CL is multiparadigm, and allows you to create styles
<White_Flame> basic indentation is enforced by emacs/slime, and using kebab-case-names instead of Other_Things are just surface level
<White_Flame> other languages are much more constrained, and thus require specific coding practices not to paint themselves into a corner
<Balooga> For just general good CL code, wouldn't Edi Weitz's projects be worth a look?
<White_Flame> in Lisp, any of the general practices will be fairly shallow
<White_Flame> in the more complex software architecture case, you're really free to do (and to create means of doing) anything
bjorkintosh has joined #lisp
Oladon has quit [Quit: Leaving.]
<ntr> got it, how about from the structure of the proyect point of view? what semi-complex/complex project looks well structured (elegant solution, test coverage, etc)
<ntr> i know it may be a subjective topic but im just looking for a good example to analyze
<ntr> Balooga: will check them out, thanks
jesse1010 has quit [Ping timeout: 260 seconds]
<White_Flame> most modern commercial use isn't open
<White_Flame> and is fairly niche
<White_Flame> but again, creating abstractions for your large project, and refactoring them when things get off, will yield extremely divergent styles
<White_Flame> some will rely on the reader, some will rely on macros, some will rely on runtime dispatch, etc, and all will have different tradeoffs and reasons
<White_Flame> and use combinations of many different things as appropriate
<White_Flame> those 2 last words are the most important thing, and that's more an issue of familiarity
rumbler31 has quit [Remote host closed the connection]
psiperator[m] has joined #lisp
psiperator[m] has left #lisp ["User left"]
space_otter has joined #lisp
catchme has quit [Quit: Connection closed for inactivity]
acolarh has joined #lisp
KingOfCSU has quit [Ping timeout: 265 seconds]
wxie has quit [Ping timeout: 272 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
benjamin1 has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
Bike has quit [Quit: Lost terminal]
wxie has joined #lisp
<beach> Good morning everyone!
<solrize> moning beach
<solrize> do you think of putting lightweight processes into the sicl runtime?
<beach> Threads are essential to SICL, if that is what you mean.
<solrize> i meant more like erlang
<beach> Probably not.
<solrize> ah ok
<solrize> thanks
<beach> I don't know Erlang. How are lightweight processes different from threads?
<solrize> there is no visible memory sharing between them (communication is by message passing, which in some instances can be implemented by shared memory behind the scenes), but you can alternatively think of them as lightweight threads
<solrize> the point though is that they are very cheap, so you can implement high-concurrency servers by launching separate lightweight processes for each connection even with 100,000's of them
<solrize> avoids callbacks and similar async headaches
<beach> I see. Thanks.
<no-defun-allowed> Implementing "lightweight processes" wouldn't be very different to "green threads", except that Erlang has separate heaps, I think.
<beach> Well, I have good news for you then. I plan to make SICL the base for CLOSOS which will have no distinction between user privilege and supervisor privilege, so threads will be incredibly cheap, and communication can be done just as with Common Lisp functions.
<solrize> wow cool
_jrjsmrtn has joined #lisp
<solrize> looking
<no-defun-allowed> I have also proposed that a nursery scaling system similar to that of Erlang would also reduce the "cost" of threads in CLOSOS.
<beach> How would that work?
<no-defun-allowed> When a thread is created, it is given a nursery that is quite small, say, 16KiB, and then it is grown every collection that cannot free enough of the nursery (20% or so) up to the maximum nursery size (which I think was proposed to be 8MiB or so).
<beach> It seems to me like a lot of these inventions exist because of two fundamental problems. One is the overhead of a context switch in a typical "modern" operating system such as Unix. The other is the fact that people insist on using programming languages that have full access to address space of the process.
<beach> no-defun-allowed: Ah, yes, this sounds familiar. You must have talked to me about it in the past.
<no-defun-allowed> Although, I might have misunderstood how the nursery is to be implemented, and the "large" nursery size for many threads that do not use much memory may not be an actual problem.
akoana has joined #lisp
<no-defun-allowed> I mentioned it in #sicl around 01/01/20, and that it was loosely based off https://erlang.org/doc/apps/erts/GarbageCollection.html#sizing-the-heap
<beach> Nursery size may be a problem if there are many threads, since a chunk of memory is taken for each one. And since that memory is touched frequently, there is no hope that it will migrate to secondary memory.
<beach> So, yes, in such situations, it could be a good idea to start with a small nursery and grow it as necessary.
<beach> That should not be a problem.
<beach> In fact, since objects in the nursery are located in the beginning and in the end, it would be enough to start a GC early. The pages in the middle will then be on secondary memory.
<beach> ... or not even mapped.
<fe[nl]ix> beach: Linux on recent x86_64 CPUs has a context switch overhead of ~1 microsecond
<beach> That's great!
<beach> Er, no, that's not so great.
<beach> But maybe it's better than it was.
<beach> I read an interesting article about recent I/O devices based on solid-state memory, and apparently, the time for context switching makes it hard for "modern" operating systems to take advantage of the speed of these devices.
<solrize> you are reinventing the lisp machine ;)
twelvemonkeys has quit [Ping timeout: 265 seconds]
<beach> No, I am trying to do much better.
<beach> The Lisp machine was a single-user machine with not enough security for a modern system.
shka_ has joined #lisp
<solrize> fair enough
twelvemonkeys has joined #lisp
<beach> But yeah, the user experience on Genera was apparently (never used it myself) something extraordinary.
<solrize> erlang has hot upgrade but it's not clear how useful it is... the way phone switches traditionally did it was with a failover processor that they needed anyway. they'd upgrade the software on the backup processor, fail over to it, upgrade the former primary, and fail over again
<solrize> yeah i was hoping that the cadr would be something close to that, since it is available and can run under emulation, but it sounds like it's not as good
bhartrihari has joined #lisp
<beach> I think we can do much better. But it's a lot of work of course.
rumbler31 has joined #lisp
<solrize> yeah
<solrize> i wonder how the old parc smalltalk systems compared
<solrize> i never saw any of those
benjamin1 has quit [Ping timeout: 260 seconds]
<no-defun-allowed> You can use https://lively-web.org/users/bert/Smalltalk-78.html which is an implementation of one old Smalltalk system, or Squeak (or Pharo) which will probably run faster and has many more features, but support for that is very off-topic for #lisp.
rumbler31 has quit [Ping timeout: 240 seconds]
<solrize> no-defun-allowed, i don't mean the smalltalk language which imho is not that interesting, but rather the old parc smalltalk machines like the dorado... the lisp context is how they compared to lisp machines in tooling etc
<beach> solrize: Hardware is not a problem anymore. Any modern processor will be very good as the hardware for a Lisp system.
<no-defun-allowed> solrize: They had a keyboard, mouse, display and bytecode interpreter, which is universal for Smalltalk machines.
<no-defun-allowed> The hardware let it run very fast without sophisticated compilers, sure, but the context is all the same.
<solrize> no-defun-allowed, question is about the development environment (editors, debuggers, etc.) not the language and not the hardware. same thing can be asked about lisp machines and in the case of the cadr, can be answered by running the cadr images under emulation
<solrize> in principle that could be done with the smalltalk stuff too, but i don't know if the code is out there
Oladon has joined #lisp
<solrize> beach yeah again the idea is to compare the user experiences, not to actually run the old stuff except for comparison purposes
<beach> solrize: What is your objective with all this? I am asking because I am convinced that we can do a lot better than what the Lisp machines did. I suggest you help out with our current effort instead.
<no-defun-allowed> You get development environments in both, and the lively-web runtime is almost exactly PARC had in 1978.
<solrize> oh nice
<no-defun-allowed> And then I think that the toolage in Squeak is a superset of the toolage of that image. (Smalltalk is image based, and you get the development environment with the implementation of image-based languages usually.)
<solrize> beach i didn't realize i had an objective ;). i have some interest in trying out a lisp machine (real or emulated) to see how it compares to the stuff we have now... if you're trying to beat the old stuff it seems worthwhile making a side by side comparison. maybe the new thing is better in 17 areas out of 20 and the old stuff is ahead in 3. that means there are 3 things that can use more attention
<beach> I see.
[mark] has joined #lisp
[mark] has quit [Client Quit]
[mark] has joined #lisp
<beach> Compared to "the stuff we have now" (at least the FLOSS stuff), almost anything is better. Hell, GDB in the 1980s was much better than any FLOSS debugger we now have for Common Lisp.
<beach> And the reason we don't have anything better than we do, appears to be the fact that most developers don't seem to appreciate advanced debugging tools.
<beach> The seem happy to use FORMAT and to stare at a backtrace when things go wrong.
<fe[nl]ix> some advanced debugging tools are incompatible with the CL development style
<beach> If you mean traditional debugging tools for other languages, sure.
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
<beach> Hence my ELS2020 paper on "Omnipresent and low-overhead application debugging".
<fe[nl]ix> many experienced developers end up never using advanced debuggers because it's rarely useful for hard bugs, typically race conditions of some kind
<beach> That's true.
<fe[nl]ix> the one exception is a time travel debugger, but that requires the debugger to be external to the debugged program
<beach> But now we are falling into the trap that I discuss in that paper.
<fe[nl]ix> hence no in-image development environment like in CL
_paul0 has joined #lisp
<fe[nl]ix> I should read your paper
<solrize> is it online?
<solrize> ah thx
<beach> ywlcm
shka_ has quit [Ping timeout: 265 seconds]
<fe[nl]ix> a useful debugger for race conditions would be one that does all the things exploit writers do to probe code, widen race windows
paul0 has quit [Ping timeout: 260 seconds]
<fe[nl]ix> e.g. inducing frequent TLB flushes to slow down execution
<beach> The trap is basically "since there are situations in which traditional debuggers are useless, specifically for debugging compilers, garbage collectors, race conditions, etc., then we should give up trying to create an application debugger for all the other situations".
<fe[nl]ix> or maybe running the program under an emulator that you can control
<fe[nl]ix> beach: I guess the only solution is to build it and see if people start using it
<solrize> will you have something like STM? that gets rid of a lot of race issues (software transactional memory)
<solrize> i've also wondered if it's possible to use model checking to statically verify things like parallel garbage collectors
pjb has quit [Ping timeout: 260 seconds]
wxie has quit [Ping timeout: 265 seconds]
SAL9000 has joined #lisp
<beach> fe[nl]ix: Yes, I think you are right.
<beach> fe[nl]ix: I don't think people will use it, given the attitude of most application programmers. I mean, I constantly hear things similar to "Emacs with SLIME is the best development environment in existence, even compared to those of other languages".
<beach> Not that I care much. I know what I want myself, and I am not creating things with the main objective that those things be used by a maximum number of people.
_whitelogger has joined #lisp
shifty has quit [Ping timeout: 258 seconds]
<solrize> i haven't used the sbcl or clisp debuggers if they even have them
<solrize> but emacs lisp has its own debugger that is somewhat usable and sounds better than some of the stuff you described
benjamin1 has joined #lisp
rumbler31 has joined #lisp
pjb has joined #lisp
Lycurgus has joined #lisp
rumbler31 has quit [Ping timeout: 272 seconds]
Oladon has quit [Quit: Leaving.]
dddddd has quit [Ping timeout: 265 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
wxie has joined #lisp
libertyprime has quit [Ping timeout: 240 seconds]
Lycurgus has quit [Remote host closed the connection]
gravicappa has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
Misha_B has joined #lisp
sauvin has joined #lisp
pjb has quit [Remote host closed the connection]
pjb has joined #lisp
narimiran has joined #lisp
benjamin1 has quit [Ping timeout: 260 seconds]
KingOfCSU has joined #lisp
benjamin1 has joined #lisp
wxie has quit [Ping timeout: 264 seconds]
Blukunfando has joined #lisp
rgherdt has joined #lisp
rgherdt has left #lisp [#lisp]
madage has quit [Remote host closed the connection]
toorevitimirp has quit [Ping timeout: 240 seconds]
toorevitimirp has joined #lisp
rumbler31 has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
benjamin1 has quit [Read error: Connection reset by peer]
rumbler31 has quit [Ping timeout: 256 seconds]
madage has joined #lisp
Misha_B has quit [Remote host closed the connection]
malik has quit [Read error: Connection reset by peer]
<lukego> one big idea in debugging that I still don't have my head around - despite it being around for a long time - is the rr style of back-in-time debugging
<easye> "rr style?"
loli has quit [Ping timeout: 264 seconds]
<lukego> https://rr-project.org/ the gdb that can step forwards and also backwards. So you can e.g. query backwards to the last time variable <x> had value <y> from the point where something bad happened.
<lukego> and the whole thing runs with low-overhead on plain native code thanks to some low-level CPU performance counter hacks of the sort that should never work in practice
<easye> rr is very Linux-specific then?
loli has joined #lisp
<lukego> I'm not sure about that but I think it only works reliable on Intel CPUs
<lukego> it's from Mozilla a decade or more ago and the authors have a startup based on it now (can't find it atm)
<easye> rr seems to be using QEMU which is Intel/AMD specific.
<lukego> no QEMU
<easye> Ah "supports QEMU". My hasty reading...
<lukego> it runs native code with low overhead, but it uses CPU performance counters to wake up at regular intervals based on the precise number of instructions retired and that only works well on Intel (not even AMD) - I'm amazed such low-level hackery works anywhere.
shifty has joined #lisp
sdumi has quit [Ping timeout: 260 seconds]
dale has quit [Quit: My computer has gone to sleep]
<lukego> The basic intuition is simple though. If you record all the I/O that a program does then you can "replay" it in a sandbox later. If it tries to e.g. read from disk you just give it the same data and then it will do the same thing. And if you can replay from time T0 to any future time Tn then you can reconstruct any time Tm<n. The rest is optimization e..g so that stepping back one instruction doesn't need to rerun everythi
sdumi has joined #lisp
<lukego> I believe they also got it working on multithreaded applications which also has no business working imho
<White_Flame> yeah, how can you ensure they step the same way?
refpga has quit [Ping timeout: 265 seconds]
<fe[nl]ix> not only it's still around, it was ported to the JVM
<easye> Effectively, rr serves as a wrapping for the conceptual "monad" that surrounds a given execution.
refpga has joined #lisp
<lukego> the interface is GDB though and it would be a lot more fun with a Lisp applcation aware thing
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
<fe[nl]ix> there's lots of very cool development happening on the JVM
<lukego> reaching beach talk slides, I guess it doesn't help with that use case of providing better instrumented debuggable code while you are poking and prodding at it
<lukego> and maybe the whole post-mortem debugging style isn't very lispy
* easye ears prick up. fe[nl]ix: which ones specific?
<fe[nl]ix> project Loom, two new GCs (ZGC and Shenandoah)
<easye> ZGC is interesting, but I can't seem to get it running on an openjdk. Is it something ORCL is keeping closed somehow?
bebop has joined #lisp
<easye> (I think ZGC is a descendent of the jrockit code that ORCL absorbed.
<fe[nl]ix> not sure, I've been reading the papers and wishing that SBCL had something like that
refpga has quit [Ping timeout: 260 seconds]
refpga has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
<ober> project Loom as in PowerLoom?
<fe[nl]ix> the first is Oracle PR :D
random-nick has joined #lisp
<ober> that O is aspirated
<ober> 'Omeric Iliad
<ober> that's pretty cool
sdumi has quit [Ping timeout: 258 seconds]
<ober> SICL new?
<beach> ober: Your question is a bit telegraphic. Can you be more specific?
* ober has never heard of sicl previously
<beach> minion: Please tell ober about SICL.
<minion> ober: 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
<ober> the date on the debugging url is quite recent.
<beach> It is an ELS2020 paper.
<ober> gotcha. sorry very late here, very slow to parse
<ober> ahh ok yeah I see what you mean from the source code. thanks
rumbler31 has joined #lisp
orivej has joined #lisp
rumbler31 has quit [Ping timeout: 256 seconds]
sz0 has joined #lisp
wxie has joined #lisp
pve has joined #lisp
ljavorsk has joined #lisp
hineios3 has joined #lisp
sdumi has joined #lisp
liberliver1 has joined #lisp
hineios has quit [Ping timeout: 256 seconds]
hineios3 is now known as hineios
liberliver has quit [Ping timeout: 258 seconds]
liberliver1 is now known as liberliver
anticrisis has joined #lisp
andrei-n has joined #lisp
madage has quit [Read error: Connection reset by peer]
gxt__ has quit [Write error: Connection reset by peer]
corpix has quit [Write error: Connection reset by peer]
Aurora_v_kosmose has quit [Read error: Connection reset by peer]
cantstanya has quit [Read error: Connection reset by peer]
zooey has quit [Write error: Connection reset by peer]
shifty has quit [Ping timeout: 260 seconds]
sdumi has quit [Read error: Connection reset by peer]
sdumi has joined #lisp
corpix has joined #lisp
Aurora_v_kosmose has joined #lisp
shifty has joined #lisp
gxt__ has joined #lisp
cantstanya has joined #lisp
anticrisis_ has joined #lisp
madage has joined #lisp
amerlyq has joined #lisp
zooey has joined #lisp
anticrisis has quit [Ping timeout: 258 seconds]
KingOfCSU has quit [Ping timeout: 265 seconds]
vap1 has joined #lisp
SGASAU` has joined #lisp
vaporatorius has quit [Ping timeout: 246 seconds]
heisig has joined #lisp
SGASAU has quit [Ping timeout: 256 seconds]
SGASAU` has quit [Read error: Connection reset by peer]
SGASAU` has joined #lisp
scymtym_ has joined #lisp
scymtym_ has quit [Remote host closed the connection]
scymtym_ has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
refpga has quit [Read error: Connection reset by peer]
bhartrihari has left #lisp ["Disconnected: closed"]
refpga has joined #lisp
bhartrihari has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
gaqwas has joined #lisp
anticrisis_ has quit [Quit: Leaving]
SGASAU` has quit [Read error: Connection reset by peer]
SGASAU has joined #lisp
scymtym_ has quit [Remote host closed the connection]
SGASAU` has joined #lisp
scymtym has joined #lisp
SGASAU has quit [Ping timeout: 260 seconds]
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
shifty has quit [Ping timeout: 272 seconds]
shifty has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
zmt01 has joined #lisp
zmt00 has quit [Ping timeout: 260 seconds]
[mark] has quit [Quit: Konversation terminated!]
orivej_ has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej_ has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
KingOfCSU has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
bhartrihari has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
[mark] has joined #lisp
karlosz has quit [Quit: karlosz]
vaporatorius__ has joined #lisp
refpga has quit [Ping timeout: 246 seconds]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
vap1 has quit [Ping timeout: 272 seconds]
KingOfCSU has quit [Ping timeout: 265 seconds]
[mark] has quit [Quit: Konversation terminated!]
toorevitimirp has quit [Quit: Konversation terminated!]
Bourne has joined #lisp
sdumi has quit [Ping timeout: 264 seconds]
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
toorevitimirp has joined #lisp
ayuce has joined #lisp
toorevitimirp has quit [Client Quit]
shangul has joined #lisp
xantoz has quit [Read error: Connection reset by peer]
jesse1010 has joined #lisp
Cymew has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
akoana has left #lisp ["Leaving"]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
karlosz has joined #lisp
pjb has quit [Ping timeout: 260 seconds]
SGASAU` has quit [Quit: ERC (IRC client for Emacs 26.3)]
SGASAU has joined #lisp
karlosz has quit [Client Quit]
gaqwas has quit [Quit: Leaving]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
Bike has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
dddddd has joined #lisp
sdumi has joined #lisp
narimiran has quit [Quit: leaving]
wxie has joined #lisp
toorevitimirp has joined #lisp
libertyprime has joined #lisp
milanj has joined #lisp
pjb has joined #lisp
gaqwas has joined #lisp
vegai has quit [Remote host closed the connection]
ineiros_ has quit [Read error: Connection reset by peer]
toorevitimirp has quit [Ping timeout: 246 seconds]
wxie has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
xantoz has joined #lisp
sdumi has quit [Ping timeout: 264 seconds]
sdumi has joined #lisp
Necktwi has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
scymtym has quit [Ping timeout: 272 seconds]
orivej has quit [Ping timeout: 272 seconds]
SGASAU has quit [Remote host closed the connection]
orivej_ has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
KingOfCSU has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
SGASAU` has joined #lisp
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
Necktwi has joined #lisp
orivej has joined #lisp
scymtym has joined #lisp
_whitelogger has joined #lisp
libertyprime has quit [Ping timeout: 256 seconds]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
pjb has joined #lisp
srji has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
kpoeck has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
Snaffu has quit [Quit: leaving]
wxie has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
whiteline_ has quit [Read error: Connection reset by peer]
jesse1010 has quit [Quit: Leaving]
whiteline has joined #lisp
wsinatra has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
pjb has quit [Ping timeout: 260 seconds]
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
wxie has quit [Ping timeout: 260 seconds]
gko has joined #lisp
_paul0 has quit [Read error: Connection reset by peer]
KingOfCSU has quit [Ping timeout: 240 seconds]
igemnace has quit [Quit: WeeChat 2.8]
FreeBirdLjj has joined #lisp
pjb has joined #lisp
FreeBird_ has joined #lisp
FreeBirdLjj has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
copec has quit [Ping timeout: 265 seconds]
copec has joined #lisp
toorevitimirp has joined #lisp
Lycurgus has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej_ has joined #lisp
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 265 seconds]
X-Scale` is now known as X-Scale
bitmapper has joined #lisp
mas75 has joined #lisp
mas75 has quit [Remote host closed the connection]
KingOfCSU has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
Lycurgus has quit [Remote host closed the connection]
ahungry has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` has joined #lisp
X-Scale` is now known as X-Scale
notzmv has left #lisp ["Using Circe, the loveliest of all IRC clients"]
bhartrihari has joined #lisp
KingOfCSU has quit [Ping timeout: 272 seconds]
FreeBird_ has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 260 seconds]
orivej_ has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
cpt_nemo has quit [Ping timeout: 272 seconds]
bebop has quit [Ping timeout: 265 seconds]
sdumi has quit [Ping timeout: 256 seconds]
kpoeck has quit [Ping timeout: 245 seconds]
sdumi has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
pjb has quit [Ping timeout: 244 seconds]
[mark] has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
rgherdt has joined #lisp
amerlyq has quit [Quit: amerlyq]
toorevitimirp has quit [Remote host closed the connection]
EvW has joined #lisp
toorevitimirp has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
cpt_nemo has joined #lisp
<jackdaniel> some progress with terminal control https://twitter.com/dk_jackdaniel/status/1263839558996758529 ,)
<phoe> animated reader conditionals!
FreeBirdLjj has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
sjl has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
sdumi has quit [Ping timeout: 265 seconds]
sdumi has joined #lisp
<yottabyte> why does this return the empty string and not the string representation of the json? (yason:with-output-to-string* () (yason:encode '(1 2 3)))
<phoe> this still prints to standard output
<yottabyte> yeah, I don't know why that is either
SGASAU` has quit [Quit: ERC (IRC client for Emacs 26.3)]
gko has quit [Ping timeout: 246 seconds]
sdumi has quit [Ping timeout: 256 seconds]
SGASAU has joined #lisp
<phoe> (yason:with-output-to-string* () (yason:encode '(1 2 3) yason::*json-output*))
<phoe> this one works
<phoe> but it uses an internal symbol
bhartrihari has left #lisp ["Disconnected: closed"]
<phoe> oh! it's a feature
<phoe> yottabyte: see https://xh4.github.io/yason/
<phoe> the stream defaults to *standard-output* so it's the intended behavior
lemoinem is now known as Guest14744
Guest14744 has quit [Killed (tolkien.freenode.net (Nickname regained by services))]
lemoinem has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 258 seconds]
<flip214> just do (with-output-to-string (*standard-output) (yason:encode ...))
FreeBirdLjj has joined #lisp
rogersm has joined #lisp
bhartrihari has joined #lisp
jonatack has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
KingOfCSU has joined #lisp
random-nick has joined #lisp
KingRiverLee has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
<yottabyte> flip214: that doesn't appear to work
KingOfCSU has quit [Read error: Connection reset by peer]
sdumi has joined #lisp
<flip214> yottabyte: yeah, I forgot a "*" at *standard-output*
<flip214> but otherwise I'm using that all the time
bhartrihari has left #lisp ["Disconnected: closed"]
pjb has joined #lisp
shifty has joined #lisp
gaqwas has quit [Quit: Leaving]
<yottabyte> I tried (yason:with-output-to-string* (*standard-output*) (yason:encode '(1 2 3))) and it gave me: odd number of elements in keyword/value list: (*STANDARD-OUTPUT*)
bhartrihari has joined #lisp
<phoe> you aren't supposed to put a variable there
dddddd has quit [Ping timeout: 264 seconds]
<flip214> yottabyte: not YASON:with-output-to-string, CL:with-output-to-string
<flip214> (in-package :cl-user)
<yottabyte> ohhhh
<Bike> having a macro basically called with-output-to-string that has some completely different syntax seems kind of confusing.
<phoe> ^
orivej has quit [Ping timeout: 240 seconds]
orivej_ has joined #lisp
gaqwas has joined #lisp
psilotorp has quit [Quit: Connection closed for inactivity]
shangul has quit [Ping timeout: 258 seconds]
Lycurgus has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
SGASAU has quit [Ping timeout: 246 seconds]
bhartrihari has joined #lisp
SGASAU` has joined #lisp
Lycurgus has quit [Remote host closed the connection]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
KingRiverLee has quit [Ping timeout: 260 seconds]
bhartrihari has left #lisp ["Disconnected: closed"]
scymtym_ has joined #lisp
bhartrihari has joined #lisp
KingRiverLee has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
SGASAU` has quit [Quit: ERC (IRC client for Emacs 26.3)]
SGASAU has joined #lisp
rumbler31 has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
scymtym_ has quit [Ping timeout: 260 seconds]
pjb has quit [Ping timeout: 272 seconds]
andrei-n has quit [Quit: Leaving]
andrei-n has joined #lisp
KingOfCSU has joined #lisp
rumbler31 has quit [Ping timeout: 260 seconds]
zfra has joined #lisp
dkeohane has joined #lisp
KingRiverLee has quit [Ping timeout: 272 seconds]
flazh has quit [Quit: flazh]
terpri has joined #lisp
andrei-n has quit [Quit: Leaving]
andrei-n has joined #lisp
andrei-n has quit [Remote host closed the connection]
scymtym has joined #lisp
abel has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
abel has joined #lisp
efm has quit [Ping timeout: 265 seconds]
<gendl> Hi, how should I install sbcl into a self-contained directory, such that I can plop that directory anywhere and ./bin/sbcl will always run from that directory?
<gendl> just tried the sbcl/ directory from Portacle but getting: fatal error encountered in SBCL pid 13416(tid 0xce1cdc0):
<gendl> core was built for runtime "Catalina-brew-2020-04-28-00-21-37" but this is "Nicolass-Mac.local-linus-2020-01-08-10-32-32"
<gendl> i guess it's because i have a stale $SBCL_HOME set somehow
shifty has quit [Ping timeout: 260 seconds]
<gendl> anyway i want to get a bulletproof installation which I can put anywhere. I just need sbcl, not the whole portacle (i already have my own portacle-like setup which predates portacle and i'm too lazy/proud to try to adapt it to portacle..)
andrei--n has joined #lisp
shifty has joined #lisp
shangul has joined #lisp
KingOfCSU has quit [Ping timeout: 272 seconds]
jonatack has joined #lisp
pjb has joined #lisp
KingOfCSU has joined #lisp
jeosol has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
KingOfCSU has quit [Ping timeout: 256 seconds]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
[mark] has quit [Read error: Connection reset by peer]
[mark] has joined #lisp
ljavorsk has quit [Ping timeout: 265 seconds]
<jeosol> Has anyone worked with Gurobi or CPLEX (optimizers for LP/QP/MILP) through CL?
<jeosol> beach: I don't recall if you told me you know some that worked/working with CPLEX?
cosimone has joined #lisp
SGASAU has quit [Ping timeout: 256 seconds]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
Codaraxis has quit [Remote host closed the connection]
Codaraxis has joined #lisp
saravia has joined #lisp
saravia has quit [Client Quit]
FreeBirdLjj has quit [Remote host closed the connection]
pjb has quit [Ping timeout: 260 seconds]
aindilis` has joined #lisp
saravia has joined #lisp
space_otter has quit [Read error: Connection reset by peer]
aindilis has quit [Ping timeout: 258 seconds]
space_otter has joined #lisp
bitmapper has quit [Remote host closed the connection]
andrei--n has quit [Quit: Leaving]
rogersm has quit [Ping timeout: 240 seconds]
andrei-n has joined #lisp
aindilis` has quit [Remote host closed the connection]
dmiserak_ has joined #lisp
space_otter has quit [Remote host closed the connection]
<flip214> gendl: perhaps the easiest way would be to have that sbcl be a shell script, and use LD_LIBRARY_PATH and an explicit call to ld-linux.so with paths derived in the shell script
random-nick has quit [Ping timeout: 260 seconds]
aindilis has joined #lisp
<gendl> flip214: maybe it's just me, but that doesn't sound easy to me. Plus I need this setup for Mac, Linux, Windows - hopefully as similar as possible on all three OSs.
<gendl> it looks like https://github.com/sbcl/sbcl/blob/master/INSTALL#L43 starts out talking about where it finds the sbcl.core and the contribs, but then only actually explains were it looks for the sbcl.core... And that's where I'm stuck now -- I have it finding the core ok through SBCL_HOME, but it can't find the contribs when it tries to do certain `require`s which normally have always been working
<luis> jeosol: I've used CPLEX and CBC via CL.
<jeosol> luis: oh really
<flip214> gendl: look at recent commit messages, there were some changes for finding all that stuff
<jeosol> I checked use CPLEX as they require some university address or something. I guess CBC is non-commercial.
<jeosol> luis: what is your view of both? is the CL library on github or it's private
<ralt> luis: friendly reminder of https://github.com/cffi/cffi/pull/158
<luis> ralt: ACK
<ralt> gendl: sbcl 2.0.4?
<luis> jeosol: CBC is free for any use.
orivej_ has quit [Ping timeout: 265 seconds]
<ralt> gendl: if yes, downgrade to 2.0.3, that should fix it for you.
bitmapper has joined #lisp
<gendl> ralt: yes, that's what just came down with `brew upgrade sbcl`
<gendl> ralt: fix what?
orivej has joined #lisp
<ralt> gendl: there's a bug in 2.0.4, that is going to be fixed in 2.0.5, to find the sbcl.core/SBCL_HOME/contrib stuff.
<gendl> the failure to find contribs based on ${SBCL_HOME} ?
<gendl> downgrading sounds like a pain
<gendl> how long until 2.0.5 should come out?
<luis> jeosol: I wrote a DSL for interacting with CPLEX/CBC but I haven't managed to open-source it yet, I'm afraid
<ralt> next week is the current plan AFAIK
rogersm has joined #lisp
<gendl> ralt: then I think I'll do everything else I need to do first, which will bring me well into next week...
<gendl> then circle back to bringing in sbcl for everything...
lisbeths has joined #lisp
<gendl> as soon as 2.0.5 is released, I'll try to build it myself.
<ralt> you can build existing master
MightyJoe has joined #lisp
<gendl> ralt: ok. should be fixed in there already?
<ralt> it is, yes
<gendl> thx
<ralt> arguably, if you can build yourself, there's no reason you can't build 2.0.3 though ;-)
<gendl> true ;)
lisbeths has quit [Remote host closed the connection]
cyraxjoe has quit [Ping timeout: 246 seconds]
random-nick has joined #lisp
EvW has quit [Ping timeout: 244 seconds]
shifty has quit [Ping timeout: 256 seconds]
<jeosol> luis: thanks for the info. I will take a look at CBC. No libraries, I wanted to see what's out there before I start putting something if I need to. Or try the python interface for a start.
shifty has joined #lisp
<luis> jeosol: you can build CBC with GNU MathProg support. (or AMPL too) That's a nice way of using it. You can then easily generate the data file from Lisp.
shangul has quit [Ping timeout: 265 seconds]
<jeosol> luis: thanks for that
<luis> jeosol: it's way nicer than the programatic interfaces in many ways.
Cymew has quit [Ping timeout: 265 seconds]
gxt__ has quit [Ping timeout: 240 seconds]
SGASAU has joined #lisp
jw4 has quit [Read error: Connection reset by peer]
efm has joined #lisp
<luis> jeosol: the GNU MathProg manual and the AMPL book (co-written by Brian Kernighan of K&R fame) are good reads. "Applications of optimization with Xpress-MP" is a nice language-agnostic resource too.
jw4 has joined #lisp
<jeosol> luis: thx. The xpress document seems like a good review document. Should be be useful
pjb` has joined #lisp
<luis> jeosol: in my experience, CBC is the best performing of the free solvers. God forbid you have to dive into its source code, though. It's a mess.
<luis> Mathematicians and C++ don't mix well.
<jeosol> luis: Oh, that's good to know. I was looking at benchmark slice where they listed a few, and I was wondering if I have to check them out.
karlosz has joined #lisp
<seok> is multiple-value-bind like let for multiple values?
[mark] has quit [Ping timeout: 260 seconds]
[mark] has joined #lisp
<pjb`> seok: yes.
pjb` has quit [Quit: renaming]
<seok> is there an inbuilt macro which uses multiple value bind and let in one form?
<seok> or would I have to put one in another?
pjb` has joined #lisp
pjb` has quit [Remote host closed the connection]
pjb` has joined #lisp
<Bike> there's not a macro like that, no
<Bike> although i'm not totally sure what you have in mind
<Bike> if you mean "like let, but the variable can be a list of variables, and it's bound as by multiple-value-bind" then definitely no
<Bike> there are some libraries that define macros like that, though
pjb` has quit [Remote host closed the connection]
pjb has joined #lisp
<seok> Thank you pjb bike
kmeow has quit [Ping timeout: 244 seconds]
kmeow has joined #lisp
rogersm has quit [Ping timeout: 240 seconds]
milanj has quit [Quit: This computer has gone to sleep]
luis has quit [Excess Flood]
luis has joined #lisp
<luis> If anyone's interested in doing (mixed integer) linear programming in Lisp, I'm curious if you'd be interested in something like this DSL: https://gist.github.com/luismbo/314ded3273666ea38cbc12958bab6418 (and I'd welcome feedback)
* luis eyes pkhuong
MightyJoe has quit [Ping timeout: 256 seconds]
sjl_ has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
EvW has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
Misha_B has joined #lisp
anticrisis has joined #lisp
sauvin has quit [Read error: Connection reset by peer]
kpoeck has joined #lisp
ark has quit [Quit: ZNC 1.7.4 - https://znc.in]
bitmapper has quit [Remote host closed the connection]
shifty has quit [Ping timeout: 272 seconds]
bitmapper has joined #lisp
<beach> jeosol: My (admittedly small) family wrote the documentation for it. :)
flazh has joined #lisp
theseb has quit [Quit: Leaving]
<beach> jeosol: But she is retired now.
bhartrihari has left #lisp ["Disconnected: closed"]
<jeosol> beach: thanks. I remember I had a discussion about this. My memory serves me right.
<jeosol> beach: she must have been a great resource. I am looking that the docs online and luis provided some good info
[mark] has quit [Quit: Konversation terminated!]
flazh has quit [Quit: flazh]
jeosol has quit [Remote host closed the connection]
<ober> beach: thanks! this sicl is much nicer than the sbcl
jeosol has joined #lisp
zfra has quit [Ping timeout: 272 seconds]
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
karlosz has quit [Remote host closed the connection]
karlosz has joined #lisp
bhartrihari has joined #lisp
ayuce has quit [Remote host closed the connection]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
twelvemonkeys has quit [Ping timeout: 260 seconds]
dmiserak_ has quit [Quit: Leaving]
dmiserak has joined #lisp
twelvemonkeys has joined #lisp
dmiserak has quit [Remote host closed the connection]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
dddddd has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
flazh has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
seok has quit [Remote host closed the connection]
orivej has joined #lisp
Krystof has quit [Ping timeout: 260 seconds]
Josh_2 has quit [Ping timeout: 265 seconds]
gaqwas has quit [Remote host closed the connection]
rogersm has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
flazh has quit [Quit: flazh]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
wsinatra has quit [Quit: WeeChat 2.8]
<solrize> beach any desire to support languages other than CL in the closos/sicl world?
Krystof has joined #lisp
<p_l> solrize: they can always compile down to CL or reuse SICL for compiler bits
cosimone has quit [Quit: Quit.]
slyrus_ has quit [Remote host closed the connection]
<solrize> p_l yeah i guess that's possible. does SICL have any coroutine support?
<Bike> it does not.
<solrize> hmm ok
<solrize> thx
<Bike> it could probably be added, but its basic focus is on implementing CL.
<Bike> they could*
<solrize> fair enough, CL is a decent start
rogersm has quit [Remote host closed the connection]
seok has joined #lisp
<solrize> how many people work on SICL? it is quite a lot of code
flazh has joined #lisp
<seok> (intern "string") returns |string|
<Bike> mostly beach. some by me. some by karlosz
<phoe> seok: yes
<seok> can i make it return string (symbol)?
<phoe> what do you mean, string (symbol)?
<phoe> INTERN returns a symbol
<seok> phoe you are really fast
<seok> without ||
<phoe> you might want (intern "STRING")
<solrize> you want symbol-name ?
<Bike> oh yeah, and marco heisig has been doing things
<solrize> nice
<phoe> you want to intern uppercase strings, most of the time
<seok> selrize opposite of symbol-name
<seok> phoe ah!
<solrize> oh just getting rid of those | |
<seok> Yes
<phoe> these || are actually escape characters
<solrize> why does it use those for downcased symbols but not upcased?
<phoe> solrize: the Lisp reader upcases everything by default
<solrize> ah i see
<solrize> 'foo => FOO
<phoe> so (symbol-name 'foo) = "FOO"
<solrize> yep
<phoe> but (symbol-name '|foo|) = "foo"
<seok> Indeed
<solrize> yeah i get it
<seok> wow sicl is huge
<solrize> clojure looks interesting except for the damn JVM... it would be cool if sicl could support some of its features like STM
<seok> People should be getting paid to work on this
<solrize> that too
<_death> luis: I thought about writing an interface similar to pulp.. the two interfaces in cl-glpk aren't so great
gaqwas has joined #lisp
dkeohane has left #lisp ["WeeChat 2.7.1"]
gaqwas has quit [Ping timeout: 246 seconds]
<ralt> luis: I fixed this one too, it was dumb https://github.com/cffi/cffi/pull/157
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
vaporatorius__ has quit [Quit: Leaving]
vaporatorius has joined #lisp
snits has quit [Ping timeout: 256 seconds]
efm has quit [Ping timeout: 260 seconds]
nullman has quit [Ping timeout: 260 seconds]
<bitmapper> hmm
<bitmapper> is it possible to get multiple values from read?
gaqwas has joined #lisp
<phoe> bitmapper: what do you mean, multiple values
<phoe> CL:READ reads one object from the stream and returns it
<bitmapper> phoe: i want to read in something like 5 132 5 324 634 and get a list that contains it
<bitmapper> phoe: ah
<bitmapper> i misunderstood what was happening
<phoe> bitmapper: (loop for thing = (read stream nil stream) until (eq thing stream) collect thing)
<bitmapper> it's from standard input
<bitmapper> doesn't that depend on eof
<phoe> standard input will hang
<bitmapper> yeah i know
<phoe> how many numbers do you want to read?
<phoe> and why don't you just read (1 2 3 4 5 ...) instead of separate numbers?
<bitmapper> phoe: thems the rules
<bitmapper> phoe: it's a variable amount of numbers
<phoe> bitmapper: oh, are you reading from a file?
<bitmapper> no
<bitmapper> i found out the google kickstart competition allows you to write common lisp
<phoe> I am confused now; if the standard input is not interactive, it will finally give you an EOF
<phoe> like, it won't hang
<bitmapper> phoe: it's interactive.
<bitmapper> sorta
<bitmapper> i need to read an input, do something, read another input, do something
<bitmapper> before eof
<phoe> so you *do* get an EOF
<bitmapper> oh yea
<bitmapper> good point
<phoe> what's the problem then
<bitmapper> nothing
<phoe> if your puzzle input is structured properly, then you'll get a number of how many numbers you are supposed to read
<phoe> like, 3 40 50 60 where 3 means "read 3 numbers from stdin"
<phoe> so you can just do (loop repeat (read) collect (read))
<bitmapper> hahaha
<bitmapper> good point
<bitmapper> i never thought about that
<MichaelRaskin> Well, I would expect that it is better to read input piece by piece and handle them separately
<MichaelRaskin> If only to release the memory in case of a huge input
msk has joined #lisp
wooden has quit [Read error: Connection reset by peer]
karayan has quit [Remote host closed the connection]
karayan has joined #lisp
Josh_2 has joined #lisp
ahungry has quit [Read error: Connection reset by peer]
|Pirx| has joined #lisp
<luis> ralt: slowly, but surely, we're getting there!
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
<ralt> luis: another question for you: I want to change the c-file to be loaded a grovel-wrapper files. Well, rather, I want them to go away when dumping, too. How would I best approach that? I did something by adding a new argument to LOAD-FOREIGN-LIBRARY (because that's what the C-FILE asdf extension is using), but I'm pretty sure you don't want to change the interface. And :grovel-wrapper is probably not appropriate for a C-FILE.
andrei-n has quit [Quit: Leaving]
<ralt> (I added the sqlite3.c file in my project, loaded it as a `(:c-file "sqlite3")`component, and it works perfectly. The question is how to do that in CFFI.)
<jmercouris> how can I best automate the following? (in-package :abc)(in-package :cde)(defun xyz () ...)(in-package :abc)
<jmercouris> as you can see the function xyz is defined within the cde package
rumbler31 has joined #lisp
<jmercouris> I thought about making a macro to expnd and have some in-package declarations, my problem is that I don't know how to make the macro output a (in-package :abc) at the end
<ralt> jmercouris: (let ((*package* (find-package "ABC"))) (defun xyz ()))
<phoe> ralt: nope
<phoe> that won't work
<jmercouris> that doesn't work
<jmercouris> I've tried that in the past
<ralt> damn
<phoe> the symbols are read before the binding is made
<phoe> jmercouris: (defun cde:xyz ...)
<jmercouris> it should totally work that way though :-D
<phoe> jmercouris: no, it doesn't
<jmercouris> phoe: that's a good point, but I wasn't clear
<phoe> the symbols are read before LET has a chance to rebind the package
<jmercouris> I want to be able to use stuff from cde in xyz without having to prefix them like cde:a cde:b
<jmercouris> I'm saying it should work that way as a joke
<phoe> jmercouris: this sounds like USE-PACKAGE
<phoe> oh, wait
<phoe> I misread
<ralt> phoe: no, he means internal symbols of
<ralt> nvm me :)
<jmercouris> here's my use case
<jmercouris> I have inlined parenscript in my code
<jmercouris> but I don't like having to write (ps:for
<jmercouris> and ps:@ etc within the body of my parenscript
<jmercouris> here is the macro: http://dpaste.com/041XPMT
<jmercouris> here is example usage: http://dpaste.com/0HDNQ7S
<ralt> that... does sound like you want USE-PACKAGE, or ps' equivalent
<jmercouris> I do not want to use ps
<jmercouris> it shadows many things
<jmercouris> for example
<jmercouris> LET
<jmercouris> with PS:LET
<ralt> I am confused
<jmercouris> maybe I am confused
<jmercouris> but if I have a package where I :use PS, do i not import all of its symbols?
<ralt> ah, no, I get it
<jmercouris> do I have to use a reader macro or something?
<jmercouris> there MUST be a way to do this
<ralt> PS adds a custom USE-PACKAGE, but only for use with COMPILE-FILE or COMPILE-STREAM
<ralt> i.e. when you write all your PS in a separate file
<jmercouris> yes, but I am inlining it
<jmercouris> :'(
<jmercouris> this has been bothering me for like a year now
karlosz has quit [Quit: karlosz]
<ralt> would a simple (:import-from :ps #:@ #:for #:etc) be enough maybe?
<jmercouris> I guess I could expand the macro to accept an optional current package and assume the package is :next, but I do not like that
<jmercouris> ralt: unfortunately no, because I want to be able to use let, defun, etc
<jmercouris> phoe: ideas?
karlosz has joined #lisp
<ralt> ah, PS:LET etc?
<jmercouris> correct
<jmercouris> in-package: The variable *package* is assigned. If the in-package form is a top level form, this assignment also occurs at compile time.
<pve> jmercouris: define an abbrev that expands into those use-package forms with a defun between them, and places your cursor at the defun
<pve> trying to macro your way out of this will drive you mad
<ralt> jmercouris: I would encourage you to write your PS code in a separate file. Despite the closeness of the syntax, IME, PS is a very separate environment. Putting them together doesn't make a ton of sense imho.
<jmercouris> :'(
<jmercouris> you might be right
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
rumbler31 has quit [Ping timeout: 256 seconds]
saravia has quit [Ping timeout: 240 seconds]
MerlinTheWizard has joined #lisp
rumbler31 has joined #lisp
akoana has joined #lisp
saravia has joined #lisp
nullheroes has quit [Quit: WeeChat 2.8]
<jmercouris> SURELY there MUST be a way to do this
pjb has quit [Ping timeout: 260 seconds]
<jmercouris> I refuse to believe that this problem is unsolvable
nullheroes has joined #lisp
rumbler3_ has joined #lisp
rumbler__ has joined #lisp
<Bike> if you want to mess with the reader you'll need a reader macro, basically
|Pirx| has quit [Remote host closed the connection]
<MerlinTheWizard> Hi all. I'm writing a palindrome program for SPOJ, and I'm running into an issue with "control stack exhausted" after I do slime-compile-and-load-file and try to test the function lrbelt. I'm new to common lisp and have no idea why this is happening. Am I doing something wrong? Here's the program (main block commented to test whether that might be the problem): https://pastebin.com/qCkSsPTb
pve has quit [Quit: leaving]
rumbler31 has quit [Ping timeout: 260 seconds]
abel has left #lisp [#lisp]
<Bike> antibelt calls itself recursively and there's no base case that i can see
rumbler3_ has quit [Ping timeout: 256 seconds]
<MerlinTheWizard> Bike, good call. Thanks.
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
<Bike> this palinfun macro may hide that kind of problem from you
<MerlinTheWizard> Bike, yes. I'm new to macros as well. I will have to be careful and take this sort of issue into account.
rumbler__ has quit [Ping timeout: 260 seconds]
SGASAU` has joined #lisp
orivej has quit [Read error: Connection reset by peer]
orivej has joined #lisp
kpoeck has quit [Remote host closed the connection]
SGASAU has quit [Ping timeout: 272 seconds]
frgo has quit [Read error: Connection reset by peer]
frgo has joined #lisp
snits has joined #lisp
saravia has quit [Remote host closed the connection]
snits has quit [Read error: Connection reset by peer]
orivej has quit [Quit: No Ping reply in 180 seconds.]
saravia has joined #lisp
orivej has joined #lisp
SGASAU` has quit [Remote host closed the connection]
rumbler31 has joined #lisp
SGASAU` has joined #lisp
snits has joined #lisp
<ralt> luis and fe[nl]ix this is what I want to achieve, what would be a better way to do so? https://gist.github.com/ralt/3288f886c5a2baf7c7160c78af02aef2
<ralt> the last change is the important one, because it means the C files are now part of the condition to close the foreign libraries when dumping.
pjb has joined #lisp
<ralt> the rest is what allows me to do so, but I don't think that's the way to do this.
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
marusich has quit [Ping timeout: 272 seconds]
voidlily has quit [Ping timeout: 272 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
orivej has joined #lisp
marusich has joined #lisp
voidlily has joined #lisp
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
<luis> ralt: does Stelian's canary option for define-foreign-library help?
<ralt> luis: I'm unaware of what that is, do you have a link?
gravicappa has quit [Ping timeout: 256 seconds]
<ralt> alternatively, what about a CLOSE-ON-DUMP property on foreign libraries?
<ralt> oooh nice
<luis> ralt: that's actually something everyone does some way or another, I think. We should make it easier. Probably the default even.
<ralt> let me see that
<ralt> luis: ish, no? for typical system libraries, you don't want to close them, or they won't be loaded at restore time? unless I'm missing something
<ralt> hm, that's annoying, cflags in `(:c-file "foo" :cflags "...")` are ignored :/
<luis> ralt: you then want to load them explicitly at start, because Lisps typically will simply repeat whatever load-foreign
rgherdt has quit [Quit: Leaving]
<luis> whatever load-foreign-library call succeeded, whereas define-foreign-library usually lists lots of alternatives
<ralt> luis: wouldn't that break a lot of code that simply uses define-foreign-library to change the default behavior?
<luis> ralt: the idea would be to both register close at dump and reopen at start
bhartrihari has left #lisp ["Disconnected: closed"]
<luis> ralt: I have to leave, let's continue the discussion in cffi-devel or pull request
<ralt> kk
SGASAU` has quit [Remote host closed the connection]
snits has quit [Ping timeout: 258 seconds]
Lycurgus has joined #lisp
heisig has quit [Quit: Leaving]
snits has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
pjb has quit [Ping timeout: 272 seconds]
orivej has joined #lisp
MerlinTheWizard has quit [Ping timeout: 260 seconds]
bhartrihari has joined #lisp
MerlinTheWizard has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
rumbler31 has quit [Remote host closed the connection]
snits has quit [Ping timeout: 260 seconds]
sjl_ has quit [Ping timeout: 265 seconds]
snits has joined #lisp
snits has quit [Read error: Connection reset by peer]
pjb has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
terpri_ has joined #lisp
terpri_ has quit [Remote host closed the connection]
terpri_ has joined #lisp
z147 has joined #lisp
terpri has quit [Ping timeout: 260 seconds]
<Josh_2> am I gonna run into any problems using https://github.com/K1D77A/arithmetic-operators-as-words/blob/master/arithmetic-operators-as-words.lisp these instead of the < > <= >= directly?
Lycurgus has quit [Quit: Exeunt]
<aeth> that's disappointing. No plus, minus, etc.?
Bourne has quit [Ping timeout: 265 seconds]
<White_Flame> gt, lt, etc was also common in the past
<Bike> they're macros rather than functions, so you can't pass thme to other functions
theseb has joined #lisp
<White_Flame> you could declare them inline, or you could use symbol macros instead
<White_Flame> (or in addition)
<Josh_2> hmm
<aeth> yeah, you'd also need add, subtract, sub, etc., in addition to plus/minus.
<Josh_2> good point Bike
<Josh_2> aeth: well I guess I could add those as well :P
<aeth> The appeal of natural language is having multiple aliases :-p
<Josh_2> How do I pass a rest arg to a function that uses a rest (defun greater-than (number &rest more-numbers) (> number more-numbers)) ?
<Bike> apply.
<Josh_2> ah
<aeth> If it's inline, SBCL will optimize it away, iirc. Other implementations might not.
<aeth> I thought inline has to be done as (declaim (inline foo))
<Josh_2> oops
<Josh_2> hmm
<Josh_2> idk
<aeth> I think (declare (inline foo)) would only inline recursive calls? It's not an error. That's weird.
<Josh_2> sbcl complains when I use declaim instead of declare
<Josh_2> oh maybe it is supposed to be outside the function definition
<aeth> yeah
<Josh_2> Yep that worked
<aeth> Josh_2: I think generally, the style is to put the declaim right above the defun
z147 has quit [Ping timeout: 240 seconds]
<Josh_2> hnnng
<Josh_2> alright
<aeth> you can also write a macro to automate it
<aeth> since it's just `(progn (declaim (inline ,name)) (defun ,name ...))
<Josh_2> Yes
<Josh_2> I thought about doing that
<aeth> (a PROGN keeps it at a top level, otherwise macros like that would be impossible)
<Josh_2> Then I decided I'm not gonna bother as I was already halfway done
igemnace has quit [Remote host closed the connection]
terpri_ has quit [Remote host closed the connection]
terpri_ has joined #lisp
theseb has quit [Quit: Leaving]
random-nick has quit [Ping timeout: 246 seconds]
<Josh_2> hmm
<Josh_2> Why do I get symbol conflicts when what I attempt to import are functions?