<Shinmera>
Good luck! I'd hire you in a heartbeat if my own finances were more stable.
markb1 has quit [Ping timeout: 245 seconds]
manwithluck has quit [Ping timeout: 245 seconds]
manwithluck has joined #commonlisp
danse-nr3 has quit [Read error: Connection reset by peer]
danse-nr3 has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 264 seconds]
Lord_of_Life_ is now known as Lord_of_Life
ym has joined #commonlisp
decweb has joined #commonlisp
habamax has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1.90)]
habamax has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
Krystof has quit [Ping timeout: 276 seconds]
bjorkint0sh has quit [Remote host closed the connection]
bjorkint0sh has joined #commonlisp
habamax has quit [Remote host closed the connection]
rtypo has quit [Ping timeout: 264 seconds]
arpunk has quit [Remote host closed the connection]
donleo has joined #commonlisp
Jach has left #commonlisp [#commonlisp]
dnhester26 has joined #commonlisp
<ecraven>
what are the symbols that can be checked with #- and #+ called?
<edgar-rft>
the ANSI spec calls them "feature-test expression"
<edgar-rft>
...in CLHS 2.4.8.17 and 2.4.8.18
<splittist>
The things in *FEATURES* - the 'feature list' - are also called 'features'
<ecraven>
thanks!
bjorkint0sh has quit [Remote host closed the connection]
bjorkint0sh has joined #commonlisp
Gleefre has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
sleetdrop has quit [Ping timeout: 264 seconds]
kenran`` has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
kenran` has quit [Ping timeout: 245 seconds]
danse-nr3 has joined #commonlisp
kenran``` has joined #commonlisp
kenran`` has quit [Ping timeout: 264 seconds]
danse-nr3 has quit [Ping timeout: 255 seconds]
Jach has joined #commonlisp
kenran``` is now known as kenran
yitzi has joined #commonlisp
<aeth>
so, in one word: features
alejandrozf has joined #commonlisp
tyson2 has joined #commonlisp
skeemer has quit [Quit: WeeChat 4.1.1]
random-nick has joined #commonlisp
edr has joined #commonlisp
azimut has joined #commonlisp
rgherdt has quit [Quit: Leaving]
rgherdt has joined #commonlisp
rgherdt has quit [Client Quit]
rgherdt has joined #commonlisp
Lycurgus has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
cage has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
markb1 has joined #commonlisp
bjorkint0sh has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
bjorkint0sh has joined #commonlisp
danse-nr3 has quit [Read error: Connection reset by peer]
danse-nr3 has joined #commonlisp
kenran has quit [Remote host closed the connection]
markb1 has quit [Ping timeout: 268 seconds]
danse-nr3 has quit [Ping timeout: 246 seconds]
dnhester26 has quit [Remote host closed the connection]
Lycurgus has quit [Quit: leaving]
dnhester26 has joined #commonlisp
danse-nr3 has joined #commonlisp
bjorkintosh has joined #commonlisp
bjorkintosh has quit [Changing host]
bjorkintosh has joined #commonlisp
amb007 has quit [Ping timeout: 255 seconds]
amb007 has joined #commonlisp
bjorkint0sh has quit [Ping timeout: 240 seconds]
yottabyte has joined #commonlisp
Josh_2 has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
notzmv has quit [Ping timeout: 256 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
kopiyka has joined #commonlisp
markb1 has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
_cymew_ has quit [Ping timeout: 255 seconds]
<aeth>
I need to do a bidirectional mapping of two relatively small (still kB if done the naive two-arrays way, e.g. 2^12 and 2^16) unsigned integers id<->index, max-id >= max-index in numeric range, but index-count >= id-count in practice since id is either a name for an index (since indices can move but IDs stay the same) or is currently invalid; in my ECS
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<aeth>
so this really seems like a problem for a custom hash table on top of a specialized array, at least for the id->index direction (since there can be at most max-index IDs... index->id could just be an array)
contrapunctus has left #commonlisp [#commonlisp]
<aeth>
if done properly, I could just always have IDs increase and not have to worry about recycling them, or maybe it'd just be cheaper to give IDs generations
yitzi has quit [Remote host closed the connection]
cage has quit [Ping timeout: 260 seconds]
jmdaemon has quit [Ping timeout: 245 seconds]
fe[nl]ix has quit [Remote host closed the connection]
contrapunctus has joined #commonlisp
fe[nl]ix has joined #commonlisp
cage has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
t400 has joined #commonlisp
szkl has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
lonjil has quit [Remote host closed the connection]
<beach>
aeth: It sounds like an interesting problem, but I can't understand it from your description. I don't know what it means for an id to be a name for an index, nor what it means for it to be invalid or for an index to "move". And I don't know what an ECS is.
lonjil has joined #commonlisp
<beach>
Maybe if you give a list of the operations allowed on an index or an id?
<beach>
Then, perhaps you have already worked it out.
<aeth>
beach: entity-component-system, it's basically a runtime database for games/graphics and other real-time simulations (though it could have applications elsewhere, that's just where it's trendy) where the "entity" is just an ID, nothing else
<aeth>
the ID would be constant, the index that that Entity ID refers to could move because it's using arrays to basically do something similar to memory management
<aeth>
and the ID is fairly similar to a reference in that sense
<aeth>
a "proper" ECS has no entity object, but you could e.g. have an entity class that consists solely of one slot: an entity ID, which then looks up the entity index and which "components" it implements (which arrays it's in)
<aeth>
The idea being that iterating over component arrays is the thing that needs to be fast, not the entity itself. So an index needs to be a valid index to the component arrays (or, possibly, the first index of an n-dimensional array, or a number that is multiplied or otherwise manipulated to get the real index), an ID refers to an index (or is invalid), and an entity class or a label (hash table, variable
<aeth>
name, whatever) would just store the entity ID.
zxcvz has joined #commonlisp
<aeth>
At the moment, I don't separate the concept of ID and index, which means that (1) I don't ever "compact" the indexes if a bunch of entities are removed and none are added, and (2) an old ID could refer to the wrong entity if something is removed and another entity is added in its place
dnhester26 has joined #commonlisp
<aeth>
So, to be clear, an ID is either invalid or refers to (in some kind of optimized hash table, array, or tree) a `(mod ,+max-entities+) type index, while an index merely refers to a bunch of component bits that says which groups of 0 or more arrays (yes, 0, because the component could be used solely for its bit flag!) the entity index is valid in. Then anything that has to work on a specific entity (such
<aeth>
as an entity class, a variable, a "label" hash table or other data structure, etc.) just stores the ID, while anything that doesn't have to work on a specific entity just iterates through the bit-equals-one stuff in component arrays. Also, some data structures (for e.g. spatial partitioning) may work solely on and store entity IDs.
<aeth>
I suppose there could be an implementation via adjustable vectors that doesn't have a +max-entities+ constant.
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
zxcvz has quit [Quit: zxcvz]
NotThatRPG_ has joined #commonlisp
NotThatRPG has quit [Ping timeout: 252 seconds]
danse-nr3 has quit [Ping timeout: 268 seconds]
NotThatRPG_ has quit [Ping timeout: 256 seconds]
danza has joined #commonlisp
yitzi has joined #commonlisp
Devon has quit [Read error: Connection reset by peer]
Devon has joined #commonlisp
<Devon>
/join #emacs
cstml has joined #commonlisp
NotThatRPG has joined #commonlisp
NotThatRPG has quit [Ping timeout: 260 seconds]
dnhester26 has quit [Remote host closed the connection]
danza has quit [Read error: Connection reset by peer]
ym has quit [Ping timeout: 255 seconds]
dcb has joined #commonlisp
tyson2 has quit [Read error: Connection reset by peer]
dnhester26 has quit [Remote host closed the connection]
alfplayer has quit [Ping timeout: 256 seconds]
cstml has quit [Quit: WeeChat 3.7.1]
<Pixel_Outlaw>
Interesting I'd not realized Gnu Common Lisp comes with Tk installed. It'd be nice to have that just taken care of if you're shipping your Solitaire game for Grandma.
<Pixel_Outlaw>
[Grandma isn't going to learn to use Emacs and SLY nor does she know how to install Tk]
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
lucasta has joined #commonlisp
thonkpod has quit [Ping timeout: 260 seconds]
thonkpod has joined #commonlisp
_cymew_ has quit [Ping timeout: 260 seconds]
cage has quit [Quit: rcirc on GNU Emacs 29.1]
<bjorkintosh>
oh nice.
<bjorkintosh>
Never heard of gcl. It exists in its own galaxy!
tyson2 has joined #commonlisp
<bjorkintosh>
who uses it?
<yitzi>
It used to used in Maxima binary distributions. I don't know what the current status of it is, but it wasn't ANSI compliant a few years ago. It is a derivative of Kyoto CL. As is ECL.
alfplayer has joined #commonlisp
<Pixel_Outlaw>
That I'm not sure of, I tried running the Tk example on Mac after installing via their "macports" stuff and it didn't work so hot. But the language part works it seems.
<yitzi>
KCL was bug fixed up unto Austin Kyoto Common Lisp in order to run Macsyma at UT Austin.
<Pixel_Outlaw>
I keep confusing GCL with Clisp for some reason. Maybe because they're both GNU projects.
<aeth>
GNU has at least two Common Lisps (GCL, CLISP) and at least 3 Schemes (Guile, MIT/GNU Scheme, Kawa) and Emacs Lisp for a total of at least 6 Lisps, possibly more
<aeth>
they must be the most Lisp organization out there
<Pixel_Outlaw>
Well considering the GNU Compiler Collection they're the most <every sensible language and some others too> organization. :P
<aeth>
Yes, but I already listed the sensible languages. And elisp.
<Pixel_Outlaw>
But anyway, my interest was around makeing a small popup program that could be deployed easily. And GCL seemed to come with the Tk widgets on Linux but not so hot on Mac. I guess there is always that Roswell thing (not sure if I still need the user to have the required Tcl/Tk stuff installed).
<aeth>
last time I tried it (a while ago), Roswell is pretty weird because it wants to bootstrap a 0-Lisp system and then get you every Common Lisp and then use whichever the last Common Lisp you used (which can differ slightly in behavior) as the Lisp that it mostly uses for its actions (but only mostly, because it wants you to bootstrap from 0 Lisp)