---
name: "mindy"
section: "1"
platform: "linux"
package: "mindy"
version: "2.3.8pre1-1"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/mindy"
---

# mindy(1)

A Dylan bytecode interpreter

## NAME

mindycomp, mindy - A Dylan bytecode interpreter

## SYNOPSIS

**mindycomp** \[ **-l***library* \] \[ **-D***feature* \| **-U***feature* \]... \[ **-o** *dbcfile* \] *srcfile*\
 **mindy** \[ **-l***library* \] \[ **-f** *dbcfile* \]... \[ **-x** *dbcfile* \] *arguments*...

## WARNING

This man page is intended to supplement the main Gwydion Dylan documentation at *http://www.gwydiondylan.org/*. It provides an incomplete reference of the available options. For a full reference or a tutorial, please see the web site.

## DESCRIPTION

**mindycomp** and **mindy** are a bytecode compiler and interpreter, respectively. Dylan sources are compiled with mindycomp and then run using mindy.

**mindy** supports much of the Dylan language. (The most notable exclusion is the macro system.) It provides debugging facilities and a listener. Mindy can interface with C using [*melange*(1)](/melange/1.md) , and can be used to develop programs which will later be compiled under [*d2c*(1)](/d2c/1.md).

## PROGRAM STRUCTURE

A Dylan program is made up out of one or more libraries. Each library contains one or more modules, each of which can be defined in one or more source files. **mindycomp** compiles one file into bytecodes at a time (and doesn't particularly understand what's it's seeing, so many errors will go unnoticed).

All the bytecode files from a library are then passed to **mindy**, which automatically supplements them with any necessary system libraries and calls the generic function **main**. You can use the [*make-dylan-app*(1)](/make-dylan-app/1.md) script to create a sample Dylan program. (It will also create a sample **lid** file for use with [*d2c*(1)](/d2c/1.md), but this can be ignored.)

## OPTIONS

The following options are shared by both mindycomp and mindy:

- **--help**

  Print out a message describing the available options.

- **--version**

  Print out the version and copyright.

- **-l***library*

  Assume source or bytecode file belongs to *library*. (Can this also be specified with the "library:" keyword in a source file?)

The following options are specific to mindycomp:

- **-D***feature*

  Define a conditional-compilation feature which can be tested with #if.

- **-U***feature*

  Undefine a conditional-compilation feature which can be tested with #if.

- **-o** *dbcfile*

  Output bytecodes to *dbcfile*. Defaults to the input filename with the extension changed to ".dbc".

The following options are specific to mindy:

- **-f** *dbcfile*

  Load bytecodes from *dbcfile* into Mindy's heap before running.

- **-x** *dbcfile*

  The same as above, but do not look for any other options after this point. This option allows mindy to pass **-f** options to the program being run.

- *arguments*

  All remaining arguments are passed to the program being run.

## BUGS

**mindy** does not support several major features of the Dylan language, most notably macros. It also cannot create C-callable function pointers.

Other bugs can be found on the website.

## SEE ALSO

[dylan(7)](/dylan/7.md), [gwydion(7)](/gwydion/7.md), [melange(1)](/melange/1.md), [d2c(1)](/d2c/1.md), [make-dylan-app(1)](/make-dylan-app/1.md).

Much more extensive documentation in various formats is available through the Gwydion Dylan web site at *http://www.gwydiondylan.org/*.

## AUTHORS

The Gwydion Group at CMU, many contributors around the world, and the current Gwydion Dylan maintainers.
