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
Roadmap for our language/ docs #114
Comments
|
I'm with this. I think there are some more domain specific thingies (such as Networking and so forth,) I've sorta kinda started a networking page, maybe I'll stick it in next week. |
|
Broadly I see the needed documentation as reflecting the great trio of O'Reilly Perl 5 books.
So some of this documentation exists. However it's extremely incomplete and needs much work particularly the Tutorial which ships with Star as a PDF. There is a lot of good documentation hidden in the #perl6 irc channel logs as well. Perl6 has a further danger in that google queries frequently pull outdated and inaccurate old documentation from the last 15 years. I'd recommend use of Duckduckgo which even has some basic perl6 doc support (see https://duck.co/ia/view/perl6doc) |
Hm. What networking-related Perl 6 language features are there to document? If your doc is mostly just demonstrating how to use 3rd-party modules like If it walks readers through the process of building such networking functionality using generic Perl 6 features, it should be a Tutorial. Language reference pages should stick to documenting built-in Perl 6 language features. PS: Updated the OP to clarify. |
|
I agree with your second paragraph. I think there needs to be a page to bring together the network related parts of the core library, so people can find the details of the classes. But I'm fine not doing it, I have other things to do. |
|
I still have no idea what "network related parts of the core" you're talking about... But maybe that's because it's too hot here for me to think clearly right now... :P I don't want to keep you from writing documentation - just trying to get us to use a consistent scheme for where and how to present what type of documentation. Of course since we're using a git repo, there's no harm in just adding the page the way you imagine it. If it doesn't end up fitting into the larger scheme, it can always be refactored... |
|
Looks good. My only wonder is whether 5to6 should be in the Tutorial section rather than the Appendix. |
|
Looks good - I think |
|
@smls are you saying that there are no network related functionalities in core? ~/c/p/r/src> find . | grep Socket Why should this necessarily be a tutorial and not just a 'networking with only CORE-setting' in the Language section? It seems to me that a tutorial about building a networking library could easily go to tutorial, but I don't see any clear line in the sand separating 'networking' from 'core language features' |
|
@ab5tract I'm saying I didn't know; that's why I asked... :P If there are multiple classes for sockets in core, then yes, it would probably make sense to have a language reference page for that (in the "domain-specific" section). But whether that page should be called @skids I could definitely imagine a 5to6 tutorial - but I don't think that's what our current 5to6 doc is (it's very much a straight-up reference doc). Maybe we should have both? The current |
|
The overall structure looks good to me at first glance. I'm sure as time goes on, many (including me, perhaps) will find some tweaking to be done, but I think it's a good starting point. As far as 5to6 is concerned, just so you know, I've been wanting to write a "Perl 6 Essentials for Perl 5 Programmers" document of some sort, but looking at it the other day, it seems to me that the current 5to6 is a good start on that. I've got a list of topics off the top of my head that maybe should be added (https://github.com/dha/perl5-to-perl6-docs/blob/master/5to6Additions.txt), and I'm planning on looking at that in the coming week. And, for anyone who's missed it, I've gone through Perl 5's perlfunc, perlop, and perlsyn and noted the differences between P5 and P6 (available at https://github.com/dha/perl5-to-perl6-docs). tl;dr: Good idea. We should definitely start doing something along these lines. :-) |
|
This list is great. Surprisingly, it is also more or less up-to-date. We should continue working on it. |
Here is the summary of all items in WANTED list (and reasons why we do not
need to list them anymore):
Tutorials:
* general Perl 6 intro 〈listed in #114〉
* multis / multi dispatch, how to use them practically 〈/language/functions#Multi-dispatch as well as /type/Signature#Type_Constraints〉
* lazy lists and generators 〈issue #667〉
* concurrency 〈/language/concurrency〉
* IO 〈/language/io〉
* network programming (e.g., examples for IO::Socket::INET) 〈#114 lists “FAQ: Web & Networking: Dealing with the Web, Email & networks”, that's probably enough〉
* MOP 〈/language/mop〉
* When to use which Set/Bag/*Hash type 〈#668〉
* Regexes and grammars (can be partially stolen from perl6/book) 〈language/regexes and language/grammars〉
* Pod6 〈#669
* Exceptions 〈/language/exceptions〉
* Updated version of http://perl6advent.wordpress.com/2010/12/22/day-22-the-meta-object-protocol/ (RT #121967) 〈not relevant anymore? no such example in the docs〉
* OS portability details 〈#670
Syntax features:
* Hyper Operators (prefix, infix, postfix and method call) 〈language/operators#Hyper_Operators〉
* $*ARGFILES, lines() (Issue #96) 〈issue #96 is closed〉
* dispatch related declarators: multi, only, proto, method, etc... 〈#634 #671〉
* Smartmatching: ~~, allowed RHS values, backlinks from related docs (grep) 〈#672〉
API docs:
* KeyReducer 〈#673〉
* Uni 〈/type/Uni ?〉
Functions:
* srand() 〈#674〉
* use [probably really important...] 〈what?〉
* on (S17) 〈we have /language/concurrency, it is probably good enough〉
* duckmap() and deepmap() 〈#675 #676〉
Miscellaneous:
* Add TODO comments to undocumented items ("=comment TODO") (Have started - dha) 〈we now use github issues instead〉
|
We should turn this into a TODO list. |
|
This means that there are still quite a pile of documents to go, right? Working up from the bottom I see cheatsheet, for instance. Pretty much all FAQs, too. |
|
FWIW, I think our docs under /languages/ are more like talks, not API docs. We have overlap docs on grammar and OOP while make/made and more details about OOP not documented. FAQ page now is a Wiki page, and yes, all FAQs mentioned above are covered, though might not be in FAQ page. |
|
So what do you suggest? Just wipe out all FAQs or point them to the wiki and then proceed with the rest of the uncovered pages? |
|
#112 which has been closed solved those about FAQ, so I modify the todo list. BTW, I link |
Which might or might not be what someone 1000 days ago had in mind, but it's at least what I would like to find if I go looking for math stuff in Perl 6. This refs #114, but still a lot TBD.
This refers to #114. Will check this page now and move on to the next. If think it can be improved, please open a different issue for that.
Refs #114. It's rather brief and not (never) perfect, but it's a good guide on how to interact with the system. I'll check this page now and move on to the next one.
Refs #114. It's rather brief and not (never) perfect, but it's a good guide on how to interact with the system. I'll check this page now and move on to the next one.
Which is probably a better place for it. Refs #114
I would be happy as a clam if this closed an issue, but it only means a feeble tick in the humongous #114. However, closer to the end, with just a couple of pages to go...
Only in the way of explanation of the difference between native types and native types with native size; added warning that it's not spec. But this would close #2051. I am going to close #1512 too. It does document all native types, and clarifies the difference between them. This would be the last document in #114, which was already closed, so I can't close it, but this would basically be it. As the rest of the documents I have created, it's not perfect, but it's there. It can be incrementally improved from now on.
With the number of language docs steadily increasing (yay!), I think we've reached the point where we need to bring in some organization and think about where we want to go with them as a whole.
Roughly following the lead of perldoc (and the way we're heading already), I've identified three main types of language docs that we should have:
So without further ado, here's my proposal for the "language docs" hierarchy we should be aiming for:
Language Reference: Fundamentals
syntaxtermsoperatorsvariablescontrolquotingroutinestypesobjectsexceptionsmodulesLanguage Reference: Data model
valuesstructuressubscriptsiteratingcontainersnativetypesLanguage Reference: Domain-specific Features
regexesgrammarsfilessystemconcurrencytestingmathtemporalsetbagmixmopnativecallTutorials
tut-introtut-classFAQ
faq-generalfaq-startfaq-whyfaq-basicfaq-datafaq-regexfaq-filefaq-sysfaq-netAppendix
5to6cheatsheetglossaryaboutNotes:
htmlifyto allow showing a structured index (with the groups, and the position of each page within each group, well defined) for/languageinstead of a flat alphabetical list. But that's a story for a separate github issue; this one is meant for the content, and the general vision for where we should head with our language docs.So... Is this a plan which you (other p6doc contributors) could get behind?
The text was updated successfully, but these errors were encountered: