<rainthree>
beach: https://github.com/robert-strandh/Clobber/blob/master/Documentation/demo.lisp#L91 sometimes after a transaction is logged (it has to be logged before it is executed because it may change the objects the transaction is meant to work with, the objects also will be logged), the programmer discovers that it had a typo. Now he has to mess with the file the transaction was logged into, correct the typo or delete the transaction.
<rainthree>
How about instead of logging it directly into the file, log it into a temporary string, then after successfully executing the transaction (and thus knowing for sure it doesn't have a typo or other problems), "commit" it (write the temporary string into the file). Does that sound like a good solution?
<ixelp>
Clobber/Documentation/demo.lisp at master · robert-strandh/Clobber · GitHub
notzmv has quit [Ping timeout: 246 seconds]
jonatack has quit [Read error: Connection reset by peer]
jonatack has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
<beach>
Sounds good to me.
Th30n has joined #commonlisp
amb007 has joined #commonlisp
emaczen has quit [Ping timeout: 268 seconds]
wbooze has joined #commonlisp
triffid has quit [Ping timeout: 260 seconds]
triffid has joined #commonlisp
brokkoli_origina has quit [Ping timeout: 252 seconds]
King_julian has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
attila_lendvai has joined #commonlisp
anticomputer_ has joined #commonlisp
anticomputer has quit [Ping timeout: 260 seconds]
Cymew has joined #commonlisp
X-Scale has quit [Ping timeout: 250 seconds]
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
wacki has joined #commonlisp
dino_tutter has joined #commonlisp
chomwitt has joined #commonlisp
mgl_ has joined #commonlisp
King_julian has quit [Ping timeout: 256 seconds]
gjn has joined #commonlisp
X-Scale has joined #commonlisp
Cymew has quit [Ping timeout: 252 seconds]
Cymew has joined #commonlisp
King_julian has joined #commonlisp
notzmv has joined #commonlisp
ym has joined #commonlisp
Posterdati has quit [Remote host closed the connection]
Posterdati has joined #commonlisp
pve has joined #commonlisp
rainthree has quit [Read error: Connection reset by peer]
rainthree has joined #commonlisp
decweb has joined #commonlisp
danse-nr3 has joined #commonlisp
X-Scale47 has joined #commonlisp
X-Scale has quit [Ping timeout: 250 seconds]
X-Scale47 has quit [Ping timeout: 250 seconds]
X-Scale has joined #commonlisp
Cymew has quit [Ping timeout: 264 seconds]
rainthree has quit [Ping timeout: 252 seconds]
King_julian has quit [Ping timeout: 268 seconds]
X-Scale38 has joined #commonlisp
anticomputer_ has quit [Remote host closed the connection]
X-Scale has quit [Ping timeout: 250 seconds]
anticomputer has joined #commonlisp
kopiyka has quit [Remote host closed the connection]
kopiyka has joined #commonlisp
X-Scale38 has quit [Ping timeout: 250 seconds]
decweb has quit [Ping timeout: 272 seconds]
cognemo has quit [Ping timeout: 256 seconds]
yitzi has joined #commonlisp
rainthree has joined #commonlisp
King_julian has joined #commonlisp
X-Scale has joined #commonlisp
King_julian has quit [Ping timeout: 260 seconds]
King_julian has joined #commonlisp
wacki has quit [Read error: Connection reset by peer]
attila_lendvai has quit [Ping timeout: 255 seconds]
King_julian has quit [Ping timeout: 268 seconds]
wacki has joined #commonlisp
pranav has quit [Remote host closed the connection]
<thuna`>
Odd... I get two newlines in the second string with SBCL 2.4.5
<thuna`>
With ECL as well. And no newlines in the first string with ABCL.
<jackdaniel>
what is odd with it? from fresh-line spec: " If for some reason this cannot be determined, then a newline is output anyway." -- in general case it is not possible to determine the cursor position of the stream
<jackdaniel>
of the broadcast stream *
<yitzi>
The standard doesn't define how too determine if the stream is at beginning of the line. Gray streams do define that via stream-start-line-p. The support for start of line determination and column tracking is different in each implementation. Its not defined by the standard.
<yitzi>
And more so with string streams. Some implementations, as I recall, don't track column at all. The reason stuff seems to work is because FORMAT or the pretty printer is often used and they track their own column number and usually try to sync with underlying stream only on creation of the pretty stream, etc.
cage has joined #commonlisp
random-nick has joined #commonlisp
nickiminjaj has joined #commonlisp
nickiminjaj has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nickiminjaj has joined #commonlisp
nickiminjaj has quit [Changing host]
nickiminjaj has joined #commonlisp
danse-nr3 has quit [Ping timeout: 246 seconds]
nickiminjaj has quit [Client Quit]
sailorCat has quit [Ping timeout: 256 seconds]
sailorCat has joined #commonlisp
molson_ has joined #commonlisp
molson has quit [Ping timeout: 264 seconds]
pranav has joined #commonlisp
donleo has joined #commonlisp
rtypo has joined #commonlisp
danse-nr3 has joined #commonlisp
awlygj has joined #commonlisp
X-Scale has joined #commonlisp
wbooze has quit [Remote host closed the connection]
wbooze has joined #commonlisp
danse-nr3 has quit [Ping timeout: 268 seconds]
danse-nr3 has joined #commonlisp
Demosthe1ex is now known as Demosthenex
decweb has joined #commonlisp
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 246 seconds]
King_julian has joined #commonlisp
King_julian has quit [Ping timeout: 256 seconds]
flip214 has quit [Ping timeout: 256 seconds]
flip214 has joined #commonlisp
gorignak has joined #commonlisp
wbooze has quit [Quit: Konversation terminated!]
Inline has joined #commonlisp
wbooze has joined #commonlisp
wbooze has quit [Remote host closed the connection]
wbooze has joined #commonlisp
danse-nr3 has quit [Ping timeout: 256 seconds]
wbooze has quit [Remote host closed the connection]
wbooze has joined #commonlisp
wbooze has quit [Remote host closed the connection]
wbooze has joined #commonlisp
Th30n has quit [Remote host closed the connection]
brokkoli_origin has joined #commonlisp
<Shinmera>
Not sure how useful this is in practise, but cl-all now supports a -d flag to print the disassemble of the given code snippet
<Shinmera>
Also I wrote the tie-in between Alloy and Framebuffers, so ... whenever someone finally writes a fully fledged software rasteriser in lisp, we'll have fully native GUIs again. hooray.
<Shinmera>
Though, not holding my breath for that one, since it's a big task and my success rate at getting others to do work I'd like done is abysmal
<beach>
That sounds interesting. What is Framebuffers?
<ixelp>
alloy/renderers/simple/protocol.lisp at master · Shirakumo/alloy · GitHub
<Shinmera>
it may not look like much, but it's a lot, especially the patterning of the various shapes
<Shinmera>
and maintaining the clipping
<beach>
What would be the input to the rasterizer?
<Shinmera>
it would have to output to a (simple-array (unsigned-byte 8) (*)) that encodes a BGRA image, and take descriptions of various shapes to render, similar to what the protocol above describes
<beach>
I see.
emaczen has quit [Ping timeout: 246 seconds]
<beach>
"Tried to configure WAYLAND, XLIB, but none would start properly."
<Shinmera>
how odd
X-Scale has joined #commonlisp
<Shinmera>
it launches on my system. Can't immediately tell what it wouldn't like about yours.
waleee has quit [Ping timeout: 256 seconds]
<beach>
I don't even know what it means to "start XLIB".
<jackdaniel>
Shinmera: how do you handle keyboard input in alloy; i.e input methods and/or keyboard layouts?
<random-nick>
can't mcclim render to a framebuffer? it's how it works in mezzano and the image backends
<jackdaniel>
it can, but it has its own api; you could probably map 80% of the api to 80% of that protocol, and then spend the rest of 80% of the task with plugging gaps
<jackdaniel>
perhaps if I have free afternoon I'll take a shallow jab at it
C4r4c0l3 has joined #commonlisp
C4r4c0l3 has left #commonlisp [#commonlisp]
xaltsc has quit [Quit: WeeChat 4.3.2]
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
<Shinmera>
beach: the backend is just named that, it means it tried to connect to the X server
<beach>
I see.
<Shinmera>
jackdaniel: input is handled via events, https://github.com/Shirakumo/alloy/blob/master/events.lisp where keys are key-events with a standard-translated key label and the scan-code. for text there's a text-event that contains a string that was entered.
<ixelp>
alloy/events.lisp at master · Shirakumo/alloy · GitHub
C4r4c0l3 has joined #commonlisp
<Shinmera>
so alloy itself knows nothing about the keyboard layout or input methods, that's all the job of the backend
cage has quit [Remote host closed the connection]
<Shinmera>
Framebuffers also provides an inverse lookup function to translate the standard-translated key label into a human-readable string of what is actually on the key that represents the label
<jackdaniel>
what is a standard-translated key label?
<Shinmera>
basically the US-QWERTY layout name of the key
<jackdaniel>
I see, thanks
<Shinmera>
imo this is the only reasonable way of doing things since input methods and layouts are arbitrarily complex, so we have no chance of replicating them. have to ask the OS about it.
<jackdaniel>
I'm parsing xkb database and using this I'm managing a virtual keyboard in software (that's why I'm asking, I'm interested in shortcuts,)
<Shinmera>
I see, yes.
<Shinmera>
For shortcuts I tend to use the text-event and check for modifiers
<Shinmera>
or I guess you could use framebuffers:local-key-string to check
<Shinmera>
anyway, Framebuffers isn't fully baked yet either. I haven't had the time to complete it (Cocoa, Wayland) or thoroughly test it.
<Shinmera>
it is a big effort
<jackdaniel>
guis, compilers and off-by-one errors are two hardest problems in software
<beach>
But XLIB ought to work I would think.
<Shinmera>
beach: yes, which is why I don't know what's going on in your case
<beach>
Hmm.
<Shinmera>
can you try (org.shirakumo.framebuffers:init :xlib)? that should give you a more insightful error
X-Scale has quit [Ping timeout: 250 seconds]
<beach>
Sure...
<beach>
"Unable to load any of the alternatives: ((:DEFAULT "libX11") (:DEFAULT "X11"))
<beach>
"
<Shinmera>
huh, that's weird
<Shinmera>
what distro is that?
<beach>
Mint
<Shinmera>
I'll have to try and replicate
<Shinmera>
ok, thanks
<beach>
But not very recent.
<Shinmera>
shouldn't matter
<beach>
OK.
<Shinmera>
though just to be sure, which release?
<beach>
How do I find out?
<Shinmera>
cat /etc/lsb-release
<beach>
20.1
<Shinmera>
thanks~
<beach>
Thank you for looking into this. No rush obviously.
<Shinmera>
thanks for trying, and sorry for the disappointing demo :)
<beach>
I am quite interested in a thing like this, so my pleasure.
<Shinmera>
I did demo it at ELS'24
<Shinmera>
(running it on linux, windows, and mezzano)
<beach>
I should watch the video then.
<Shinmera>
they're still not up :(
<Shinmera>
SAL9000:
<beach>
Oh! :(
<Shinmera>
anyway, this and so many things about Alloy in general, just make me wish I could hire scymtym full time instead of only the little bits here and there that I can afford
<beach>
Is it that scymtym has knowledge that you lack, or just that you need more than yourself for what you want to do?
<Shinmera>
the latter
<beach>
I see.
<Shinmera>
and he's a joy to work with
<beach>
I know.
<Shinmera>
:)
CrashTestDummy3 has quit [Quit: Leaving]
xaltsc has joined #commonlisp
edgar-rft_ has joined #commonlisp
xaltsc is now known as Guest6476
Guest6476 is now known as testlol123252523
CrashTestDummy has joined #commonlisp
testlol123252523 is now known as xaltsc
xaltsc has quit [Changing host]
xaltsc has joined #commonlisp
edgar-rft has quit [Ping timeout: 256 seconds]
xaos has joined #commonlisp
CrashTestDummy has quit [Quit: Leaving]
CrashTestDummy has joined #commonlisp
CrashTestDummy has quit [Client Quit]
CrashTestDummy has joined #commonlisp
<Shinmera>
generally I just think there's a lot of excellent work that *could* be done by many people other than me, *if* they could live off of doing it
<yitzi>
Shinmera: does framebuffers use FFI?
<Shinmera>
by necessity, yes
<yitzi>
Thanks!
<beach>
I see.
<Shinmera>
meantime, I set up a mint VM and can reproduce your error
varjag has joined #commonlisp
<beach>
Thank you!
rainthree has quit [Ping timeout: 264 seconds]
X-Scale has joined #commonlisp
mgl_ has quit [Ping timeout: 268 seconds]
<Shinmera>
Okey, with the latest pushes it should work
<beach>
Great! What was the problem?
<Shinmera>
there were two, one is that on debian there's no global symlinx for libX11.so, only to its versioned one libX11.so.6, so I had to add a lookup for that. Second, it doesn't seem to expose the error callback functions, so I had to ignore those.
<beach>
I see. Trying now...
<beach>
YAY! Thank you!
<Shinmera>
if you're wondering why I'm using CFFI instead of CLX, it's because in order to do memory shared image buffers, I kinda have to.
<beach>
I see.
<Shinmera>
And without that displaying the framebuffer requires copying the image across X's wire protocol, which is quite costly
NotThatRPG has quit [Ping timeout: 252 seconds]
<beach>
Sure.
<Shinmera>
anyway, glad it's working :)
<beach>
Me too! Thanks again for the help!
<Shinmera>
happy to
rainthree has joined #commonlisp
shawnw_ is now known as shawnw
<beach>
I think I actually experimented at some point with using an X11 image through CLX and I concluded that it was fast enough. I didn't count the frame rate though. I was just impressed by the performance.
<beach>
I think I created a random pattern to an array and shipped it off in a loop.
<SAL9000>
Shinmera: I haven't forgotten :) I'll be back home from my trip by Friday and I expect to get the videos sorted over the weekend if all goes according to plan. Sorry about the delays!
<Shinmera>
beach: you can see how slow it is when you resize the window
<beach>
Shinmera: My experiment?
<Shinmera>
no, framebuffers
<beach>
Oh, I see.
<Shinmera>
the third example draws a simple gradient
<Shinmera>
when resizing the window it has trouble catching up
<beach>
I see. I'll check it out tomorrow. Dinner is imminent here, so I'll be off soon.
<Shinmera>
have a good dinner!
<Shinmera>
I'm currently digesting some onion soup
<beach>
Thank you!
<beach>
Nice!
waleee has joined #commonlisp
awlygj has quit [Ping timeout: 255 seconds]
C4r4c0l3 has quit [Quit: Lost terminal]
amb007 has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
amb007 has joined #commonlisp
varjagg has joined #commonlisp
varjag has quit [Ping timeout: 256 seconds]
rainthree has quit [Ping timeout: 255 seconds]
danse-nr3 has joined #commonlisp
duuqnd_ has joined #commonlisp
duuqnd has quit [Ping timeout: 255 seconds]
duuqnd_ is now known as duuqnd
rainthree has joined #commonlisp
rainthree has quit [Read error: Connection reset by peer]
awlygj has joined #commonlisp
chomwitt has quit [Ping timeout: 240 seconds]
chomwitt has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
chomwitt has quit [Ping timeout: 268 seconds]
chomwitt has joined #commonlisp
X-Scale has quit [Ping timeout: 250 seconds]
hexa6` has joined #commonlisp
hexa6 has quit [Ping timeout: 264 seconds]
Lord_of_Life_ has joined #commonlisp
zxcvz has quit [Quit: zxcvz]
Lord_of_Life has quit [Ping timeout: 255 seconds]
cage has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
mgl_ has joined #commonlisp
<yottabyte>
Shinmera: are you around? I wanted to ask some questions about Radiance and maybe web dev in Common Lisp in general
<Shinmera>
I'm not, I'm in a rather particular point in space
<ixelp>
I want to make a REST API that'll interact with another js application. The lisp - Pastebin.com
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
<yottabyte>
initially I was using hunchentoot, but I found the documentation lacking, now I've been playing with ningle, and that's cool, but also unsure how to do some of the things I wrote about there, so now I'm looking at Radiance
<yottabyte>
perhaps even if I found an example repo that did the above sort of things, I could just copy what it was doing. perhaps you have a repo out there I can use as a basic example
mgl_ has quit [Ping timeout: 252 seconds]
<Shinmera>
there's auth and session interfaces
<yottabyte>
I have to look at the api more, but the endpoints would just return json, is define-page still the way to do it?
<Shinmera>
(serve-file (@template "index.html"))
<Shinmera>
if you like, sure. you can return whatever you want from it
<Shinmera>
radiance's define-api mechanism does not allow matching against path parts (and I personally hate arguments in the path in rest apis)
<Shinmera>
but you don't have to use it, so whatever
<Shinmera>
as for an example come on, did you even look?