I've added user-pointer=
objects. Some feedback I had off-list:
* add functions to the API for fast vector access as it currently
requires too much boxing/unboxing of integers for doing
length/indexing stuff.
This would make =
sense. Same with things like car and cdr etc.
However, we should =
be careful not to overload the module interface. It might make sense to do =
some basic measurements using a real-life example and optimize only the hot=
spots.
=C2=A0
* expose fast read-only string access (not sure how do-able this is
considering the encoding problem)
If th=
e internal Emacs encoding is not defined, then we probably shouldn't ex=
pose it to modules. What should modules do with such string access? They co=
uld only treat the contents as opaque byte arrays.
=C2=A0
* consider NULL as a no-op finalizer.
Philip, you obviously have more experienced in this memory handling
stuff so I'm going to trust you and merge what you did (but there are
merge conflicts on the last pull requests atm, havent looked into it).
Thanks again for your work :)
You'r=
e welcome, thanks for implementing the module stuff in the first place! I=
39;m not really experienced either, I've simply implemented what Daniel=
has proposed (a simple list of blocks).
I've merged your bra=
nch and pushed to my fork, so you should be able to merge one of the PRs no=
w.
=C2=A0
This module API is slowly but surely materializing. The interface is
lot more clean and user-friendly than my initial plan. I hope we can
have good performances where it matters to make it really useful :)