Jan Nieuwenhuizen
ceeaa6b50c
build: Respect --docdir.
...
* configure: Respect --docdir.
2018-07-22 14:44:50 +02:00
Jan Nieuwenhuizen
4203a427d0
build: Support --srcdir build.
...
* build-aux/config.sh: New file.
* build-aux/trace.sh: New file.
* build-aux/GNUmakefile.in: New file.
* configure: Support srcdir configure.
* GNUmakefile: Support srcdir build.
* build-aux/build-cc.sh: Likewise.
* build-aux/build-cc32.sh: Likewise.
* build-aux/build-guile.sh: Likewise.
* build-aux/build-mes.sh: Likewise.
* build-aux/cc-mes.sh: Likewise.
* build-aux/cc.sh: Likewise.
* build-aux/cc32-mes.sh: Likewise.
* build-aux/check-mes.sh: Likewise.
* build-aux/check-mescc.sh: Likewise.
* build-aux/export.make: Likewise.
* build-aux/mes-snarf.scm: Likewise.
* build-aux/pre-inst-env.in: Likewise.
* build-aux/test.sh: Likewise.
* build.sh: Likewise.
* check.sh: Likewise.
* install.sh: Likewise.
* module/mescc/mescc.scm: Likewise.
* scripts/mescc.in: Likewise.
* src/mes.c: Likewise.
2018-07-22 00:43:39 +02:00
Jan Nieuwenhuizen
573896cc1c
core: Prepare for the Hurd.
...
* lib/linux/libc.c: Move from lib/linux.c.
* lib/linux/gcc.c: Move from lib/linux-gcc.c.
* lib/linux/gnu.c: Move from lib/linux+gnu.c.
* lib/linux/libc.c: Move from lib/linux.c.
* lib/linux/mes.c: Move from lib/linux-mes.c.
* lib/linux/mini-gcc.c: Move from lib/linux-mini-gcc.c.
* lib/linux/mini-mes.c: Move from lib/linux-mini-mes.c.
* lib/linux/tcc.c: Move from lib/linux+tcc.c.
* lib/linux/crt0.c: Move from lib/crt0.c.
* lib/linux/crt1.c: Move from lib/crt1.c.
* lib/linux/crti.c: Move from lib/crti.c.
* lib/linux/crtn.c: Move from lib/crtn.c.
* build-aux/build-cc.sh: Update for new layout.
* build-aux/build-cc32.sh: Likewise.
* build-aux/build-mes.sh: Likewise.
* build-aux/cc-mes.sh: Likewise.
* build-aux/cc32-mes.sh: Likewise.
* lib/string/argz-count.c: New file taken from GNU C Library,
relicensed.
* lib/string/argz-extract.c: New file taken from GNU C Library,
relicensed.
* include/argz.h: New file.
* lib/string/memcpy.c: New file, extract from libc.
* lib/assert/assert.c: Likewise.
2018-06-30 13:11:03 +02:00
Jan Nieuwenhuizen
9e1c618b00
build: Install ChangeLog.
...
* ChangeLog: New file.
* install.sh: Regenerate it, install it.
2018-07-21 23:56:08 +02:00
Jan Nieuwenhuizen
4072046a2b
build: Refactor configure.
...
* configure: Refactor.
2018-07-21 21:20:48 +02:00
Jan Nieuwenhuizen
5d3fa50384
build: Prepare for autoconfiscation.
...
Make build system more in alignment with how autotools work. This
will make transition easier.
* mes/module/mes/boot-0.scm.in: Update from module/mes/boot-0.scm.
* scripts/mescc.in: Update from scripts/mescc.
* build-aux/pre-inst-env.in: New file.
* build-aux/cc-mes.sh: Use pre-inst-env.
* configure: Substitute new .in files.
* install.sh: Do not substitute mescc, boot-0.scm.
2018-07-21 18:28:47 +02:00
Jan Nieuwenhuizen
87269a16f6
core: Document number->string INT-MIN failure with gcc-x86.
...
* src/mes.c (scm_symbol_arch, scm_symbol_compiler): New symbol.
(mes_symbols, bload_env): Add them.
(scm_symbol_gnuc, scm_symbol_mesc): Remove.
* scaffold/mini-mes.c: Likewise.
* module/mes/mes-0.scm (%arch, %compiler): New public variable.
* tests/srfi-13.test: Expect number->string INT-MIN to fail for
gcc-x86.
* HACKING (Bugs): Add it.
2018-07-21 15:20:01 +02:00
Jan Nieuwenhuizen
4f2c685753
build: Refactor mes tests.
...
* build-aux/check-mes.sh: New file.
* check.sh: Invoke it for Guile and Mes.
* .gitignore: Ignore new guile logs.
* mes/module/mes/boot-0.scm: Ignore some standard Guile options.
* module/mes/test.scm: Make a module.
* tests/base.test: Use it. Make a module, support invoking with Guile
or Mes alike.
* tests/boot.test: Likewise.
* tests/catch.test: Likewise.
* tests/closure.test: Likewise.
* tests/cwv.test: Likewise.
* tests/display.test: Likewise.
* tests/fluids.test: Likewise.
* tests/getopt-long.test: Likewise.
* tests/guile.test: Likewise.
* tests/let-syntax.test: Likewise.
* tests/let.test: Likewise.
* tests/match.test: Likewise.
* tests/math.test: Likewise.
* tests/module.test: Likewise.
* tests/optargs.test: Likewise.
* tests/peg.test: Likewise.
* tests/pmatch.test: Likewise.
* tests/psyntax.test: Likewise.
* tests/quasiquote.test: Likewise.
* tests/read.test: Likewise.
* tests/scm.test: Likewise.
* tests/srfi-13.test: Likewise.
* tests/srfi-14.test: Likewise.
* tests/srfi-16.test: Likewise.
* tests/srfi-1.test: Likewise.
* tests/srfi-43.test: Likewise.
* tests/srfi-9.test: Likewise.
* tests/syntax.test: Likewise.
* tests/vector.test: Likewise.
* tests/base.test-guile: Remove.
* tests/boot.test-guile: Remove.
* tests/catch.test-guile: Remove.
* tests/closure.test-guile: Remove.
* tests/cwv.test-guile: Remove.
* tests/display.test-guile: Remove.
* tests/fluids.test-guile: Remove.
* tests/getopt-long.test-guile: Remove.
* tests/guile.test-guile: Remove.
* tests/let-syntax.test-guile: Remove.
* tests/let.test-guile: Remove.
* tests/match.test-guile: Remove.
* tests/math.test-guile: Remove.
* tests/module.test-guile: Remove.
* tests/optargs.test-guile: Remove.
* tests/peg.test-guile: Remove.
* tests/pmatch.test-guile: Remove.
* tests/psyntax.test-guile: Remove.
* tests/quasiquote.test-guile: Remove.
* tests/read.test-guile: Remove.
* tests/scm.test-guile: Remove.
* tests/srfi-13.test-guile: Remove.
* tests/srfi-14.test-guile: Remove.
* tests/srfi-16.test-guile: Remove.
* tests/srfi-1.test-guile: Remove.
* tests/srfi-43.test-guile: Remove.
* tests/srfi-9.test-guile: Remove.
* tests/syntax.test-guile: Remove.
* tests/vector.test-guile: Remove.
2018-07-21 13:48:50 +02:00
Jan Nieuwenhuizen
f703598656
build: all-go: Support V=0,1,2.
...
* build-aux/build-guile.sh: Support V=0,1,2.
2018-07-21 12:02:43 +02:00
Jan Nieuwenhuizen
d769a3d3c1
build: Fix for handling missing makeinfo.
...
* configure (main): Update MAKEINFO.
2018-07-21 11:19:55 +02:00
Jan Nieuwenhuizen
59c56ac72d
mescc: fwrite: Increase debug tracing threshold.
...
* lib/libc+tcc.c (fwrite): Increase debug tracing threshold.
2018-07-21 11:16:29 +02:00
Jan Nieuwenhuizen
58ca3ab6c0
mescc: Add proper includes.
...
* include/libmes.h (__mes_debug): Declare.
* lib/libtcc1.c: Add proper includes.
* lib/linux+gnu.c: Likewise.
* lib/m4.c: Likewise.
2018-07-21 11:15:48 +02:00
Jan Nieuwenhuizen
57cb608b6a
core: Resurrect gcc support.
...
* src/mes.c (MES_ARENA)[POSIX]: Default to 100000000.
2018-07-21 10:48:31 +02:00
Jan Nieuwenhuizen
3429f103a4
scaffold: Add proper includes.
...
* scaffold/argv.c: Add proper includes.
* scaffold/malloc.c: Likewise.
* scaffold/micro-mes.c: Likewise.
* scaffold/mini-mes.c: Likewise.
* scaffold/tiny-mes.c: Likewise.
2018-07-21 10:47:05 +02:00
Jan Nieuwenhuizen
d8d813fa45
build: cc32: Silence warnings.
...
* build-aux/build-cc32.sh (CC32_CFLAGS): Silence warnings.
2018-07-21 10:41:16 +02:00
Jan Nieuwenhuizen
9588d78040
build: Resurrect i686-unknown-linux-gnu-gcc support.
...
* build-aux/build-cc32.sh (CC32_CFLAGS): Add -fno-builtin. Resurrects
i686-unknown-linux-gnu-gcc.
2018-07-21 10:40:00 +02:00
Jan Nieuwenhuizen
d9df00290c
mescc: Support verbose int types.
...
* module/mescc/compile.scm (i386:type-alist): Support verbose int types.
2018-07-21 12:02:16 +02:00
Jan Nieuwenhuizen
542289a3c6
build: Separate Mes and Guile modules.
...
* scaffold/gc.scm: Move from guile/gc.scm.
* guile/: Remove.
* module/language/paren.mes: Remove.
* mes/module/mes/base.mes: Move from module/mes/.
* mes/module/mes/boot-0.scm: Likewise.
* mes/module/mes/boot-00.scm: Likewise.
* mes/module/mes/boot-01.scm: Likewise.
* mes/module/mes/boot-02.scm: Likewise.
* mes/module/mes/catch.mes: Likewise.
* mes/module/mes/display.mes: Likewise.
* mes/module/mes/fluids.mes: Likewise.
* mes/module/mes/getopt-long.mes: Likewise.
* mes/module/mes/guile.mes: Likewise.
* mes/module/mes/lalr.mes: Likewise.
* mes/module/mes/lalr.scm: Likewise.
* mes/module/mes/let.mes: Likewise.
* mes/module/mes/match.mes: Likewise.
* mes/module/mes/match.scm: Likewise.
* mes/module/mes/mescc.mes: Likewise.
* mes/module/mes/misc.mes: Likewise.
* mes/module/mes/module.mes: Likewise.
* mes/module/mes/optargs.mes: Likewise.
* mes/module/mes/optargs.scm: Likewise.
* mes/module/mes/peg.mes: Likewise.
* mes/module/mes/peg/cache.scm: Likewise.
* mes/module/mes/peg/codegen.scm: Likewise.
* mes/module/mes/peg/simplify-tree.scm: Likewise.
* mes/module/mes/peg/string-peg.scm: Likewise.
* mes/module/mes/peg/using-parsers.scm: Likewise.
* mes/module/mes/pmatch.mes: Likewise.
* mes/module/mes/pmatch.scm: Likewise.
* mes/module/mes/posix.mes: Likewise.
* mes/module/mes/pretty-print.mes: Likewise.
* mes/module/mes/pretty-print.scm: Likewise.
* mes/module/mes/psyntax-0.mes: Likewise.
* mes/module/mes/psyntax-1.mes: Likewise.
* mes/module/mes/psyntax.mes: Likewise.
* mes/module/mes/psyntax.pp: Likewise.
* mes/module/mes/psyntax.ss: Likewise.
* mes/module/mes/quasiquote.mes: Likewise.
* mes/module/mes/quasisyntax.mes: Likewise.
* mes/module/mes/quasisyntax.scm: Likewise.
* mes/module/mes/repl.mes: Likewise.
* mes/module/mes/scm.mes: Likewise.
* mes/module/mes/syntax.mes: Likewise.
* mes/module/mes/syntax.scm: Likewise.
* mes/module/mes/test.mes: Likewise.
* mes/module/mes/tiny-0.mes: Likewise.
* mes/module/mes/type-0.mes: Likewise.
* mes/module/mescc/M1.mes: Likewise.
* mes/module/mescc/as.mes: Likewise.
* mes/module/mescc/bytevectors.mes: Likewise.
* mes/module/mescc/compile.mes: Likewise.
* mes/module/mescc/i386/as.mes: Likewise.
* mes/module/mescc/info.mes: Likewise.
* mes/module/mescc/mescc.mes: Likewise.
* mes/module/mescc/preprocess.mes: Likewise.
* mes/module/nyacc/lalr.mes: Likewise.
* mes/module/nyacc/lang/c99/cpp.mes: Likewise.
* mes/module/nyacc/lang/c99/parser.mes: Likewise.
* mes/module/nyacc/lang/c99/pprint.mes: Likewise.
* mes/module/nyacc/lang/calc/parser.mes: Likewise.
* mes/module/nyacc/lang/util.mes: Likewise.
* mes/module/nyacc/lex.mes: Likewise.
* mes/module/nyacc/parse.mes: Likewise.
* mes/module/nyacc/util.mes: Likewise.
* mes/module/rnrs/arithmetic/bitwise.mes: Likewise.
* mes/module/srfi/srfi-0.mes: Likewise.
* mes/module/srfi/srfi-1.mes: Likewise.
* mes/module/srfi/srfi-1.scm: Likewise.
* mes/module/srfi/srfi-13.mes: Likewise.
* mes/module/srfi/srfi-14.mes: Likewise.
* mes/module/srfi/srfi-16.mes: Likewise.
* mes/module/srfi/srfi-16.scm: Likewise.
* mes/module/srfi/srfi-26.mes: Likewise.
* mes/module/srfi/srfi-26.scm: Likewise.
* mes/module/srfi/srfi-43.mes: Likewise.
* mes/module/srfi/srfi-8.mes: Likewise.
* mes/module/srfi/srfi-9.mes: Likewise.
* mes/module/srfi/srfi-9/gnu.mes: Likewise.
* mes/module/sxml/xpath.mes: Likewise.
* mes/module/sxml/xpath.scm: Likewise.
* module/mes/mes-0.scm: Likewise.
* build-aux/build-guile.sh: Update for new layout.
* build-aux/build-mes.sh: Likewise.
* build-aux/check-boot.sh: Likewise.
* build-aux/check-mescc.sh: Likewise.
* install.sh: Likewise.
* scaffold/boot/51-module.scm: Likewise.
* scaffold/boot/52-define-module.scm: Likewise.
* scripts/mescc: Likewise.
* src/mes.c: Likewise.
* tests/base.test-guile: Likewise.
* tests/boot.test: Likewise.
* tests/srfi-9.test: Likewise.
* mes/include: New symlink.
* mes/lib: New symlink.
* AUTHORS: Update file names.
2018-07-21 07:15:52 +02:00
Jan Nieuwenhuizen
0535630913
core: typo: Remove trailing 1.
...
* include/alloca.h: typo: Remove trailing 1.
2018-07-21 07:21:31 +02:00
Jan Nieuwenhuizen
3d8dcf8f70
Add missing copyright header. Thanks, Mike!
...
* guile/gc.c: Add missing copyright header. Thanks, Mike!
2018-07-20 06:40:51 +02:00
Jan Nieuwenhuizen
de9134711e
guix: mes: Updatee to 0.16.1.
...
* guix.scm (mes): Update to 0.16.1.
(mes.git): Likewise.
2018-07-19 18:46:59 +02:00
Jan Nieuwenhuizen
6a48f4a814
Release 0.16.1
...
* configure (VERSION): Bump to 0.16.1.
2018-07-12 22:30:01 +02:00
Jan Nieuwenhuizen
c0af8a1452
doc: Release update.
...
* BOOTSTRAP: Update.
* HACKING: Update.
* INSTALL: Update.
* NEWS: Update.
* README: Update.
* scaffold/tests/23-pointer.c: Add (janneke) to copyright line.
* doc/images/gcc-mesboot-graph.png: Update.
* doc/mes.texi (The Mes Bootstrap Process): Describe update.
2018-07-12 22:30:01 +02:00
Jan Nieuwenhuizen
4003e3b721
build: setup-mes.sh: Cater for Debian/stretch too. Thanks, pdewacht!
...
* build-aux/setup-mes.sh: Cater for Debian/stretch too. Thanks,
pdewacht!
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
f6d5578174
core: Fix segfault on Debian/strectch. Thanks, pdewacht!
...
* src/posix.c (execl_): Typo in initialization. Fixes segfault on
Debian/strectch. Thanks, pdewacht!
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
7f6676a4c2
doc: Add html, pdf.
...
* GNUmakefile (html, pdf): New target.
* .gitignore: Ignore html, pdf targets.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
a4943c1db1
doc: Remarks from Rutger.
...
* doc/mes.texi: Remarks from Rutger.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
9ad4c789d7
doc: Further work.
...
* doc/images/gcc-mesboot-graph.png: New file.
* install.sh: Install it.
* doc/mes.texi (The Mes Bootstrap Process): Show it.
(Bootstrapping): Add missing Mes direntry.
(Running the Test Suites): Fix example.
Fix typos.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
c5bf550fff
build: Handle CFLAGS, CPPFLAGS for Debian.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
c997abcae8
build: Have configure create a git archive.
...
* configure: Create git archive if necessary.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
ec7d9f5d57
build: Use GNU style lower case directory configure variable naming.
...
* GNUmakefile: Use GNU style lower case directory configure variable naming.
* HACKING: Likewise.
* INSTALL: Likewise.
* build-aux/build-cc.sh: Likewise.
* build-aux/build-cc32.sh: Likewise.
* build-aux/cc-mes.sh: Likewise.
* build-aux/cc.sh: Likewise.
* build-aux/cc32-mes.sh: Likewise.
* build-aux/export.make: Likewise.
* build-aux/setup-mes.sh: Likewise.
* build.sh: Likewise.
* check.sh: Likewise.
* configure: Likewise.
* doc/mes.texi: Likewise.
* install.sh: Likewise.
* scripts/mescc: Likewise.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
69813a6da3
build: Support Debian build, install.
...
* scripts/mescc: Support Debian build, install.
* lib/libmes.c (fdgetc): Allow Nyacc/ungetc conflict.
* build-aux/export.make (ARCH): Export.
* build-aux/build-mes.sh: Disable full build for non-bootstrap
x86-only.
* check.sh (total): Use bash to invoke build-aux/check-mescc.sh.
* build-aux/build-guile.sh (SCM_FILES): Support guile-2.0.
* module/mes/guile.scm (guile-2.0): Support guile-2.0.
* build-aux/build-mes.sh: Use bash.
* build-aux/setup-mes.sh: New file.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
a25653e7f1
mescc: Be sure to exit upon system* failure.
...
* module/mescc/mescc.scm (assert-system*): New function.
(M1->hex2, hex2->elf, M1->blood-elf): Use it.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
b4fa5609fe
build: Support $DESTDIR.
...
* build-aux/export.make: export DESTDIR.
* install.sh: Support $DESTDIR.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
72e147f53f
build: Build and install manual pages.
...
* build-aux/export.make: New file.
* GNUmakefile (man): New target.
(doc): Depend on man.
include build-aux/export.make, remove exports.
* guix.scm (mes): Add dependency on help2man.
* configure: Check for help2man.
* install.sh: Install manual pages if built.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
a4770c1eed
doc: Initial version.
...
* doc/mes.texi: New file.
* doc/fdl-1.3.texi: New file.
* AUTHORS: Mention it.
* GNUmakefile (doc, info, install-info): New targets.
* install.sh: Install info if available.
* guix: (mes): Add texinfo to native-inputs.
* configure: Check for makeinfo.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
803ab706f8
guix: mescc-tools: Update to 0.5.1.
...
* guix.scm (mescc-tools): Update to 0.5.1.
2018-06-26 23:47:17 +02:00
Jan Nieuwenhuizen
e5cd1cb816
guix: Oops, fix nyacc-for-mes checksum. Thanks, pdewacht!
...
* guix.scm (nyacc-for-mes): Fix checksum.
2018-06-26 23:47:16 +02:00
Jan Nieuwenhuizen
96e6dd59d6
guix: Update mes to 0.16.
...
* guix.scm (mes): Update to 0.16.
(mes.git): Likewise.
2018-06-26 20:05:16 +02:00
Jan Nieuwenhuizen
f9a4e21972
Release 0.16.
...
* configure (VERSION): Bump to 0.16.
2018-06-25 19:27:19 +02:00
Jan Nieuwenhuizen
73be085f3a
doc: Release update.
...
* BOOTSTRAP: Update.
* HACKING: Update.
* INSTALL: Update.
* NEWS: Update.
* README: Update.
* doc/ANNOUNCE-0.16: New file.
2018-06-24 13:13:13 +02:00
Jan Nieuwenhuizen
16f4adfbc2
core: Fix compile warnings.
...
* lib/libmes.c: Fix warning.
* src/posix.c (execl_): Fix warning, add debug printing.
2018-06-26 06:19:51 +02:00
Jan Nieuwenhuizen
7be16f51b3
core: execl_: Allow 1000 arguments.
...
* src/posix.c (execl_): Allow 1000 arguments.
2018-06-26 06:05:20 +02:00
Jan Nieuwenhuizen
50d7036e03
mescc: Support binutils 2.10.1: strrchr: Stop at start of string.
...
* lib/libc+tcc.c (strrchr): Stop at start of string.
* scaffold/tests/88-strrchr.c: Test it.
* build-aux/check-mescc.sh (tests): Run it.
2018-06-24 17:25:46 +02:00
Jan Nieuwenhuizen
350d94aa77
build: Support tcc, create tinycc-seed with tcc.
...
* configure: check for tcc.
* build-aux/cc32-mes.sh: Rename from cc-mes-gcc.sh. Support
tcc. Update users.
* build-aux/build-cc32-mes.sh: Rename from build-mes-gcc.sh. Update users.
* GNUmakefile (mes-tcc): New target.
* .gitignore: Ignore mes-tcc arch output.
* lib/crt1.c (_start): Add "rm" constraint so satisfy tcc.
* lib/linux-gcc.c (_sys_call, _sys_call1 _sys_call2 _sys_call3): Likewise.
2018-06-24 09:28:23 +02:00
Jan Nieuwenhuizen
c2ff5ec954
mescc: Support glibc-2.2.5: header tweaks.
...
* include/sys/types.h [__PTRDIFF_T]: Extra guard for ptrdiff_t.
[__SIZE_T]: Extra guard for size_t.
* include/stdlib.h: Include alloca; remove alloca prototype,
* include/errno.h: Add E2BIG.
2018-06-21 00:27:27 +02:00
Jan Nieuwenhuizen
41a6585295
mescc: Support binutils 2.20.1: vfprint, vsprintf: %llx.
...
* lib/libc+tcc.c (vfprintf, vsprintf): Handle %%llx. Print error:
should we skip another int, va_arg a long long?
2018-06-24 17:26:53 +02:00
Jan Nieuwenhuizen
2551eef953
mescc: Support binutils 2.14: vfprint, vsprintf: %12.10d.
...
* lib/libc+tcc.c (vfprintf, vsprintf): Handle %12.10d.
* scaffold/tests/70-printf.c: Test it.
2018-06-21 00:27:49 +02:00
Jan Nieuwenhuizen
f245237f83
mescc: Support gnu toolchain: libtcc1.
...
* lib/libtcc1.c: New file.
* lib/libc+tcc-gcc.c: Remove libtcc1 stubs.
2018-06-19 20:29:25 +02:00
Jan Nieuwenhuizen
98a8f3f23e
mescc: Support binutils-2.20.1a: header tweaks.
...
* include/signal.h: Include sys/types.h; remove type declaration copies.
* include/stdarg.h: Likewise.
* include/stdio.h: Likewise.
* include/stdlib.h: Likewise.
* include/unistd.h: Likewise.
2018-06-19 20:23:38 +02:00