Skip to content

Make the base-address project option obsolete - #1823

Merged
housel merged 7 commits into
dylan-lang:masterfrom
housel:baseless
Jun 27, 2026
Merged

Make the base-address project option obsolete#1823
housel merged 7 commits into
dylan-lang:masterfrom
housel:baseless

Conversation

@housel

@housel housel commented Jun 26, 2026

Copy link
Copy Markdown
Member

Since Windows Vista and Windows Server 2008, DLLs are loaded at random addresses as part of Address Space Layout Randomization. Windows XP, the last version that respected DLL base addresses specified in the DLL executable, ended support in April 2014. It is no longer desirable to specify base addresses for Dylan library projects.

housel added 5 commits June 25, 2026 19:49
* sources/project-manager/tools-interface/project-files.dylan
  (<project-information>): Remove the project-information-base-address
   slot definition.
  (write-project-to-stream): Do not write the project base address
   when saving a project.
  (read-project-from-stream): Do not interpret the base-address:
   keyword from project sources.
Previously the project-manager would attempt to compute a base address
that would allow Windows to load the full set of DLLs in a project
without relocations. However, current versions of Windows (starting
with Windows Vista and Windows Server 2008) implement Address Space
Layout Randomization for improved security, so that the link-time base
addresses are no longer meaningful.

* sources/project-manager/user-projects/save-project.dylan
  (save-lid-info): Do not compute a default base address when saving.
  ($top-for-user-libraries, $allowance-for-user-libraries,
   library-base, compute-base-address): Remove.
The DLL base address is no longer a useful project setting, so it can
be removed from the IDE project link settings page.

* sources/environment/tools/project-settings.dylan
  (<link-settings-page>): Remove %base-address slot.
   Remove %base-address-pane pane definition. Remove Base address
   grouping from layout.
  (<project-settings-dialog>): Remove base-address initializer
   from the <link-settings-page> construction.
  (update-project-settings): Remove update of project-base-address
   from the <link-settings-page>.
  (valid-project-settings?): Remove validation of the
   <link-settings-page> base-address.
* sources/.../*.lid: Remove the Base-Address: keyword.
* sources/.../*.hdp: Remove the Base-Address: keyword.
* documentation/source/getting-started-ide/projects.rst: Remove
  mentions of the DLL base-address from the IDE documentation on
  working with projects. Improve markup usage.
Comment thread documentation/source/library-reference/lid.rst Outdated
housel added 2 commits June 26, 2026 21:55
* documentation/source/library-reference/lid.rst: Explain how the
  base-address: keyword is no longer useful.
@housel
housel merged commit e73ce1d into dylan-lang:master Jun 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants