Docs GODI Archive
Projects Blog Link DB

Look up function:

(e.g. "List.find" or "keysym")
More options

FAQ About Package Searching

Here are answers to the most urgent questions.

Which files can be searched?

Currently, the search is restricted to files contained in built GODI packages. It is not yet possible to search the sources of the packages. Every text file is searchable.

In the deployed version not all GODI packages are available, but around 90% of them. This will be improved later.

How are the code files analyzed?

The analyzer can distinguish between types and values in O'Caml code, and it can find out definitions. This is done by a superficial parsing technique comparable to what is done in Emacs modes. This means it is not always 100% correct, but it can cope quite well with syntax errors.

When I search for "M.foo" it does not find all uses of "foo". How come?

Currently, it is not yet tracked which modules are opened. So if there is a piece of code where "M" is first opened, and then "foo" is used, this occurrence of "foo" is not associated with "M".

Why do some documents appear twice in the result lists?

A document can appear several times when several types of words are found in it. For example, if a document contains "foo" as value and as type, and you just search for "foo", it is shown once for its value occurrence, and once for its type occurrence. They are differently ranked, however.

Sometimes my query word is hightlighted, sometimes not?

Generally, highlighting in viewed documents is only supported for text files, but not for html documents. When you see an abstract with a hyperlink, a click on this link takes you directly to the occurence of the search word, e.g. "exists" in
List - [value] (Score: 20000)
*) val exists : ('a -> bool) -> 'a list -> bool (**
The title link, "List", points to the document as a whole.

Can I search for O'Caml keywords?

No, you cannot. For example, a search for "let" shows only occurrences where "let" is not used as O'Caml keyword.

In some documents I can click on identifiers, and a search box pops up. What's that?

This is the AJAX search. It is only supported in parseable ML files. You can find an example here: List

Note that AJAX is not supported on older browsers. Internet Explorers seem to have problems with the overlay display - the search box appears at the bottom of the page instead of as a popup window.

Labels are sometimes considered as types, sometimes as values. Why?

This is a shortcoming in the current parser we'll address at some time. When a label is used as part of a type expression, it is seen as type identifier (e.g. "option" in "val foo : ?option:bool -> unit -> string"). When it is used in the "let" definition, it is seen as value identifier (as in "let foo ?option () = ..."). It is still unclear what is the right thing to do in this case.

There is a similar problem with methods - they are usually seen as values, but in an object type they are regarded as types.

Polyvariant type names are sometimes considered as values. Why?

In expressions like "match ... with #foo -> ..." the identifier "foo" is seen as value, although it is clearly a type name. This is a known error.

Can I tell my students about GODI Search?

Yes, please tell everybody about it. The server has plenty of resources, and it is unlikely that it cannot cope with this load. There is also no risk of ruining me by the increased network traffic - it is a flatrate.
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml