Home

# RECODER FAQs

## Troubleshooting

Q:
  My compiler seems to have problems with `SourceElement.Position`

A:
  Compilers that work correctly are `jikes` or `javac`. You might also want to help your compiler by providing (redundant) `public static` modifiers in front of the member class declaration (IBM Visual Age), or the fully qualified name if the name resolution fails (Inprise JBuilder).

Q:
  There are lots of deprecation warnings during compilation.

A:
  Usually, compilers will not report deprecation warnings. You can safely ignore them; we use the `@deprecated` tag to mark unfinished, "risky" methods that custom applications should avoid. These methods will be removed or refined in later versions.

Q:
  RECODER does not seem to find a file which is in the search path?!

A:
  The file name might be expanded into an absolute path. Currently, the repositories handle relative file names only. Simply add the system root to your search path (`"/."` for Unix systems).

## Design Questions

Q:
  Why did you introduce that many lists?

A:
  Java did not provide parameterized (generic/template) types at time of development and we felt the need to provide type safe containers in public interfaces. The pattern applied here provides us with a workaround.

Q:
  Why are the java.util.Collection classes not used for Lists, Sets and so on?

A:
  Two reasons: First, at the time of writing, there was no recommendable JDK available for the primary development platform Linux, so we had to remain compatible with JDK 1.1. Second, our implementations require significantly less memory and are - for most objects - faster than the standard implementations. Unfortunately, the Collection interfaces are not trivial to support by now, so no attempt was made. This is partly due to the underlaying implementation; for instance, iteration over entry pairs for instance would never become very efficient as we use a different layout internally. Lists are clearly not really compatible, even though one could attempt to make ObjectMutableList a subtype of java.util.List.