jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
son0p has joined #commonlisp
zaymington has joined #commonlisp
Lycurgus has joined #commonlisp
herjazz has joined #commonlisp
binchicken has joined #commonlisp
binchicken has quit [Remote host closed the connection]
binchicken has joined #commonlisp
karlosz has quit [Quit: karlosz]
rtypo has joined #commonlisp
jmdaemon has joined #commonlisp
Inline has quit [Ping timeout: 248 seconds]
xmachina has quit [Quit: WeeChat 4.0.4]
zaymington has quit [Ping timeout: 240 seconds]
count3rmeasure has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
herjazz has quit [Quit: leaving]
Lycurgus has quit [Quit: Tschüss]
azimut has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
zaymington has joined #commonlisp
NotThatRPG has joined #commonlisp
zaymington has quit [Remote host closed the connection]
zaymington has joined #commonlisp
zaymington has quit [Remote host closed the connection]
NotThatRPG has quit [Quit: Textual IRC Client: www.textualapp.com]
NotThatRPG has joined #commonlisp
zaymington has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
nij- has joined #commonlisp
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ has quit [Read error: Connection reset by peer]
nij- has joined #commonlisp
<nij-> I connect in a lisp X to a swank-server running in another lisp Y. How do I redirect the *standard-output* of Y to X?
semz has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
semz has joined #commonlisp
hackmykack has joined #commonlisp
hackmykack has quit [Client Quit]
hackmykack has joined #commonlisp
hackmykack has quit [Quit: Leaving]
tyson2 has quit [Remote host closed the connection]
avocadoist has quit [Ping timeout: 260 seconds]
Pixel_Outlaw has joined #commonlisp
akoana has joined #commonlisp
waleee has quit [Ping timeout: 244 seconds]
akoana has quit [Quit: leaving]
nij- has quit [Ping timeout: 255 seconds]
nij- has joined #commonlisp
beepbooptheory has joined #commonlisp
jello_pudding has quit [Ping timeout: 260 seconds]
nij- has quit [Ping timeout: 248 seconds]
jello_pudding has joined #commonlisp
puke has quit [Read error: Connection reset by peer]
puke has joined #commonlisp
Lyrebird has quit [Ping timeout: 255 seconds]
AetherWind has joined #commonlisp
Guest3555 has joined #commonlisp
Guest3555 has quit [Quit: ()]
pranavats has joined #commonlisp
AetherWind has quit [Quit: Lost terminal]
zaymington has quit [Remote host closed the connection]
masinter has joined #commonlisp
LispTyro has quit [Ping timeout: 250 seconds]
sukaeto has quit [Ping timeout: 250 seconds]
LispTyro has joined #commonlisp
sukaeto has joined #commonlisp
zest has joined #commonlisp
beepbooptheory has quit [Remote host closed the connection]
<zest> hello people, I want to know if there is any way to change a number into a character without code-char(because it is slow). It takes 120ms to copy pure UTF-8 bytes to a pre allocated string. I don't need to convert the utf8 bytes, I just want to copy them from a vector to a string.
<beach> CODE-CHAR doesn't deal with UTF-8 as far as I know.
<beach> And I am surprised it is slow. Did you inline it?
AetherWind has joined #commonlisp
<zest> beach: the octet-vector is big; some 2MB of data but it doesn't need conversion nor does it allocate, it should just copy...
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
<beach> I think you need to study the assembly output. It is not clear to me that the problem is CODE-CHAR.
<beach> It looks to me like you reversed the arguments to COPY-STR, no?
<zest> beach: yes, silly mistake..
<beach> Then all benchmarks are off, no?
<zest> beach: I just tested out both, yes, indeed CODE-CHAR is not the issue.
<zest> beach: but, should an octet-vector thats writing to another one take 40ms without any allocation??
<beach> Are you now talking about COPY-VEC?
<zest> beach: yes
<beach> You may need to declare the type of those parameters in COPY-VEC.
<beach> COPY-VEC would need to know that they are the same length and the elements they contain.
<beach> Otherwise, COPY-VEC may need to figure out the size of each element at run-time, and it may have to check that VEC2 has as many elements as VEC1.
<beach> Stuff like that.
<beach> Plus, you may want to use a sequence function for that.
<beach> Try using REPLACE instead for instance.
<zest> beach: The reason I am not is because I was converting some binary data to UTF-8 using a special function
<beach> So the code you show is not the code you want to use?
<zest> beach: since I thought the bottleneck was CODE-CHAR; I didn't use replace because the sequences would have different internal types.
<zest> beach: however the type declaration did help tons, now it is ~10ms.
<beach> Also, strings are not represented as UTF-8, so I don't see how it is relevant here.
<zest> beach: no, but it similar to the code I was using. Much of the UTF-8 data was ASCII so there was no need for conversion.
<zest> beach: because the files I read are in octets, I convert the octets to utf-8(dfa algorithm) and write them to the string vector. The string vector would already be the same size as the file (some 2 to 3 megabytes) and all that is needed is some conversion
<zest> I use this method because I wanted to buffer the IO instead of using read-char.. I know these are too many details but the jest of it is converting an octet-vector to a string-vector without allocation now takes 20ms, should it take less?
<zest> all the function is doing is literally copying
<beach> That's 10ns per element. I don't think you can expect better since you are probably seeing a lot of cache misses.
<beach> The CHARACTER vector is probably 4 bytes per element for instance.
<beach> You may want to try some subtype of CHARACTER.
triffid has joined #commonlisp
<beach> So your octet vector is 2MB or so, but you character vector is probably 8MB. I don't know how big caches are these days, but this is sequential access of 10MB.
<zest> beach: same times with EXTENDED-CHARACTER
<hayley> Hardware prefetching should kick in for sequential access, in my experience with string twiddling.
<beach> Yes, that's not the one you want.
<beach> hayley: Ah, OK.
<hayley> BASE-CHAR uses one byte per character in SBCL.
<beach> So BASE-CHAR would probably be the better choice.
<zest> hayley: but I cannot guarantee that all UTF-8 character are ASCII. What I can do is not process ASCII characters as UTF-8
<beach> zest: Why do you keep bringing up UTF-8?
<hayley> I see - I misread then. If you are really motivated, you could look into a faster UTF-8 decoding algorithm.
<zest> beach: because I am writing a UTF-8 processor. UTF-8 contains ASCII and when a character is ASCII, you don't really have to convert it. It is just one byte.
<hayley> But 100 Mcharacters/second isn't too bad.
<beach> zest: You have an octet vector, and every value between 0 and 255 is a valid character that can be represented in one byte. If SBCL BASE-CHAR contains all those, then you should be fine.
<zest> hayley: yes, I'll take that. 20 ms ain't all that bad.
<hayley> If you expect to see mostly ASCII characters, you could come up with a fast path: check that none of the most significant bits of multiple characters are 1, and then store them into the string (after expanding 8 bit values to 32 bit).
<beach> I don't understand. If there is an octet vector, why are we talking about UTF-8?
<beach> Each element of the octet vector represents a character, right? Otherwise, CODE-CHAR is not the right thing to use.
<zest> beach: no, not every byte represents a character. some bytes represent the variable length of a character(2, 3 or even 4 bytes)
<hayley> But personally I don't like such tricks (moreso for performant code I intend for others to use), because anyone who wants to process text that isn't predominantly English might be surprised that decoding runs slower.
<beach> zest: Then you can't use CODE-CHAR in the first place.
<hayley> My understanding is zest is writing a UTF-8 decoder. And indeed, as beach says, using CODE-CHAR on each octet will not correctly decode UTF-8.
<beach> I see. So the entire code was wrong in the first place.
<beach> Nice!
<zest> hayley: Yes, I am aware that CODE-CHAR will not decode each OCTET as a UTF-8 character. I preprocess each octet to see if it is a normal UTF-8 character and then use that in CODE-CHAR.
count3rmeasure has quit [Quit: Leaving]
<zest> beach: no, the octet-vector simply holds the bytes from the files. The UTF-8 algorithm tests if each octet represents an ASCII or UTF-8, if it is UTF-8, it tries to convert the octet and following octets into a UTF-8 character.
<beach> Well, I think the problem is solved.
<zest> Yes, thank you both for your notes. I'll debug my original code as the problem wasn't with CODE-CHAR
<hayley> Okay, so you are correctly decoding UTF-8 using an automaton. 10ns/element seems in the right ballpark for an automaton.
<beach> Sure. And I advise against your OPTIMIZE settings.
zest has quit [Ping timeout: 245 seconds]
pranavats has left #commonlisp [Error from remote client]
Pixel_Outlaw has quit [Quit: Leaving]
<aeth> never (safety 0)
pve has joined #commonlisp
waleee has joined #commonlisp
easye has quit [Ping timeout: 246 seconds]
dcb has quit [Quit: MSN Messenger 4.0.4]
binchicken has quit [Read error: Connection reset by peer]
binchicken has joined #commonlisp
rgherdt has joined #commonlisp
rtypo has quit [Ping timeout: 248 seconds]
tibfulv has quit [Remote host closed the connection]
wonko-the-sane has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
wonko-the-sane has joined #commonlisp
rgherdt_ has joined #commonlisp
semz_ has joined #commonlisp
hrberg_ has joined #commonlisp
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
damonkern3 has joined #commonlisp
srji has joined #commonlisp
srji has left #commonlisp [#commonlisp]
rgherdt has quit [*.net *.split]
pve has quit [*.net *.split]
jello_pudding has quit [*.net *.split]
ronald_ has quit [*.net *.split]
semz has quit [*.net *.split]
hrberg has quit [*.net *.split]
markb1 has quit [*.net *.split]
semz_ is now known as semz
pve has joined #commonlisp
waleee has quit [Quit: updating]
srji has joined #commonlisp
markb1 has joined #commonlisp
LW has joined #commonlisp
jello_pudding has joined #commonlisp
srji has quit [Read error: Connection reset by peer]
easye has joined #commonlisp
LW has quit [Client Quit]
srji has joined #commonlisp
srji has quit [Client Quit]
srji has joined #commonlisp
srji has quit [Client Quit]
srji has joined #commonlisp
srji has quit [Client Quit]
srji has joined #commonlisp
srji has quit [Client Quit]
srji has joined #commonlisp
shka has joined #commonlisp
srji has quit [Client Quit]
msavoritias has joined #commonlisp
srji has joined #commonlisp
srji has quit [Client Quit]
srji has joined #commonlisp
Inline has joined #commonlisp
srji has quit [Client Quit]
Cymew has joined #commonlisp
srji has joined #commonlisp
Inline has quit [Remote host closed the connection]
varjag has joined #commonlisp
srji has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
knusbaum has quit [Ping timeout: 248 seconds]
Inline has joined #commonlisp
binchicken has quit [Remote host closed the connection]
knusbaum has joined #commonlisp
kenran has joined #commonlisp
mgl has joined #commonlisp
Cymew has quit [Quit: Konversation terminated!]
srji has joined #commonlisp
Cymew has joined #commonlisp
srji` has joined #commonlisp
damonkern3 has quit [Ping timeout: 246 seconds]
srji has left #commonlisp [#commonlisp]
ronald is now known as Guest5633
srji` has left #commonlisp [#commonlisp]
OlCe has joined #commonlisp
srji has joined #commonlisp
_cymew_ has joined #commonlisp
samebchase has quit [Quit: The Lounge - https://thelounge.chat]
samebchase has joined #commonlisp
samebchase has quit [Client Quit]
samebchase has joined #commonlisp
jello_pudding has quit [Ping timeout: 246 seconds]
jello_pudding has joined #commonlisp
szkl has joined #commonlisp
mrcom__ has joined #commonlisp
mrcom_ has quit [Read error: Connection reset by peer]
dino_tutter has joined #commonlisp
justache is now known as reddit-bot
reddit-bot is now known as justache
cage has joined #commonlisp
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
son0p has quit [Ping timeout: 240 seconds]
random-nick has joined #commonlisp
habamax has joined #commonlisp
rainthree has joined #commonlisp
habamax has quit [Remote host closed the connection]
habamax has joined #commonlisp
jello_pudding has quit [Ping timeout: 245 seconds]
mgl has quit [Quit: Client closed]
mgl has joined #commonlisp
karlosz has joined #commonlisp
jello_pudding has joined #commonlisp
donleo has joined #commonlisp
srji has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
NicknameJohn has quit [Read error: Connection reset by peer]
attila_lendvai has joined #commonlisp
avocadoist has joined #commonlisp
attila_lendvai has quit [Ping timeout: 246 seconds]
tevo has quit [Ping timeout: 246 seconds]
hirez has quit [Quit: Later]
hirez has joined #commonlisp
son0p has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
jeosol has joined #commonlisp
nij- has joined #commonlisp
jmdaemon has quit [Ping timeout: 248 seconds]
jello_pudding has quit [Ping timeout: 246 seconds]
donleo has quit [Ping timeout: 245 seconds]
jello_pudding has joined #commonlisp
<Josh_2> aeth ALWAYS SAFETY 0!
<beach> *sigh*
<Josh_2> Its only a joke ;)
<beach> I missed the smiley, despite your being quite generous with those.
<Josh_2> In reality I have safety 3, speed 0, debug 3, space 1 in my sbclrc
<Josh_2> True, I missed the /s
<Josh_2> Today I attempt my lisp writing lisp code :joy: except it writes code to a file rather than using a macro
<Josh_2> Although there is a clog example that creates a basic common lisp editor, that could also work
<beach> In what way is it a "Common Lisp editor"?
attila_lendvai has joined #commonlisp
NicknameJohn has joined #commonlisp
<beach> I mean, is it an editor written in Common Lisp, or an editor meant to edit Common Lisp code?
<beach> And if the latter, in what way is it adapted to editing Common Lisp?
<Josh_2> Beats me
<Josh_2> maybe it has paren highlighting :joy:
<edgar-rft> I assume it's 03-demo.lisp - A very simple common lisp IDE - from -> https://github.com/rabbibotton/clog/tree/main/demos
<Josh_2> Ye
<hayley> How many threads should I give the parallel garbage collector by default? At the moment the default is always four threads, which seems obviously wrong if you have fewer than four cores.
<hayley> It might be too few or too many threads though, when you have more cores. It'd depend on the use-case, but a sensible default would be appreciated.
rainthree has quit [Ping timeout: 240 seconds]
rainthree has joined #commonlisp
attila_lendvai has quit [Ping timeout: 260 seconds]
donleo has joined #commonlisp
<Josh_2> 300
<hayley> Have you a 300 core machine?
<mgl> @hayley: For a default, it may be okay to determine an approximately okay number at run time.
<hayley> By what criteria?
<hayley> I also lack the ability to resize the thread pool, but that can be fixed.
<mgl> By measuring how long garbage collection takes with +1/-1 thread (perhaps averaged over a number of interleaved gc sequences).
<Josh_2> What about just making it 2 and letting people decide for themselves?
<mgl> Shouldn't take very long to get to a good number, and the exploration frequency can be lowered.
<Josh_2> I'm sure you could ask people really nicely to perform some benchmarks
<hayley> mgl: The issue I have (which is why I won't just assign one GC thread per core and call it a day) is what happens when you introduce two processes, each with a parallel GC. Then what is sensible behaviour?
<hayley> One GC might take the other application by surprise, by suddenly introducing more work for all cores to run. But perhaps that is only occasionally an issue.
<mgl> hayley: Yeah, there is no good answer to that, but there may be a good one in the single process case.
<mgl> The user needs some knobs, but I think it can be sensible for the default to maximise single-process performance.
habamax has quit [Remote host closed the connection]
Inline has quit [Ping timeout: 246 seconds]
<mgl> E.g. --max_threads 0.5 (use at most half the cores of the system) or --max_threads 7 (use at most 7 threads).
<hayley> I believe the fastest default would then be one GC thread per core. The situation is different for a concurrent GC, as more collector threads would compete with app threads for processor time, slowing the application; but this collector is not concurrent, and there is no competition.
<mgl> There is some synchronization between the GC threads, is there not?
<hayley> There is, and the throughput increases less with more threads, but I've found throughput is monotonically increasing still.
<mgl> How many cores did you try?
<hayley> (So it might also be impolite to use all the cores when energy consumption is an issue.)
<hayley> Up to 12.
AetherWind has quit [Quit: leaving]
<Josh_2> Would it help to create a standard suite of benchmarks and ask different people to try it on different platforms?
<mgl> --min_gc_thread_gain 0.01: Keep adding gc threads while GC is getting faster by 1%.
<hayley> Josh_2: It's more about context. What should the default thread count achieve?
<hayley> Should it go the fastest? Should it play nicely with other processes? Does power efficiency matter?
<mgl> I think --min_gc_thread_gain or similar could be the right kind of quantity for a user to tweak and to express a default in.
<hayley> It's a neat concept.
* hayley goes to collect for the night.
yosef` has joined #commonlisp
<mgl> Maybe it should be based on the effect on the overall application. Maybe it would be too unpredictable.
johnjaye has quit [Ping timeout: 260 seconds]
yosef` has quit [Quit: Client closed]
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
dino_tutter has quit [Ping timeout: 255 seconds]
anticomputer_ has joined #commonlisp
anticomputer has quit [Ping timeout: 246 seconds]
wonko-the-sane has quit [Ping timeout: 246 seconds]
blop has quit [Ping timeout: 246 seconds]
triffid has quit [Ping timeout: 246 seconds]
gxt has quit [Ping timeout: 246 seconds]
gxt has joined #commonlisp
wonko-the-sane has joined #commonlisp
blop has joined #commonlisp
nij- has quit [Ping timeout: 245 seconds]
kenran has quit [Quit: ERC 5.6-git (IRC client for GNU Emacs 30.0.50)]
zxcvz has joined #commonlisp
NicknameJohn has quit [Ping timeout: 246 seconds]
zxcvz has quit [Client Quit]
blop_ has joined #commonlisp
blop has quit [Ping timeout: 246 seconds]
triffid has joined #commonlisp
phoe_ has joined #commonlisp
<phoe_> hello all, I might be spending a little bit more time around here again
<beach> phoe_: Welcome back!
<phoe_> beach: thanks
Inline has joined #commonlisp
Cymew has quit [Ping timeout: 246 seconds]
phoe_ has quit [Quit: Client closed]
Inline has quit [Quit: Leaving]
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
ronald has joined #commonlisp
igemnace has joined #commonlisp
eddof13 has joined #commonlisp
Inline has joined #commonlisp
igemnace has quit [Quit: WeeChat 4.0.4]
cage has quit [Remote host closed the connection]
<Josh_2> phoe: :wave:
<Josh_2> dbotton: is there anything intrinsically wrong with this code? https://plaster.tymoon.eu/view/3942#3942 When I click on the rule to inspect it, the same rules are displayed in the new window
<Josh_2> I added breaks to inspect the values of category and rules, they are changing each iteration
<Josh_2> When I put a break in #'inspect-rules, everytime I click on a category in my clog-gui its the same category and rules.. :thinking:
skin1 has joined #commonlisp
skin1 has quit [Remote host closed the connection]
yvm has joined #commonlisp
skin1 has joined #commonlisp
<Josh_2> I wonder if its something to do with alexandria:doplist
<Josh_2> Swapped to loop and I am still getting the same behaviour :thinking:
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Josh_2> I checked the values that are closed over and those are correct as well :thinking:
eddof13 has joined #commonlisp
CARbon8 has joined #commonlisp
eddof13 has quit [Client Quit]
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
tyson2 has quit [Remote host closed the connection]
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
eddof13 has joined #commonlisp
CARbon8 has quit [Read error: Connection reset by peer]
donleo has quit [Ping timeout: 246 seconds]
mgl has quit [Quit: Client closed]
mrcom__ has quit [Remote host closed the connection]
mrcom__ has joined #commonlisp
robin has joined #commonlisp
skin1 has quit [Remote host closed the connection]
pranavats has joined #commonlisp
skin1 has joined #commonlisp
dcb has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
mooseball has joined #commonlisp
dino_tutter has joined #commonlisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #commonlisp
tyson2 has joined #commonlisp
donleo has joined #commonlisp
skin1 has quit [Ping timeout: 246 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
skin1 has joined #commonlisp
eddof13 has joined #commonlisp
skin1 has quit [Remote host closed the connection]
skin1 has joined #commonlisp
tychoish has quit [Server closed connection]
tychoish has joined #commonlisp
chrcav has quit [Quit: leaving]
Lycurgus has joined #commonlisp
nij- has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<Lycurgus> apparently doug lenat is not that well known among modern practitioners
<skin1> RIP. He appears to have a Wikipedia page, so there's that. https://en.wikipedia.org/wiki/Douglas_Lenat
mooseball has quit [Ping timeout: 246 seconds]
<Lycurgus> his death gives way to the fact of his apparent obscurity for the contemporary computing masses imo
mrcom__ is now known as mrcom
thuna` has joined #commonlisp
skin1 has quit [Remote host closed the connection]
rainthree has quit [Quit: Leaving]
yvm has quit [Ping timeout: 245 seconds]
attila_lendvai has joined #commonlisp
msavoritias has quit [Remote host closed the connection]
jeosol has quit [Quit: Client closed]
tyson2 has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tyson2 has quit [Remote host closed the connection]
skin1 has joined #commonlisp
waleee has joined #commonlisp
azimut has quit [Ping timeout: 246 seconds]
blop has joined #commonlisp
Lycurgus has quit [Quit: Tschüss]
blop_ has quit [Ping timeout: 246 seconds]
_cymew_ has quit [Ping timeout: 255 seconds]
<masinter> I was a grad student with Lenat
<Colleen> masinter: beach said at 2023.07.22 06:07:19: In what way do you suggest we use Medley Common Lisp for SICL?
tyson2 has joined #commonlisp
Lycurgus has joined #commonlisp
<Lycurgus> masinter, do you know the cause of death?
<Lycurgus> (will see response if any on log, i presume cancer)
shka has quit [Ping timeout: 245 seconds]
skempf has quit [Server closed connection]
skempf has joined #commonlisp
NicknameJohn has joined #commonlisp
attila_lendvai has quit [Ping timeout: 246 seconds]
nij- has quit [Ping timeout: 245 seconds]
jello_pudding has quit [Ping timeout: 245 seconds]
nij- has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
pve has quit [Quit: leaving]
jello_pudding has joined #commonlisp
z4kz has quit [Server closed connection]
skin1 has quit [Quit: Leaving.]
z4kz has joined #commonlisp
skin1 has joined #commonlisp
mooseball has joined #commonlisp
mooseball has quit [Remote host closed the connection]
rgherdt_ has quit [Quit: Leaving]
monoidog has joined #commonlisp
rtypo has joined #commonlisp
thuna` has quit [Remote host closed the connection]
marsipan has quit [Server closed connection]
Lycurgus has quit [Quit: Tschüss]
jmdaemon has joined #commonlisp
marsipan has joined #commonlisp
ronald has quit [Ping timeout: 255 seconds]
random-nick has quit [Ping timeout: 246 seconds]
prokhor_ has joined #commonlisp
<prokhor_> question: if i have a closure like: (setf ref-a (let (first "a")(second "b")(third "c"))) how do i set a value inside that closure inside that ref?
<prokhor_> more so: if i have multiple references to closures: can i somehow "combine" their scopes?
dino_tutter has quit [Ping timeout: 255 seconds]
johnjaye has joined #commonlisp
<White_Flame> without some low-level implementation accessors, your LET scope needs to build all the functionality it needs, like readers/writers for teh closed-over slots. You lose direct access to them once you close your LET paren
<prokhor_> ok, i see.. and can i do sth like: (let (new-context (ref-a ref-b ref-c))) to combine them?
<White_Flame> I don't undertsand the question
<prokhor_> or do i have to loop over every value and add them?
eta has quit [Server closed connection]
eta has joined #commonlisp
<prokhor_> if i have 3 such closure, referenced by eg (setf ref-a (let (...
eddof13 has joined #commonlisp
<bike> your syntax is hard to understand.
<prokhor_> and i would like to create a new context where a selection of those closures are valid?
<bike> for one thing you haven't actually included any closures, those being functions within some lexical bindings
<White_Flame> setf isn't really a reference, and the closed-over variables are "closed"
<White_Flame> what you generally have are references to function objects, and those function objects have baked-in referenes to those closures
<ixelp> How do I globally change a variable value within function in lisp - Stack Overflow
<prokhor_> ?
<prokhor_> k.. i will work through that...
<prokhor_> another question: is there some good explanation/tutorial about reader macros out there?
<White_Flame> in that make-pointer example, tey're still in the same LET scope as the closure
conjunctive has quit [Server closed connection]
conjunctive has joined #commonlisp
<White_Flame> that basically becomes local function support in that same lexical body
<prokhor_> White_Flame: ok, thx... i think i will sth like (list (val-1 'foo) (val-2 'bar) (val-3 'baz)) and construct the "context" every time i need one...
<prokhor_> its my try to implement cyc-microtheories btw..
<White_Flame> IMO the best context/side-band data is dynamic bindings
<prokhor_> thx, advice appreciated - will give it a look..
<prokhor_> do you by chance know how thy did it in cycl?
<prokhor_> they
<White_Flame> that's a big question
skin1 has quit [Ping timeout: 250 seconds]
<White_Flame> cycl is an implementation language of cyc, and cycl itself doesn't have microtheories, the inference system it implements does
masinter has quit [Ping timeout: 248 seconds]
masinter has joined #commonlisp
jeosol has joined #commonlisp
monoidog has quit [Ping timeout: 250 seconds]
<prokhor_> White_Flame: I think i get the gist of that (will have to think about it though..)... can i imagiine that as eg. an additional aargument in every predicate in a set of prolog clauses? (as in: this clause only is valid in context nr x)? is it working with different databases for diffrerent mts?
<White_Flame> the mechanism of inference always works with a set of active MTs
<White_Flame> it does not chane the current predicates or queries, which can be evaluated under different sets of MTs
<prokhor_> i remember you mentioning generic dispatch in that context - right?
<White_Flame> MTs basically "page in" different sections of the knowledgebase
<White_Flame> I don't think so
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jon_atack has quit [Ping timeout: 245 seconds]
jon_atack has joined #commonlisp
karlosz has quit [Quit: karlosz]
fengshaun_ has joined #commonlisp
fengshaun has quit [Ping timeout: 244 seconds]
donleo has quit [Ping timeout: 246 seconds]
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life_ has joined #commonlisp
scymtym has quit [Remote host closed the connection]
Lord_of_Life_ is now known as Lord_of_Life
Brucio-61 has quit [Remote host closed the connection]