> Pull a vocabulary page out of the definitions?
The markdown converter already does that, see
https://github.com/cahman/HaxeManual/blob/master/md/manual/dictionary.md
> Is “2.1 Basic Type” not a type group?
Basic types are abstracts with a @:coreType metadata. They are special
in that they do not have an underlying type. We do not have to list them
at separate type group, but we should mention @:coreType somewhere and
also explain how basic types are represented in the Basic Type section.
> Optional parameters is referred to as “optional Arguments” later in
> the manual. For con- sistency sake, do we prefer parameter or argument?
We should be using "argument" indeed because "parameter" usually refers
to type parameters.
> Later the manual uses “method” instead of “function.” I think they’re
> generally un- derstood to be inter- changeable, but for consistency, I
> think it should use one or the other throughout
I think I mention somewhere that I make the distinction between methods
as class fields and functions as methods + closures. However, this means
we should use "method" in this place.
> The comment on line 7 is confusing, maybe it should read “//Red is
> type enumValue not Enum¡Color¿”?
That's actually the error the compiler gives.
> What is a valid field- name?
That's explained in the Expressions section, we should reference it.
> I’m gussing it’s the non-static targets (JS, php) that make code like
> this?
I think all targets but Flash generate code like that.
> So what is the type of that array, or is it a compile error now?
It's a compilation error.
> Different from abstract classes in other lan- guages. Maybe we should
> mention that explicitly.
Yeah, this is sometimes confused by people. I think it would make a nice
trivia box.
> Change this to a flow chart?
Yes, we could do that later.
> Shoudl array access be part of the opera- tor overloading? Are
> brackets considered an operator?
No, brackets are not an operator in Haxe. They have their own syntax
(EArray) and typed AST (TArray) nodes.
> The formatting of the pdf is wrong here. Possibly due to how lessthan
> and greaterthen are set in the .tex file?
Possibly, that's the kind of stuff I'd deal with during final editing.
> I hope there is there a compiler warning about conflicts like this?
There's no special warning, but you will likely get an error if you try
to access haxe.Type with haxe being a local variable.
> A little different than the ’standard’ OOP definitions. A thing
> contained in an ob- ject is usually called a ’member.’ Might be worth
> pointing out the difference to other ’OOP’ languages.
Really? I always considered "member" to be the opposite of "static" in a
sense.
> I think it makes sense to talk about flags here (static, dynamic, over-
> ride, public, and pri- vate)
These have their own section a bit later.
> Confused by this. Are they saying the fields are of type dynamic, or
> the access identifier is dynamic?
That's actually just a typo, it is supposed to say "assign a class with
properties TO Dynamic".
> I don’t understand. If it isn’t a ’physi- cal field’ then what is it?
> Why would you ever want a field that wasn’t a physical field?
If a field has both a getter and a setter it's entirely possible that
there is no "storage" required for it. For instance, you could have a
linked list data structure with a field length(get, never):Int, where
get_length would calculate the value by counting the elements (yes,
that's not good design).
> Is vocabulary con- sistent: visibility vs. accessibility? If so,
> what’s the difference?
You can have a field which is visible to you, but still cannot be
accessed in a specific way. I guess we don't have to talk about
"accessibility" though.
> which targets suffer the most from function calls? Guessing flash?
> So how do we tell if a function performs better inline? Use a code
> profiler?
Yeah, that and general experience. It's hard to give any real advice
here because it depends on many circumstances. For instance, even very
short functions can be bad inlining candidates if they use an argument
multiple times.
> What about overriding variables? Something I can easily check when I
> have the time..
Not allowed in Haxe. We should mention it though.
> I feel like a quick intro to expressions should come sooner in the manual.
Maybe, but I don't like splitting content like that. The manual
currently has a nice top-down flow from types over fields to expressions.
> Anonymous Objects are synonymous with Anonymous Struc- tures? Objects
> are the same as structures? Want to be sure to use consistent vocab
Good point, we shouldn't be talking about "object" there because that
term is heavily overloaded. It might be better to talk about structures.
> Talk about the try catch keyword here, but I feel like excep- tions
> should have their own, larger’ish section.
I thought about that, but I wouldn't really know what to tell about them
beyond their syntax.
> Is this section going to overlap with the API documentation. Would it
> make sense to just pull in that informa- tion?
This section is supposed to introduce specific parts of the standard
library: What are they used for? How are they used?
> There are more static extensions, like Date- Tools. Should this list
> all of the static exten- sions, or just some exapmles?
DateTools was not designed as static extension class, it just happens to
have that Tools suffix. We can mention all static extension classes of
the standard library, but I think I already do that.
> There should probably be a whole section on Iterables?
Agreed, that can go to the features section.
> Just a stlye question: When to use Fullref vs tref?
Ah, we have to make that consistent. I hadn't used LateX for years when
I started with the manual and was struggling a bit to get references right.
> I think \ would be more inuitive as an escape sequence than $ Just
> curious about the design decision.
That's how C printf escapes % as well.
In general: A huge THANKS for your comments and work on this. It's the
first real contribution I've had beyond typo fixes and I really
appreciate it. Let me know if you have further questions!
Simon