Hi Alexander,

Thank you for your very long answer.

You where guessing right about the circular dependencies. Because  
there are so many vocabularies, problems like that happen rather often.

I am really looking for better and faster ways to find these, and a  
way of working that make it less likely that they happen.

Best regards,
Leon


Quoting "Alexander J. Vondrak" <ajvond...@csupomona.edu>:

> I'm not really sure if there was a question in there...
>
>> Loading all the vocabularies, which all load many other vocabularies,
>> is not easy to do.
>
> If you're just sitting down at your editor, typing vocab names into the
> `USING:` line, then yeah, it's going to be difficult to know exactly which
> vocabs you're supposed to specify.  That's why you use the listener.
>
> Say I'm working on a file, factor/work/blah/blah.factor.  While I'm jotting
> down some code, I either don't know what I need in the `USING:` or forget to
> put something in there.
>
>   USING: ; ! ???
>
>   "Blah" print
>
>> From the listener, I type `USE: blah`, and I get a helpful error message.
>
>   IN: scratchpad USE: blah
>   Loading resource:work/blah/blah.factor
>   1: USE: blah
>               ^
>   resource:work/blah/blah.factor
>
>   1: "Blah" print
>                  ^
>   No word named “print” found in current vocabulary search path
>
>   The following restarts are available:
>
>   :1      Use the io vocabulary
>   :2      Defer word in current vocabulary
>   :3      Load resource:work/blah/blah.factor again
>
>   Type :help for debugging help.
>
> It gives me several options to recover from this error, including a  
> suggestion
> for which vocab to load to find the word `print` (note that this  
> doesn't always
> work, if Factor can't find a particular word name in the current  
> search path).
> In this case, I can type `:1` to use the `io` vocab.
>
>   IN: scratchpad :1
>   resource:work/blah/blah.factor:1: Note:
>   Added "io" vocabulary to search path
>
>   Restarts were invoked adding vocabularies to the search path.
>   To avoid doing this in the future, add the following forms
>   at the top of the source file:
>
>   USING: io ;
>
> Also, take a look at  
> http://docs.factorcode.org/content/article-images.html and
> http://docs.factorcode.org/content/word-auto-use__que__%2Cparser.html
>
>> I often have to solve problems with interdependencies. It is not  
>> easy to find
>> the cause of these problems.
>
> What sort of problems?  And what sort of interdependencies?  Like vocabs
> depending on vocabs?  I struggle to think of a problem with that, because the
> chain of dependencies shouldn't be an issue, unless there's a cycle.  E.g.,
>
>   ! In a.factor
>   USING: b ;
>   IN: a
>   : a-word ( -- ) b-word ;
>
>   ! In b.factor
>   USING: io ;
>   IN: b
>   : b-word ( -- ) "Called b-word" print ;
>
>   ! At the listener
>   IN: scratchpad USE: a
>   Loading resource:work/a/a.factor
>   Loading resource:work/b/b.factor
>   IN: scratchpad a-word
>   Called b-word
>
> Notice that a.factor doesn't need to have `USING: io`, even though b.factor
> does.  So you don't need to think about anything beyond a file's immediate
> dependencies.  I guess there would be an issue if you had a cyclic  
> dependency,
> which needs to be resolved manually (or, more practically speaking, removed):
>
>   ! In a.factor
>   USING: b io ;
>   IN: a
>
>   : a-word1 ( -- ) b-word ;
>
>   : a-word2 ( -- ) "Called a-word2" print ;
>
>   ! In b.factor
>   USING: a ;
>
>   : b-word ( -- ) a-word2 ;
>
>   ! At the listener
>   IN: scratchpad USE: a
>   Loading resource:work/a/a.factor
>   Loading resource:work/b/b.factor
>   1: USE: a
>            ^
>   resource:work/a/a.factor
>
>   1: USING: b io ;
>              ^
>   resource:work/b/b.factor
>
>   4: : b-word ( -- ) a-word2 ;
>                             ^
>   No word named “a-word2” found in current vocabulary search path
>
>   The following restarts are available:
>
>   :1      Defer word in current vocabulary
>   :2      Load resource:work/b/b.factor again
>   :3      Load resource:work/a/a.factor again
>
>   Type :help for debugging help.
>   IN: scratchpad :3
>   Loading resource:work/a/a.factor
>   Loading resource:work/b/b.factor
>   Loading resource:work/a/a.factor
>   IN: scratchpad a-word1
>   Called a-word2
>
> Maybe by "interdependencies" you mean that vocabs can step on each others'
> toes?  If two vocabs define different words with the same name, there will be
> an ambiguity.  To resolve, see
> http://docs.factorcode.org/content/word-FROM__colon__,syntax.html
>
>> In the developer tools I saw some interesting words for working with
>> vocabularies. There might be a solution to my problem, if I use these
>> tools, but I do not know where to start.
>
> Which interesting words?  Sorry, I'm running out of psychic abilities.  :)
>
> If you aren't sure what certain words do, it's helpful to browse  
> through their
> documentation.  Even if a word isn't quite what you want, there are usually
> related things you can click on, looking for related words until you stumble
> onto something useful.
>
> Hope any of that helps,
> --Alex Vondrak
> ------------------------------------------------------------------------------
> Monitor your physical, virtual and cloud infrastructure from a single
> web console. Get in-depth insight into apps, servers, databases, vmware,
> SAP, cloud infrastructure, etc. Download 30-day Free Trial.
> Pricing starts from $795 for 25 servers or applications!
> http://p.sf.net/sfu/zoho_dev2dev_nov
> _______________________________________________
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>




------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to