What are the APIs supported by Bayou?

Currently, Bayou supports the following Java APIs:

  • java.lang
  • java.io
  • java.util

There are certain subsets of these APIs that Bayou does not support for technical reasons (for example, java.lang.reflect, Thread API, etc.). In the end, the most concrete list of supported types and calls is the one that appears in the auto-complete box when typing queries.

We are also actively working to add more APIs to this list.

What are the limitations of Bayou?

The current version of Bayou does not support the following features:

  • Bayou cannot generate programs that involve advanced generic types, such as wildcard types. These are prevalent in APIs such as java.util.Collections.
  • Since Bayou is, at the end of the day, a data-driven program generation system, the programs it generates are learned from patterns that are most common across a dataset of human-written code. Due to this Bayou might not work well with obscure API types or method calls that are not frequently used in practice.

I got an “unexpected error” message! What should I do?

First, check if you have followed the right format to provide the input to Bayou:

  • Queries (///) should be given in a separate and otherwise empty block { }
  • Variable declarations/initializations are the only statements allowed in the draft method outside the query block
  • Query terms (“call:” or “type:”) must be selected from the auto-complete suggestions list
  • Only one method with a query/hole in the draft program is currently supported

If you are still seeing an error message that is not detailed, send us an email with the input draft program, to vijay AT rice DOT edu, and we will attend to it as soon as possible.