Re: GETF Speedup?

"David McClain (as dbm at refined-audiometrics dot com)" <[email protected]>
Newsgroups gmane.lisp.lispworks.general
Message-ID <[email protected]>
Something that I’m coming to desire more from Lisp is stronger support for immutability. 

I’m finally, after more than 20 years, able to easily and fully utilize the multiple cores of my computer CPU chips, all from high level Lisp. I can keep them fully occupied to nearly 100% utilization on every core, in some of my bigger jobs.

That had long been a goal of mine, and I can now do this easily and routinely with Transactional Hewitt Actors - even across multiple machines on the local area network, all working in concert. No messy deployment partitioning chores to distribute the tasks across the network. It just happens naturally, transparently, and without even bothering the user about the details.

But all of this hinges on reentrant parallel code which naturally tumbles out if you ensure that any visible data is immutable. 

In Lisp this is definitely possible, but you have to be on your toes. It does not happen naturally, unless you intentionally restrict your Lisp vocabulary.

There are certainly places among local lexical bindings where SETF is perfectly okay, and invisible to other threads. But in general, avoiding the use of SETF, DELETE, NCONC, and many others is recommended. And looking at the body of an Actor behavior code, it isn’t immediately obvious from syntax which portions are possibly being executed in the future by arbitrary other threads.

I have what I consider a fairly clean syntax, with parallel Actor analogues of LAMBDA, and absolutely no ASYNC/AWAIT stuff in my code.

But a more natural syntax, better support for pattern matching, and cleaner distinction between mutating and non-mutating verbs would be much desired. And I still want it to be an interactive, extensible, environment just like it always has been.



_______________________________________________
Lisp Hug - the mailing list for LispWorks users
[email protected]
http://www.lispworks.com/support/lisp-hug.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.