Skip to content

Commit 2182372

Browse files
committed
Replace make-dylan-app with dylan-tool
`make-dylan-app` is completely obsoleted by `dylan new application ...` now, so remove it and update documentation and build scripts to use the latter. The changes to the Windows Makefile are untested but are straight-forward. The only problem I can think of is if the `dylan-tool` submodules don't get checked out recursively.
1 parent 460fdc3 commit 2182372

20 files changed

+153
-340
lines changed

BUILDING.rst

+14-11
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ back-end.
7070
Building
7171
--------
7272

73-
To build ``dylan-compiler``, ``make-dylan-app``, and several tools::
73+
To build :program:`dylan-compiler` and several tools::
7474

7575
export PATH=$(dirname $(which dylan-compiler)):$PATH
7676
./autogen.sh
@@ -98,11 +98,11 @@ can point it in the right direction by using ``--with-gc``::
9898

9999
./configure --prefix=/opt/opendylan-current --with-gc=/path/to/boehm
100100

101-
By default, this will build a fully bootstrapped compiler with the
102-
first generation in ``Bootstrap.1/bin/dylan-compiler``, the second
103-
generation in ``Bootstrap.2/bin/dylan-compiler``, and the third in
104-
``Bootstrap.3/bin/dylan-compiler``. The third generation will then be
105-
installed as ``/opt/opendylan-current/bin/dylan-compiler``.
101+
By default, this will build a fully bootstrapped compiler with the first
102+
generation in :file:`Bootstrap.1/bin/dylan-compiler`, the second generation in
103+
:file:`Bootstrap.2/bin/dylan-compiler`, and the third in
104+
:file:`Bootstrap.3/bin/dylan-compiler`. The third generation will then be
105+
installed as :file:`/opt/opendylan-current/bin/dylan-compiler`.
106106

107107
Running Tests
108108
-------------
@@ -113,7 +113,10 @@ complete::
113113
make check
114114

115115
This runs the tests for the core language implementation as well as for many
116-
bundled libraries.
116+
bundled libraries. You may also want to run the
117+
``dfmc-environment-test-suite``, with ::
118+
119+
make check-environment
117120

118121
Windows
119122
=======
@@ -135,7 +138,7 @@ Windows
135138

136139
* Please keep in mind that paths with whitespaces are not well supported.
137140

138-
* cd into build\\windows and run::
141+
* cd into :file:`build\\windows` and run::
139142

140143
build-release.bat <target-dir> /sources <git-checkout>\sources /internal
141144

@@ -147,7 +150,7 @@ IDE in <target-dir>.
147150
* Get NSIS from http://nsis.sf.net and the HTML help workshop (from
148151
Microsoft, to generate the chm).
149152

150-
* Go to packages\\win32-nsis, read Build.txt and follow the
151-
instructions. Make sure you are using the same command shell as
152-
used for building Open Dylan (to retain environment variables).
153+
* Go to :file:`packages\\win32-nsis`, read :file:`Build.txt` and follow the
154+
instructions. Make sure you are using the same command shell as used for
155+
building Open Dylan (to retain environment variables).
153156

Makefile.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ cli2:
189189
BOOTSTRAP_3_ROOT = $(abs_builddir)/Bootstrap.3
190190

191191
BOOTSTRAP_3_LIBRARIES = \
192-
dylan-compiler dylan-environment parser-compiler dswank make-dylan-app
192+
dylan-compiler dylan-environment parser-compiler dswank
193193
BOOTSTRAP_3_STATICS = \
194194
dylan-tool
195195

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ Verify that the downloaded version is working correctly by building a
1616
hello-world binary:
1717

1818
```
19-
make-dylan-app hello-world
19+
dylan new application --simple hello-world
2020
cd hello-world
21-
dylan-compiler -build hello-world
21+
dylan build --all
2222
_build/bin/hello-world
2323
```
2424

build/windows/Makefile

+8-7
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ SIMPLE_DAYTIME_CLIENT_SOURCE = $(NETWORK_EXAMPLES_SOURCE)\simple-daytime-client
302302
SIMPLE_DAYTIME_CLIENT_INSTALL_DIRECTORY = $(NETWORK_EXAMPLES_INSTALL_DIRECTORY)\simple-daytime-client
303303
SIMPLE_DAYTIME_SERVER_SOURCE = $(NETWORK_EXAMPLES_SOURCE)\simple-daytime-server
304304
SIMPLE_DAYTIME_SERVER_INSTALL_DIRECTORY = $(NETWORK_EXAMPLES_INSTALL_DIRECTORY)\simple-daytime-server
305-
MAKE_DYLAN_APP_SOURCE = $(APP_DIRECTORY)\make-dylan-app
305+
DYLAN_TOOL_SOURCE = $(APP_DIRECTORY)\dylan-tool
306306

307307
#
308308
# CORBA projects
@@ -381,7 +381,7 @@ PARSER_COMPILER = $(INSTALL_BIN_DIRECTORY)\parser-compiler.exe
381381
TESTWORKS_REPORT = $(INSTALL_BIN_DIRECTORY)\testworks-report.exe
382382
WIN32_ENVIRONMENT = $(INSTALL_BIN_DIRECTORY)\win32-environment.exe
383383
WITH_SPLASH_SCREEN = $(INSTALL_BIN_DIRECTORY)\with-splash-screen.exe
384-
MAKE_DYLAN_APP = $(INSTALL_BIN_DIRECTORY)\make-dylan-app.exe
384+
DYLAN_TOOL_APP = $(INSTALL_BIN_DIRECTORY)\dylan-tool-app.exe
385385

386386
BIG_INTEGERS_DLL = $(RUNTIME_PREFIX)bigint
387387
CHANNELS_DLL = $(RUNTIME_PREFIX)chnnls
@@ -754,7 +754,7 @@ devel-dbg-ui: $(DEVEL_DBG_UI)
754754
dll-wrap: $(DLL_WRAP)
755755
parser-compiler: $(PARSER_COMPILER)
756756
testworks-report: $(TESTWORKS_REPORT)
757-
make-dylan-app: $(MAKE_DYLAN_APP)
757+
dylan-tool-app: $(DYLAN_TOOL_APP)
758758

759759
project-manager-libraries: tools-interface user-projects
760760
core-compiler-libraries: file-source-records release-info dood binary-manager coff-manager binary-builder coff-builder build-system parser-run-time dfmc-management dfmc-browser-support project-manager-libraries dfmc-debug-back-end
@@ -1073,7 +1073,7 @@ rel-environment: dylan-environment win32-environment with-splash-screen
10731073
libraries: user-libraries win32-libraries duim ole-libraries duim-ole database-libraries network dylan-orb naming-client midi
10741074
example-projects: console-example-projects duim-example-projects win32-example-projects ole-example-projects duim-ole-example-projects network-example-projects corba-example-projects
10751075
install-examples: install-examples-css install-console-examples install-duim-examples install-win32-examples install-basic-doc-examples install-templates install-database-examples install-ole-examples install-duim-ole-examples install-network-examples install-corba-examples install-enhanced-doc-examples install-midi-examples
1076-
tools: install-wdbgdylan dll-wrap dylan-playground gui-dylan-playground create-id console-scepter naming-service remote-debugger testworks-libraries debugger parser-compiler make-dylan-app
1076+
tools: install-wdbgdylan dll-wrap dylan-playground gui-dylan-playground create-id console-scepter naming-service remote-debugger testworks-libraries debugger parser-compiler dylan-tool-app
10771077
release: release-info dylan-compiler-with-tools compiler environment rel-environment libraries tools install-runtime-dlls install-examples
10781078

10791079
reinstall-examples:
@@ -2000,13 +2000,14 @@ $(TESTWORKS_REPORT):
20002000
$(ENSURE_SOURCES) testworks-report $(TESTWORKS_REPORT_SOURCE)
20012001
$(BUILD_APPLICATION) testworks-report
20022002

2003-
$(MAKE_DYLAN_APP):
2003+
$(DYLAN_TOOL_APP):
20042004
$(ENSURE_RUNTIME_LIBRARY) $(COMMON_DYLAN_DLL) common-dylan
20052005
$(ENSURE_RUNTIME_LIBRARY) $(IO_DLL) io
20062006
$(ENSURE_RUNTIME_LIBRARY) $(SYSTEM_DLL) system
20072007
$(ENSURE_RUNTIME_LIBRARY) $(STRINGS_DLL) strings
2008-
$(ENSURE_SOURCES) make-dylan-app $(MAKE_DYLAN_APP_SOURCE)
2009-
$(BUILD_APPLICATION) make-dylan-app
2008+
$(ENSURE_SOURCES) dylan-tool $(DYLAN_TOOL_SOURCE)
2009+
$(BUILD_APPLICATION) dylan-tool-app
2010+
$(COPY) $(DYLAN_TOOL_APP) $(INSTALL_BIN_DIRECTORY)\dylan.exe
20102011

