[cmucl-imp] Snapshot 2015-06

Faré fahree at gmail.com
Thu Jun 11 15:48:28 UTC 2015


On Thu, Jun 11, 2015 at 2:40 AM, Carl Shapiro <carl.shapiro at gmail.com> wrote:
> On Wed, Jun 10, 2015 at 11:09 PM, Faré <fahree at gmail.com> wrote:
>>
>> Lazy getenv, putenv — and if you want to get all of them, or to pass
>> all of them, use an equal hash-table with strings as key, not an alist
>> with keywords as keys.
>
> Thanks for the clarification.
>
> Is your issue with the search time?  The libc getenv and putenv uses a
> linear search with a linear time compare of strings.  It is unlikely to be
> faster than an a-list search.
>
My issue is that ext:*environment-list* is an abstraction inversion.
Instead of providing a higher-level view on an existing API, it
reinvents a new low-level data structure that doesn't provide any
performance advantage (indeed, only slowdown) yet introduces a new
semantic gap (albeit small) between what was and what is, and only
gets in the way of a further API improvement.

But if you declare it the official way to access the environment in
cmucl, I'll revert to using it.

> I agree that converting strings to keywords is problematic when dealing with
> unconventionally cased environment variable names.  The original strings are
> kept around if you need them.

At this point, it's bikeshedding.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Microphones, liberating singers from having to be loud to be heard, gave back
to each language a music that matches its own prosody.


More information about the cmucl-imp mailing list