phoe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
dpg has joined #lisp
stacksmith has joined #lisp
<stacksmith> Good morning
<oni-on-ion> hello
libertyprime has joined #lisp
<stacksmith> So I am curious... what do you guys do about classes, structs, and things like cffi foreign cstructs whose symbols are in a different package. I am annoyed about prefixing slotnames, and when not careful running into issues when slotnames happen to coincide with imported symbols from unrelated packages that were visible at the time structs were defined...
<dlowe> I can think of three things. One is to use the package so that the exported symbols are imported into your own package.
dpg has left #lisp ["Leaving"]
<dlowe> The second is to use local-package-nicknames and make the nickname short
<stacksmith> I use existing libraries like CL-CFFI-GTK, and given gobs of structures, exporting all symbols automatically results in many conflicts...
<stacksmith> What do you think of macros like with-slots that rebind in *package*?
<pjb> Then don't export them automatically.
<stacksmith> pjb: I know, but given the large number of structures and slots _I_ was trying to import them automatically.
<dlowe> The third is to write code in the offending package and then you won't have to prefix anything
<dlowe> I guess the fourth is to import each individual symbol you use by hand
h11 has quit [Quit: The Lounge - https://thelounge.chat]
<stacksmith> dlowe: I have many tools to mine symbols in these...
<dlowe> I'm not sure what sort of DWIM magic you want
<stacksmith> It's just that they often wind up conflicting...
h11 has joined #lisp
<stacksmith> dlowe: I am trying to figure out if a locally-rebinding with-slots macro makes sense or maybe I am missing something.
<dlowe> it would rebind at runtime, which is perhaps not what you mean
<stacksmith> At expansion-time - it can check *package* against the native package of the struct and expand to code with proper symbol-macrolets...
<stacksmith> The injected names are always package-local, while slot-names are prefixed with the proper package internally.
Kundry_Wag has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
Kundry_Wag has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
ebrasca has quit [Remote host closed the connection]
szmer has quit [Ping timeout: 246 seconds]
<stacksmith> pass3141
<stacksmith> passout
Kundry_Wag has joined #lisp
ym555_ is now known as ym555
<karlosz_> better change your password
Kundry_Wag has quit [Ping timeout: 248 seconds]
semz has quit [Ping timeout: 250 seconds]
<stacksmith> heh
t58 has quit [Quit: Night]
Lord_of_Life has quit [Ping timeout: 258 seconds]
Lord_of_Life has joined #lisp
jcowan has left #lisp [#lisp]
stacksmith has quit [Ping timeout: 248 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
Kundry_Wag has joined #lisp
stepnem_ has joined #lisp
stepnem has quit [Ping timeout: 248 seconds]
stepnem_ is now known as stepnem
Kundry_Wag has quit [Ping timeout: 272 seconds]
ym555_ has joined #lisp
ym555 has quit [Ping timeout: 245 seconds]
FreeBirdLjj has joined #lisp
VTToonses has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Ping timeout: 245 seconds]
keep_learning_M has joined #lisp
semz has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
stacksmith has joined #lisp
stacksmith has quit [Client Quit]
stacksmith has joined #lisp
oni-on-ion has joined #lisp
sauvin has joined #lisp
libertyprime has quit [Ping timeout: 268 seconds]
libertyprime has joined #lisp
dddddd has quit [Remote host closed the connection]
wooden___ has joined #lisp
<aeth> stacksmith: I use a locally rebinding with-foo-accessors macro to deal with that, including automatically appending a prefix, which is especially useful for struct accessors
Arcaelyx has joined #lisp
<aeth> so define-accessor-macro creates a with-foo-accessors...
<stacksmith> aeth: I just wrote one, but would love to take a look at yours! thanks
<aeth> with-slots would be essentially the same principle
<aeth> (I just don't use with-slots)
<aeth> I'd say the disadvantage of my approach is that it could violate package privacy.
<aeth> I suppose there could be ways to define a whitelist of symbols, although that won't stop someone from using define-accessor-macro on someone else's package.
<stacksmith> I wrote a macro that makes a cstruct-specific macro, like with-point-slots, and when expanded, binds package local symbols with same names as slot names... cffi with-foreign-slots is really limited, so this really helps. You don't even need accessors as there is no runtime overhead for the environment macro. Unless you need real functions to apply or something.
<aeth> ah, right, cstructs, you'd need slots instead of accessors there, and it would use a different with-foo macro
<stacksmith> (with-point-slots (mypoint) (print x))
<aeth> I could probably take that define-accessor-macro macro one level more meta and have a define-define-accessor-or-slot-macro
<aeth> then define-define-accessor-or-slot-macro could define define-accessor-macro or define-cstruct-slot-macro
<aeth> I might do something like that if I do my own SDL wrapper
<stacksmith> I got rid of accessor functions - to avoid exposing gobs of functions.
<aeth> Well, I use define-accessor-macro to avoid exporting tons of functions. You use one with-foo-accessors macro instead, and it can turn a dozen exports into one
<stacksmith> right.
<aeth> technically, I should have an optional whitelist for when the accessors aren't prefixed, to preserve package privacy (if they are prefixed, then any attempt to access bar will access prefix-bar, not bar)
torbo has joined #lisp
<aeth> then it would still require listing things, but it wouldn't pollute the export space
<stacksmith> I also fixed with-foreign-slots to do the right thing and allow arbitrarily-named local bindings. Also, to return 2 values for pointer access - the pointer and the cffi type.
<stacksmith> Now I just have to clean it up, and get rid of a hundred failed attempts at this...
<aeth> at runtime?
<stacksmith> aeth: what are you referring to?
<aeth> the type
<stacksmith> eh. Let me see what I did there.
rsawrecht has joined #lisp
<stacksmith> Well, for the general-purpose with-foreign-slots, the macro binds the symbol with a symbol-macro that expands to (foreign-slot-pointer ...), which has a compiler-macro and should compile efficiently when possible. I added another for (foreign-slot-type ...) which should work similarly...
<stacksmith> symbol-macrolet, of course...
igemnace has quit [Quit: WeeChat 2.5]
<stacksmith> Although the type is known at expansion time, so I should really push it up...
ym555_ is now known as ym555
_whitelogger has joined #lisp
karlosz_ has quit [Quit: karlosz_]
karlosz_ has joined #lisp
alexanderbarbosa has joined #lisp
alca has quit [Quit: bye!]
alca has joined #lisp
<beach> Good morning everyone!
karlosz_ has quit [Quit: karlosz_]
<stacksmith> Good morning, beach
rsawrecht has quit [Ping timeout: 248 seconds]
<PuercoPop> beach: Good morning
Bike has quit [Quit: Lost terminal]
torbo has quit [Remote host closed the connection]
<PuercoPop> I have a question for you given that you've given some thought about how a LispOS could look like. How do you envision different programs to spawn? So for example, I want to call a function with the return value of a menu, w/o taking over the main loop of the Window Manager. Do you spawn the menu in a different thread?
Lycurgus has joined #lisp
<beach> I suppose if you don't want to use the same interaction loop as the one of your REPL, you would have to create a thread.
wxie has joined #lisp
<beach> I don't think this issue is specific to CLOSOS (the LispOS I am planning). It would be an issue in any operating system that has some user interaction. No?
<LdBeth> I believe it’s a general issue, and either reuse the current thread or start a new one is reasonably
<LdBeth> Btw, good afternoon
<beach> Hello LdBeth.
<no-defun-allowed> Hey LdBeth
<PuercoPop> beach: yeah, it is not specific, it is something that in StumpWM f/e. Where catch/throw is used to communicate the 'sub-process'.
nanoz has joined #lisp
<stacksmith> aeth: I think there is a better optimization, actually. Inside the with-foreign-slots scope, the pointer to the foreign structure is bound at the beginning and cannot change. Therefore pointers to slots are constant as well, and do not need to be calculated at runtime.
dariken has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 245 seconds]
CloseToZero has joined #lisp
keep_learning_M has quit [Quit: This computer has gone to sleep]
v88m has quit [Ping timeout: 245 seconds]
orivej has joined #lisp
pankajgodbole has joined #lisp
rippa has joined #lisp
donotturnoff has joined #lisp
stacksmith has quit [Ping timeout: 252 seconds]
keep_learning_M has joined #lisp
orivej has quit [Read error: Connection reset by peer]
orivej has joined #lisp
Necktwi has joined #lisp
Necktwi has quit [Client Quit]
Necktwi has joined #lisp
Nikotiini has quit [Ping timeout: 246 seconds]
nanoz has quit [Quit: Leaving]
vlatkoB has joined #lisp
_whitelogger has joined #lisp
kenu has joined #lisp
<kenu> hi
<kenu> how do I convert flexi-input-stream to string?
igemnace has joined #lisp
_whitelogger has joined #lisp
wigust- has joined #lisp
wigust has quit [Ping timeout: 248 seconds]
donotturnoff has quit [Ping timeout: 245 seconds]
Nikotiini has joined #lisp
donotturnoff has joined #lisp
shka_ has joined #lisp
cosimone has joined #lisp
cosimone has quit [Client Quit]
<LdBeth> kenu: you run read-line or read-sequence on it, as if it’s a Common Lisp input-stream
wxie has quit [Ping timeout: 250 seconds]
donotturnoff has quit [Remote host closed the connection]
Folkol has quit [Ping timeout: 258 seconds]
akoana has left #lisp ["Leaving"]
<kenu> but how od I know the length of it?
CloseToZero has quit [Ping timeout: 252 seconds]
CloseToZero has joined #lisp
<jackdaniel> you can't, stream may be a pipe from another process which produces infinetely a stream of "a"'s
<LdBeth> With read-line, you don’t have to, you just stop at eof. With read-sequence, you may detect trailing null characters
<jackdaniel> that could be true if you could assume that you have infinite amount of memory, but in practice you can't, so you have to control how much your buffer grows (mind the made-up example with infinite stream of #\a characters)
cosimone has joined #lisp
<jackdaniel> kenu: alexandria has a function to simplify reading from stream in chunks (you may even specify maximum size to be read)
<jackdaniel> alexandria:read-stream-content-into-string
Folkol has joined #lisp
<kenu> @jackdaniel: thanks!!!
cyberlard has joined #lisp
dale has quit [Quit: dale]
v88m has joined #lisp
libre-man has quit [Ping timeout: 245 seconds]
_whitelogger has joined #lisp
libre-man has joined #lisp
Lycurgus has quit [Quit: Exeunt]
datajerk has quit [Ping timeout: 244 seconds]
datajerk_ has joined #lisp
Folkol has quit [Ping timeout: 248 seconds]
Folkol has joined #lisp
lavaflow has quit [Ping timeout: 244 seconds]
orivej has quit [Ping timeout: 248 seconds]
zotan has quit [Ping timeout: 252 seconds]
zotan has joined #lisp
xkapastel has joined #lisp
pankajgodbole has quit [Ping timeout: 245 seconds]
atgreen has quit [Remote host closed the connection]
atgreen has joined #lisp
Folkol_ has joined #lisp
dddddd has joined #lisp
Folkol has quit [Read error: Connection reset by peer]
kajo has quit [Ping timeout: 252 seconds]
saitama has joined #lisp
Folkol_ has quit [Read error: Connection reset by peer]
Folkol has joined #lisp
Folkol_ has joined #lisp
luis has joined #lisp
random-nick has joined #lisp
Folkol has quit [Ping timeout: 248 seconds]
szmer has joined #lisp
random-nick has quit [Ping timeout: 245 seconds]
Folkol has joined #lisp
Folkol_ has quit [Read error: Connection reset by peer]
SaganMan has joined #lisp
SaganMan has quit [Ping timeout: 268 seconds]
orivej has joined #lisp
random-nick has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
void_pointer has joined #lisp
wxie has joined #lisp
wxie has quit [Read error: Connection reset by peer]
wxie has joined #lisp
saitama has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 244 seconds]
orivej has joined #lisp
wxie has quit [Quit: wxie]
oni-on-ion has quit [Remote host closed the connection]
cosimone has joined #lisp
atgreen has quit [Ping timeout: 276 seconds]
Necktwi has quit [Read error: Connection reset by peer]
Necktwi has joined #lisp
Inline has quit [Ping timeout: 252 seconds]
kenu has quit [Read error: Connection reset by peer]
dariken has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
Lord_of_Life_ has joined #lisp
Inline has joined #lisp
SlashLife has quit [Ping timeout: 268 seconds]
cosimone has quit [Quit: WeeChat 2.4]
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life_ is now known as Lord_of_Life
cosimone has joined #lisp
cosimone has quit [Client Quit]
Bike has joined #lisp
atgreen has joined #lisp
donotturnoff has joined #lisp
void_pointer has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
stepnem has quit [Quit: ZNC - http://znc.sourceforge.net]
nowhere_man has quit [Ping timeout: 252 seconds]
stepnem has joined #lisp
nowhereman has joined #lisp
phoe has quit [Ping timeout: 258 seconds]
phoe has joined #lisp
varjag has joined #lisp
phoe has quit [Ping timeout: 276 seconds]
phoe has joined #lisp
<carmack> Hi guys! What is good for web scrapping in clisp?
CloseToZero has quit [Ping timeout: 268 seconds]
<loke> carmack: Look into closure-html. It's alibrary that parses HTML into a DOM-tree
t58 has joined #lisp
<semz> carmack: can second closure-html, it's neat. there's also https://shinmera.github.io/plump/ and the linked related libraries, but i haven't tried those yet.
<semz> i'd figure that lQuery would be more familiar territory to someone used to web scraping in other languages
<carmack> semz: well... i work with json-page only :)
stacksmith has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
<semz> carmack: json-page as in everything you scrape returns json?
<carmack> semz: return only json
<semz> that simplifies things then, might want to look into drakma and cl-json
<carmack> Ok, thank you
nanoz has joined #lisp
donotturnoff has quit [Ping timeout: 245 seconds]
McParen has joined #lisp
sigjuice has quit [Quit: ZNC - http://znc.in]
phoe has quit [Ping timeout: 252 seconds]
phoe has joined #lisp
sigjuice has joined #lisp
Arcaelyx has quit [Read error: Connection reset by peer]
Bike has quit [Quit: Lost terminal]
slyrus__ has joined #lisp
clothespin has joined #lisp
slyrus_ has quit [Ping timeout: 244 seconds]
<random-nick> is there a CL implementation that runs on .NET?
bendersteed has joined #lisp
<clothespin> I mentioned hierarchical packages a while back and someone pointed me to a package system which maybe no hierarchical, has nice features. Does anybody know what that system might be?
sjl has joined #lisp
<jackdaniel> clothespin: do you think about package local nicknames?
<clothespin> sounds familiar
<jackdaniel> random-nick: I think that dmiles did work on something in this spirit
khisanth_ has quit [Ping timeout: 248 seconds]
<jackdaniel> also there is a library randezvous which allows to interoperate between CL and .NET runtime
Kundry_Wag has joined #lisp
varjag has quit [Ping timeout: 245 seconds]
Arcaelyx has joined #lisp
Arcaelyx has quit [Read error: Connection reset by peer]
random-nick has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Ping timeout: 248 seconds]
Arcaelyx has joined #lisp
Arcaelyx has quit [Read error: Connection reset by peer]
khisanth_ has joined #lisp
Arcaelyx_ has joined #lisp
Arcaelyx_ has quit [Read error: Connection reset by peer]
cosimone has joined #lisp
Arcaelyx_ has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
torbo has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 272 seconds]
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
aeth has quit [Ping timeout: 248 seconds]
FreeBirdLjj has joined #lisp
bendersteed has quit [Ping timeout: 245 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
random-nick has joined #lisp
FreeBirdLjj has quit [Ping timeout: 258 seconds]
lavaflow has joined #lisp
keep_learning_M has quit [Quit: This computer has gone to sleep]
bendersteed has joined #lisp
aeth has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
cosimone has joined #lisp
torbo has quit [Remote host closed the connection]
<semz> are there good libraries to deal with SOCKS proxies?
Volt_ has joined #lisp
moei has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
dacoda has joined #lisp
lnostdal has joined #lisp
bendersteed has quit [Ping timeout: 245 seconds]
dacoda has quit [Remote host closed the connection]
szmer has quit [Ping timeout: 268 seconds]
varjag has joined #lisp
stepnem has quit [Ping timeout: 248 seconds]
cosimone has quit [Quit: WeeChat 2.4]
CrazyEddy has quit [Ping timeout: 248 seconds]
ebrasca has joined #lisp
ym555_ has joined #lisp
ym555 has quit [Ping timeout: 245 seconds]
stepnem has joined #lisp
nullman has quit [Ping timeout: 248 seconds]
vlatkoB has quit [Remote host closed the connection]
dacoda has joined #lisp
clothespin has quit [Ping timeout: 252 seconds]
stepnem has quit [Ping timeout: 244 seconds]
stepnem has joined #lisp
phoe has quit [Ping timeout: 264 seconds]
phoe has joined #lisp
rumbler3_ has quit [Ping timeout: 252 seconds]
nanoz has quit [Ping timeout: 246 seconds]
phoe has quit [Ping timeout: 250 seconds]
phoe has joined #lisp
donotturnoff has joined #lisp
dacoda has quit [Ping timeout: 272 seconds]
rumbler31 has joined #lisp
Folkol_ has joined #lisp
DGASAU has joined #lisp
Folkol has quit [Ping timeout: 245 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
cosimone has joined #lisp
cosimone has quit [Client Quit]
ym555_ has quit [Ping timeout: 258 seconds]
ym555 has joined #lisp
lucasb has joined #lisp
szmer has joined #lisp
<drmeister> How do folks feel about POIU and ASDF? What's the current thinking about parallel building of ASDF systems?
<drmeister> POIU is broken with respect to the current version of ASDF.
<drmeister> What is the path forward to get parallel building of ASDF systems?
<drmeister> I ask because Clasp's compiler is slow and serial compilation of lots of ASDF systems is very, very slow and painful. Especially when I have all these cores on my machine just sitting there.
phoe has quit [Ping timeout: 250 seconds]
phoe has joined #lisp
cosimone has joined #lisp
ym555 has quit [Quit: leaving...]
anewuser has joined #lisp
rsawrecht has joined #lisp
dacoda has joined #lisp
shka_ has quit [Ping timeout: 244 seconds]
Folkol_ has quit [Read error: Connection reset by peer]
Folkol has joined #lisp
donotturnoff has quit [Ping timeout: 272 seconds]
krwq has joined #lisp
Folkol has quit [Ping timeout: 268 seconds]
Folkol has joined #lisp
phoe has quit [Ping timeout: 252 seconds]
phoe has joined #lisp
oni-on-ion has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
McParen has left #lisp [#lisp]
cosimone has joined #lisp
cosimone has quit [Client Quit]
xkapastel has quit [Quit: Connection closed for inactivity]
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
varjag has quit [Ping timeout: 245 seconds]
cosimone has quit [Client Quit]
capitaomorte has joined #lisp
cosimone has joined #lisp
dacoda has quit [Remote host closed the connection]
<aeth> It will only get worse with time since all indications are that more cores are the way forward.
<oni-on-ion> u mean in 2012 ?
<oni-on-ion> today its more devices
<oni-on-ion> getting a raspberry pi 3 or 4 to replace my desktop soon
<pjb> drmeister: in my understanding, POIU has just bit rotten, and his author may have left some notes about how to do it better anyways. So basically, we're back to starting point, designing and implementing a parallel build system.
dacoda has joined #lisp
<ebrasca> oni-on-ion: I think some good PC is better than some small PCs.
<aeth> oni-on-ion: this is a bit off topic, but I'm going to stand behind that. top consumer CPU in 2009: 4 cores. top consumer CPU in 2012: 4 cores. top consumer CPU in 2016: 4 cores. top consumer CPU in 2019: probably 16 cores (more expensive, though)
<aeth> give it 5 years (maybe not even that) and you could reasonably expect any desktop to have 8 cores (possibly with 16 threads) at a minimum, but ASDF is still single-threaded.
phoe has quit [Ping timeout: 252 seconds]
<aeth> pjb: is there anywhere public about POIU handled globals? that would be the main issue with compiling CL files in parallel. Especially e.g. *FEATURES*. You would need to know to e.g. compile trivial-features ahead of most other packages
phoe has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
<pjb> definitely, a big part of POIU is the topological sort of systems and files to compile.
<pjb> which makes me think that it's not that different from base ASDF anyways (it already has to topological sort things up), so I would imagine you could fork compiler processes easily.
<pjb> Perhaps POIU tries to do it without forking?
donotturnoff has joined #lisp
<drmeister> pjb: Thanks - that is my understanding as well.
<drmeister> That's what it says on the github repo for poiu
<drmeister> poiu uses forking - I'm in the process of adding the clasp specific functions for fork and waitpid.
Petit_Dejeuner has joined #lisp
<pjb> drmeister: Sounds good. The only problem you might have is that a lot of asdf systems might be written assuming asdf 3, and poiu would be compatible with asdf 1 or 2 at most.
<drmeister> The last version of asdf that poiu was compatible with is supposedly ASDF 3.1.7 https://github.com/fare/poiu
donotturnoff has quit [Ping timeout: 248 seconds]
phoe has quit [Ping timeout: 264 seconds]
phoe has joined #lisp
capitaomorte has quit [Remote host closed the connection]
Lycurgus has joined #lisp
phoe has quit [Ping timeout: 264 seconds]
phoe has joined #lisp
dale has joined #lisp
Lycurgus has quit [Quit: Exeunt]
moei has quit [Quit: Leaving...]
phoe has quit [Ping timeout: 252 seconds]
phoe has joined #lisp
tsandstr has joined #lisp
pest-ctrl has joined #lisp
random-nick has quit [Ping timeout: 258 seconds]
anewuser has quit [Ping timeout: 268 seconds]
sjl has quit [Ping timeout: 248 seconds]
sjl has joined #lisp
dacoda has quit [Remote host closed the connection]
Volt_ has quit [Ping timeout: 246 seconds]
sjl has quit [Ping timeout: 244 seconds]
dacoda has joined #lisp
quazimodo has joined #lisp
ltriant has joined #lisp
carmack has quit [Quit: leaving]
_whitelogger has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
keep_learning_M has joined #lisp