[phobos] [dlang/phobos] ebbdf2: fix Issue 16580 - spawnShell segfaults on macOS

GitHub via phobos phobos at puremagic.com
Wed Oct 5 09:49:22 PDT 2016


  Branch: refs/heads/stable
  Home:   https://github.com/dlang/phobos
  Commit: ebbdf21a7ebc6730a3d5f170b934143bdb18a414
      https://github.com/dlang/phobos/commit/ebbdf21a7ebc6730a3d5f170b934143bdb18a414
  Author: Martin Nowak <code at dawg.eu>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

  Changed paths:
    M posix.mak
    M std/internal/phobosinit.d
    A std/internal/processinit.d
    M std/process.d
    M win32.mak
    M win64.mak

  Log Message:
  -----------
  fix Issue 16580 - spawnShell segfaults on macOS

- partially Revert "Merge pull request #4493 from schveiguy/fixcycles2"
- recreate processinit (and import it from std.process)
  to call std.process shared ctor w/o creating a cycle
- keep it separate from phobosinit to not drag std.encoding
  into any binary using std.process


  Commit: 9d73d18c0cd4ecd1bb1ebc8bb01941f209570ca2
      https://github.com/dlang/phobos/commit/9d73d18c0cd4ecd1bb1ebc8bb01941f209570ca2
  Author: Martin Nowak <code at dawg.eu>
  Date:   2016-10-05 (Wed, 05 Oct 2016)

  Changed paths:
    M posix.mak
    M std/encoding.d
    A std/internal/encodinginit.d
    R std/internal/phobosinit.d
    M win32.mak
    M win64.mak

  Log Message:
  -----------
  fix Issue 16291 - EncodingScheme.create fails

- add EncodingScheme.register overload that references the registered class
- just adding the FQN name of a class does not reference that class, so
  it must not end up in the binary and subsequently EncodingScheme.create failed
- This used to work by chance b/c all the EncodingScheme implementations
  were in a module w/ static ctor. Any user of std.encoding did drag in
  that ModuleInfo, which in turn referenced all classes of std.encoding.
  Since moving the static ctor to std.internal.phobosinit to break a
  cycle, the classes were no longer referenced by a ModuleInfo w/ shared
  ctor, so they wouldn't end up in the binary unless explicitly
  referenced elsewhere.
- deprecate the old EncodingScheme.register(string fqn) b/c relying on
  Object.factory is slow, error prone (linkage), and really unnecessary
- import encodinginit in std.encoding so that the
  std_encoding_shared_static_this callback actually gets run


  Commit: ad739f232ea93f56b9f72920be49d999a2507652
      https://github.com/dlang/phobos/commit/ad739f232ea93f56b9f72920be49d999a2507652
  Author: Steven Schveighoffer <schveiguy at yahoo.com>
  Date:   2016-10-05 (Wed, 05 Oct 2016)

  Changed paths:
    M posix.mak
    M std/encoding.d
    A std/internal/encodinginit.d
    R std/internal/phobosinit.d
    A std/internal/processinit.d
    M std/process.d
    M win32.mak
    M win64.mak

  Log Message:
  -----------
  Merge pull request #4840 from MartinNowak/fix16291

fix Issue 16291 - EncodingScheme.create fails


Compare: https://github.com/dlang/phobos/compare/8006c13644a8...ad739f232ea9


More information about the phobos mailing list