[
https://issues.apache.org/jira/browse/COUCHDB-1075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13029419#comment-13029419
]
Alexander Shorin commented on COUCHDB-1075:
-------------------------------------------
1. The question is actual because design doc function are cached in same way,
so I just couldn't see any differences for modules. In fact of caching and
dynamic language nature you could easily modify module nor any other function
in same way and original code would be never executed once again to clean up
this modifications. But this is on developers own conscience to use this
feature or not(:
2. Actually for Python, circular imports at top module would failed because
requested objects wouldn't be defined yet. Placing imports down below of module
could solves this, but discouraged by PEP-8. However, you are right, because
there is specification of this function:
http://wiki.commonjs.org/wiki/Modules/1.1 and p.3 is the answer(: But I suppose
that current realization of require function doesn't accords to this specs in
questions of top level modules and relative one, because currently all imports
are relative no matter how their have defined.
> Circular require's in CommonJS modules
> --------------------------------------
>
> Key: COUCHDB-1075
> URL: https://issues.apache.org/jira/browse/COUCHDB-1075
> Project: CouchDB
> Issue Type: Bug
> Components: JavaScript View Server
> Reporter: Caolan McMahon
> Labels: javascript
> Attachments: module_cache.diff
>
>
> Having a CommonJS module A which requires B, when B also requires A causes
> the stack to fill up with require calls. A prerequisite for this fix is the
> caching of modules, even if it is only on a per-request basis.
> Patch incoming.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira