Skip to content

Commit

Permalink
cleanup: reduce duplication in module definitions
Browse files Browse the repository at this point in the history
...by using deft-shared to re-export everything in a way that can be used by the
workspaces and pacman modules.
  • Loading branch information
cgay committed Dec 29, 2024
1 parent bce91ff commit d2a4b35
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 99 deletions.
4 changes: 2 additions & 2 deletions sources/app-library.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ define library deft-app
end library;

define module deft-app
use common-dylan;
use command-line-parser;
use common-dylan;
use deft-shared;
use deft;
use format-out;
use logging;
use operating-system, prefix: "os/";
use shared;
end module;
106 changes: 31 additions & 75 deletions sources/library.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,33 @@ define library deft

export
deft,
pacman,
%pacman,
shared,
workspaces,
%workspaces;
deft-shared,
pacman, %pacman,
workspaces, %workspaces;
end library;

// Definitions used by all the other modules.
define module shared
use format-out;
use operating-system, prefix: "os/";
use streams;
use strings;
use uncommon-dylan,
exclude: { format-out };
// Utilities shared by all Deft modules, and also a set of shared imports.
define module deft-shared
use collectors, export: all;
use command-line-parser, export: all;
use date, import: { current-date, <duration> }, export: all;
use dylan-extensions, import: { address-of }, export: all;
use file-source-records, prefix: "sr/", export: all;
use file-system, prefix: "fs/", export: all;
use format-out, export: all;
use format, export: all;
use json, export: all;
use locators, export: all;
use operating-system, prefix: "os/", export: all;
use print, export: all;
use regular-expressions, export: all;
use standard-io, export: all;
use streams, export: all;
use strings, export: all;
use threads, import: { dynamic-bind }, export: all;
use uncommon-dylan, export: all;
use uncommon-utils, export: all;

export
*debug?*,
*verbose?*,
Expand Down Expand Up @@ -110,26 +122,8 @@ define module pacman
end module;

define module %pacman
use date,
import: { current-date, <duration> };
use file-system, prefix: "fs/";
use format;
use format-out;
use json;
use locators;
use operating-system, prefix: "os/";
use print;
use regular-expressions;
use shared;
use streams;
use strings;
use uncommon-dylan,
exclude: { format-out, format-to-string };
// Do we need this?
use uncommon-utils,
import: { elt, iff, <singleton-object>, value-sequence };

use pacman, export: all;
use deft-shared;
use pacman;

// For the test suite.
export
Expand Down Expand Up @@ -175,32 +169,12 @@ define module workspaces
end module;

define module %workspaces
use collectors;
use dylan-extensions,
import: { address-of };
use file-source-records, prefix: "sr/";
use file-system, prefix: "fs/";
use format;
use format-out;
use json;
use locators;
use operating-system, prefix: "os/";
use deft-shared;
use workspaces;
use pacman,
prefix: "pm/",
// Because / followed by * is seen as a comment by dylan-mode.
rename: { *package-manager-directory* => *package-manager-directory* };
use print;
use regular-expressions;
use shared;
use standard-io;
use streams;
use strings;
use threads;
use uncommon-dylan,
exclude: { format-out, format-to-string };
use uncommon-utils,
import: { err, iff, inc!, slice };
use workspaces;

// Exports for the test suite.
export
Expand All @@ -212,29 +186,11 @@ define module %workspaces
end module;

define module deft
use collectors;
use command-line-parser;
use file-system, prefix: "fs/";
use format;
use format-out;
use json;
use locators;
use operating-system, prefix: "os/";
use deft-shared;
use pacman,
prefix: "pm/",
// Because / followed by * is seen as a comment by dylan-mode.
// Because pm/*... is seen as a /* comment by dylan-mode.
rename: { *package-manager-directory* => *package-manager-directory* };
use regular-expressions;
use shared;
use standard-io;
use streams;
use strings;
use threads,
import: { dynamic-bind };
use uncommon-dylan,
exclude: { format-out, format-to-string };
use uncommon-utils,
import: { err, iff, inc!, slice };
use workspaces, prefix: "ws/";

export
Expand Down
8 changes: 4 additions & 4 deletions sources/pacman/install-test.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ define test test-install (tags: #["net"])
versions: #("1.0.0"),
catalog: cat);
let release = find-package-release(cat, "json", $latest);
let saved-dylan = environment-variable($dylan-env-var);
let saved-dylan = os/environment-variable($dylan-env-var);
block ()
environment-variable($dylan-env-var) := as(<byte-string>, dir);
os/environment-variable($dylan-env-var) := as(<byte-string>, dir);
assert-false(installed?(release));
install(release);
assert-true(installed?(release));
let lid-path
= file-locator(dir, $package-directory-name, "json", "1.0.0", "src", "json.lid");
assert-true(file-exists?(lid-path));
assert-true(fs/file-exists?(lid-path));
let versions = installed-versions(release.package-name);
assert-equal(1, size(versions));
assert-equal(map-as(<list>, identity, versions), list(release.release-version));
cleanup
environment-variable($dylan-env-var) := saved-dylan;
os/environment-variable($dylan-env-var) := saved-dylan;
end;
end test;
2 changes: 1 addition & 1 deletion sources/shared.dylan
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Module: shared
Module: deft-shared


// Whether to do verbose output. This is set based on the --verbose command
Expand Down
21 changes: 5 additions & 16 deletions sources/test-suite-library.dylan
Original file line number Diff line number Diff line change
@@ -1,28 +1,17 @@
Module: dylan-user

define library deft-test-suite
use common-dylan;
use deft;
use io;
use strings;
use system;
use testworks;

use deft;
end library;

define module deft-test-suite
use common-dylan;
use file-system;
use format;
use locators;
use operating-system;
use testworks;

use deft-shared; // where we get the dylan module from
use pacman;
use %pacman;
use shared;
use standard-io;
use streams;
use strings;
use testworks;
use threads;
use workspaces;
use %workspaces;
end module;
2 changes: 1 addition & 1 deletion sources/workspaces/workspaces-test.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ define test test-find-workspace-directory ()
let ws = file-locator(tmp, $workspace-file-name);
let dp = file-locator(tmp, "dp", $dylan-package-file-name);
let bottom = subdirectory-locator(tmp, "dp", "abc", "xyz");
ensure-directories-exist(bottom);
fs/ensure-directories-exist(bottom);

// Initially there is no workspace directory.
let ws-dir = find-workspace-directory(bottom);
Expand Down

0 comments on commit d2a4b35

Please sign in to comment.