]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge remote-tracking branch 'savannah/master' into native-comp
authorAndrea Corallo <akrl@sdf.org>
Sat, 16 Jan 2021 12:26:10 +0000 (13:26 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sat, 16 Jan 2021 12:26:10 +0000 (13:26 +0100)
16 files changed:
1  2 
.gitignore
.gitlab-ci.yml
configure.ac
etc/NEWS
lisp/emacs-lisp/cl-macs.el
lisp/help-fns.el
lisp/startup.el
lisp/subr.el
src/data.c
src/emacs.c
src/eval.c
src/lisp.h
src/lread.c
src/pdumper.c
test/Makefile.in
test/lisp/subr-tests.el

diff --cc .gitignore
Simple merge
diff --cc .gitlab-ci.yml
index bd012bf395f0574b6185d58c6f4f489f72d88201,eb884767c95f08212547fd820751424e1d23751a..1be92cff161eed68d7a202003e3293f047d05711
@@@ -30,115 -36,129 +36,161 @@@ variables
    GIT_STRATEGY: fetch
    EMACS_EMBA_CI: 1
  
- before_script:
-   - apt update -qq
-   - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev git
+ default:
+   image: docker:19.03.12
+   timeout: 3 hours
+   before_script:
+     - docker info
  
- stages:
-   - test
+ .job-template:
+   # these will be cached across builds
+   cache:
+     key: ${CI_COMMIT_REF_SLUG}
+     paths: []
+     policy: pull-push
+   # these will be saved for followup builds
+   artifacts:
+     expire_in: 24 hrs
+     paths: []
+       # - "test/**/*.log"
+       # - "**/*.log"
  
- test-all:
-   # This tests also file monitor libraries inotify and inotifywatch.
-   stage: test
-   only:
-     changes:
-       - "Makefile.in"
-       - .gitlab-ci.yml
-       - aclocal.m4
-       - autogen.sh
-       - configure.ac
-       - lib/*.{h,c}
-       - lisp/*.el
-       - lisp/**/*.el
-       - src/*.{h,c}
-       - test/lisp/*.el
-       - test/lisp/**/*.el
-       - test/src/*.el
-   except:
-     changes:
-       # gfilemonitor, kqueue
-       - src/gfilenotify.c
-       - src/kqueue.c
-       # MS Windows
-       - lisp/w32*.el
-       - lisp/term/w32*.el
-       - src/w32*.{h,c}
-       # GNUstep
-       - lisp/term/ns-win.el
-       - src/ns*.{h,m}
-       - src/macfont.{h,m}
+ .test-template:
+   rules:
+     - changes:
+         - "**/Makefile.in"
+         - .gitlab-ci.yml
+         - aclocal.m4
+         - autogen.sh
+         - configure.ac
+         - lib/*.{h,c}
+         - lisp/**/*.el
+         - src/*.{h,c}
+         - test/infra/*
+         - test/lisp/**/*.el
+         - test/src/*.el
+     - changes:
+         # gfilemonitor, kqueue
+         - src/gfilenotify.c
+         - src/kqueue.c
+         # MS Windows
+         - "**/w32*"
+         # GNUstep
+         - lisp/term/ns-win.el
+         - src/ns*.{h,m}
+         - src/macfont.{h,m}
+       when: never
+   # using the variables for each job
    script:
-     - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 inotify-tools
-     - ./autogen.sh autoconf
-     - ./configure --without-makeinfo
-     - make bootstrap
-     - make check-expensive
+     - docker build --target ${target} -t ${target}:${CI_COMMIT_REF_SLUG} -t ${target}:${CI_COMMIT_SHA} -f test/infra/Dockerfile.emba .
+     # TODO: with make -j4 several of the tests were failing, for example shadowfile-tests, but passed without it
+     - docker run -i --rm -e EMACS_EMBA_CI=${EMACS_EMBA_CI} ${target}:${CI_COMMIT_SHA} make ${make_params}
+ stages:
+   - fast
+   - normal
+   - slow
+ test-fast:
+   stage: fast
+   extends: [.job-template, .test-template]
+   variables:
+     target: emacs-inotify
+     make_params: "-C test check"
+ test-lisp:
+   stage: normal
+   extends: [.job-template, .test-template]
+   variables:
+     target: emacs-inotify
+     make_params: "-C test check-lisp"
+ test-net:
+   stage: normal
+   extends: [.job-template, .test-template]
+   variables:
+     target: emacs-inotify
+     make_params: "-C test check-net"
  
  test-filenotify-gio:
-   stage: test
    # This tests file monitor libraries gfilemonitor and gio.
-   only:
-     changes:
-       - .gitlab-ci.yml
-       - lisp/autorevert.el
-       - lisp/filenotify.el
-       - lisp/net/tramp-sh.el
-       - src/gfilenotify.c
-       - test/lisp/autorevert-tests.el
-       - test/lisp/filenotify-tests.el
-   script:
-     - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libglib2.0-dev libglib2.0-bin libglib2.0-0
-     - ./autogen.sh autoconf
-     - ./configure --without-makeinfo --with-file-notification=gfile
-     - make bootstrap
-     - make -k -C test autorevert-tests filenotify-tests
+   stage: normal
+   extends: [.job-template, .test-template]
+   rules:
+     - if: '$CI_PIPELINE_SOURCE == "schedule"'
+       changes:
+         - "**/Makefile.in"
+         - .gitlab-ci.yml
+         - lisp/autorevert.el
+         - lisp/filenotify.el
+         - lisp/net/tramp-sh.el
+         - src/gfilenotify.c
+         - test/infra/*
+         - test/lisp/autorevert-tests.el
+         - test/lisp/filenotify-tests.el
+   variables:
+     target: emacs-filenotify-gio
+     make_params: "-k -C test autorevert-tests filenotify-tests"
  
 +test-native-bootstrap-speed0:
 +  # Test a full native bootstrap
 +  # Run for now only speed 0 to limit memory usage and compilation time.
 +  stage: test
 +  # Uncomment the following to run it only when sceduled.
 +  # only:
 +  #   - schedules
 +  script:
 +    - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libgccjit-6-dev
 +    - ./autogen.sh autoconf
 +    - ./configure --without-makeinfo --with-nativecomp
 +    - make bootstrap NATIVE_FULL_AOT=1 BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 0)"' -j2
 +  timeout: 8 hours
 +
 +test-native-bootstrap-speed1:
 +  stage: test
 +  script:
 +    - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libgccjit-6-dev
 +    - ./autogen.sh autoconf
 +    - ./configure --without-makeinfo --with-nativecomp
 +    - make bootstrap BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 1)"'
 +  timeout: 8 hours
 +
 +test-native-bootstrap-speed2:
 +  stage: test
 +  script:
 +    - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libgccjit-6-dev
 +    - ./autogen.sh autoconf
 +    - ./configure --without-makeinfo --with-nativecomp
 +    - make bootstrap
 +  timeout: 8 hours
 +
  test-gnustep:
-   stage: test
    # This tests the GNUstep build process
-   only:
-     changes:
-       - .gitlab-ci.yml
-       - configure.ac
-       - src/ns*.{h,m}
-       - src/macfont.{h,m}
-       - lisp/term/ns-win.el
-       - nextstep/**/*
-   script:
-     - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 gnustep-devel
-     - ./autogen.sh autoconf
-     - ./configure --without-makeinfo --with-ns
-     - make bootstrap
-     - make install
+   stage: normal
+   extends: [.job-template, .test-template]
+   rules:
+     - if: '$CI_PIPELINE_SOURCE == "schedule"'
+       changes:
+         - "**/Makefile.in"
+         - .gitlab-ci.yml
+         - configure.ac
+         - src/ns*.{h,m}
+         - src/macfont.{h,m}
+         - lisp/term/ns-win.el
+         - nextstep/**/*
+         - test/infra/*
+   variables:
+     target: emacs-gnustep
+     make_params: install
+ test-all:
+   # This tests also file monitor libraries inotify and inotifywatch.
+   stage: slow
+   extends: [.job-template, .test-template]
+   rules:
+     # note there's no "changes" section, so this always runs on a schedule
+     - if: '$CI_PIPELINE_SOURCE == "schedule"'
+   variables:
+     target: emacs-inotify
+     make_params: check-expensive
diff --cc configure.ac
index 2a4a373371cfe3e8ee439f8bdc387e5a70667ccc,bea2833809079efd1400cbb5f45dc301d313fad6..1bff666ad50a80a13e497468193aad91b797636a
@@@ -5783,12 -5677,14 +5789,14 @@@ Configured for '${canonical}'
    Where do we find X Windows header files?                ${x_includes:-$emacs_standard_dirs}
    Where do we find X Windows libraries?                   ${x_libraries:-$emacs_standard_dirs}"])
  
+ #### Please respect alphabetical ordering when making additions.
  optsep=
  emacs_config_features=
- for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND GPM DBUS \
-   GCONF GSETTINGS GLIB NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT \
-   LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT OLDXMENU X11 XDBE XIM \
-   NS MODULES NATIVE_COMP THREADS XWIDGETS LIBSYSTEMD JSON PDUMPER UNEXEC LCMS2 GMP; do
+ for opt in ACL CAIRO DBUS FREETYPE GCONF GIF GLIB GMP GNUTLS GPM GSETTINGS \
+  HARFBUZZ IMAGEMAGICK JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 \
 - M17N_FLT MODULES NOTIFY NS OLDXMENU PDUMPER PNG RSVG SOUND THREADS TIFF \
 - TOOLKIT_SCROLL_BARS UNEXEC X11 XAW3D XDBE XFT XIM XPM XWIDGETS X_TOOLKIT \
 - ZLIB; do
++ M17N_FLT MODULES NATIVE_COMP NOTIFY NS OLDXMENU PDUMPER PNG RSVG SOUND \
++ THREADS TIFF TOOLKIT_SCROLL_BARS UNEXEC X11 XAW3D XDBE XFT XIM XPM XWIDGETS \
++ X_TOOLKIT ZLIB; do
  
      case $opt in
        PDUMPER) val=${with_pdumper} ;;
diff --cc etc/NEWS
Simple merge
Simple merge
Simple merge
diff --cc lisp/startup.el
Simple merge
diff --cc lisp/subr.el
Simple merge
diff --cc src/data.c
Simple merge
diff --cc src/emacs.c
Simple merge
diff --cc src/eval.c
Simple merge
diff --cc src/lisp.h
Simple merge
diff --cc src/lread.c
Simple merge
diff --cc src/pdumper.c
Simple merge
Simple merge
Simple merge