6d146f16ca
- Switch to llvm7 for Tumbleweed as llvm8 is not able to build bootstrap version 0.17.6 See https://github.com/ldc-developers/ldc/issues/3109 - Disable -flto=4 option as llvm does not recognize this option - Update to 1.16.0: * Big news - Frontend, druntime and Phobos are at version 2.086.1, incl. a DIP1008 fix. (#3062, #3076, #3091) (new) - Non-Windows x86: Faster real versions of std.math.{tan,expi}. (#2855) - dcompute: New __traits(getTargetInfo, "dcomputeTargets"). (#3090) (new) * Platform support - Supports LLVM 3.9 - 8.0 (incl. 7.1). * Bug fixes - Make pragma(LDC_no_typeinfo) actually elide TypeInfo emission for structs, classes and interfaces. (#3068) - Windows: Fix DLL entry point in MinGW-based libs. (ldc-developers/mingw-w64-libs@8d930c1) - WebAssembly: Use --export-dynamic when linking with LLD 8+. (#3023, #3072) - Fix corrupt this in functions nested in in/out contracts. (45460a1) - Fix identity comparisons of integral vectors. (a44c78f) - Improved handling of unsupported vector ops. (a44c78f) - uClibc: Fix C assert calls. (#3078, #3082) (new) - Improved error message on global variable collision. (#3080, #3081) (new) * Known issues - Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module OBS-URL: https://build.opensuse.org/request/show/714253 OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=34
421 lines
19 KiB
Plaintext
421 lines
19 KiB
Plaintext
-------------------------------------------------------------------
|
|
Tue Jul 9 14:48:29 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Switch to llvm7 for Tumbleweed as llvm8 is not able to build
|
|
bootstrap version 0.17.6
|
|
See https://github.com/ldc-developers/ldc/issues/3109
|
|
- Disable -flto=4 option as llvm does not recognize this option
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 9 12:43:24 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Update to 1.16.0:
|
|
* Big news
|
|
- Frontend, druntime and Phobos are at version 2.086.1, incl.
|
|
a DIP1008 fix. (#3062, #3076, #3091) (new)
|
|
- Non-Windows x86: Faster real versions of std.math.{tan,expi}. (#2855)
|
|
- dcompute: New __traits(getTargetInfo, "dcomputeTargets"). (#3090) (new)
|
|
* Platform support
|
|
- Supports LLVM 3.9 - 8.0 (incl. 7.1).
|
|
* Bug fixes
|
|
- Make pragma(LDC_no_typeinfo) actually elide TypeInfo emission
|
|
for structs, classes and interfaces. (#3068)
|
|
- Windows: Fix DLL entry point in MinGW-based libs.
|
|
(ldc-developers/mingw-w64-libs@8d930c1)
|
|
- WebAssembly: Use --export-dynamic when linking with LLD 8+.
|
|
(#3023, #3072)
|
|
- Fix corrupt this in functions nested in in/out contracts.
|
|
(45460a1)
|
|
- Fix identity comparisons of integral vectors. (a44c78f)
|
|
- Improved handling of unsupported vector ops. (a44c78f)
|
|
- uClibc: Fix C assert calls. (#3078, #3082) (new)
|
|
- Improved error message on global variable collision.
|
|
(#3080, #3081) (new)
|
|
* Known issues
|
|
- Buggy older ld.bfd linker versions may wrongly strip out
|
|
required symbols, e.g., ModuleInfos (so that e.g. no module
|
|
ctors/dtors are run). LDC defaults to ld.gold on Linux.
|
|
- LDC does not zero the padding area of a real variable. This
|
|
may lead to wrong results if the padding area is also
|
|
considered. See #770. Does not apply to real members inside
|
|
structs etc.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Apr 20 21:04:20 UTC 2019 - Matthias Eliasson <elimat@opensuse.org>
|
|
|
|
- Update to 1.15.0
|
|
* Big news
|
|
- Frontend, druntime and Phobos are at version 2.085.1, incl. new
|
|
command-line options -preview, -revert, -checkaction=context,
|
|
-verrors-context and -extern-std. (#3003, #3039, #3053) (new)
|
|
+ The Objective-C improvements from DMD 2.085 are not implemented
|
|
(#3007)
|
|
- Support for LLVM 8.0. The prebuilt packages have been upgraded to
|
|
LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that
|
|
dcompute can now emit OpenCL too. (#3005)
|
|
- Compiler memory requirements can now be reduced via the new -lowmem
|
|
switch, which enables the garbage collector for the front-end and
|
|
sacrifices compile times for less required memory. In some cases, the
|
|
overall max process memory can be reduced by more than 60%; see #2916
|
|
(comment) for some numbers. (#2916)
|
|
+ Note for package maintainers: this feature requires a recent D host
|
|
compiler (most notably, it doesn't work with ltsmaster), ideally
|
|
LDC 1.15 itself due to important GC memory overhead improvements in
|
|
2.085 druntime.
|
|
- Support for generic @llvmAttr("name") parameter UDAs, incl. new
|
|
@restrict with C-like semantics. (#3043) (new)
|
|
- macOS: 32-bit support was dropped in the sense of not being CI-tested
|
|
anymore and the prebuilt macOS package now containing x86_64 libraries
|
|
only. MACOSX_DEPLOYMENT_TARGET for the prebuilt package has been raised
|
|
from 10.8 to 10.9.
|
|
- Prebuilt packages don't depend on libtinfo and libedit anymore.
|
|
(#1827, #3019)
|
|
- x86: SSSE3 isn't required for the prebuilt packages and generated
|
|
optimized binaries anymore. (#3045) (new)
|
|
* Platform support
|
|
- Supports LLVM 3.9 - 8.0.
|
|
* Bug fixes
|
|
- Implicit cross-module-inlining of functions annotated with
|
|
pragma(inline, true) without explicit -enable-cross-module-inlining has
|
|
been restored. (#2552, #3014)
|
|
- Propagate well-known length of newly allocated dynamic arrays for
|
|
better optimizability. (#3041, #3042) (new)
|
|
- JIT: Support implicit __chkstk calls for Windows targets, e.g., for
|
|
large stack allocations. (#3051) (new)
|
|
- Update so_version to 85
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jan 25 10:14:01 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Requires binutils.gold as ldc uses ld.gold by default since version 1.13.0
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jan 21 09:31:49 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Enable bootstrap again for all flavours, otherwise ldc will require old
|
|
.so file instead of new one
|
|
- Use ldc 1.12.0 as intermediate build on 32-bit, due to upstream bug:
|
|
* https://github.com/ldc-developers/ldc/issues/2947
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jan 10 14:00:36 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Remove wrong requires to 'ldc-utils' as there is no such package
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Dec 18 13:19:42 UTC 2018 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Disable bootstrap in Tumbleweed and Leap 15+ as it is bootstrapped already
|
|
and to workaround https://github.com/ldc-developers/ldc/issues/2947
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Dec 18 13:01:16 UTC 2018 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Add bash-completion sub-package
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Dec 18 12:11:21 UTC 2018 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Update to 1.13.0:
|
|
* Big news
|
|
- Frontend, druntime and Phobos are at version 2.083.1.
|
|
(#2878, #2893, #2920, #2933) (new)
|
|
- The Windows packages are now fully self-sufficient, i.e., a
|
|
Visual Studio/C++ Build Tools installation isn't required anymore,
|
|
as we now ship with MinGW-w64-based libraries, similar to DMD. Check out
|
|
the included README.txt for all relevant details.
|
|
(dlang/installer#346, #2886, Wiki: Cross-compiling with LDC)
|
|
- Debug info improvements:
|
|
- For GDB: printing global and imported symbols, non-member
|
|
and member function calls. (#2826)
|
|
- For Visual Studio and mago: names, by-value params, nested
|
|
variables. (#2895, #2908, #2909, #2912)
|
|
- Associative arrays now showing up properly (at least with mago),
|
|
not as opaque void* anymore. (#2869)
|
|
- -gc now translates D names to C++ ones, e.g., to use the regular
|
|
Visual Studio debugger (bypassing mago) and as preparation for VS Code
|
|
debugging with Microsoft's C/C++ plug-in (screenshots). Thanks to
|
|
Oleksandr for this contribution and the AA fix! (#2869)
|
|
- New command-line option -fvisibility=hidden to hide functions/globals
|
|
not marked as export (for non-Windows targets), primarily to reduce the
|
|
size of shared libraries. Thanks to Andrey for stepping up! (#2894, #2923)
|
|
- Dropped support for LLVM 3.7 and 3.8. (#2872)
|
|
- LLVM for prebuilt packages upgraded to v7.0.1. (new)
|
|
- Linux: now defaulting to ld.gold linker in general, not just with
|
|
-flto=thin, as buggy older ld.bfd versions may wrongly strip out required
|
|
symbols (change with -linker). (#2870)
|
|
- Improved support for Android/x86[_64], musl libc and FreeBSD/AArch64.
|
|
(#2917, ldc-developers/druntime#146) (new)
|
|
- LDC-specific druntime: ldc.simd.inlineIR moved/renamed to ldc.llvmasm.__ir
|
|
(with deprecated legacy alias). (#2931) (new)
|
|
- New CMake option COMPILE_D_MODULES_SEPARATELY builds D files in the DDMD
|
|
frontend separately to reduce the time required to build LDC with many
|
|
CPU cores and/or for iterative development. (#2914)
|
|
* Platform support
|
|
- Supports LLVM 3.9 - 7.0.
|
|
- Alpine linux/x64: built against Musl libc to support Docker images based on
|
|
the Alpine distro, requires the llvm5-libs, musl-dev, binutils-gold and gcc
|
|
packages to build and link D apps and the tzdata and curl-dev packages for
|
|
certain stdlib modules.
|
|
* Bug fixes
|
|
- 32-bit Android/ARM regression introduced in v1.12. (#2892)
|
|
- Non-Windows x86_64 ABI fixes wrt. what's passed in registers,
|
|
relevant for C[++] interop. (#2864)
|
|
- Some issues with beta1's newly bundled Windows libraries. (#2900, #2903)
|
|
- Alignment of scope allocated class instances. (#2919)
|
|
- Beta2's -fvisibility=hidden causing lots of linker errors.
|
|
(#2922, #2923) (new)
|
|
- Update so_version to 83
|
|
- Disable ppc64 builds (boo#1113531)
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Oct 17 09:54:24 UTC 2018 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Update to 1.12.0:
|
|
* Big news
|
|
- Frontend, druntime and Phobos are at version 2.082.1.
|
|
(#2818, #2837, #2858, #2873) (new)
|
|
Significant performance improvements for some transcendental
|
|
std.math functions in single and double precision, at least
|
|
for x86. (dlang/phobos#6272 (comment))
|
|
- Support for LLVM 7, which is used for the prebuilt packages.
|
|
Due to an LLVM 7.0.0 regression, the prebuilt x86[_64] LDC
|
|
binaries require a CPU with SSSE3, and so will your optimized
|
|
binaries (unless compiling with -mattr=-ssse3). (#2850)
|
|
- JIT compilation: new ldc.dynamic_compile.bind function with
|
|
interface similar to C++ std::bind, allowing to generate
|
|
efficient specialized versions of functions (much like
|
|
Easy::jit for C++). (#2726)
|
|
- LTO now working for Win64 too; the prebuilt package includes
|
|
the required external LLD linker and the optional LTO default
|
|
libs. Enable as usual with -flto=<thin|full>
|
|
[-defaultlib=druntime-ldc-lto,phobos2-ldc-lto]. (#2774)
|
|
- Config file: new lib-dirs array for directories to be searched
|
|
for libraries, incl. LLVM compiler-rt libraries. (#2790)
|
|
* Platform support
|
|
- Supports LLVM 3.7 - 7.0.
|
|
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
|
|
- Alpine linux/x64: built against Musl libc to support Docker
|
|
images based on the Alpine distro, requires the llvm5-libs,
|
|
musl-dev, and gcc packages to build and link D apps and the
|
|
tzdata and libcurl packages for certain stdlib modules.
|
|
- Android/ARM: This release slightly changes the way emulated TLS
|
|
is interfaced, but is missing a patch for 32-bit ARM. See the
|
|
wiki for instructions on patching that file manually before
|
|
cross-compiling the runtime libraries for 32-bit Android/ARM.
|
|
* Bug fixes
|
|
- Fix IR-based PGO on Windows (requires our LLVM fork). (#2539)
|
|
- Fix C++ class construction with D new on Posix. (#2801)
|
|
- Android: No more text relocations in Phobos zlib, required for
|
|
API level 23+. (#2822, #2835)
|
|
- Declare extern const/immutable globals as IR constants.
|
|
(#2849, #2852)
|
|
- Fix issue when emitting both object and textual assembly files
|
|
at once (-output-o -output-s). (#2847)
|
|
- Support address of struct member as key/value in AA literal.
|
|
(#2859, #2860)
|
|
- Fix ICE when computing addresses relative to functions/labels.
|
|
(#2865, #2867) (new)
|
|
- beta2 regression wrt. cross-compiling to Android. (#2863) (new)
|
|
- Fix so_version to 82
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Aug 27 06:56:16 UTC 2018 - guillaume.gardet@opensuse.org
|
|
|
|
- Fix so_version to 81
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Aug 24 10:24:47 UTC 2018 - guillaume@opensuse.org
|
|
|
|
- Update to 1.11.0:
|
|
* Big news:
|
|
- Frontend, druntime and Phobos are at version 2.081.2.
|
|
(#2752, #2772, #2776, #2791, #2815) (new)
|
|
- Add some support for classes without TypeInfos, for
|
|
-betterC and/or a minimal (d)runtime. (#2765)
|
|
- LLVM for prebuilt packages upgraded to v6.0.1.
|
|
The x86_64 packages feature some more LLVM targets for
|
|
cross-compilation (experiments): MIPS, MSP430, RISC-V
|
|
and WebAssembly. (#2760)
|
|
- Rudimentary support for compiling & linking directly to
|
|
WebAssembly. See the dedicated Wiki page for how to get
|
|
started. (#2766, #2779, #2785)
|
|
- AArch64 (64-bit ARM) now mostly working on Linux/glibc
|
|
and Android. Current ltsmaster is able to bootstrap v1.11,
|
|
which can also bootstrap itself; most tests pass.
|
|
(Preliminary) CI has been set up. (#2802, #2817, #2813) (new)
|
|
- LDC on Windows now uses 80-bit compile-time reals. This allows
|
|
for seamless cross-compilation to other x86(_64) targets,
|
|
e.g., without real.min underflowing to 0 and real.max
|
|
overflowing to infinity. (#2752)
|
|
- New @naked UDA in ldc.attributes & enhanced functionality
|
|
for @llvmAttr("<name>"). (#2773)
|
|
* Platform support:
|
|
- Supports LLVM 3.7 - 6.0.
|
|
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
|
|
- Alpine linux/x64: built against Musl libc to support Docker
|
|
images based on the Alpine distro, requires the llvm5-libs,
|
|
musl-dev, and gcc packages to build and link D apps and the
|
|
tzdata and libcurl packages for certain stdlib modules.
|
|
* Bug fixes:
|
|
- extern(C++) on Posix: Pass non-PODs indirectly by value.
|
|
(#2728)
|
|
- extern(C++) on Windows/MSVC: Methods return all structs via
|
|
hidden sret pointer. (#2720, #1935)
|
|
- Make GC2Stack IR optimization pass work as intended. (#2750)
|
|
- Work around inline assembly regression with LLVM 6 on Win32.
|
|
The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770)
|
|
- Fix overzealous check for multiple main() functions. (#2778) (new)
|
|
- Fix corrupt prefix in integrated LLD's console output. (#2781) (new)
|
|
- No context ptr for nested non-extern(D) functions. (#2808, #2809) (new)
|
|
* Known issues:
|
|
- LDC does not zero the padding area of a real variable. This may
|
|
lead to wrong results if the padding area is also considered.
|
|
See #770. Does not apply to real members inside structs etc.
|
|
- Update bootstrap version to 0.17.6:
|
|
* Added support for LLVM 6.0 and 7.0. (#2600, #2825)
|
|
* Backported AArch64 fixes from master; most tests passing on
|
|
Linux/glibc and Android
|
|
* Fix generation of debug info. (#2594)
|
|
* Added support for bootstrapping on DragonFly BSD
|
|
* Fixed missing definition in std.datetime on Solaris
|
|
* Fixed std.datetime unittest failure. (ldc-developers/phobos#59)
|
|
* Fixed tests for PowerPC. (#2634, #2635)
|
|
* Improvements for MIPS.
|
|
* Make core.stdc.stdarg.va_* functions nothrow to enable
|
|
compiling the 2.082 frontend. (#2821)
|
|
* CI updates.
|
|
- Remove upstreamed patches:
|
|
* ldc-0.17.5-add_missing_include.patch
|
|
* ldc-0.17.5-add_support_to_LLVM6.patch
|
|
* ldc-0.17.5-backport_pr_2315.patch
|
|
* ldc-0.17.5-default-to-pic.patch
|
|
- Enable aarch64 since it can be boostrapped with ldc 0.17.6
|
|
- Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jul 30 09:55:27 UTC 2018 - matthias.eliasson@gmail.com
|
|
|
|
- Remove _sysconfdir from phobos-devel filelist and add etc since its a
|
|
d package name. spec-cleaner was to eager to clean.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Jul 28 14:03:46 UTC 2018 - matthias.eliasson@gmail.com
|
|
|
|
- Update so_ver to 80 for libdruntime-ldc and libphobos2-ldc to
|
|
match version in 1.10.0 release of ldc.
|
|
- Run spec-cleaner
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 3 06:40:16 UTC 2018 - guillaume.gardet@opensuse.org
|
|
|
|
- Update to 1.10.0:
|
|
* Big news:
|
|
- Frontend, druntime and Phobos are at version 2.080.1.
|
|
(#2665, #2719, #2737) (new)
|
|
- No support for Objective-C class/static methods yet. (#2670)
|
|
- Breaking Win64 extern(D) ABI change: Pass vectors directly
|
|
in registers, analogous to the MS vector calling convention.
|
|
(#2714)
|
|
- Config file: For cross-compilation, support additional
|
|
sections named as regex for specific target triples, e.g.,
|
|
"86(_64)?-.*-linux": { … };; see the comment in etc/ldc2.conf.
|
|
(#2718)
|
|
* Platform support:
|
|
- Supports LLVM 3.7 - 6.0.
|
|
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
|
|
- Alpine linux/x64: built against Musl libc to support Docker
|
|
images based on the Alpine distro, requires the llvm5-libs,
|
|
musl-dev, and gcc packages to run and link D apps and the
|
|
tzdata and libcurl packages for certain stdlib modules.
|
|
* Bug fixes
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jun 6 11:33:49 UTC 2018 - guillaume.gardet@opensuse.org
|
|
|
|
- Add tests, disabled by default (since we are missing python2-lit)
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jun 6 08:15:36 UTC 2018 - guillaume.gardet@opensuse.org
|
|
|
|
- Add patch to fix ARM builds:
|
|
* ldc-1.9.0-fix_arm_build.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jun 5 16:08:35 UTC 2018 - guillaume.gardet@opensuse.org
|
|
|
|
- Update to 1.9.0 and use 0.17.5 to bootstrap
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jun 1 12:11:13 UTC 2018 - guillaume.gardet@opensuse.org
|
|
|
|
- Add patch to fix rpmlint error:
|
|
* ldc-0.17.5-add_missing_include.patch
|
|
- Add patches to add LLVM6 support:
|
|
* ldc-0.17.5-add_support_to_LLVM6.patch
|
|
* ldc-0.17.5-backport_pr_2315.patch
|
|
- Add patch to be able to use ldc:
|
|
* ldc-0.17.5-default-to-pic.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Mar 22 10:05:09 UTC 2018 - guillaume.gardet@opensuse.org
|
|
|
|
- update to version 0.17.5:
|
|
* Added LLVM 5.0 support.
|
|
* druntime: fixes for Android and addition of core.math.yl2x[p1]() for x86(_64) targets.
|
|
* dmd-testsuite: backported runnable/cppa.d fix for GCC > 5.
|
|
* CI updates.
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jun 9 08:54:07 UTC 2017 - jengelh@inai.de
|
|
|
|
- Rectify RPM groups
|
|
|
|
-------------------------------------------------------------------
|
|
Mon May 29 19:50:03 UTC 2017 - mailaender@opensuse.org
|
|
|
|
- update to version 0.17.4
|
|
|
|
-------------------------------------------------------------------
|
|
Fri May 26 19:56:33 UTC 2017 - mailaender@opensuse.org
|
|
|
|
- update to version 0.17.3
|
|
- https://en.opensuse.org/SourceUrls
|
|
- drop workaround-buggy-llvm-config.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Feb 15 15:47:39 UTC 2016 - schuetzm@gmx.net
|
|
|
|
- update to 0.17.0
|
|
- based on DMD 2.068.2
|
|
- more information here:
|
|
https://github.com/ldc-developers/ldc/releases/tag/v0.17.0
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Dec 6 20:08:34 UTC 2015 - rpm@fthiessen.de
|
|
|
|
- Build runtime and phobos libraries as shared libraries, therefore
|
|
refactored spec file:
|
|
* Basic cleanup
|
|
* Split lib* packages, see openSUSE shared library policy
|
|
* Added ldc-rpmlintrc for false positiv.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Oct 28 11:02:24 UTC 2015 - schuetzm@gmx.net
|
|
|
|
- update to 0.16.1
|
|
- this is a bugfix only release
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Oct 24 11:29:29 UTC 2015 - schuetzm@gmx.net
|
|
|
|
- update 0.16.0
|
|
- based on DMD 2.067.1
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Feb 22 16:15:02 UTC 2015 - schuetzm@gmx.net
|
|
|
|
- initial submission based on Duncan Mac-Vicar's work
|
|
|