On 2020-01-13 15:16, Laurent Rosenfeld via perl6-users wrote:
Your own record over the last years shows that you very often don't
understand documentation (and I actually sometimes wonder whether you're
even really interested in trying to understand it).
Actually, I go there a lot and I tear my hair out.
They are the antithesis of how Perl 5 wrote their
documentation (the only part of Perl 5 I like better
than Perl 6).
Your disdain for the documentation just confirms that.
The documentation needs work. Several involved in
the documentation process have mentioned this in
several places. It is not like it is a secret.
I have tried to contribute to it before, but I
can't get past JJ.
And why do you think I am constantly find errors
in the documentation. Because I ignore them?
By the way, "C String" REQUIRES a nul at the end:
an error in the NativeCall documentation.
But since you
also explained very clearly times and again in the past that you don't
want to read books or tutorials either, I also wonder whether you're
interested in learning the language. I mean, *really* interested, to the
point of making *real* efforts in that direction.
You have no idea what I go through. You will if
you ever get to see my paper on NativeCall and
Win API.
The way you consistently mixed up uint and Uint in the last hours,
despite having been warned about this mistake, also shows a lack of
proper consideration for the documentation.
Now that is a mystery to me. The documentation for UInt
does not mention uint. But UInt and uint act exactly
the same and have exactly the same properties. But
somehow they are different. Since you know more than
I about Raku, please teach me the different.
Maybe I presume too much thinking this is yet another
error/oversight in the documentation. Neither UInt
or uint even show up on
https://docs.raku.org/images/type-graph-Numeric.svg
The way you obstinately use the word "cardinal" these last days also
shows it, since there is simply no such thing as cardinals in the Raku
types, subsets, or whatever, and, even though some languages have used
it in the past (and, yes, I have also used Modula-2 in a quite distant
past), "cardinal" is certainly NOT a common IT concept (I mean in the
way integer, unsigned integer, or float are common concepts, often
defined by CPU manufacturers). Granted, most people here probably have a
good understanding of the word "cardinal," but it's essentially a math
concept, and has no precise definition in a programming language, unless
of course the programming language in question does define it, which
Raku doesn't. Yes, cardinals may be loosely described as integers equal
to or larger than zero, but that doesn't make a definition and that
tells us nothing about their range or maximal value, or about the
methods that can be invoked on them, and so on.
"cardinal" is a generic arithmetic and programming term.
It does not denote how many bit or bytes or whose CPU
calls what. And it is only uncommon if you have not
heard it before. And with your programming experience,
you should know the difference between generic
programming terms and language specific terms.
So, please, stop using the word "cardinal,", which is just improper,
useless and essentially meaningless in the context of thee Raku
language. Please use the types, subsets and other concept properly
defined in Raku.
Look at what I write closely. When I use a generic term like cardinal,
I always put the Raku term in parenthesis. If
this is not understandable to others, then it is a technical
writing issue on my part, not an ignorance of the
specifics any programming language.
I have been doing a lot with NativeCall and WinAPI
functions the last several weeks, so I have been
using a lot of generic terms and have had to learn C++
terms the hard way and how they map to Raku types.
(This is all in my paper.) NativeCalls documentation
is almost, but not completely, useless.
By the way DWORD is a form of cardinal and are best
emulated as uint16. You run into trouble with int16.
Did you notice that I said "form of a"?
I do the same thing with the generic term "Pointer", which
by the way can mean a lot of things. Not all pointers
are C Pointers, such as Perl 5's "references", which is
what the parenthesis are for. So when you use the term
"Pointer" you have to say what kind of pointer your
are talking about.
This conversation reminds me of one I had with the Perl 5
folks. I prefer to call hashes, "associative arrays".
I got told how ignorant I was and how much I did not
understand the Perl. A quote from Larry himself
ended that: he piked "hash" because it was easier to
write (fewer letters).
Sorry, I really don't mean to be blunt, but you should try harder to
learn from what knowledgeable people tell you. Most of those who
answered you know better.
Regards,
Laurent.
Many thanks,
-T