Created attachment 213137 [details]
I tested successfully your port. As soon as I get approval from my mentors I will commit it.
Gerald, Tobias (my mentors):
Do you approve? I would make the commit by running the following command:
Tools/scripts/addport -n -L 245410 -u salvadore -d devel/tllist/
Okay with me.
Two notes on pkg-plist: "The list itself has two head and tail pointers"
at first made me think that there are two head and two tail pointers;
perhaps rephrase htis as "has a head and a tail pointer"?
And, this one's a bit tongue in cheek, and no change proposed, but "most
operations are constant in time" caught my attention. I guess it depends
on what operations one uses. n-th element is not very cheap for linked
lists, or finding the minimum or maximum element, or the number of equal
elements, or sorting the list, or...
I agree with Gerald. "The list itself has two head and tail pointers" suggests we have 4 pointers: 2 for head and 2 for tail.
Alexander, are you fine with the change he proposed: "The list itself has a head and a tail pointer"?
I see that you copied the pkg-descr from upstream, which also has "The list itself has two head and tail pointers". You might want to proprose the modification upstream as well, although upstream the sentence is a bit clearer thanks to the italic font that suggests that "head" and "tail" are the names of the pointers.
A commit references this bug:
Date: Thu May 21 21:46:57 UTC 2020
New revision: 536174
Most C implementations of linked list are untyped. That is, their data carriers
are typically void *. This is error prone since your compiler will not be able
to help you correct your mistakes (oh, was it a pointer-to-a-pointer... I
thought it was just a pointer...).
tllist addresses this by using pre-processor macros to implement dynamic types,
where the data carrier is typed to whatever you want; both primitive data types
are supported as well as aggregated ones such as structs, enums and unions.
Being a double-linked list, most operations are constant in time (including
pushing and popping both to/from front and back).
The memory overhead is fairly small; each item carries, besides its data, a
prev and next pointer (i.e. a constant 16 byte overhead per item on 64-bit
The list itself has a head and a tail pointer, plus a length variable
(typically 8 bytes on 64-bit architectures) to make list length lookup constant
Thus, assuming 64-bit pointers (and a 64-bit size_t type), the total overhead
is 3*8 + n*2*8 bytes.
Submitted by: firstname.lastname@example.org
I committed the port with Gerald's suggestion: I did not want to have FreeBSD users wait for this port just for a few word in pkg-descr.
If you want to change the text differently just tell it and we will fix it.
Thanks for creating this port!