[aot] Cleanup the AOT loading code a bit. Add a --aot-path= command line option to...
[mono.git] / man / csharp.1
index 62d339cc055a58d103b7577068fa779a7315ac6a..a0f9e6f4f6acd62c6df19b1a0a84aadca07e306c 100644 (file)
@@ -4,22 +4,62 @@
 ..
 .TH csharp 1 "4 September 2008"
 .SH NAME 
-csharp \- Interactive C# Shell 
+csharp, gsharp \- Interactive C# Shell 
 .SH SYNOPSIS
-.B csharp 
+.B csharp [--attach PID] [-e EXPRESSION] [file1 [file2]]
 [options] 
+.P
+.B gsharp [file1 [file2]]
 .SH DESCRIPTION
 The 
 .I csharp
 is an interactive C# shell that allows the user to enter and evaluate
-C# statements and expressions from the command line.
-.PP
-This command is a shortcut to invoke the 
-.I gmcs
-command with the 
-.I \-\- shell 
-command line option.   All of the regular compiler options available
-to gmcs are available in the interactive shell.
+C# statements and expressions from the command line.   The regular 
+.I mcs
+command line options can be used in this version of the compiler. 
+.PP
+The 
+.I gsharp
+command is a GUI version of the C# interpreter that uses Gtk# and
+provides an area to attach widgets as well.      This version can be
+attached to other Gtk# applications in a safe way as it injects itself
+into the main loop of a Gtk# application, avoiding any problems
+arising from the multi-threaded nature of injecting itself into a
+target process.
+.PP
+Files specified in the command line will be loaded and executed as
+scripts.
+.PP
+Starting with Mono 2.10, the 
+.I csharp
+command can be used as an interpreter executed by executables flagged
+with the Unix execute attribute.   To do this, make the first line of
+your C# source code look like this:
+.nf
+"#!/usr/bin/csharp" 
+Console.WriteLine ("Hello, World");
+.fi
+.SH OPTIONS
+The commands accept all of the commands that are available to the 
+.I mcs
+command, so you can reference assemblies, specify paths, language
+level and so on from the command line.   In addition, the following
+command line options are supported:
+.TP 
+.I "\-\-attach"
+This is an advanced option and should only be used if you have a deep
+understanding of multi-threading.     This option is availble on the 
+.I csharp
+command and allows the compiler to be injected into other processes.
+This is done by injecting the C# shell in a separate thread that runs
+concurrently with your application.  This means that you must take
+special measures to avoid crashing the target application while using
+it.  For example, you might have to take the proper locks before
+issuing any commands that might affect the target process state, or
+sending commands through a method dispatcher.     
+.TP 
+.I "\-e" EXPRESSION
+This will evaluate the specified C# EXPRESSION and exit
 .SH OPERATION
 Once you launch the csharp command, you will be greeted with the
 interactive prompt:
@@ -179,11 +219,12 @@ csharp>
 .SH INTERACTIVE EDITING
 The C# interactive shell contains a line-editor that provides a more
 advanced command line editing functionality than the operating system
-provides.     
+provides.   These are available in the command line version, the GUI
+versions uses the standard Gtk# key bindings.
 .PP
 The command set is similar to many other applications (cursor keys)
 and incorporates some of the Emacs commands for editing as well as a
-history mechanism to 
+history mechanism too.
 .PP
 .PP
 The following keyboard input is supported:
@@ -206,7 +247,7 @@ line in the history.
 .TP
 .I Down Arrow Key, Control-n
 Moves forward in the history, replaces the current line with the next
-lien in the history.
+line in the history.
 .TP
 .I Return
 Executes the current line if the statement or expression is complete,
@@ -288,6 +329,12 @@ csharp>
 .PP
 The return value is a TimeSpan, that you can store in a variable for
 benchmarking purposes. 
+.SH GUI METHODS AND PROPERTIES
+In addition to the methods and properties available in the console
+version there are a handful of extra properties available on the GUI
+version.   For example a "PaneContainer" Gtk.Container is exposed that
+you can use to host Gtk# widgets while prototyping or the "MainWindow"
+property that gives you access to the current toplevel window. 
 .SH STARTUP FILES
 The C# shell will load all the Mono assemblies and C# script files
 located in the ~/.config/csharp directory on Unix.  The assemblies are
@@ -311,9 +358,9 @@ gmcs(1), mcs(1), mdb(1), mono(1), pkg-config(1)
 .SH BUGS
 To report bugs in the compiler, you must file them on our bug tracking
 system, at:
-http://www.mono-project.com/Bugs 
+http://www.mono-project.com/community/bugs/
 .SH MAILING LIST
-The Mono Mailing lists are listed at http://www.mono-project.com/Mailing_Lists
+The Mono Mailing lists are listed at http://www.mono-project.com/community/help/mailing-lists/
 .SH MORE INFORMATION
 The Mono C# compiler was developed by Novell, Inc
 (http://www.novell.com, http) and is based on the
@@ -321,5 +368,5 @@ ECMA C# language standard available here:
 http://www.ecma.ch/ecma1/STAND/ecma-334.htm
 .PP
 The home page for the Mono C# compiler is at
-http://www.mono-project.com/CSharp_Compiler  information about the
-interactive mode for C# is available in http://mono-project.com/CsharpRepl
+http://www.mono-project.com/docs/about-mono/languages/csharp/ information about the
+interactive mode for C# is available in http://mono-project.com/docs/tools+libraries/tools/repl/