20112012
# Test Suites
20122013

documentation/getting-started-cli/source/dylan-mode-for-emacs.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ you put dylan-mode. ::
2727
Setting ``OPEN_DYLAN_USER_REGISTRIES`` is important because that's how
2828
DIME finds your projects.
2929

30-
For this tutorial let's use a "dime-test" project created with
31-
``make-dylan-app``. See the section :doc:`hello-world` to create the
30+
For this tutorial let's use a "dime-test" project created with the
31+
:program:`dylan` tool. See the section :doc:`hello-world` to create the
3232
project, and also make sure you have a registry entry for it. See
3333
:doc:`source-registries` if you're not sure how to set that up.
3434

@@ -37,7 +37,7 @@ project, and also make sure you have a registry entry for it. See
3737
$ export PATH=/opt/opendylan/bin:$PATH
3838
$ cd ...dir containing registry...
3939
$ echo abstract://dylan/dime-test/dime-test.lid > registry/generic/dime-test
40-
$ make-dylan-app dime-test
40+
$ dylan new application --simple dime-test
4141
$ cd dime-test
4242
$ emacs dime-test.dylan
4343
M-x dime <Enter>

documentation/getting-started-cli/source/hello-world.rst

+36-30
Original file line numberDiff line numberDiff line change
@@ -6,52 +6,58 @@ how do you write the canonical Hello World app? This example assumes the
66
``bash`` shell is used. You may need to adjust for your local shell. ::
77

88
$ export PATH=/opt/opendylan/bin:$PATH
9-
$ make-dylan-app hello-world
9+
$ dylan new application --simple hello-world
1010
$ cd hello-world
11-
$ dylan-compiler -build hello-world.lid
11+
$ dylan build --all
1212
...lots of output...
1313
$ _build/bin/hello-world
1414
Hello, world!
1515

16-
Ta da! Now a quick review of the steps with a little bit of
17-
explanation.
16+
Ta da! Now a quick review of the steps with a little bit of explanation.
1817

19-
First you must set ``PATH`` so that ``make-dylan-app`` and
20-
``dylan-compiler`` will be found. ``./_build/bin`` is where
21-
dylan-compiler puts the executables it builds.
18+
First you must set ``PATH`` so that the :program:`dylan` and
19+
:program:`dylan-compiler` commands will be found. ``./_build/bin`` is where
20+
:program:`dylan-compiler` puts the executables it builds.
2221

2322
.. note:: Some of these differ on Windows, so please be sure
2423
to read :doc:`windows` if you are on Windows.
2524
:class: alert alert-block alert-warning
2625

27-
``make-dylan-app`` creates a directory with the same name as the
28-
project, and four files:
26+
``dylan new application --simple hello-world`` creates a directory named
27+
"hello-world", and several files. The ``--simple`` flag says to skip generating
28+
a test suite library.
2929

30-
1. ``hello-world.lid`` -- This says what other files are part of the project.
31-
The order in which the files are listed here determines the order in which
32-
the code in them is executed.
30+
1. :file:`hello-world.lid` lists the files in the project. The order in which
31+
the files are listed here determines the order in which the code in them is
32+
loaded. The library definition file should always be first.
3333

34-
2. ``library.dylan`` contains the library and module definitions. These can be
35-
extended as your project grows more complex.
34+
2. :file:`library.dylan` contains the library and module definitions. These
35+
can be extended as your project grows in complexity.
3636

37-
3. ``hello-world.dylan`` contains the main program. Note that the last
38-
top-level definition is a call to the main function, which may have any
39-
name; there is no predefined "main" function that is automatically called.
37+
3. :file:`hello-world.dylan` contains the main program code.
4038

41-
4. ``registry/<platform>/hello-world`` is a "registry file", which contains the
42-
path to the ``hello-world.lid`` file.
39+
4. The :file:`registry` directory is how :program:`dylan-compiler` locates each
40+
used library. When using the :program:`dylan` tool, this directory is
41+
generated for you. See :doc:`source-registries` for details on the registry
42+
format.
4343

