Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include HashTable and Facade? #165

Closed
Shambles-Dev opened this issue Dec 5, 2018 · 4 comments
Closed

Include HashTable and Facade? #165

Shambles-Dev opened this issue Dec 5, 2018 · 4 comments

Comments

@Shambles-Dev
Copy link

The ahk-libs maintainer suggested I mention my libraries here:
https://github.com/Shambles-Dev/AutoHotkey-HashTable
https://github.com/Shambles-Dev/AutoHotkey-Facade

I will leave others to judge their awesomeness, but I find them useful. I use them for Windows system administration. They work with AutoHotkey L v1. They are general purpose enough to be potentially useful in any program. You will not find much that is more functional than Facade (pun intended)!

HashTable should be pretty stable. Its design has not changed for a while. Facade uses HashTable heavily.

Facade is, admittedly, considerably less stable. I believe what is there should not change much, but I cannot promise that. I am trying to find the cleanest design possible. I am currently trying to improve the error handling. I realized what I had planned was not as good as it could be part of the way through its implementation, so I focused on getting it to work with correct input. Now I am going back to try to improve the existing error handling and add what I had left out. It also probably contains defects. I will be trying to find and fix those as I improve the error handling. I hope to eventually write a singly linked list library and a Lisp-like stream library (including file I/O support). They might or might not become a part of Facade, but they will be designed with Facade in mind and built atop it.

I also do not know where they belong in your hierarchy. They should be under “Libraries”, but the subsection is less obvious. I could make the case for “Data Format” (a data structure like a hash table is kind of like a data format, only in memory) or “Math” (a set of functional programming libraries is vaguely related to math via lambda calculus, along with everything else in mathematics and computer science), but both seem ill-fitting. I would personally put them under a new “Data Structures and Algorithms” section. That is the kind of textbook you would find them in.

If they are not acceptable, I understand.

@G33kDude
Copy link
Member

We would love to include your fantastic libraries!

I am in favor of introducing a new "Data Structures and Algorithms" section into which we could put HashTable, Facade, and the existing LibCrypt library (currently in Math, it's a collection of hashing and encryption algorithm implementations).

Does anyone else have thoughts on the matter?

@Shambles-Dev
Copy link
Author

Shambles-Dev commented Dec 11, 2018

On that note, I am considering releasing backports of v2's "is" operator as a function (and without the support for testing if a parameter is byref) and Type function (it should be exactly the same except it cannot detect "0" is a string, unlike in v2). I will be happy to release them as stand-alone libraries if there is interest.

I have no idea where they should go, other than somewhere under "Libraries". I can't even use computer science textbooks as a guide here. What I use them for is error handling (reporting if something is the wrong type because in v1 errors are usually silent, which upsets me) and dispatching (send values of one type to this code and another type to other code). "Type Checking" maybe?

I would consider these 'stable', by the way. What they do is pretty simplistic, and they do seem to work correctly.

@joedf
Copy link
Member

joedf commented Dec 11, 2018

Nothing to oppose from me. 👍

@Shambles-Dev
Copy link
Author

Shambles-Dev commented Dec 11, 2018

I uploaded the type checking code here: https://github.com/Shambles-Dev/AutoHotkey-Type_Checking

G33kDude added a commit that referenced this issue Dec 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants