*project *as a term is also mentioned in module-basics.  Does this term 
have a technical meaning in racket, or was it being used in the colloquial? 
 If it is technical racket centric, what is it?

On Thursday, April 30, 2015 at 6:11:05 PM UTC+8, Thomas Lynch wrote:
>
>
> I suspect there is an opportunity to tighten up the use of these terms. 
>  Starting out I'm looking at module-basics.scrbl where all of these terms 
> appear.
>
> I suggest reading the whole of this post before commenting, as in places 
> it suggests concrete reads of things, and then goes back and asks about 
> alternative reads.
>
> To start off with, the only concrete proposal in this post, does this look 
> useful/correct? :
>
> A module is a programmer defined grouping of syntax objects which defines 
> bindings and
> access to those bindings. A module may be defined implicitly by putting 
> the syntax
> belonging to the module together in a file.  The name of the file is then 
> taken as the
> name of the module.  Modules may also be defined explicitly using the 
> @racket[module]
> form.
>
> For example, suppose the file @filepath{cake.rkt} defines a module: ...
>
>
>
> I gather there is no way to list modules?  One might wish for something 
> like raco module show or some such.  Using 'ls -R' on a directory gets the 
> files, which is close.   Also, no way to list the modules and their 
> dependencies?  Or perhaps all this is in DrRacket, and this geiser just 
> didn't see it ..
>
> The module defines syntax groupings within the context of racket, which is 
> a little different than a file within a file system (which is place to put 
> bits).   It would be good to understand the term 'collection' in a parallel 
> manner, though corresponding to a subdirectory tree rather than a file.
>
> The section organizing modules sets the stage for this.  So I gather that 
> within that discussion it would make sense to interject at some point that 
> such the organization of modules being described is called a *collection*.
>
> Just as the file system may be used as a container for collections (via 
> the vehicle of subdirectory trees) -- is it the case that a package may 
> also be called a container for one or more collections?  I suppose a 
> package would have some additional information?  Now a collection is a 
> container for modules, so I wonder, is not a collection of collections 
> really just a bigger collection?  Then the distinction between collection 
> and package is one of context.  A collection is functionally defined form 
> the point of view of the language, indeed implied by the syntax - in 
> particular that of the path syntax in require;  while a package is a 
> utility used for transferring and installing collections.
>
> In the context of racket,  what does 'library' mean?  Dearsay it seems 
> that in some places modules are called libraries, and in other places 
> collections are called libraries, and in yet other places the term library 
> seems to indicate that something is installed in a standard place.  We also 
> see the term 'installed' used.  Particularly to distinguish between quoted 
> and unquoted paths in require statements.  However, all software is 
> installed, rather this term seems to mean that there is a process for 
> binding modules to the unquoted path names in require - this process is 
> then called 'installing'.  
>
> So trying to put this together.   In racket then, there is a unique 
> special place called "The Library".  One may place collections in The 
> Library, by installing them via a packet manager command.   Then "library 
> modules" (i.e modules found within a collection within The Library)  may be 
> accessed via unquoted path names embedded in require syntax.   We then nix 
> the terms 'installed module'  and instead use 'library module'.  *Installing 
> *is then a process for copying collections from packages and putting them 
> in The Library.  It would make sense to point at a package and say that it 
> has been installed -- this would mean that the contained collections are in 
> "The Library".  Are there other processes for putting a module into The 
> Library?  
>
> Now by this nomenclature every racket installation would have a standard 
> library that comes with racket version x, and then installation specific 
> additions to that library added by the administrator later.   So now we 
> have 'standard library' specific to a racket version, and 'local library' 
> specific to an installation.   Is this accurate?  However, in this doc 
> though the term library is used, we are never told about The Library, a 
> distribution specific 'standard' library, or a local library.  Would this 
> be summarily rejected, or if done nicely, be useful?
>
> The argument of *require *is a series of identifiers separated by slashes 
> with special meaning whether it is in quotes or not. The last identifier 
> indicates a module by name.  The first identifier is the collection name.   
> The string as a whole is called the collection relative module pathname ?? 
> is that correct?   And the string except for the last identifier (except 
> for the module name)  is called ??  It is analogous to a directory, but 
> directory is a file system terminology.  We might call it a *module path*, 
> distinguished from a *module pathname*, Or is this too subtle. Perhaps 
> "relative module location with respect to the collection top" for the 
> prefix to the module name?
>
> Can collections contain collections?  My sense is no.  However, if there 
> can be collections in collections then there is a top collection, and 
> sub-collections, etc.  Then listing collections in The Library  only gives 
> the top level collections.  We also then have to wonder where in the 
> collection tree installation puts things when we install a package.
>
> Though the term library is used, in the current nomenclature refers to 
> installed packages, but an installed package is a package we can point at 
> and say 'hey that was installed'  rather than a directory we can point at 
> and say 'hey that is a library of collections'.  These two things live in 
> different place.  Indeed I'm likely to delete an installed package because 
> it takes up disk space and all I need is the library.   Or is it the case, 
> that a package is not like a conventional zip file, but that the racket 
> uses it even after installation?  The catalog apparently lists paths to 
> collections?
>
> Now we have a catalog of collections, is this the same as a library?  So 
> we don't have a special place where things go as part of an installation 
> process, but rather the installation process inserts an file pathname into 
> a catalog and this locates the collection.  But what distinguishes a 
> collection from a package at that point.   I could have a zipped 
> collection, that I unzip, then install.  
>
> There you go .. that is the walk I took through the docs trying to get my 
> head around these terms.  
>
>
>
>
>
>
>
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/8bcf9378-e41b-4969-beb5-07e814e3dcf0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to