Psybur has quit [Remote host closed the connection]
epony has joined #commonlisp
epony has quit [Remote host closed the connection]
Psybur has joined #commonlisp
Psybur has quit [Remote host closed the connection]
Psybur has joined #commonlisp
VincentVega has quit [Ping timeout: 248 seconds]
random-nick has quit [Ping timeout: 260 seconds]
Bike has quit [Quit: Connection closed]
zacque has joined #commonlisp
ebrasca has quit [Remote host closed the connection]
Inline__ has joined #commonlisp
Inline has quit [Ping timeout: 260 seconds]
epony has joined #commonlisp
wyrd has quit [Quit: Lost terminal]
akoana has quit [Quit: leaving]
ec has joined #commonlisp
Volt_ has joined #commonlisp
Guest74 has joined #commonlisp
Bike has joined #commonlisp
jeko has quit [Remote host closed the connection]
<beach>
Good morning everyone!
zacque has quit [Quit: Goodbye :D]
waleee has quit [Ping timeout: 240 seconds]
semz_ has joined #commonlisp
semz has quit [Ping timeout: 260 seconds]
wyrd has joined #commonlisp
semz_ is now known as semz
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
ec has quit [Remote host closed the connection]
wyrd has quit [Remote host closed the connection]
wyrd has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<phantomics>
Morning beach
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 246 seconds]
Bike has quit [Quit: Connection closed]
triffid has joined #commonlisp
borodust has quit [Quit: Leavin']
borodust has joined #commonlisp
Guest6 has joined #commonlisp
karlosz has joined #commonlisp
Guest6 has quit [Quit: Client closed]
karlosz has quit [Client Quit]
mason has joined #commonlisp
jeosol has quit [Ping timeout: 250 seconds]
Psybur has quit [Ping timeout: 260 seconds]
zacque has joined #commonlisp
aeth has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
attila_lendvai has joined #commonlisp
eddof13 has joined #commonlisp
aeth has joined #commonlisp
yauhsien has joined #commonlisp
Algernon69 has joined #commonlisp
rotateq has joined #commonlisp
lawt has quit [Ping timeout: 268 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lawt has joined #commonlisp
hashfunc251 has joined #commonlisp
dec0d3r has quit [Quit: Leaving]
shka has joined #commonlisp
eddof13 has joined #commonlisp
Guest74 has quit [Ping timeout: 268 seconds]
MajorBiscuit has joined #commonlisp
karlosz has joined #commonlisp
poselyqualityles has joined #commonlisp
karlosz has quit [Client Quit]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
hashfunc251 has quit [Remote host closed the connection]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
rogersm has joined #commonlisp
Volt_ has quit [Quit: ]
MajorBiscuit has quit [Ping timeout: 250 seconds]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
MajorBiscuit has joined #commonlisp
yauhsien has quit [Ping timeout: 268 seconds]
azimut has quit [Ping timeout: 240 seconds]
jfb4 has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
azimut has joined #commonlisp
jfb4 has joined #commonlisp
antoni has quit [Ping timeout: 240 seconds]
lonjil has quit [Remote host closed the connection]
tfb has quit [Quit: died]
spec has quit [Remote host closed the connection]
antoni has joined #commonlisp
spec has joined #commonlisp
lonjil has joined #commonlisp
MajorBiscuit has quit [Ping timeout: 268 seconds]
MajorBiscuit has joined #commonlisp
loke has quit [Ping timeout: 250 seconds]
loke has joined #commonlisp
yauhsien has joined #commonlisp
s-liao has joined #commonlisp
nubi has joined #commonlisp
poselyqualityles has quit [Ping timeout: 246 seconds]
epony has quit [Quit: QUIT]
santiagopim[m] has quit [Quit: You have been kicked for being idle]
MajorBiscuit has quit [Quit: WeeChat 3.4]
MajorBiscuit has joined #commonlisp
s-liao has quit [Quit: Client closed]
mon_aaraj has quit [Ping timeout: 245 seconds]
Cymew has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 246 seconds]
Algernon69 has quit [Read error: Connection reset by peer]
Algernon69 has joined #commonlisp
kevingal has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
nubi has quit [Ping timeout: 240 seconds]
Algernon69 has quit [Ping timeout: 248 seconds]
kevingal_ has joined #commonlisp
kevingal has quit [Ping timeout: 268 seconds]
yauhsien has joined #commonlisp
Oddity has quit [Ping timeout: 260 seconds]
scymtym has joined #commonlisp
tyson2 has joined #commonlisp
razetime has joined #commonlisp
Brucio-61 has joined #commonlisp
random-nick has joined #commonlisp
ec has joined #commonlisp
s-liao has joined #commonlisp
lisp123 has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
Algernon69 has joined #commonlisp
yauhsien has quit [Ping timeout: 272 seconds]
yauhsien has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
Bike has joined #commonlisp
<prokhor>
beach: queston: did you ever consider storing the representation of a lisp dialect itself & its extension in an objectstore?
<prokhor>
like e.g. rubu monkey does...
<Bike>
rubu monkey?
<prokhor>
sry, ruby monkey
<Bike>
and what is that? do you mean monkey patching in ruby?
<beach>
prokhor: I am not sure what it means to store the representation of a dialect somewhere. What would that representation look like other than the entire system?
<prokhor_>
bike: yes
<Bike>
you've been able to do monkey patching in lisp since like the seventies. could you be more specific about the object store part, maybe?
<prokhor_>
beach: i mean yoou could have some uniform modus of storing images of a lisp environment with its extensions..
<hayley>
I think we should represent a language as an evaluator for the language. The evaluator would be a function, which is trivially an object.
<Bike>
i don't think anyone here is familiar enough with ruby to know what you're talking about without further information.
<hayley>
Extensions can also be functions, which are also objects.
<prokhor_>
let me try this way:
Algernon69 has quit [Quit: Leaving]
<prokhor_>
lispos (as i understood one of its idea) aims to be thourughli object oriented, my idea was to also store the language itself in a oodbms, that way you could for example load "sets" of extensions (like basically with a library) only that you also could make the whole thing transactional...
<prokhor_>
sry if im bothering you guy with some stupid idea, it was just spooking around in my head..
Dynom has joined #commonlisp
<beach>
I have said this before, but an object store is not needed with universal persistence.
<beach>
Perhaps the concept of first-class global environments will do what you want.
<Bike>
yeah, sounds environmentish. depends on what kind of extensions you have in mind
<hayley>
My response missed context. One of the advantages of CLOSOS, I believe, is that the internal representation is the same as the representation for persistence. So we don't really need a representation that isn't what the language already uses.
<prokhor_>
eg. you wouldnt have to load whole packages or manually write some definitons for shadowing, you could use a query language which would do that for you
<prokhor_>
as i said: just some silly idea i came to...
lisp123 has joined #commonlisp
<hayley>
So, a way of using extensions? How would it differ from, say, using a system facility like ASDF?
pranavats has left #commonlisp [Error from remote client]
<Bike>
you don't need to put down your own ideas.
<hayley>
"loading" or "importing" the extension might be more precise terminology.
<prokhor_>
it would be like composing you own adfs systems out of the fill of components with, say, prolog queries (?)
aartaka has quit [Ping timeout: 248 seconds]
<prokhor_>
also: you would have a transactional way of restoring eg. packages to a former state..
aartaka has joined #commonlisp
razetime has quit [Ping timeout: 246 seconds]
lisp123 has quit [Ping timeout: 268 seconds]
<hayley>
I see.
Dynom has quit [Ping timeout: 246 seconds]
<prokhor_>
if you had for instance some gui app in the system, yoou also could combine that mplementation with evaluation algorithm (eg. ML) to make that gui self-optimizing in ome way...
<hayley>
I'd have to think about where full Prolog helps for defining systems, or machine learning for UI design.
Dynom has joined #commonlisp
<prokhor_>
you could compine the rpolog statements with actual lisp code, thus wenn a qeury unifies the corresponding lisp code is executed..
<prokhor_>
i mean: i didnt get a closer look at that, but sicl is also loadable in components (?)
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
razetime has joined #commonlisp
<beach>
prokhor_: SICL has first-class global environments, which means that you can have a different components in different environments. It is even possible to have a different evaluator in an environment, so that some environments looks like Scheme or something else.
<prokhor_>
how would you like the idea of defining those components & environments dynamically & not to have to define them manually before?
mon_aaraj has joined #commonlisp
<beach>
They can be created programmatically, so that seems dynamic enough, no?
<Common-Lisp>
beach: LFE is Lisp-Flavored Erlang. see https://lfe.io
<rotateq>
Oh yes, I have to get better with parallel programming first, and then concurrency before distributed.
<beach>
Common-Lisp: I believe that would be off topic here.
<rotateq>
prokhor_: hehe
<yitzi>
A statically typed future sounds depressing.
<hayley>
Lisp Flavoured Erlang
<Common-Lisp>
hayley: true: my bad.
<rotateq>
yitzi: The world and nature is clearly a dynamic thing.
<yitzi>
rotateq: Maybe its a post apocalyptic world. We lost all of the dynamic types in the apocalypse.
<beach>
prokhor_: I fail to see what you need a database for if you have an image-based language.
rotateq has quit [Remote host closed the connection]
<beach>
prokhor_: But if that's what you want, go ahead and implement it.
<prokhor_>
beach: it even gets more clear to me that it hasnt that many usecases... as i said: just some silly idea i decided to get the feedback from you guys ;)
<beach>
I see.
<prokhor_>
also: i finally get the huge difference between objecct persistence, object storage & object database...
<beach>
Excellent!
<hayley>
I am not the most familiar with Unison, but I am not sure it helps with this idea of managing extensions. From what I recall, functions are content-addressed, allowing for the language to rename any function under the hood. That doesn't help how you pick names, per se.
morganw has joined #commonlisp
scymtym has quit [Remote host closed the connection]
<beach>
prokhor_: Before Unix was created, there was a system called Multics (there were likely others as well) that did not make the distinction between primary and secondary memory. Unfortunately, our current operating systems are based on the very unfortunate model that Unix introduced, and the result is that programmers of a large number of generations have been brainwashed to think that this separation is required.
Cymew has quit [Ping timeout: 246 seconds]
<prokhor_>
wasnt unix the scraps from multics they salvaged?
<beach>
Heh, not at all.
<prokhor_>
but the name unix alludes to multics (?)
<beach>
Indeed.
kevingal_ has quit [Ping timeout: 252 seconds]
<beach>
Bell Labs pulled out of Multics, so the programmers found themselves without an adequate computing facility. That's why they created Unix, as a pale copy of a small subset of Multics.
<prokhor_>
so the basic idea is, now that resources are more abundand than in the 70ies, to "get rid" of this artifact?
Brucio-61 has quit [Remote host closed the connection]
<prokhor_>
& implement object persistence without anybody (be it program or user) to hit the "save" button (?)
<beach>
prokhor_: Sort of. There is an additional twist. Even though Multics was better than Unix in pretty much all respects, its address space was still limited, which made processes necessary. Now, we don't need those anymore.
<beach>
The separation of the two memory types is even sillier than just a separation, because the two types have the same physical structure (cash + disk = primary (virtual) memory, and cash + disk = disk), just different operations. Go figure!
<prokhor_>
i am not capable enough to make an educated guess about that, but: if a "userland" process is claiming its own resources, doesnt it open all doors for DOS?
<prokhor_>
(skimmed through your paper, but didnt understand it all...)
<beach>
prokhor_: For some reason, current operating systems insist on presenting a programming model that resembles the physical computer. That's the basis of all this silliness of processes.
<beach>
Well, i know the reason. Unix was implemented on computer with no memory management unit, so it *was* a physical computer.
Common-Lisp has left #commonlisp [#commonlisp]
<beach>
Every process had its address space start at 0 because that's where it had to be loaded in order to be executed.
s-liao has joined #commonlisp
<empwilli>
and how would that be possible w/o an MMU?
<empwilli>
(with multiprocess support)
<beach>
"that"?
<empwilli>
having every process start at address 0
<beach>
Swapping.
<beach>
You keep only the executing process in memory.
<empwilli>
ugh
<beach>
And we still suffer from this limitation of the tiny PDPs, and we still program this way.
<beach>
But this is getting off topic. I just wanted to take the opportunity to give prokhor_ some more perspective.
<empwilli>
dunno; while some argue that the time of MMUs is over and address spaces are large, the frequent sandbox escapes in managed languages still show that some sort of interprocess protection is necessary (IMHO)
<empwilli>
probably :)
<prokhor_>
beach: thx for being so patient, i know i can annoy profs wth silly aberrant questions ;)
<beach>
Pleasure.
<_death>
the sandboxes are written in C++, so their bugs can be memory-related
Brucio-61 has joined #commonlisp
Bike has quit [Quit: Connection closed]
s-liao has quit [Quit: Client closed]
pranavats has joined #commonlisp
Brucio-61 has quit [Ping timeout: 240 seconds]
s-liao has joined #commonlisp
v88m has quit [Ping timeout: 252 seconds]
waleee has joined #commonlisp
pranavats has left #commonlisp [#commonlisp]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
Brucio-61 has joined #commonlisp
euandreh has quit [Quit: WeeChat 3.4.1]
euandreh has joined #commonlisp
mon_aaraj has quit [Ping timeout: 248 seconds]
mon_aaraj has joined #commonlisp
pranavats has joined #commonlisp
s-liao has quit [Quit: Client closed]
alvaro121_ has joined #commonlisp
alvaro121 has quit [Ping timeout: 260 seconds]
scymtym has joined #commonlisp
eddof13 has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 246 seconds]
razetime has quit [Ping timeout: 268 seconds]
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #commonlisp
razetime has joined #commonlisp
Guest74 has joined #commonlisp
Volt_ has quit [Quit: ]
sander has quit [Ping timeout: 268 seconds]
eddof13 has quit [Ping timeout: 260 seconds]
<Guest74>
anybody know how to get rid of sly? I've removed all traces from my init file and it still manages to invade every buffer that pops up.
sander has joined #commonlisp
<shka>
anybody building applications using radiance?
waleee has quit [Ping timeout: 250 seconds]
razetime has quit [Read error: Connection reset by peer]
VincentVega has joined #commonlisp
<White_Flame>
prokhor_: btw, even with transparent full persistence, a notion of save/commit/checkpoint/etc is still very useful, instead of hot-editing everything
<Guest74>
version control is always good. I need automatic save points whenever a fn compiles without errors.
mon_aaraj has quit [Ping timeout: 246 seconds]
mon_aaraj has joined #commonlisp
<prokhor_>
White_Flame: ...and if it's only to have a point to refer to ;)
MajorBiscuit has quit [Ping timeout: 248 seconds]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 268 seconds]
Bike has joined #commonlisp
Bike43 has joined #commonlisp
Bike has quit [Killed (NickServ (GHOST command used by Bike43))]
Bike43 is now known as Bike
eddof13 has joined #commonlisp
Bike has quit [Quit: Client closed]
karlosz has joined #commonlisp
mon_aaraj has quit [Ping timeout: 268 seconds]
mon_aaraj has joined #commonlisp
Bike has joined #commonlisp
karlosz has quit [Client Quit]
karlosz has joined #commonlisp
azimut has quit [Remote host closed the connection]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
aartaka has quit [Read error: Connection reset by peer]
azimut has joined #commonlisp
kpoeck has joined #commonlisp
aartaka has joined #commonlisp
<Shinmera>
shka: #shirakumo is that way
eddof13 has joined #commonlisp
dra has joined #commonlisp
treflip has joined #commonlisp
dra has quit [Remote host closed the connection]
dra has joined #commonlisp
dra has quit [Remote host closed the connection]
<shka>
Shinmera: thanks
yewscion has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kpoeck has quit [Quit: Client closed]
kpoeck has joined #commonlisp
eddof13 has joined #commonlisp
waleee has joined #commonlisp
sander has quit [Quit: So long! :)]
sander has joined #commonlisp
Bike has quit [Quit: Client closed]
Bike has joined #commonlisp
karlosz has quit [Quit: karlosz]
tfeb has joined #commonlisp
poselyqualityles has joined #commonlisp
brandflake11 has joined #commonlisp
ec has quit [Ping timeout: 240 seconds]
<brandflake11>
Hello all, can you import a symbol from another package and name it something else for your current in-package?
<Bike>
nope. you might want to use package-local nicknames instead? they let you refer to packages by short forms.
<brandflake11>
Bike: Thanks, I have a very small name collision, so I think I will just type out the full symbol then
kpoeck has quit [Ping timeout: 250 seconds]
<pjb>
brandflake11: you cannot change the name of symbols.
<pjb>
brandflake11: but you may wrap most of the symbols in a new definition.
<pjb>
brandflake11: for example, for a variable, you could (define-symbol-macro *foo* other-package:*bar*)
poselyqualityles has quit [Ping timeout: 268 seconds]
<brandflake11>
pjb: Is there a reason why common lisp is made in a way where you cannot change the name of symbols?
<pjb>
brandflake11: for a function: (defun foo (&rest args) (apply (function other-package:bar) args))
<pjb>
etc.
Oddity has joined #commonlisp
<pjb>
brandflake11: not only CL, but lisp, from day one. This is basically the foundation axiom of lisp.
<pjb>
brandflake11: technically, the reason is because symbols are interned: reading the same symbol name should give the same symbol, at all time (all other things being equal, such as current package and read-table settings).
<pjb>
brandflake11: if you could change the name of a symbol then '(foo foo) could return (bar foo), if between reading the foos, another thread could rename the first foo into bar!!!!
<brandflake11>
pjb: Okay, that looks dangerous, maybe I don't want this feature
<pjb>
You couldn't reason about your program, since you'd be in quicksand.
<pjb>
It's already difficult enough with the *package* and *readtable* settings, but at least, you can bind them temporarily around your code, so you can have some sanity.
tyson2 has quit [Remote host closed the connection]
<brandflake11>
pjb: I was more curious I think as to why IMPORT couldn't also just make another symbol in my current package that could be a pointer to another package's symbol.
<pjb>
brandflake11: because symbols can be used for themselves, or for any number of use, some specified by the language, but a lot of them can be specified by the user program or the libraries. So a predefined operator such as import couldn't implement all the "pointers"
<pjb>
See above my example for variable or function.
<brandflake11>
pjb: Oh, d'oh, that makes more sense
<pjb>
There are a ton of other kinds of bindings for a symbol. block names, tag names, catch values, key parameters, etc.
<brandflake11>
It would change the symbol's value, right?
<pjb>
No, the value is only one binding.
<pjb>
CL is a lisp-2 aka lisp-∞ a symbol can name a lot of different things in different namespaces, and the function and variable namespaces are distinct.
<pjb>
In scheme, which is a lisp-1, the function and variable namespaces are merged (along with some other namespaces, but not necessarily all of them, notably not used defined namespaces).
treflip has quit [Remote host closed the connection]
<_death>
symbols have an identity, so if you want one symbol to stand for another in general, that's problematic.. you could of course decide that some tokens are resolved by the reader differently, but that could be confusing
<pjb>
As soon as you create a hash-table or an a-list keyed by symbol, you've created a new namespace.
<brandflake11>
pjb: Thank you for your help with this, however I think this is now going above my understanding of lisp.
<pjb>
We have macros (symbol macros), forwarding functions, and designators to deal with this kind of renaming.
<brandflake11>
pjb: I actually didn't know symbol macros were even a thing, so I think I will look into this
<tfeb>
pjb: all lisps are lisp-infinities: lisp-1s are just in denial :)
<pjb>
for example, type designators: (deftype byte () '(unsigned-byte 8)) (deftype octet () 'byte)
<pjb>
tfeb: yes. I hinted at that in my description of scheme :-)
<brandflake11>
pjb: Thank you for helping me with this, symbol macros are exactly what I was looking for
<brandflake11>
I can now have the symbol I want from another package named something else
<brandflake11>
in my current package and code
<Bike>
keep in mind that symbol macros are only expanded in an evaluation context, so for example they can't be used to alias function or type names.
<pjb>
brandflake11: be careful: symbol macros are lexical bindings, so if you use them for dynamic variables named with a symbol such as *bar* declared as special, the behavior may be a little different.
<pjb>
But this works if you just set and get the value.
<_death>
this is why they're not a good solution to this problem
<pjb>
We could use a reader macro…
<pjb>
With reader macros on each prefix character of all the aliased symbols, we can read a symbol, and if one of the aliased symbols, substitute them.
<pjb>
This would work in more situations.
<pjb>
Then, you'd have '*foo* --> other:*bar*
<_death>
if you don't actually need to have unqualified reference to the same-named symbol that's already present in your package, you can use shadowing-import
<pjb>
a name collision was mentionned.
<_death>
hence the shadowing
<pjb>
yes.
tfeb has quit [Quit: drinking to forget]
<pjb>
It's also possible to use import and shadow "locally" while reading the source (with eval-when).
<_death>
I think that pkg macro from Kylheku had a local shadowing feature
<brandflake11>
Well, I do need both symbols from the packages I am working with
<brandflake11>
All I do with it is change the value from it. Some imported symbols in my current packages use the value of this symbol to do some of the other package's math
<brandflake11>
If that makes sense
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<pjb>
brandflake11: there are package-local nicknames. SO you can use a:foo and b:foo instead of other-package:foo and yet-another-package:foo