44-
The first time you build ``hello-world`` it builds all used libraries, all the
45-
way down to the ``dylan`` library itself. Subsequent compiles only need to
44+
5. :file:`dylan-package.json` describes the new "hello-world" package. This is
45+
where you can specify dependencies, the package location, etc. See the
46+
`dylan-tool documentation
47+
<https://docs.opendylan.org/packages/dylan-tool/documentation/source/index.html>`_
48+
for more on this. Note that the existence of this file turns the
49+
"hello-world" directory into a :program:`dylan` workspace.
50+
51+
The first time you build ``hello-world`` all used libraries are built, all the
52+
way down to the ``dylan`` library itself. Subsequent builds only need to
4653
recompile ``hello-world`` itself and are therefore much faster.
4754

48-
``dylan-compiler`` has a batch mode and an interactive mode. The ``-build``
49-
option says to build the project in batch mode. When you pass a ".lid" file to
50-
the compiler it builds the library described by that file. In the next section
51-
you'll see that you can also pass the name of the project (without ".lid") and
52-
it will use "registries" to find the project sources.
55+
.. note:: Don't confuse the ``dylan`` library with the :program:`dylan`
56+
executable program. The ``dylan`` library contains the core Dylan
57+
language features that are not implemented inside the compiler. The
58+
``dylan`` program is a tool to help manager Dylan projects and is
59+
created from a library called ``dylan-tool``.
5360

54-
The compiler places its output in the ``_build`` directory in the
55-
current working directory. This includes the libraries and executables
56-
that it builds. You can run the executable as noted above from this
57-
location.
61+
The compiler places its output in the ``_build`` directory in the current
62+
working directory. This includes the libraries and executables that it builds.
63+
You can run the executable from this location, as noted above.

documentation/getting-started-cli/source/index.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ the Open Dylan IDE
1010
<https://opendylan.org/documentation/getting-started-ide/>`_.
1111

1212
The compiler executable is called ``dylan-compiler``. There is a helper
13-
application called ``make-dylan-app``, which can be used to generate some
13+
application called :program:`dylan`, which can be used to generate some
1414
boilerplate for a new project, and finally there's ``DIME`` and ``dswank``, a
1515
pair of tools for interactive development in Emacs. This document describes
1616
these tools.
@@ -21,7 +21,7 @@ these tools.
2121
copyright
2222
hello-world
2323
source-registries
24-
adding-new-libraries
24+
managing-dependencies
2525
quick-tips
2626
dylan-compiler
2727
dylan-environment

documentation/getting-started-cli/source/adding-new-libraries.rst documentation/getting-started-cli/source/managing-dependencies.rst

+13-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
Adding New Libraries
2-
====================
1+
Managing Dependencies
2+
=====================
33

4-
.. note:: There is a new package system and ``dylan`` tool packaged with the
5-
Open Dylan release which provides an alternative to using Git
6-
submodules. It automatically downloads dependencies, creates registry
7-
files for you, and uses Semantic Versioning to specify
8-
dependencies. See the `dylan-tool`_ docs for more information.
4+
We recommend managing inter-library dependencies by use of the Dylan package
5+
manager and the :program:`dylan` tool. When using the :program:`dylan` tool
6+
dependencies are added to the "dylan-package.json" file in your project. See
7+
the `dylan-tool`_ documentation for details.
8+
9+
The second way to manage dependencies is to use Git submodules. The remainder
10+
of this document explains how to do that.
911

1012
Adding a Git Submodule
1113
----------------------
1214

13-
One way of handling inter-library dependencies is to use git submodules. This
14-
allows you to specify a precise version that you rely upon, but assumes that
15-
we're all using git.
15+
Git submodules allow you to specify a precise version that you rely upon, but
16+
they assume that everyone is using Git.
1617

17-
We tend to keep all git submodules in a top level directory
18+
We tend to keep all Git submodules in a top level directory
1819
within the repository named ``ext``. To add a new submodule::
1920

2021
git submodule add <repository URL> ext/<name>
@@ -74,8 +75,6 @@ version that was pulled in with the existing submodule.
7475
As an example, if you pull in the HTTP library, it has
7576
a number of submodules, so you don't need to pull each
7677
of those in directly, but can reference them through
77-
the ``ext/http/`` directory. (Note in this case that
78-
the ``http`` library uses a non-standard name for the
79-
directory holding its submodules.)
78+
the ``ext/http/`` directory.
8079

8180
.. _dylan-tool: https://docs.opendylan.org/packages/dylan-tool/documentation/source/index.html

0 commit comments

Comments
 (0)