Xach 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/>
EvW has quit [Ping timeout: 260 seconds]
Lord_of_Life_ has joined #lisp
cosimone has quit [Ping timeout: 260 seconds]
zclark has quit [Remote host closed the connection]
Lord_of_Life has quit [Ping timeout: 240 seconds]
karlosz has joined #lisp
Lord_of_Life_ is now known as Lord_of_Life
emys has joined #lisp
z147 has quit [Remote host closed the connection]
z147x has joined #lisp
thijso has quit [Ping timeout: 260 seconds]
emys has quit [Ping timeout: 246 seconds]
adolby has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 272 seconds]
nullniverse has joined #lisp
nullniverse has joined #lisp
nullniverse has quit [Changing host]
Khisanth has quit [Ping timeout: 268 seconds]
adolby has joined #lisp
msk_ has joined #lisp
thijso has joined #lisp
emys has joined #lisp
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
emys has quit [Ping timeout: 268 seconds]
klltkr has joined #lisp
karlosz has quit [Quit: karlosz]
adolby has quit [Ping timeout: 260 seconds]
Khisanth has joined #lisp
clothespin has quit [Ping timeout: 268 seconds]
adolby has joined #lisp
nullniverse has quit [Quit: Leaving]
turona has quit [Ping timeout: 272 seconds]
turona has joined #lisp
nirved has quit [Ping timeout: 272 seconds]
papachan has quit [Quit: Leaving]
nirved has joined #lisp
clothespin has joined #lisp
wxie has joined #lisp
patrixl has joined #lisp
hsaziz has joined #lisp
hsaziz has quit [Client Quit]
ArthurStrong has quit [Quit: leaving]
msk_ has quit [Quit: Leaving]
msk_ has joined #lisp
msk_ has quit [Client Quit]
msk has joined #lisp
msk has quit [Quit: Leaving]
msk has joined #lisp
msk has quit [Remote host closed the connection]
msk has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
msk has quit [Client Quit]
|Pirx_off has joined #lisp
msk has joined #lisp
msk has quit [Remote host closed the connection]
msk has joined #lisp
|Pirx_off| has quit [Ping timeout: 258 seconds]
msk has quit [Client Quit]
msk has joined #lisp
atgreen has quit [Ping timeout: 268 seconds]
msk has quit [Remote host closed the connection]
karlosz has joined #lisp
msk has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
msk has quit [Client Quit]
msk has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
karlosz has quit [Quit: karlosz]
msk has quit [Client Quit]
msk has joined #lisp
akoana has left #lisp ["Leaving"]
msk has quit [Client Quit]
msk has joined #lisp
lavaflow has quit [Ping timeout: 240 seconds]
msk has quit [Client Quit]
msk has joined #lisp
msk has quit [Client Quit]
Demosthenex has quit [Ping timeout: 265 seconds]
jfb4_ has joined #lisp
wxie has joined #lisp
sjl has joined #lisp
jfb4 has quit [Ping timeout: 258 seconds]
Demosthenex has joined #lisp
clothespin has quit [Ping timeout: 260 seconds]
statusf90 has quit [Quit: statusf90]
z147x has quit [Ping timeout: 240 seconds]
refpga has quit [Ping timeout: 265 seconds]
asdf_asdf_asdf has quit [Quit: asdf_asdf_asdf]
ealfonso has joined #lisp
msk has joined #lisp
msk has quit [Quit: Leaving]
msk has joined #lisp
|Pirx_off| has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
|Pirx_off has quit [Ping timeout: 268 seconds]
jfb4_ has quit [Ping timeout: 268 seconds]
msk has quit [Client Quit]
msk has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
XenophonF has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
orivej has joined #lisp
terpri has quit [Remote host closed the connection]
ahungry has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
terpri has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
ealfonso has quit [Quit: ERC (IRC client for Emacs 26.1)]
ealfonso has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
ebrasca has quit [Remote host closed the connection]
jfb4 has joined #lisp
davsebam1e has quit [Ping timeout: 260 seconds]
msk has quit [Quit: Leaving]
msk has joined #lisp
lavaflow has joined #lisp
rippa has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
davsebamse has joined #lisp
karlosz has joined #lisp
msk has quit [Remote host closed the connection]
harovali has joined #lisp
msk has joined #lisp
msk has quit [Remote host closed the connection]
msk has joined #lisp
msk has quit [Client Quit]
msk has joined #lisp
reepca has joined #lisp
<reepca> I find myself needing to use native namestrings for passing arguments to another program, and it seems that calling (namestring (make-pathname :name "a.b.c")) produces "a\\.b\\.c". I'm quite confused why this is. Does SBCL think that "canonical form" means "shell-special-characters escaped"?
ealfonso has quit [Ping timeout: 260 seconds]
<reepca> seems native-namestring is what I want... I vaguely remember running into this problem before
wxie has quit [Ping timeout: 240 seconds]
dale has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<beach> Good morning everyone!
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
libertyprime has joined #lisp
Bad_K4rMa has joined #lisp
<pjb> reepca: it's implementation dependent.
<pjb> reepca: if you pass the argument to another program that is NOT written in SBCL, then you want to pass NOT a PATHNAME or a NAMESTRING, but a POSIX path!
<pjb> reepca: I would suggest NOT to use pathname at all in this case!
dddddd has quit [Remote host closed the connection]
<White_Flame> reepca: the period is often used to separate name from type (extension), so that's probably the root of the backslashing
Codaraxis has quit [Ping timeout: 240 seconds]
<White_Flame> although a literal of #P"a.b.c" creates a name of "a.b" and a type of "c"
gravicappa has joined #lisp
samebchase- has joined #lisp
Bike has quit [Quit: Lost terminal]
marusich has joined #lisp
<pjb> If c was numerical, it could create a pathname with :name :type and :version.
<pjb> or NEWEST
Picantest has quit [Ping timeout: 265 seconds]
emaczen has joined #lisp
Codaraxis has joined #lisp
Bad_K4rMa has quit [Remote host closed the connection]
<emaczen> What can I expect with regards to this $365 bounty: https://www.bountysource.com/issues/75202399-wanted-by-value-structures-in-sb-alien
<minion> emaczen, memo from pjb: ARM Assembler in Lisp http://www.ulisp.com/show?2XZH
<minion> emaczen, memo from pjb: lisp itself is just an assembler. Just avoid the most sophisticated macros (or consider lisp as a macro assembler and use them!). See for example: https://groups.google.com/forum/#!msg/comp.lang.lisp/T3UZwLoN0lw/4r9q_8cwKoQJ THIS IS YOUR STABLE ASSEMBLER!
quazimodo has quit [Ping timeout: 268 seconds]
quazimodo has joined #lisp
slyrus has joined #lisp
|Pirx_off has joined #lisp
harovali1 has joined #lisp
harovali has quit [Ping timeout: 260 seconds]
|Pirx_off| has quit [Ping timeout: 258 seconds]
ahungry has quit [Remote host closed the connection]
ahungry has joined #lisp
chocimir has joined #lisp
gxt has joined #lisp
wxie has joined #lisp
vlatkoB has joined #lisp
ebzzry has joined #lisp
narimiran has joined #lisp
oxum has quit [Remote host closed the connection]
libertyprime has quit [Ping timeout: 260 seconds]
brown121407 has quit [Ping timeout: 240 seconds]
ahungry has quit [Remote host closed the connection]
brown121407 has joined #lisp
wxie has quit [Ping timeout: 268 seconds]
oxum has joined #lisp
orivej has quit [Ping timeout: 258 seconds]
X-Scale has quit [Ping timeout: 258 seconds]
|Pirx_off has quit [Ping timeout: 260 seconds]
[X-Scale] has joined #lisp
CrazyEddy has joined #lisp
chocimir has quit [Ping timeout: 268 seconds]
sauvin has joined #lisp
chocimir has joined #lisp
FreeBirdLjj has joined #lisp
gxt has quit [Ping timeout: 240 seconds]
nika has joined #lisp
refpga has joined #lisp
refpga has quit [Remote host closed the connection]
marusich has quit [Quit: Leaving]
shangul has quit [Ping timeout: 272 seconds]
Cymew has joined #lisp
shangul has joined #lisp
flamebeard has joined #lisp
jprajzne has joined #lisp
gxt has joined #lisp
Roland2 has joined #lisp
mjsir911 has quit [Ping timeout: 246 seconds]
shangul has quit [Ping timeout: 240 seconds]
shangul has joined #lisp
mjsir911 has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
<galdor> $365 for something which is probably not fixable in 1-2 hours is depressing
<galdor> I wish company using CL would start investing real money in this kind of thing
<Nilby> Some very rare person already familiar with it might be able to do it in a few days, but I spent more than that just educating myself and doing background research.
<Nilby> Also, in my opinion, doing it properly means making patches to CFFI.
<_death> cffi can do that with libffi, though I had to patch things a bit to make things work for my use case
<Nilby> Yes, but it isn't an ideal solution. It is hard to compile and find for some platforms, and then it dynamically creates a function call, which could "easily" just be compiled in.
<_death> sure
knicklux has joined #lisp
<Nilby> Also CCL can do it. But only with the native FFI.
wxie has joined #lisp
<Nilby> It's extra maddening because passing C structs by value is usually stupid anyway, and C struct layout can have a lot of edge cases.
<emaczen> Nilby: Will you look at this and give me a few suggestions? I am stumped: https://plaster.tymoon.eu/view/1646#1648
<emaczen> galdor: How much money does it need to get someone to fix it?
<Nilby> Ok, just a sec..
<emaczen> Nilby: Thanks, I think the biggest not is that test4 is the same as test3 (test3 works!) except test4 is using a C struct, which should rule out my other code from being problematic
<emaczen> Nilby: Which to me would mean the most likely error is in the definition of the C struct for libffi
<emaczen> note*
<Nilby> Oh boy. Just looking at this is giving me bad memories of much crashing
<Shinmera> galdor: It's more than 0$.
nonlinear[m] has quit [*.net *.split]
katco has quit [*.net *.split]
beaky has quit [*.net *.split]
grumpyvegetable has quit [*.net *.split]
asedeno has quit [*.net *.split]
lieven has quit [*.net *.split]
copec has quit [*.net *.split]
Grue`` has quit [*.net *.split]
Grauwolf has quit [*.net *.split]
spal has quit [*.net *.split]
heredoc has quit [*.net *.split]
hiredman has quit [*.net *.split]
sbryant has quit [*.net *.split]
mfiano has quit [*.net *.split]
newcup has quit [*.net *.split]
trn has quit [*.net *.split]
gingerale has quit [*.net *.split]
null_ptr has quit [*.net *.split]
housel has quit [*.net *.split]
karstensrage has quit [*.net *.split]
lbtjp has quit [*.net *.split]
vidak` has quit [*.net *.split]
larme has quit [*.net *.split]
keep-learning[m] has quit [*.net *.split]
vydd has quit [*.net *.split]
jackhill has quit [*.net *.split]
jasom has quit [*.net *.split]
gabc has quit [*.net *.split]
eagleflo_ has quit [*.net *.split]
fiddlerwoaroof_ has quit [*.net *.split]
drot has quit [*.net *.split]
<emaczen> Yeah, the error I get is an Unhandled memory fault at #x0 to during the ffi:ffi-call
abbe has quit [*.net *.split]
Zotan has quit [*.net *.split]
beaky has joined #lisp
stylewarning has quit [Ping timeout: 240 seconds]
EuAndreh[m] has quit [Ping timeout: 246 seconds]
eriix[m] has quit [Ping timeout: 250 seconds]
no-defun-allowed has quit [Ping timeout: 250 seconds]
LdBeth has quit [Ping timeout: 245 seconds]
malaclyps[m] has quit [Ping timeout: 246 seconds]
thecoffemaker has quit [Ping timeout: 240 seconds]
djeis[m] has quit [Ping timeout: 252 seconds]
stylewarning has joined #lisp
Gnuxie[m] has quit [Ping timeout: 264 seconds]
null_ptr has joined #lisp
vidak` has joined #lisp
gabc has joined #lisp
housel has joined #lisp
abbe has joined #lisp
jasom has joined #lisp
fiddlerwoaroof_ has joined #lisp
jackhill has joined #lisp
eagleflo_ has joined #lisp
Zotan has joined #lisp
larme has joined #lisp
lbtjp has joined #lisp
vydd has joined #lisp
karstensrage has joined #lisp
drot has joined #lisp
dkrm has quit [Ping timeout: 268 seconds]
thecoffemaker has joined #lisp
<Nilby> My recommendation would be to start with an easier struct. Like something with only a couple members. If there's one little thing out of place, you'll have trouble.
dkrm has joined #lisp
<Nilby> For the x86_64 abi sometimes struct member values that can fit in 64 bit words are just put in registers, but sometimes it points to the stack, so for anything complex it usually involves doing some stack allocating.
<Nilby> But for small structs, there's just like immediate values.
<Nilby> I'm sorry I can't immediately tell anything.
<emaczen> Nilby: What would be a simpler struct than two uint64s?
<Nilby> But one approach might be to get CCL to successfully make the call, and observe it very carefully. Or you could carefully observe objective C in the debugger.
<Nilby> Hmm I guess you're right, that'a about as simple as it gets.
<emaczen> Or what exactly makes this struct not simple? I would think of it as just a 16 byte block -- pretty simple
<emaczen> oh, your reply -- nvm
<Nilby> Is this on MacOS?
<emaczen> No
<emaczen> x86_64 linux
nika has quit [Read error: Connection reset by peer]
nika has joined #lisp
chocimir has quit [Ping timeout: 258 seconds]
<galdor> emaczen: at less than 4 digits, I fail to see anyone investing real time and energy on it, given the fact that if it was trivial, it would already be done
terpri has quit [Remote host closed the connection]
<galdor> and since some CL implementations need patching (+ cffi to use it instead of libffi, good luck to have cffi updated), you're looking at significant work
terpri has joined #lisp
cl-arthur has quit [Read error: Connection reset by peer]
patrixl has quit [Quit: Leaving.]
scymtym has joined #lisp
nika has quit [Read error: Connection reset by peer]
cl-arthur has joined #lisp
gko_ has joined #lisp
nika_ has joined #lisp
<Nilby> I found my notes on it but it's for windows and ccl, and filled with expletives, so I don't think it will help.
cl-arthur has quit [Remote host closed the connection]
<emaczen> hah, I think I'm going to have to try using CCL with its ability to handle C structs...
<Nilby> Here's I think a comment from CCL that I found educational https://plaster.tymoon.eu/view/1653#1653
<emaczen> Why does CCL have it done while SBCL doesn't?
<Shinmera> Because nobody did it for SBCL yet? Why else
<beach> Heh!
<emaczen> Shinmera: There are probably some technical/market reasons
<galdor> I think you do not really understand how most opensource works
<Shinmera> The technical reason is that structs by value is a fucking mess in C and it's a pain to implement.
<Shinmera> So nobody felt like doing it.
keep_learning has joined #lisp
<Nilby> Exactly. It's even worse if you try to support 32 bit architectures.
<emaczen> galdor: I don't
<galdor> ok my bad
<galdor> people usually work on what interests them, or on things they need for they personal projects
<galdor> sometimes company pay for development because they need it
<galdor> some devs will write some code because someone asked just to be nice, it happens
<Nilby> In the case of CCL, Clozure had customers.
<galdor> so if something is not developed, it's usually because no one needed it badly enough or it's such a PITA no one want to put their arm in the meat grinder
<emaczen> galdor: Of course, I just saw that the bounty was originally filed as a bug/issue 10 years ago, then 7 months ago people put up $70 and now it is at $365 -- The specifics that you gave of 4 digits is what I really wanted to know
<Nilby> But for SBCL, only google, reddit, and ycombinitor used it, so.
<galdor> reddit does not use lisp anymore
<galdor> YC run on some weird custom stuff running above mzscheme iirc
<Shinmera> emaczen: The bounty went up because the bounty for CCL's PLNs was so successful I thought we could do it again for this problem that does affect me to some extent.
<galdor> Google pays for a SBCL dev, but afaik it is for what *they* need for ex-ITA stuff
<galdor> and about the 4 digits, I'm quoting a european monthly salary
<emaczen> Shinmera: PLN?
<jackdaniel> package-local nicknames
<galdor> no one is patching something as tricky in SBCL, + CFFI support for what is barely 1 or 2 days of salary
<jackdaniel> galdor: not all efforts are salary-driven
<galdor> of course not, but since it has not been implemented in 10 years, there is little chance of it happening because someone is bored one weekend
oxum_ has joined #lisp
<Nilby> Someone at yc said he was making an "arc" on sbcl to run HN
oxum has quit [Read error: Connection reset by peer]
<galdor> there's nothing wrong with it, it's just that generally if you want something done in the opensource world, you can either pay or do it yourself
* jackdaniel can testify, that many kind souls help him by fixing issues of their projects when he asks them nicely
<galdor> again, it happens, but you cannot really count on it
<jackdaniel> you can't count that money will do the job either
<jackdaniel> same with your own effort
<jackdaniel> so this point is a moot
<Nilby> I only started working on it out of extreme conditions of trapped at my friend'ss house with a broken laptop and only a windows machine. So I was prepared to suffer.
gingerale has joined #lisp
sbryant has joined #lisp
newcup has joined #lisp
hiredman has joined #lisp
spal has joined #lisp
asedeno has joined #lisp
copec has joined #lisp
Grauwolf has joined #lisp
lieven has joined #lisp
grumpyvegetable has joined #lisp
Grue`` has joined #lisp
heredoc has joined #lisp
trn has joined #lisp
mfiano has joined #lisp
<jackdaniel> sounds like a good beginning of a book :)
spal has quit [Max SendQ exceeded]
spal has joined #lisp
zaquest has quit [Quit: Leaving]
<emaczen> Nilby: In that note you showed me it says sizes of 8 16 ... below that 1-4 passed in regs
<emaczen> Does that mean that the fields are passed in registers?
nckx has quit [Ping timeout: 268 seconds]
<Nilby> Yes, sometimes, depending on the sizes.
q3d has joined #lisp
<emaczen> Since NSRange is 16 bytes it would fall into that category
nckx has joined #lisp
<Nilby> Like immediate values.
<emaczen> Nilby: Would you guess that this is why I am getting an unhandled memory fault?
<Nilby> You can get that from nearly anything. If one bit/byte is off.
<Nilby> But usually it's just the pointer is wrong, or it thinks something is a pointer that's not. Usually the error has the value which you can sometimes compare, by looking at the call it -tries- to create
<emaczen> It just gives me #x0 and bogus stack frame
z147x has joined #lisp
edgar-xyz has joined #lisp
<Nilby> Nice. I usually just mash the stack till it works. There's finite combination of places to put values, then jump. You'll get some memory error until it works!
edgar-rft has quit [Ping timeout: 240 seconds]
<emaczen> Nilby: Unfortunately, I'm not too accustomed to lower level programming... There were a number of times that I messed up pointer of pointers in CFFI -- It can be tricky working through several interfaces too
<emaczen> Although I like the way CFFI handles C -- it makes more sense to me than C
edgar-xyz has quit [Client Quit]
wxie has quit [Ping timeout: 260 seconds]
edgar-rft has joined #lisp
_whitelogger has joined #lisp
davepdotorg has joined #lisp
emys has joined #lisp
q3d has quit [Ping timeout: 260 seconds]
wxie has joined #lisp
zaquest has joined #lisp
whiteline has quit [Ping timeout: 240 seconds]
emys has quit [Ping timeout: 246 seconds]
<phoe> Good news: I've merged ACL support into trivial-package-local-nicknames.
<phoe> Bad news: there are some tpln test failures on ACL. Any ACL user wants to investigate these?
emys has joined #lisp
whiteline has joined #lisp
<Shinmera> phoe: wouldn't it make more sense to contact support about them?
emys has quit [Ping timeout: 268 seconds]
heisig has joined #lisp
<phoe> Shinmera: it would, but I still need a little bit of help analyzing each of the test failures and producing proper bugtickets. That, or I'll need more time to properly figure all that out myself.
wxie has quit [Ping timeout: 258 seconds]
tiwEllien has joined #lisp
emys has joined #lisp
rumbler31 has quit [Ping timeout: 268 seconds]
emys has quit [Ping timeout: 248 seconds]
frgo has quit [Ping timeout: 268 seconds]
knicklux has quit [Remote host closed the connection]
davepdotorg has quit [Ping timeout: 268 seconds]
davepdotorg has joined #lisp
amerlyq has joined #lisp
EvW has joined #lisp
frgo has joined #lisp
emaczen has quit [Ping timeout: 265 seconds]
davepdotorg has quit [Remote host closed the connection]
longshi has joined #lisp
davepdotorg has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
cosimone has joined #lisp
cosimone has quit [Quit: Terminated!]
nika_ has quit []
cosimone has joined #lisp
jmercouris has joined #lisp
Nilby has quit [Read error: Connection reset by peer]
tiwEllien has quit [Ping timeout: 246 seconds]
brown121408 has joined #lisp
brown121407 has quit [Ping timeout: 272 seconds]
frgo has quit [Ping timeout: 260 seconds]
stepnem has joined #lisp
stepnem_ has quit [Ping timeout: 260 seconds]
fengshaun_ has quit [Ping timeout: 258 seconds]
m00natic has joined #lisp
ebrasca has joined #lisp
fengshaun has joined #lisp
william1_ has joined #lisp
frgo has joined #lisp
papachan has joined #lisp
z147x has quit [Remote host closed the connection]
z147x has joined #lisp
dddddd has joined #lisp
ggole has joined #lisp
jonatack has quit [Ping timeout: 272 seconds]
longshi has quit [Ping timeout: 246 seconds]
Roland2 has quit [Quit: Leaving.]
Odin- has quit [Ping timeout: 260 seconds]
brown121408 has quit [Read error: Connection reset by peer]
brown121408 has joined #lisp
|Pirx_off| has joined #lisp
LdBeth has joined #lisp
msk has quit [Remote host closed the connection]
msk has joined #lisp
Odin- has joined #lisp
frgo has quit [Ping timeout: 240 seconds]
statusf90 has joined #lisp
montaropdf has joined #lisp
mingus has joined #lisp
Odin- has quit [Ping timeout: 252 seconds]
troydm has quit [Ping timeout: 240 seconds]
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life has joined #lisp
frodef has joined #lisp
<frodef> Hi all
<frodef> Any tips on preferred library for testing?
william1_ has quit [Ping timeout: 260 seconds]
<phoe> frodef: there's only one rule: don't write your own testing library
<phoe> other than that, any particular functionality you're looking for?
holycow has joined #lisp
<jmercouris> I suggest Prove or Rove, both are fine for 99% of use cases
<frodef> phoe: It's why I ask :) Just looking for basic "verify this form returns these values"
<frodef> jmercouris: I see now cliki recommends rove or fiveam, guess I'll check out rove.
<frodef> ..which leads me to another question, any quick words on what "roswell" is?
<phoe> roswell is an implementation manager
cosimone has quit [Quit: Terminated!]
<jmercouris> Roswell is a CL distribution manager, think of it like RVM
<jmercouris> s/distribution/implementation
<phoe> which is a good idea in theory but the fact it has a core written in C makes me wonder if I should ever recommend it for anything more than auto-installing new SBCL versions by means of `ros install sbcl`
<phoe> (and even that failed me multiple times in the past, especially on Windows)
<jmercouris> I do not reccommend Roswell, personally
<frodef> ok, not anything like quicklisp, then.
<phoe> not really
oxum has joined #lisp
<frodef> thanks!
<phoe> quicklisp autodownloads ASDF systems; roswell manages and autodownloads CL implementations.
<frodef> right.
oxum_ has quit [Read error: Connection reset by peer]
<phoe> roswell sets up quicklisp as a part of its initialization.
troydm has joined #lisp
jonatack has joined #lisp
<jackdaniel> I was curious who put rove on recommended list for unit tests, but apparently "recent changes" on cliki is limited to only few months
<jmercouris> it wasn't me
<jmercouris> you have a problem with Rove?
<jackdaniel> I did not said I have a problem with rove, I've said.. well, you have it written above
<jackdaniel> or below, depends on irc client I suppose
<jmercouris> I see
<jackdaniel> oh, there is a separate "History"
<jackdaniel> nvm my remark about cliki
refpga has joined #lisp
kajo has quit [Ping timeout: 260 seconds]
kajo has joined #lisp
jonatack has quit [Ping timeout: 246 seconds]
no-defun-allowed has joined #lisp
djeis[m] has joined #lisp
Irenes[m] has joined #lisp
nonlinear[m] has joined #lisp
tadni has joined #lisp
katco has joined #lisp
EuAndreh[m] has joined #lisp
malaclyps[m] has joined #lisp
keep-learning[m] has joined #lisp
eriix[m] has joined #lisp
Gnuxie[m] has joined #lisp
lucasb has joined #lisp
seok has joined #lisp
drl has joined #lisp
frgo has joined #lisp
orivej has joined #lisp
wxie has joined #lisp
flamebeard has quit [Remote host closed the connection]
flamebeard has joined #lisp
mingus has quit [Ping timeout: 248 seconds]
frodef has quit [Ping timeout: 246 seconds]
<beach> frodef: I use a standard test system called ASSERT.
wxie has quit [Ping timeout: 240 seconds]
jonatack has joined #lisp
<beach> It works well with all kinds of testing paradigms, including my favorite one, namely randomly generated operations and comparison to a simple but inefficient implementation.
dsp- has joined #lisp
flamebeard has quit [Ping timeout: 265 seconds]
rwcom3 has joined #lisp
rwcom has quit [Ping timeout: 268 seconds]
rwcom3 is now known as rwcom
_jrjsmrtn has joined #lisp
theruran has joined #lisp
mingus has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 258 seconds]
FreeBird_ has joined #lisp
random-nick has joined #lisp
FreeBirdLjj has quit [Ping timeout: 268 seconds]
ljavorsk has joined #lisp
asdf_asdf_asdf has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
FreeBird_ has quit [Ping timeout: 258 seconds]
FreeBirdLjj has joined #lisp
phoe has quit [Quit: leaving]
phoe has joined #lisp
Bike has joined #lisp
refpga has quit [Remote host closed the connection]
flamebeard has joined #lisp
holycow has quit [Quit: leaving]
FreeBird_ has joined #lisp
xkapastel has joined #lisp
FreeBirdLjj has quit [Ping timeout: 272 seconds]
flamebeard has quit [Ping timeout: 258 seconds]
drl has quit [Quit: Ex-Chat]
pfdietz has joined #lisp
frodef has joined #lisp
refpga has joined #lisp
longshi has joined #lisp
papachan has quit [Quit: Leaving]
<XenophonF> anyone here familiar with the 40ants gen-deps-system tool?
<phoe> XenophonF: what's the issue?
<XenophonF> it's choking on a my package's reference to cl-json, which in Lisp has a package name of "json", not "cl-json"
<XenophonF> looks something like (DEFPACKAGE ... (:IMPORT-FROM #:JSON)... )
<XenophonF> roger that
<phoe> Alexander is active on GitHub, so he should respond quickly
<XenophonF> most of the problems I've encountered up to this point are due to my ignorance, not bugs, so I thought I'd start there ;)
oldtopman has quit [Remote host closed the connection]
<XenophonF> I'll come up with a test case and file a ticket shortly.
<XenophonF> thanks
<ebrasca> How to get Source file of some function?
<jackdaniel> in slime put a cursor on a symbol being a name of this function and type C-.
<phoe> M-. with the emacs point over its name
<jackdaniel> M-. that is
<ebrasca> I need some common lisp function for this.
<beach> clhs function-lambda-expression
<beach> ebrasca: But it is obviously not guaranteed to work. If it were, you could use the personal edition of LispWorks, and figure out all the source code.
<phoe> #'swank:find-definition-for-thing
flamebeard has joined #lisp
<jackdaniel> for some reason always when I try to check out the sbcl function I log into Xof's computer :-)
longshi has quit [Ping timeout: 268 seconds]
_whitelogger has joined #lisp
<beach> Check save-lisp-and-die.
<seok> Ah nice
<seok> is the max heap size carried? or can I set it during deployment
<phoe> that's some scripts around uiop:dump-image
<phoe> again, implementation-dependent
<seok> I am trying to move my webserver to cloud, and trying to figure out best way to deploy
<jackdaniel> if you have a clean build process then you may want to build it on the host machine
<jackdaniel> moving images between different hosts may be tricky
statusf90 has quit [Ping timeout: 245 seconds]
<seok> Right, that might be a good idea
<jackdaniel> (putting aside architecture differences, libraries you depend on may be in different locations, so image may get confused, signals may be different so you'd need to do a cold-reinit etc)
<phoe> I tend to run from source
<phoe> even when deploying onto servers
<jackdaniel> n.b I know as a fact that on AWS instances mutexes were not fair under SBCL, I think that it could be an emulation problem, but we've never got down the rabbit hole to find what's the real problem)
<jackdaniel> speaking of a "cloud" - that's just a wet fog which does not belong to you, if you ask me ;)
Bad_K4rMa has joined #lisp
<seok> well how else would you start a website from your garage? haha
refpga has quit [Remote host closed the connection]
kajo has quit [Ping timeout: 246 seconds]
jmercouris has quit [Ping timeout: 268 seconds]
jonatack has quit [Ping timeout: 268 seconds]
refpga has joined #lisp
orivej has joined #lisp
frgo has quit [Read error: Connection reset by peer]
frgo has joined #lisp
<pfdietz> Having fun with shared-initialize and with boa lambda lists.'
william1_ has joined #lisp
jonatack has joined #lisp
<Bike> how do those intersect, exactly
<pfdietz> Trying to add an argument to the constructor that says "default to the slots in this object"
dale__ has joined #lisp
dale__ is now known as dale
<pfdietz> (make-instance 'foo :original obj-to-be-copied :bar 17) ==> copes obj-to-be-copied, but sets the bar slot to 17 instead.
<ebrasca> phoe: How to use swank:find-definition-for-thing ?
<ebrasca> phoe: From repl
<Bike> where do boa constructors come in?
<pfdietz> Boa lambda lists let you add extra keyword arguments, and use them in default values for others.
<pfdietz> So you can define a boa constructor that works much the same way
<pfdietz> (make-foo :original obj-to-be-copied :bar 17)
<pfdietz> The boa part is degenerate, as there are no boa arguments there.
jonatack has quit [Ping timeout: 240 seconds]
<pfdietz> clhs 3.4.6
asdf_asdf_asdf has joined #lisp
refpga has quit [Remote host closed the connection]
cdegroot has joined #lisp
<pfdietz> (defstruct (foo (:constructor make-foo (&key (original nil original-p) (bar (if original-p (foo-bar original) nil)))) bar)
<phoe> ebrasca: just call it
<phoe> (swank:find-definition-for-thing #'foo)
jack_rabbit has joined #lisp
dddddd has quit [Ping timeout: 260 seconds]
<ebrasca> It gives me error (:ERROR "Error: The value \"#<CLOSURE (:MACRO SETF) {1000C4388B}>\" is not of type SYMBOL")
<ebrasca> I have try (swank:find-definition-for-thing #'setf)
<ebrasca> phoe: ^
william1_ has quit [Ping timeout: 240 seconds]
<phoe> (FUNCTION SETF) is illegal
<phoe> you want (macro-function 'setf)
<phoe> (swank:find-definition-for-thing (macro-function 'setf)) works for me
gxt has quit [Ping timeout: 240 seconds]
<ebrasca> with this I get : (:ERROR "Error: The value \"#<FUNCTION (MACRO-FUNCTION SETF) {223DCFCB}>\" is not of type SYMBOL")
smazga has joined #lisp
gravicappa has joined #lisp
oxum has quit [Ping timeout: 252 seconds]
EvW has quit [Ping timeout: 248 seconds]
shifty has quit [Ping timeout: 240 seconds]
Cymew has quit [Ping timeout: 258 seconds]
<Shinmera> (ql:quickload :definitions) (definitions:find-definitions 'cl:setf)
|Pirx_off| is now known as |Pirx|
LiamH has joined #lisp
refpga has joined #lisp
jmercouris has joined #lisp
EvW has joined #lisp
oxum has joined #lisp
montaropdf has quit [Quit: ERC (IRC client for Emacs 26.3)]
oxum has quit [Ping timeout: 268 seconds]
<ebrasca> Shinmera: It is not giving me in what file it is.
ljavorsk_ has joined #lisp
<Shinmera> the implementation might not know.
ljavorsk has quit [Ping timeout: 265 seconds]
<ebrasca> This "(swank:find-definition-for-thing (symbol-function 'command-inspect))" does what i need.
<Shinmera> but then I don't know what you're doing either. Did you actually try to resolve the definition's source location with definitions:source-location ?
igemnace has joined #lisp
flamebeard has quit []
EvW has quit [Ping timeout: 245 seconds]
ebrasca has quit [Remote host closed the connection]
ebrasca has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
jmercouris has quit [Ping timeout: 265 seconds]
Bad_K4rMa has quit [Ping timeout: 268 seconds]
msk has quit [Quit: Leaving]
jonatack has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
ljavorsk_ has quit [Ping timeout: 272 seconds]
longshi has joined #lisp
ebrasca has quit [Remote host closed the connection]
frgo has quit [Ping timeout: 268 seconds]
ebrasca has joined #lisp
FreeBird_ has quit [Remote host closed the connection]
frgo has joined #lisp
harovali has joined #lisp
longshi has quit [Ping timeout: 272 seconds]
harovali1 has quit [Ping timeout: 268 seconds]
clothespin has joined #lisp
frgo has quit [Ping timeout: 268 seconds]
slyrus_ has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
slyrus has quit [Ping timeout: 258 seconds]
ebzzry has quit [Ping timeout: 265 seconds]
Codaraxis has quit [Ping timeout: 265 seconds]
davepdotorg has quit [Ping timeout: 246 seconds]
klltkr has joined #lisp
tiwEllien has joined #lisp
hhdave has quit [Quit: hhdave]
gko_ has quit [Ping timeout: 240 seconds]
william1_ has joined #lisp
karlosz has quit [Quit: karlosz]
oxum has joined #lisp
m00natic has quit [Remote host closed the connection]
jmercouris has joined #lisp
vaporatorius__ has quit [Quit: Leaving]
vaporatorius has joined #lisp
ngqrl has quit [Quit: Connection closed for inactivity]
bitmapper has joined #lisp
tiwEllien has quit [Ping timeout: 265 seconds]
DGASAU has quit [Read error: Connection reset by peer]
Nilby has joined #lisp
DGASAU has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
william1_ has quit [Ping timeout: 265 seconds]
cl-arthur has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
slyrus__ has joined #lisp
<jmercouris> froggey: have you tried Closure in Mezzano?
slyrus_ has quit [Ping timeout: 258 seconds]
gary has joined #lisp
gary is now known as Guest64556
brown121408 has quit [Ping timeout: 246 seconds]
Guest64556 has quit [Client Quit]
orivej has quit [Ping timeout: 268 seconds]
brown121407 has joined #lisp
<froggey> jmercouris: no, what is it?
<jackdaniel> it was an attempt to write a browser in CLIM
ag4xo has joined #lisp
<jackdaniel> I don't know how "loadable" it is
rippa has joined #lisp
<jmercouris> what jackdaniel said
LiamH has quit [Quit: Leaving.]
<froggey> might be interesting to try sometime
<jmercouris> I'm just curious if it works
<jmercouris> ebrasca and I have been talking about porting Next to work on Mezzano
<jmercouris> trying to figure out how to do it best, I was thinking Closure may be a good starting point
<jackdaniel> isn't the rendering part webkit (which is not lisp)?
igemnace has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
<jmercouris> yeah, that's the problem, the rendering part is a webkit port, or webengine port depending on your choice
<Xach> port clang to common lisp, build natively
<jmercouris> lol
<froggey> heh
<jmercouris> and I was thinking closure would be a good renderer since it is fully lisp
<jmercouris> jackdaniel: or were you saying that closure uses webkit to calculate position of things etc?
clothespin has quit [Ping timeout: 260 seconds]
<jackdaniel> Xach: froggey created https://github.com/froggey/Iota , so I wouldn't be surprised if he did that ,)
<froggey> not really possible because of the javascript jit
<Xach> great excuse to use cl-js!
<jmercouris> well, yeah we'd have to make a JS runtime
<jackdaniel> jmercouris: no, I've just said that "porting" your project to "pure" CL is not possible
<jmercouris> anyways, first version without JS
<Xach> there is a js runtime in common lisp already
<jackdaniel> (given that it indeed is build on top of webkit)
brown121407 has quit [Read error: Connection reset by peer]
<jmercouris> jackdaniel: sure it is, we have to make a renderer
brown121407 has joined #lisp
<jackdaniel> or in other words, porting would be essentialy writing a web browser
<Xach> i have long wished to make a project for non-CL-nerds which was scripted with cl-js
<Xach> someday...
<jmercouris> porting would be writing a web engine, not a web browser
<jmercouris> a web browser is a chrome + a web engine
gigetoo has quit [Read error: No route to host]
<jmercouris> Next is a chrome, which uses either webengine or webkit as its web engine
<jmercouris> the confusion comes from the creative Google engineers
refpga has quit [Remote host closed the connection]
<jackdaniel> to me "web engine" is what constitues the majority of work (ux is important of course, I'm talking about time requirements though)
gigetoo has joined #lisp
<jmercouris> web engine is an unfathomable amount of work, yes
orivej has joined #lisp
slyrus_ has joined #lisp
<jackdaniel> in other words you say: "we have 0.01%, all we should do is to port another 99.99%", htat's what I mean that you'd have to write the browser from scratch
<jackdaniel> I've meant when I've said*
<jackdaniel> (again, I'm not saying that UX is not important, for some it might be even the most important thing)
ag4xo has left #lisp [#lisp]
ag4xo has joined #lisp
tiwEllien has joined #lisp
slyrus__ has quit [Ping timeout: 265 seconds]
<jmercouris> making a renderer that works without JS should not be impossible
<jmercouris> it could be done within a year
sjl_ has joined #lisp
[X-Scale] is now known as X-Scale
moon-child has quit [Quit: ZNC 1.7.4 - https://znc.in]
jmercouris has quit [Ping timeout: 268 seconds]
slyrus__ has joined #lisp
jmercouris has joined #lisp
moon-child has joined #lisp
slyrus_ has quit [Ping timeout: 268 seconds]
slyrus has joined #lisp
slyrus__ has quit [Ping timeout: 265 seconds]
bendersteed has joined #lisp
vlatkoB has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
jmercouris has quit [Ping timeout: 265 seconds]
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jmercouris has joined #lisp
pjb has joined #lisp
<Nilby> I wish I could make my strings with make-string, but "Cannot redefine standard type EXTENDED-CHAR." :(
<Xach> Nilby: how does make-string prompt that error?
<Nilby> (defclass fu-char (extended-char) (fu :initarg :fu))
<Nilby> Or rather : (defclass fu-char (extended-char) ((fu :initarg :fu)))
jmercouris has quit [Ping timeout: 258 seconds]
<Xach> Nilby: so when you "my strings" you mean something other than standard strings?
<Nilby> Well, yes and no. Extended strings!
<Nilby> Pretty much I wan the use case that extended characters were put in there for, that of characters with other attributes.
<Nilby> But I guess only the implementation can do it.
sauvin has quit [Read error: Connection reset by peer]
<Nilby> Strings of extended-char would still be strings.
cartwright has quit [Ping timeout: 240 seconds]
jmercouris has joined #lisp
dddddd has joined #lisp
varjag has joined #lisp
cartwright has joined #lisp
amerlyq has quit [Quit: amerlyq]
slyrus_ has joined #lisp
cosimone has joined #lisp
slyrus has quit [Ping timeout: 265 seconds]
ggole has quit [Quit: Leaving]
Codaraxis has joined #lisp
jmercouris has quit [Ping timeout: 258 seconds]
klltkr has joined #lisp
cosimone has quit [Quit: Quit.]
EvW has joined #lisp
zooey has quit [Ping timeout: 240 seconds]
zooey has joined #lisp
fengshaun_ has joined #lisp
narimiran has quit [Ping timeout: 260 seconds]
fengshaun has quit [Ping timeout: 265 seconds]
Ven`` has joined #lisp
narimiran has joined #lisp
tiwEllien has quit [Ping timeout: 260 seconds]
Codaraxis has quit [Read error: Connection reset by peer]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
longshi has joined #lisp
clothespin has joined #lisp
Codaraxis has joined #lisp
cosimone has joined #lisp
jmercouris has joined #lisp
Odin- has joined #lisp
scymtym has quit [Ping timeout: 248 seconds]
bendersteed has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
ebrasca has quit [Remote host closed the connection]
ebrasca has joined #lisp
terpri_ has joined #lisp
klltkr has quit [Quit: Textual IRC Client: www.textualapp.com]
Odin- has quit [Read error: Connection reset by peer]
terpri has quit [Ping timeout: 245 seconds]
Odin- has joined #lisp
<pjb> Only the implementation could allow it.
<pjb> Nilby: you will have to implement your own make-string function along with all the string operators, to implement them with your strings, and fall back to CL operators for normal strings. Shadow, define your extended-string-lisp package, etc.
<pjb> seok: you can see an example in http://github.com/informatimago/hw
<pjb> seok: (file generate.lisp)
shangul has quit [Ping timeout: 265 seconds]
narimiran has quit [Ping timeout: 268 seconds]
<Nilby> pjb: Did that. My char-int returns 18138591213958233556254808, so it's probably better that I can't do it anyway.
xantoz_ has joined #lisp
DGASAU has quit [Remote host closed the connection]
DGASAU has joined #lisp
<pjb> Nilby: happily, there are very few string specific functions. Most are vector functions that will work on your vectors.
jdz has quit [Ping timeout: 265 seconds]
<Nilby> Yes. That makes it easier.
jdz has joined #lisp
shifty has joined #lisp
jack_rabbit has quit [Ping timeout: 265 seconds]
<Nilby> I'm very thankful that the old CL people thought about it. It means at least format can print my characters.
<pjb> Nilby: this is only by chance: a CL implementation could use not CL functions internally to implement CL functions.
Ven`` has quit [*.net *.split]
orivej has quit [*.net *.split]
gigetoo has quit [*.net *.split]
smazga has quit [*.net *.split]
cdegroot has quit [*.net *.split]
dsp- has quit [*.net *.split]
minion has quit [*.net *.split]
specbot has quit [*.net *.split]
mathrick has quit [*.net *.split]
jxy has quit [*.net *.split]
XenophonF has quit [*.net *.split]
CrazyEddy has quit [*.net *.split]
Posterdati has quit [*.net *.split]
cmatei has quit [*.net *.split]
emacsomancer has quit [*.net *.split]
epony has quit [*.net *.split]
mingus has quit [*.net *.split]
samebchase has quit [*.net *.split]
Colleen has quit [*.net *.split]
dxtr has quit [*.net *.split]
ck_ has quit [*.net *.split]
isoraqathedh has quit [*.net *.split]
brass has quit [*.net *.split]
xantoz has quit [*.net *.split]
HDurer has quit [*.net *.split]
galdor has quit [*.net *.split]
rotty has quit [*.net *.split]
surrounder has quit [*.net *.split]
MetaYan has quit [*.net *.split]
eeeeeta has quit [*.net *.split]
<pjb> Nilby: in some cases, it has. For example, to read lists, you cannot use READ, because of the dotted lists.
<pjb> READ or READ-DELIMITED-LIST. (the later is not READ-DELIMITED-LIST-OR-DOTTED-LISTS.
<phoe> wait a second pjb
<Nilby> No, it really works in every CL I've tested.
<phoe> (read-from-string "(1 . 2)")
<pjb> Nilby: to implement READ, you cannot use READ.
<pjb> Or to implement the #\( reader macro.
<Nilby> Well, yes, sort of, but only for structs.
<phoe> pjb: I don't understand the part "because of the dotted lists"
emaczen has joined #lisp
<emaczen> What is the equivalent of the address operator & from C in SBCL? I know about sb-alien:addr but I'm looking for something I think that would come from sb-sys:
asdf_asdf_asdf has quit [Ping timeout: 260 seconds]
<phoe> emaczen: what are you trying to get an address of?
<emaczen> I'm doing FFI stuff, so a C pointer
MetaYan has joined #lisp
papachan has joined #lisp
dsp- has joined #lisp
ck_ has joined #lisp
smazga has joined #lisp
gigetoo has joined #lisp
dxtr has joined #lisp
<pjb> emaczen: you cannot take the address of a lisp object, since they can move.
<phoe> pjb: that doesn't really answer my question. What is the issue of dotted pairs in READ?
XenophonF has joined #lisp
eeeeeta has joined #lisp
HDurer has joined #lisp
jxy has joined #lisp
<phoe> emaczen: in CFFI it's mem-ref
<pjb> phoe: READ uses the #\( reader macro to read dotted lists. READ cannot read dots. So #\( cannot use READ to read dotted lists.
<White_Flame> also, pinning can be a thing
<pjb> phoe: so an implementation needs to use an internal read-0/1 routine in both read and the #\( reader macro. See my reader.
emacsomancer has joined #lisp
<phoe> (with-input-from-string (s "(1 . 2)") (read s)) ;=> (1 . 2)
<phoe> wat
<pjb> phoe: of course, you can also implement #\( without this internal routine, but then you have to duplicate code.
<pjb> the point here is that the implementation #\( can use internal functions, not exported from CL.
Colleen has joined #lisp
<Nilby> emaczen: cffi:pointer-address does sb-sys:sap-int if that's what you mean?
<phoe> oh yes, that's correct
<phoe> emaczen: sb-sys:sap-ref-{8,16,32,64} ?
<emaczen> Nilby: No, like when you have a C variable and the function takes a pointer to that type you just pass the address of that variable with &
shifty has quit [Ping timeout: 265 seconds]
<White_Flame> just to be clear, are you trying to get the address of a lisp object, or of a C/alien object?
<emaczen> C object
<Shinmera> emaczen: int x; foo(&x); == (cffi:with-foreign-object (x :int) (cffi:foreign-funcall "foo" :pointer x))
<emaczen> Like if I wanted a pointer to a C string I've been mallocing a word block and pointing to the C string with sb-sys:sap-ref-sap
<emaczen> If that is the best way to do this then I guess I can make a macro to reduce the tedium
<Nilby> Both C & Lisp always have the address anyway. When you say &var in C, it's just saying don't do the weird thing of passing by value.
<phoe> wait a second though
<Nilby> So SAP in lisp is a pointer
<phoe> there's no concept of a "C variable" in Lisp
<phoe> the best you can have is raw allocated memory
<phoe> or, basically, a SAP
<phoe> so you can pass a SAP wherever a function expects a pointer
<phoe> since all pointers are effectively untyped in CFFI, you only specify their type when dereferencing them
asdf_asdf_asdf has joined #lisp
random-nick has quit [Ping timeout: 272 seconds]
z147x has quit [Remote host closed the connection]
<Nilby> All the sap-ref-* things are basically doing & what would be in C.
z147x has joined #lisp
<Nilby> But for Lisp objects.
notzmv has quit [Ping timeout: 260 seconds]
<emaczen> Nilby: Yea, C kind of provides a little syntactic shortcut -- I just made a macro
<emaczen> I thought there might have been something in sb-sys: since there is in sb-alien
<Nilby> Of course there's also sb-alien:deref
gravicappa has quit [Ping timeout: 268 seconds]
<Nilby> But that's a bit more complicated.
jmercouris has quit [Remote host closed the connection]
<Nilby> Or also in the "alien" package lingo theres: sb-alien:alien-sap
<asdf_asdf_asdf> What is question?
<phoe> asdf_asdf_asdf: there's channel logs available in the channel topic
<phoe> I find them useful to read up on context
<asdf_asdf_asdf> I don't know, which is question, but OK.
<Shinmera> This has nothing to do with Common Lisp.
jonatack has quit [Ping timeout: 248 seconds]
<phoe> this is some VC startup bullshit with three very nice puns at the end of the page
<no-defun-allowed> You haven't seen nothing if you think Clojure is the best at abstraction.
<no-defun-allowed> (also lol no MOP)
<aeth> papachan: ##lisp is for the "Lisp" family of languages, #lisp (this channel) is for "Common Lisp".
<aeth> papachan: I think you want to post that link to ##lisp instead
<LdBeth> gg
<aeth> (Whether or not Clojure is a Lisp because it doesn't use true conses for its syntax is a minor holy war on the Internet, but ##lisp's topic includes Clojure explicitly so it is on topic there.)
<aeth> (Even though in practice ##lisp mostly just #scheme part 2 since most Lisps are Schemes)
jonatack has joined #lisp
harovali has quit [Ping timeout: 268 seconds]
<Nilby> "I wish Lisp was more popular.", while holding monkey's paw. Mu-hahhaha. Clojure, is knocking.
<no-defun-allowed> Nilby: )^:
<emaczen> Does anyone know of a standard C function using struct tm that I can test passing by value
orivej has joined #lisp
scymtym has joined #lisp
CrazyEddy has joined #lisp
Ven`` has joined #lisp
specbot has joined #lisp
mathrick has joined #lisp
cdegroot has joined #lisp
samebchase has joined #lisp
brass has joined #lisp
cmatei has joined #lisp
minion has joined #lisp
Posterdati has joined #lisp
epony has joined #lisp
mingus has joined #lisp
galdor has joined #lisp
isoraqathedh has joined #lisp
surrounder has joined #lisp
rotty has joined #lisp
minion has quit [Disconnected by services]
minion has joined #lisp
specbot has quit [Disconnected by services]
specbot has joined #lisp
<Nilby> emaczen: There aren't any. Nor in unix/linux kernel, or most unix-ish C lib. MacOS/iOS and Windows, do though.
<phoe> emaczen: you could try writing your own trivial C function, prove that it works properly, and then compile it into a shared object that you then load.
epony has quit [Max SendQ exceeded]
epony has joined #lisp
<phoe> That would also mean that you have a minimal working PoC test case.
<phoe> As in, not dependent on any other foreign libs.
<emaczen> phoe: Yea, I've done some similar things
<emaczen> I thought about generating a new objc function for every one that passes/returns structs with a pointer
<papachan> aeth yeah iwould post it to ##lisp. so. sorry for this.
sjl_ has quit [Quit: WeeChat 2.3-dev]
<Nilby> Pass by struct seems like weird quirk/misunderstanding of C, which C++ solved by just letting you not have to type literal '&'.
sjl has quit [Quit: WeeChat 2.2-dev]
notzmv has joined #lisp
<emaczen> Does anyone think generating the equivalent objc methods with pointers instead of struct by values, and then compiling it as a shared object is too dirty? pjb: What do you suggest? fiddlerwoaroof_: what do you think?
<LdBeth> I’ve seen things more dirty than that
<Shinmera> emaczen: It's what I do in, for example, cl-steamworks
<Shinmera> Not with objc, but just c wrappers to unpack/repack the structs.
<emaczen> I just don't like that about 10% of all objc methods have a struct (really only NSRange NSPoint NSSize and NSRect)
<emaczen> Shinmera: About what percentage of functions use structs?
<Shinmera> there's three functions, so I just wrote it by hand.
<Nilby> And I think mostly because it's an optimization becuase those can fit in a register or a few registers.
<emaczen> Shinmera: Yeah, I did it once for a single objc method that I was overriding
<Shinmera> you can probably get away with a generic un/pack function that you pass a function pointer + args to or something, so you only have to write it for each type of struct to un/pack.
XenophonF has left #lisp [#lisp]
<emaczen> Nilby: What optimization?
<Nilby> Just that you don't have to do the extra de-reference if your struct can fit in a machine word or a couple of words.
<Nilby> That way you also don't have to worry about allocation, which we don't worry much about in Lisp anyway.
<Nilby> Note that they also "fixed" the issue in Swift.
<emaczen> Nilby: Elaborate please.
<pjb> emaczen: it depends on the ABI.
<Nilby> To pass a struct by pointer, you have to allocate it in stack or heap, and then dereference it at least once, probably more. To pass by value, if it's small enough you can just cram it in registers and then call the function.
longshi has quit [Ping timeout: 272 seconds]
<Nilby> It does vary with ABI, so the way that it works could theoretically vary based on which complier, but there is a fairly standard way that's documented in, for example the Intel archetecture. Note that a Lisp FFI may have to do multiple ABIs.
<emaczen> pjb: Why? I was just going to generate objc code by literally (with-open-file (format ) ....) then (run-program gcc ...) to compile it as a shared object
<asdf_asdf_asdf> Nilby, You mean (addr (slot (make-alien (struct your-struct)) 'slot1))?
<Nilby> I had the misfortune of coding in C a lot before any C compiler could pass by struct.
<pjb> emaczen: well, if you generate a simplier API, of course.
<Nilby> asdf_asdf_asdf: Sort of, yes.
Bike has quit [Quit: Bike]
<emaczen> pjb: For example, with -(void)drawRect:(NSRect)aRect I could define -(void)drawRectPointer:(NSRectPointer)ptr and the implementation of drawRectPointer: would just call drawRect: by dereferencing the pointer
quazimodo has quit [Ping timeout: 240 seconds]
<emaczen> Nilby: How did swift "fix" it?
quazimodo has joined #lisp
<Nilby> There are no pointers. Or at least you have to say the word "Unsafe" which is scary.
<Nilby> But of course saying there are no pointers, is not really true, just like in Lisp. But really more like: let the compiler figure it out.
<asdf_asdf_asdf> Nilby, you mean: https://cpy.pt/kDybbK2Y ?
quazimodo has quit [Ping timeout: 260 seconds]
<|Pirx|> java has this "inner classes" thing because they have no pointers, but they're really a pointer
quazimodo has joined #lisp
msk has joined #lisp
Nilby has left #lisp ["👽愛🆑"]
seok has quit [Remote host closed the connection]
Codaraxis_ has joined #lisp
Codaraxis has quit [Read error: Connection reset by peer]
slyrus__ has joined #lisp
slyrus_ has quit [Ping timeout: 268 seconds]
varjag has quit [Ping timeout: 268 seconds]
raghavgururajan has joined #lisp
davepdotorg has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
cosimone has quit [Quit: Quit.]
shifty has joined #lisp
pjb has joined #lisp
davepdotorg has quit [Ping timeout: 260 seconds]
statusf90 has joined #lisp
clothespin has quit [Ping timeout: 260 seconds]
Bike has joined #lisp
efm_ has joined #lisp
|Pirx| has quit [Ping timeout: 260 seconds]
Codaraxis_ has quit [Read error: Connection reset by peer]
harovali has joined #lisp
frodef has quit [Ping timeout: 268 seconds]
raghavgururajan has quit [Read error: Connection reset by peer]
shifty has quit [Ping timeout: 268 seconds]
shifty has joined #lisp
shifty has quit [Ping timeout: 272 seconds]
shifty has joined #lisp