<sjl>
i.e. given a function and a sequence, return a list of conses of ((function element) . element)
rumbler31 has joined #lisp
<_death>
that looks fine
<edgar-rft>
I think for elements of ((function element) . element) the code should read (cons `(,function ,el) el)
<Xach>
sjl: fsvo "nicer", (mapcar 'cons (mapcar function list) list)
<sjl>
Hm, yeah, that's slightly sorter at the expense of two traversals
<Xach>
aye
<sjl>
*shorter
<Xach>
also, not sequence-oriented
<sjl>
true. in my case list-only is fine, but if I'm going to make a util for it I may as well make it work on sequences too I guess
igemnace has joined #lisp
terpri has quit [Ping timeout: 260 seconds]
<Xach>
another option, (defun funcons (fun) (lambda (object) (cons (funcall fun object) object))), then (mapcar (funcons function) list), but who knows
ex_nihilo has joined #lisp
Bhartrihari has left #lisp [#lisp]
Bhartrihari has joined #lisp
terpri has joined #lisp
kamid has quit [Quit: WeeChat 2.9]
slyrus has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
tamarindo has quit [Ping timeout: 240 seconds]
tamarindo has joined #lisp
cyberbanjo has quit [Ping timeout: 258 seconds]
ex_nihilo has quit [Ping timeout: 260 seconds]
epony has quit [Quit: surprise quite message, just joking.. upgrades as usual]
epony has joined #lisp
wxie has quit [Remote host closed the connection]
davisr has joined #lisp
luckless_ has quit [Ping timeout: 240 seconds]
wxie has joined #lisp
shifty has joined #lisp
luckless_ has joined #lisp
Stanley00 has joined #lisp
Alfr_ has joined #lisp
Alfr has quit [Ping timeout: 260 seconds]
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<beach>
Good morning everyone!
quazimodo has quit [Remote host closed the connection]
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
Bike has quit [Quit: Lost terminal]
judson_ has joined #lisp
kiroul has quit [Ping timeout: 256 seconds]
madage has quit [Ping timeout: 240 seconds]
madage has joined #lisp
pankajsg has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
madage has quit [Ping timeout: 240 seconds]
aeth has quit [Read error: Connection reset by peer]
madage has joined #lisp
aeth has joined #lisp
madage has quit [Ping timeout: 240 seconds]
renzhi has quit [Ping timeout: 260 seconds]
madage has joined #lisp
shifty has quit [Ping timeout: 258 seconds]
shifty has joined #lisp
aartaka has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
uhrenmacher has joined #lisp
uhrenmacher has quit [Remote host closed the connection]
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
drl has joined #lisp
ex_nihilo has joined #lisp
Jeanne-Kamikaze has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
wxie has joined #lisp
Bhartrihari has left #lisp ["Disconnected: closed"]
Bhartrihari has joined #lisp
luckless_ has quit [Ping timeout: 240 seconds]
kiroul has joined #lisp
shka_ has joined #lisp
luckless_ has joined #lisp
Necktwi has quit [Ping timeout: 240 seconds]
Jeanne-Kamikaze has quit [Quit: Leaving]
Necktwi has joined #lisp
Bhartrihari has left #lisp [#lisp]
Bhartrihari has joined #lisp
davisr has quit [Ping timeout: 260 seconds]
kir0ul_ has joined #lisp
luckless_ has quit [Ping timeout: 240 seconds]
galex-713 has quit [Ping timeout: 272 seconds]
kiroul has quit [Ping timeout: 260 seconds]
aartaka_d has joined #lisp
aartaka has quit [Ping timeout: 256 seconds]
galex-713 has joined #lisp
davisr has joined #lisp
ggole has joined #lisp
mmohammadi9812 has quit [Quit: Quit]
la-jesystani has joined #lisp
narimiran has joined #lisp
<la-jesystani>
could someone explain hash consing to me? im not following how it works
<White_Flame>
put everything through a value-based index first, so you get EQ instances for equal values
<White_Flame>
simplest example is a string interning table
bocaneri has joined #lisp
feliocrat has joined #lisp
ex_nihilo has quit [Ping timeout: 260 seconds]
v28p has joined #lisp
<beach>
la-jesystani: It works only for purely functional languages. It would be a violation of Common Lisp semantics to use hashed consing.
epony has quit [Remote host closed the connection]
<la-jesystani>
im writing in functional so thats fine, im stuck at the logistics of creating the hashing function i think, i dont see how you dont just end up either recreating the tree structure as a key, or having overlaps between different structures
davisr_ has joined #lisp
bocaneri has quit [Max SendQ exceeded]
<beach>
Maybe nested hash tables?
bocaneri has joined #lisp
<ggole>
You only have to hash/test-for-equality the first level of structure because the arguments to a hash-consed thing are hash-consed things, and thus if they are equal they are eq
bocaneri has quit [Max SendQ exceeded]
bocaneri has joined #lisp
davisr has quit [Ping timeout: 265 seconds]
<ggole>
Not quite sure what you mean by overlaps
_whitelogger has joined #lisp
v28p has quit [Ping timeout: 264 seconds]
torbo has quit [Remote host closed the connection]
luckless_ has joined #lisp
madage has quit [Ping timeout: 240 seconds]
Bhartrihari has left #lisp ["Disconnected: closed"]
epony has joined #lisp
notzmv has quit [Ping timeout: 260 seconds]
Bhartrihari has joined #lisp
madage has joined #lisp
jprajzne has quit [Quit: jprajzne]
ibinderwolf has quit [Ping timeout: 246 seconds]
ibinderwolf has joined #lisp
madage has quit [Ping timeout: 240 seconds]
madage has joined #lisp
Bourne has joined #lisp
matzy_ has joined #lisp
<matzy_>
i'm really confused on like the very basics of packaging
<matzy_>
like i have a file with just: (defpackage:mygame (:use :cl)) (in-package :mygame) (defun some-game-function ...) (some-game-function)
<matzy_>
and when i compile it tells me "undefined function: COMMON-LISP-USER::GAME"
<matzy_>
sorry COMMON-LISP-USER::MYGAME
<matzy_>
why is it trying to call (some-game-function) from the CL-USER package when I have a (in-package :mygame) declaration above
<matzy_>
i should need to preface my defuns for the mygame package with it's name, right?
<matzy_>
*shouldn't (god I can type today)
gaqwas has joined #lisp
gaqwas has quit [Remote host closed the connection]
frgo has quit [Ping timeout: 264 seconds]
liberliver has joined #lisp
Necktwi has quit [Ping timeout: 260 seconds]
<flip214>
matzy_: perhaps you used a name that is already used by the package COMMON-LISP? Then you'd :USE the same symbol.
<matzy_>
i was kinda wondering if maybe i was playing around with something and gave it the same name
<matzy_>
it's non in my system-index in quicklisp/local-projects though
Necktwi has joined #lisp
<matzy_>
oh wait that's probably the issue - do i need to manually update that file with the .asd symlinks i put in that folder?
<flip214>
matzy_: sorry, I believe you're conflating a few issues. only one at a time, please ;)
dmiles has quit [Ping timeout: 258 seconds]
<beach>
matzy_: It looks like you are using the name of your package as a function.
ark has quit [Ping timeout: 260 seconds]
<beach>
matzy_: Otherwise it would not complain about that name being undefined as a function.
Lord_of_Life has joined #lisp
Lord_of_Life has quit [Changing host]
Necktwi has quit [Ping timeout: 256 seconds]
ibinderwolf has quit [Ping timeout: 260 seconds]
ibinderwolf_ has joined #lisp
hiroaki has quit [Ping timeout: 260 seconds]
jprajzne has joined #lisp
Cymew has joined #lisp
rixard_ has quit []
scymtym has quit [Remote host closed the connection]
gproto23 has joined #lisp
<matzy_>
ah maybe it was something that dumb
<matzy_>
<matzy_>
let me see
<matzy_>
i think i may need to edit the system-index.txt in quicklisp/local-projects though, i think that ultimately may be my issue
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
<matzy_>
wait dammit it's already in there
<matzy_>
do i need to ql:quickload the package before i can call functions from it in sbcl?
<beach>
You don't quickload packages. You quickload systems.
<matzy_>
ah yeah that's right, sorry i always get them mixed up
pve has joined #lisp
<beach>
And yes, you need to load the system, with quickload or ASDF before you can use the functions in it.
aorst has joined #lisp
iskander- has quit [Quit: bye]
orivej has joined #lisp
<matzy_>
the weird thing is i'm watching a video and this guy has a sly repl open, made a new project with cl-quickproject, then wrote a function and called it without switching the package or loading the system
<matzy_>
you can see he never loads the system or changes the package from CL-USER in the repl
Necktwi has joined #lisp
<matzy_>
granted i didnt make my project in ~/quicklisp/local-projects, i made it elsewhere and symlinked to the .asd file in there
iskander has joined #lisp
<matzy_>
so maybe that's the issue?
<edgar-rft>
sorry but your youtube link doesn't work because youtubes interrupts with "would you like to register?" and then plays the video from the beginning
<matzy_>
wow how stupid
<matzy_>
nvm then lol
<matzy_>
it just doesnt make sense wy he could call a function from CL-USER when the function is in a file with (in-package ..) at the top
ljavorsk has joined #lisp
<matzy_>
without prefixing it
tamarindo has quit [Remote host closed the connection]
<edgar-rft>
maybe some use-package magic
gaqwas has joined #lisp
tamarindo has joined #lisp
<matzy_>
so do you need to have your actual project folders in ~/quicklist/local-projects/ or can you have them elsewhere and symlink to the .asd file from in there?
aartaka has joined #lisp
<Gnuxie[m]>
matzy_: he doesn't need to because he isn't entering them into the REPL, he's evaluating in the file and so in that package (Emacs tells you the package for the file in the bar at the bottom)
aartaka_d has quit [Ping timeout: 256 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<matzy_>
Gnuxie[m]: oh wow i'm an idiot. i thought he was compiling
ark has joined #lisp
edgar-rft has quit [Quit: Leaving]
aartaka has quit [Ping timeout: 256 seconds]
Nilby has joined #lisp
daphnis has joined #lisp
scymtym has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
hendursaga has quit [Ping timeout: 240 seconds]
hendursaga has joined #lisp
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ljavorsk has quit [Ping timeout: 260 seconds]
aartaka has joined #lisp
orivej has joined #lisp
villanella has joined #lisp
matzy_ has quit [Remote host closed the connection]
<kreyren>
How do you define variables on uiop? i just got soo confused by it..
<kreyren>
ah nwm figured it out
galex-713_ has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
<kreyren>
nope i dunno
<kreyren>
x.x
<kreyren>
i though that (uiop:setq) is a thing?
<beach>
What?
<beach>
SETQ is a Common Lisp symbol.
<beach>
And what do you mean by "define variables on UIOP"?
<kreyren>
so i don't need uiop for that?
* kreyren
wants to define it in implementation-independent way
<beach>
What do you mean by "define variables on UIOP"?
gproto023 has joined #lisp
<kreyren>
beach, common-lisp code that defines variable (ideally defvar) in a way that can be ran by clisp, sbcl, ecl, etc..
<beach>
(defvar *name*) or (defparameter *name*)
<beach>
Has nothing to do with UIOP.
<beach>
So what does it mean to "define variables on UIOP"?
<kreyren>
so does defvar works everyone on common-lisp implementations?
gproto23 has quit [Ping timeout: 260 seconds]
wxie has quit [Ping timeout: 260 seconds]
<beach>
Yes, that's why it is in the Common Lisp HyperSpec. See the link.
hhdave has joined #lisp
<kreyren>
makes sense, thanku <3
<beach>
Anytime.
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
frgo has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
villanella has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
Bourne has quit [Ping timeout: 240 seconds]
dmiles has joined #lisp
kir0ul_ has quit [Ping timeout: 264 seconds]
rixard has joined #lisp
daphnis has quit [Ping timeout: 264 seconds]
jprajzne has quit [Quit: Leaving.]
ljavorsk has joined #lisp
ech has joined #lisp
kir0ul_ has joined #lisp
* kreyren
just realized that uiop already implements 'die' after he spent 5 min implementing it
<kreyren>
x.x
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
_Ark_ has joined #lisp
ark has quit [Ping timeout: 256 seconds]
iamFIREcracker has quit [Read error: Connection reset by peer]
iamFIREcracker has joined #lisp
<beach>
What does it do?
Stanley00 has quit []
gproto023 is now known as gproto23
skapata has joined #lisp
<phoe>
kills the Common Lisp process with a given exit code after printing a message
kir0ul_ has quit [Ping timeout: 256 seconds]
la-jesystani has quit [Ping timeout: 265 seconds]
<kreyren>
yep
kreyren has quit [Remote host closed the connection]
aartaka_d has quit [Ping timeout: 260 seconds]
aartaka has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
paule32_ is now known as paule32
aartaka has quit [Ping timeout: 264 seconds]
jprajzne has joined #lisp
leo_song has joined #lisp
aartaka has joined #lisp
daphnis has joined #lisp
uhuh_ has joined #lisp
uhuh has quit [Ping timeout: 264 seconds]
daphnis has quit [Ping timeout: 260 seconds]
flip214 has quit [Ping timeout: 240 seconds]
flip214 has joined #lisp
galex-713 has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
frgo_ has joined #lisp
dmiles has quit [Ping timeout: 260 seconds]
kaftejiman has joined #lisp
frgo has quit [Ping timeout: 260 seconds]
galex-713 has quit [Ping timeout: 260 seconds]
uhuh has joined #lisp
galex-713 has joined #lisp
uhuh_ has quit [Ping timeout: 265 seconds]
dmiles has joined #lisp
random-nick has joined #lisp
galex-713 has quit [Ping timeout: 258 seconds]
dmiles has quit [Read error: Connection reset by peer]
perrier-jouet has joined #lisp
dmiles has joined #lisp
galex-713 has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
dmiles has quit [Ping timeout: 260 seconds]
dmiles has joined #lisp
galex-713_ has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
Bike has joined #lisp
aartaka_d has quit [Ping timeout: 260 seconds]
EvW has joined #lisp
aartaka has joined #lisp
galex-713_ has quit [Ping timeout: 260 seconds]
EvW has quit [Ping timeout: 260 seconds]
ldb has joined #lisp
<ldb>
good evening
frost-lab has quit [Quit: Connection closed]
wsinatra has joined #lisp
gproto023 has joined #lisp
gproto23 has quit [Ping timeout: 260 seconds]
<beach>
Hello ldb.
drl has quit [Remote host closed the connection]
hiroaki has joined #lisp
drl has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
hendursaga has quit [Quit: hendursaga]
hendursaga has joined #lisp
FreeBirdLjj has joined #lisp
noobineer has quit [Ping timeout: 244 seconds]
gproto0023 has joined #lisp
gproto023 has quit [Ping timeout: 265 seconds]
bitmapper has quit [Quit: Connection closed for inactivity]
devon has joined #lisp
kir0ul has joined #lisp
scymtym has quit [Remote host closed the connection]
notzmv has joined #lisp
ljavorsk has quit [Ping timeout: 258 seconds]
renzhi has joined #lisp
kaftejiman_ has joined #lisp
arpunk has joined #lisp
kaftejiman has quit [Ping timeout: 240 seconds]
daphnis has joined #lisp
scymtym has joined #lisp
luckless_ has quit [Quit: luckless_]
<flip214>
Is there a way to find functions that are not called, ie. could be removed from the sources?
<flip214>
Ignoring indirect calls via INTERN, FIND-SYMBOL, etc. - just direct calls.
<jackdaniel>
shake shake that tree :)
gproto023 has joined #lisp
<mfiano>
Yes, the deterministic profiler on SBCL will list every one of them in the report
aartaka_d has joined #lisp
<eta>
what's the SBCL function to start a REPL?
gproto0023 has quit [Ping timeout: 264 seconds]
asdflkj has joined #lisp
aartaka has quit [Ping timeout: 265 seconds]
daphnis has quit [Ping timeout: 260 seconds]
<flip214>
mfiano: that assumes that there are test cases
<mfiano>
Test cases?
<Xach>
eta: it isn't public
<Xach>
eta: it's sb-impl::toplevel-repl
<eta>
Xach, cheers
<Xach>
eta: fwiw, i couldn't remember it, but i knew it was reachable through the default init function in save-lisp-and-die. M-. M-. M-. and bob is your uncle.
gproto0023 has quit [Read error: Connection reset by peer]
* kreyren_
is running strace for jackdaniel~
<jackdaniel>
not for me, but for yourself, good luck with debugging - I'm getting back to my bugs.
<kreyren_>
jackdaniel, i am too incompetent to debug lisp backend x.x
gproto0023 has joined #lisp
<kreyren_>
well i know that it's written in C and that it's somehow parsing the file contents >.>
uhuh_ has joined #lisp
random-nick has quit [Quit: quit]
uhuh has quit [Ping timeout: 256 seconds]
gproto023 has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
* kreyren_
likes to believe that it's some cool regex, bcs that's what he was trying to implement in rlisp before he realized how broken that project is on 2018 rustlang while expecting wizardly that he doesn't understand~
<h4ck3r9696>
What is the best common lisp library for fast linear algebra?
amb007 has quit [Read error: Connection reset by peer]
<phoe>
h4ck3r9696: magicl perhaps
amb007 has joined #lisp
dyelar has joined #lisp
gproto0023 has joined #lisp
<phoe>
kreyren_: this syscall seems kinda off to me; it tries to call socket(AF_INET, SOCK_STREAM, 0xffffffff) - and I have no idea where the 0xffffffff came from
<kreyren_>
o.o
<kreyren_>
whaddya recommend then
Cymew has quit [Ping timeout: 260 seconds]
aartaka has joined #lisp
gproto023 has quit [Ping timeout: 260 seconds]
<Xach>
eta: what should i do?
<eta>
Xach, about what, sorry?
<eta>
osmpbf?
amb007 has quit [Read error: Connection reset by peer]
<phoe>
seems that in L355 the function FF-SOCKET is called to create the socket, and its third argument is proto-num, quite possibly computed by get-protocol-by-name in L348
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
amb007 has quit [Read error: Connection reset by peer]
pankajsg has quit [Ping timeout: 260 seconds]
<jackdaniel>
thanks
Oladon1 has joined #lisp
amb007 has joined #lisp
<kreyren_>
phoe, Reference the patch being merged i will reference it in quicklisp issue tracker and close the issue
<phoe>
kreyren_: OK
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
APic has quit [Ping timeout: 268 seconds]
Oladon has quit [Ping timeout: 268 seconds]
APic has joined #lisp
<easye>
h4ck3r9696: Definitely check out magicl, as it is used by Rigetti's QIS stack. It boils down to getting Fortran routines in dlls you can access. Tricky in some situations. I have some patches for getting it to work on FreeBSD if anyone needs them.
<easye>
(I'll get the magicl stuff upstream when it works in armedbear like I want it, a longer term project)
judson_ has joined #lisp
h4ck3r9696 has quit [Ping timeout: 272 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<meowphius>
easye: I love the fact that you can use graalvm to compile abcl to exe. right?
<easye>
meowphius: RE: Japanese MIT industrial investment: I think the Prolog stuff wa implemented in Lisp, or at least prototyped. See Kyoto Lisp.
<meowphius>
easye: it is easy to implement prolog in lisp. That's why I am so confused that japan invested all that money into prolog for their fifth-generation computer and it was prolog-based.
<easye>
I think the Japanese planned on manufacturing what would be termed IoT devices that ran Prolog on the generalized architecture. But they hosted the build tools in other languages.
<easye>
Many fascinating books about the Japan/US "race" in the 1980s.
<meowphius>
easye: I think the japanese wanted to use prolog but the language fractured too quickly with modifications.
<easye>
I think that got pretty far with the Prolog from what I can gather. I don't read Japanese, so I have only seen translations.
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
iamFIREcracker has quit [Ping timeout: 240 seconds]
<shka_>
meowphius: they were going for hardware optimized, distributed prolog implementation
<shka_>
for the record, i think they were on something
<easye>
Since the "Fifth Generation war" was "fought" by state funding in both Japan and the US, I think the problem wasn't Prolog per se, but that it was much more profitible to build something like a Walkman.
<shka_>
there is plenty of knowledge based systems in the world, and they could benefit from optimized knowledge representation
iamFIREcracker has joined #lisp
cer0 has joined #lisp
<easye>
shka_: "on something" or "onto something"? Or both?
lspr[m] has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
orivej has joined #lisp
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<kreyren_>
`(setq (format "%1$-%2$" s7i "api") "")` -> How can i define variable name using format?
<kreyren_>
so that it contains value of variable s7i
* kreyren_
wants to program his functions to have the ability to change prefix on demand~
<easye>
meowphius: I have never really gotten the time to get Graal to make an abcl.exe It certainly should be possible
<phoe>
kreyren_: what do you mean, define variable name using format?
<phoe>
FORMAT is not for defining variables, you have LET and DEFVAR and DEFPARAMETER for that
<Josh_2>
Wouldn't it better to just store the 'functions' as λs?
<Josh_2>
Then you don't have to define them at the top level
<kreyren_>
phoe, e.g. s7i expands to `fy` so i expect variable definition for fy-api to contain ""
amb007 has quit [Read error: Connection reset by peer]
<easye>
Alan Ruttenberg and Eric Timmons have been thinking about how to use ABCL with Docker's suspend/resume which is more interesting in the typical ways ABCL is used.
<kreyren_>
Josh_2, what if there is 3rd party API that defines function tha tstarts with `λs` or alike?
<phoe>
kreyren_: I don't understand yet; what is s7i? what is fy? what is fy-api?
amb007 has joined #lisp
<kreyren_>
phoe, s7i is random string that i am defining into a variable storing `fy`
<phoe>
what do you mean, defining into a variable? a lexical variable? a global variable?
<kreyren_>
so i expect definition using s7i variable to define variable if that makes sense
<phoe>
no, it doesn't make sense to me yet
<kreyren_>
kreyren@leonid:~/Repositories/s7i$ cat src/api/common-lisp/UNLEASH.cl | ix
<Josh_2>
you could literally create a hashtable where you store the lambdas under strings, you can then easily change the associations and you can call the functions with a simple macro
amb007 has quit [Read error: Connection reset by peer]
<kreyren_>
so i want to define variable fy-api using what's stored in s7i variable for the other variable name x.x
<phoe>
why would you so that though? just define your own package and do stuff there; no collisions this way
<phoe>
in this new package of yours, you will only have the symbols that you want.
<kreyren_>
phoe, so that the prefix can be changed on demand in case of a conflict.. experimenting with that atm
amb007 has joined #lisp
<phoe>
in case of what conflicting with what
<phoe>
if you make a brand new package containing only the symbols you want it to contain then there is no possibility for conflict
<kreyren_>
e.g. if i define function fy-defun and end-user is using 3rd party API that also defines fy-defun i want the end-user to have the ability to change the prefix
<shka_>
listen to phoe, he is giving a good advice
<phoe>
the end user is going to do stuff in their own package
<kreyren_>
i know i want to experiment! x.x
<phoe>
you should also do stuff in your own package
<kreyren_>
o.o
<shka_>
kreyren_: ok, so, thing is that you miss on the concept of package
<phoe>
if the end user wants to do any serious stuff in Lisp, then they'll go (defpackage :my-package ...) (in-package :my-package)
amb007 has quit [Read error: Connection reset by peer]
<kreyren_>
shka_, this is expected to be API for build system
<phoe>
and if they don't, then they'll stay in CL-USER which is a good place to be in if they want to experiment with Lisp stuff
<kreyren_>
but i want to make it flexible for compatibility
<phoe>
kreyren_: do you know how to build Lisp APIs via packages?
<kreyren_>
no, just experimenting atm as i want it to be deployed by custom logic independent of lisp >.>
<kreyren_>
because i want to define API in multiple programming languages
<phoe>
this already sounds way too general; what kind of API? REST? RPC? something TCP-socket-like?
amb007 has quit [Read error: Connection reset by peer]
<kreyren_>
phoe, i know that it wants symbol and that i am providing string, but i don't know how to convert that in symbol without using concat that is not available x.x
<kreyren_>
phoe, API expected to be used in a build system that curretly has unsustainable abstract
hhdave_ has quit [Client Quit]
<kreyren_>
e.g. building CXX project using common lisp
renzhi has quit [Ping timeout: 272 seconds]
<kreyren_>
where i want to define the logic to be used on demand in makefile
<phoe>
geez, you *seriously* should learn yourself some Lisp before you start writing serious Lisp code
<kreyren_>
i know that packages are a thing! >.>
<phoe>
but you are not using that knowledge in practice
<kreyren_>
experimenting, because i don't know how to implement it in a way that i would like.. this is part of experiment
hhdave has quit [Ping timeout: 256 seconds]
amb007 has joined #lisp
<phoe>
the thing is that you're not going to properly implement stuff in a language you don't know how to properly use
<phoe>
it's obvious that you can (intern (format nil "~A-~A" "FOO" "BAR")) and then use that symbol somewhere
<pve>
kreyren_: Sounds like you want "intern". Experimenting is fine, but you should know that what you're trying to do is probably a fool's errand.
<kreyren_>
phoe, i will with strong abstract, research and peer-review!
<kreyren_>
and i am quite confident in general lisp x.x
<phoe>
and then do other unholy tricks like (eval `(defun ,symbol (...) ...))
<kreyren_>
agree currently insane implementation, doing this for research only
<phoe>
there's already enough research that is done in an insane manner, so I ain't gonna help you with that any further
<kreyren_>
x.x
jprajzne has quit [Quit: jprajzne]
amb007 has quit [Read error: Connection reset by peer]
jprajzne has joined #lisp
amb007 has joined #lisp
rippa has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
daphnis has joined #lisp
judson_ has joined #lisp
<phoe>
jackdaniel: patch submitted; I did not know how to run the rt-test so I tested manually in the REPL by copypasting the body of the auto-test case I've added, https://plaster.tymoon.eu/view/2135#2135
* kreyren_
didn't figure out how to convert string into a symbol so he's using printf piping to ed
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
iamFIREc1 has joined #lisp
<shka_>
kreyren_: sorry, phone
<kreyren_>
o.o
<kreyren_>
np~
<shka_>
kreyren_: packages in lisp are just containers for symbols
<shka_>
that's it
<shka_>
nothing more
<kreyren_>
i don't want packages though i want to define variable which name is composed from string and variable >.>
<shka_>
they are not, in particular, model of software distribution
<shka_>
oh, i don't think you can do this
iamFIREcracker has quit [Ping timeout: 256 seconds]
<kreyren_>
o.o
<phoe>
you can, using enough hackery
<phoe>
but seriously why? this isn't bash, we have proper namespacing for variables
* kreyren_
done that on emacs using concat to format >.>
<kreyren_>
phoe, mostly because i am not sure about the function naming and want to have an option to rename them on demand during the research
<easye>
kreyren_: Your FORMAT actually attempts to output to a string rather than a stream named by a symbol, so I don't think it will do what you expect.
<phoe>
sounds like big overengineering to me if you don't even know how many symbols in the API you're going to have
<kreyren_>
easye, it's not doing what i want yep >.> the setq expects symbol and i am parsing string
<phoe>
if you create a separate package, then you can turn foobar:baz into quuxbar:baz by editing two lines of code
<kreyren_>
phoe, i love overengineering!
<kreyren_>
phoe, but i can't change the baz
<phoe>
BAZ is not a prefix at this point
<kreyren_>
it's the lisp call
<phoe>
I thought you wanted to be able to change e.g. foobar-baz into quuxbar-baz
<kreyren_>
e.g. renaming defun on deffun after it's been defined X amout of times
<phoe>
renaming CL:DEFUN is a very bad idea
<kreyren_>
phoe, nope i want the suffix to change on demand so that it allows updates and backwards compatibility if needed which is what the experiment is about atm
<kreyren_>
bcs i do lots of changes and ppl get mad about these x.x
astronavt has joined #lisp
<phoe>
hm
iamFIREcracker has joined #lisp
<Josh_2>
How are people communicating with the API? over a network?
<easye>
Not mad per se, just shaking my head.
<kreyren_>
better solution welcomed, can't think of a better one atm
<phoe>
(incf Josh_2)
<Josh_2>
literally told you a better solution kreyren_
<kreyren_>
checking
<shka_>
kreyren_: use generic functions
<phoe>
How are people communicating with the API? over a network?
<kreyren_>
Josh_2, no the APi is deployed with the build system and called on demand e.g. (quick and dirty example)
<kreyren_>
kreyren@leonid:~/Repositories/s7i$ cat Makefile.toml | ix
<phoe>
when they want to jump to a higher version, they can instead locally nickname my-api-v3.0 to my-api and then call the modified (my-api:foo ...)
<kreyren_>
phoe, the concern is backwards compatibility though in case the function needs change which i expect there to be a lot e.g. refactoring function that builds libraries for CXX to also build libraris for rustlang
<phoe>
kreyren_: you don't change older API functions, so you have backwards compatibility.
<kreyren_>
ah true
<kreyren_>
phoe, not changing is not an option really >.>
<kreyren_>
too restricting
<phoe>
if you want a new version of your API, you make a new package, and modify stuff there.
villanella has quit [Remote host closed the connection]
<phoe>
so you have your old package named MY-API-v0.1 that you don't change, but instead you create a new package named MY-API-v0.2 where you change some stuff compared to MY-API-v0.1
<kreyren_>
i want to do the new versions in a way that doesn't break older versions though
<phoe>
uhhhh
<kreyren_>
i guess better abtract to avoid refactoring would solve that though
<phoe>
how does my approach break older versions?
<phoe>
if people depend on v0.1 then adding v0.2 does not change anything for them
<kreyren_>
phoe, it requires a new nickname from what i've understand where i want these to work without changes to the build definition ideally
<phoe>
these nicknames are on the client side
<kreyren_>
ah i see
<phoe>
not on your side
<kreyren_>
so basically allowing them to use 01::defun and 02::defun at the same time using these nicknames?
<phoe>
the user goes (defpackage #:my-project (:use #:cl) (:local-nicknames (#:my-api #:my-api-v0.1))) (in-package #:my-project) (my-api:foo)
<phoe>
without local nicknames, they can use (my-api-v0.1:foo ...) and (my-api-v0.2:foo ...)
<phoe>
with local nicknames, they can customize the package prefixes for convenience.
<phoe>
this is unmerged and has been for a while. CLISP badly needs a new release.
<phoe>
so package-local nicknames are not supported there.
<kreyren_>
phoe, ye FSF didn't even respond to me about clisp maintainance when i asked so i don't count on supporting clisp atm
<kreyren_>
well directly supporting assuming uiop
<kreyren_>
wait can i use this on uiop?
<phoe>
uiop is a portability library that runs on top of a given CL implementation
<phoe>
package-local nicknames need support from the implementation.
<kreyren_>
i meant can this be done implementation independent way?
<kreyren_>
excluding clisp
<phoe>
yes - use the :LOCAL-NICKNAMES option in DEFPACKAGE and you're good to go
<kreyren_>
ah oke O.o
<phoe>
this works on SBCL, CCL, ECL, ABCL, Clasp, ACL at the moment
<kreyren_>
noted
<phoe>
LispWorks 7.2 is not yet released AFAIR
<phoe>
that's when PLNs will work there
<kreyren_>
and LispWorks 7.2 has this functionality then?
<phoe>
will have
<kreyren_>
ok
<kreyren_>
is it sane for me to make checks for expected implementation versions?
<kreyren_>
or shouldi just let it fail on general failure?
<phoe>
I guess you can do that if you really care about it; or just check for the presence of :PACKAGE-LOCAL-NICKNAMES in *FEATURES*
<kreyren_>
the presence of PACKAGE-LOCAL-NICKNAMES is good idea, stubbed
drl has quit [Quit: Leaving]
Inline has joined #lisp
bocaneri has quit [Read error: Connection reset by peer]
<kreyren_>
phoe, how would you handle the '(load #p"~/quicklisp/setup.lisp")' in case the system doesn't have quicklisp installed or it's in a different location assuming requirement for uiop
<kreyren_>
i was thinking env variable to allow overriding that and making compiled program to get quicklisp
<phoe>
kreyren_: assert that quicklisp is installed and that its path is known
bsd4me has joined #lisp
<phoe>
if anything, store the path to setup.lisp in an environment variable
<phoe>
this will solve the latter case
asarch has joined #lisp
EvW has quit [Ping timeout: 264 seconds]
<phoe>
in the former case, it's the same as with some sort of a missing foreign library - the person needs to install it manually
<kreyren_>
How can i assert that the quicklisp is installed without known path? or should i just exit with fatal error when quicklisp is not found in the path?
<phoe>
the latter
<kreyren_>
oke
<phoe>
if the path is set, then use it; if it is not set, assume the default ~/quicklisp/
<kreyren_>
should i expect users to install quicklisp manually or implement some vendoring method to provide it by the project in sandboxed environment?
<kreyren_>
the idea is that executing the build system should do everything for them
<phoe>
then you need a method for installing quicklisp from scratch, ideally by downloading https://beta.quicklisp.org/quicklisp.lisp and loading it and invoking its install function
<kreyren_>
where if needed i can build LFS using common lisp
<kreyren_>
will research thanks
cantstanya has quit [Ping timeout: 240 seconds]
bsd4me has left #lisp [#lisp]
cantstanya has joined #lisp
astronavt___ has joined #lisp
astronav- has quit [Ping timeout: 260 seconds]
EvW has joined #lisp
jprajzne has quit [Quit: jprajzne]
MichaelRaskin has joined #lisp
la-jesystani has joined #lisp
bilegeek has joined #lisp
aartaka has quit [Ping timeout: 265 seconds]
selfsymmetric-mu has joined #lisp
slyrus has quit [Quit: Leaving]
akoana has joined #lisp
devon has quit [Ping timeout: 260 seconds]
aartaka has joined #lisp
dbotton has joined #lisp
iamFIREc1 has joined #lisp
iamFIREc2 has joined #lisp
cosimone has joined #lisp
iamFIREcracker has quit [Ping timeout: 264 seconds]
asarch has quit [Quit: Leaving]
kamid has joined #lisp
iamFIREc1 has quit [Ping timeout: 258 seconds]
Nilby has quit [Read error: No route to host]
ggole has quit [Quit: Leaving]
selfsymmetric-mu has quit [Remote host closed the connection]
Jesin has quit [Quit: Leaving]
astronavt has quit [Disconnected by services]
astronavt___ is now known as astronavt
astronavt_ has joined #lisp
iamFIREc2 has quit [Ping timeout: 240 seconds]
astronavt_ has quit [Client Quit]
ted_wroclaw has joined #lisp
jw4 has quit [Read error: Connection reset by peer]
gproto023 has quit [Ping timeout: 240 seconds]
jw4 has joined #lisp
yitzi has joined #lisp
rusua has quit [Quit: Connection closed for inactivity]
emacsomancer has quit [Read error: Connection reset by peer]
aartaka has quit [Ping timeout: 256 seconds]
emacsomancer has joined #lisp
renzhi has joined #lisp
jonatack has quit [Quit: jonatack]
Jesin has joined #lisp
gareppa has joined #lisp
gareppa has quit [Max SendQ exceeded]
gareppa has joined #lisp
dbotton has quit [Quit: Leaving]
mikelevins has joined #lisp
gareppa has quit [Remote host closed the connection]
emacsomancer has quit [Read error: Connection reset by peer]
emacsomancer has joined #lisp
shifty has quit [Ping timeout: 264 seconds]
cosimone has quit [Quit: cosimone]
shifty has joined #lisp
emacsomancer has quit [Read error: Connection reset by peer]
emacsomancer has joined #lisp
Inline has quit [Ping timeout: 272 seconds]
sjl has quit [Quit: WeeChat 2.2-dev]
chrpape` has quit [Read error: Connection reset by peer]