# Preferences (Brian 1 –> 2 conversion)

In Brian 1, preferences were set either with the function `set_global_preferences` or by creating a module somewhere on the Python path called `brian_global_config.py`.

## Setting preferences

The function `set_global_preferences` no longer exists in Brian 2. Instead, importing from `brian2` gives you a variable `prefs` that can be used to set preferences. For example, in Brian 1 you would write:

    set_global_preferences(weavecompiler='gcc')

In Brian 2 you would write:

    prefs.codegen.cpp.compiler = 'gcc'

## Configuration file

The module `brian_global_config.py` is not used by Brian 2, instead we search for configuration files in the current directory, user directory or installation directory. In Brian you would have a configuration file that looks like this:

    from brian.globalprefs import *
    set_global_preferences(weavecompiler='gcc')

In Brian 2 you would have a file like this:

    codegen.cpp.compiler = 'gcc'

## Preference name changes

- `defaultclock`: removed because it led to unclear behaviour of scripts.

- `useweave_linear_diffeq`: removed because it was no longer relevant.

- `useweave`: now replaced by codegen.target (but note that weave is no longer supported in Brian 2, use Cython instead).

- `weavecompiler`: now replaced by codegen.cpp.compiler.

- `gcc_options`: now replaced by codegen.cpp.extra_compile_args_gcc.

- `openmp`: now replaced by devices.cpp_standalone.openmp_threads.

- `usecodegen*`: removed because it was no longer relevant.

- `usenewpropagate`: removed because it was no longer relevant.

- `usecstdp`: removed because it was no longer relevant.

- `brianhears_usegpu`: removed because Brian Hears doesn’t exist in Brian 2.

- `magic_useframes`: removed because it was no longer relevant.