Trepan-Debuggers / zshdb

gdb-like "trepan" debugger for zsh
GNU General Public License v3.0
295 stars 23 forks source link

Add macOS CI support for Travis-CI #23

Closed boretom closed 4 years ago

boretom commented 4 years ago

Use update for brew since all macOS images are broken for a month or so. Not much effort in going to fix that it seems.

Set language to minimal for a light os image

rocky commented 4 years ago

CI works on OSX - great!

Thanks for doing this.!

rocky commented 4 years ago

PS. Right now I'm trying to figure out what's up with make distcheck for remake. Somehow all of the object files have an additional make- in them and that is messing up the profile unit test which is looking for the objects wiithout the make-.

I am guessing that either the funny project name remake-4.3+... is messing this up or there is some unneeded cleverness.

rocky commented 4 years ago

Suspiciious automake-genereated code. which is why I need both the remake debugger and bashdb

    $(am__remove_distdir)
    test -d "$(distdir)" || mkdir "$(distdir)"
    @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
    topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
    list='$(DISTFILES)'; \
      dist_files=`for file in $$list; do echo $$file; done | \
      sed -e "s|^$$srcdirstrip/||;t" \
          -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
    case $$dist_files in \
      */*) $(MKDIR_P) `echo "$$dist_files" | \
               sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
               sort -u` ;; \
    esac; \
    for file in $$dist_files; do \
      if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
      if test -d $$d/$$file; then \
        dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
        if test -d "$(distdir)/$$file"; then \
          find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
        fi; \
        if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
          cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
          find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
        fi; \
        cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
      else \
        test -f "$(distdir)/$$file" \
        || cp -p $$d/$$file "$(distdir)/$$file" \
        || exit 1; \
      fi; \
    done
    @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
      if test "$$subdir" = .; then :; else \
        $(am__make_dryrun) \
          || test -d "$(distdir)/$$subdir" \
          || $(MKDIR_P) "$(distdir)/$$subdir" \
          || exit 1; \
        dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
        $(am__relativize); \
        new_distdir=$$reldir; \
        dir1=$$subdir; dir2="$(top_distdir)"; \
        $(am__relativize); \
        new_top_distdir=$$reldir; \
        echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
        echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
        ($(am__cd) $$subdir && \
          $(MAKE) $(AM_MAKEFLAGS) \
            top_distdir="$$new_top_distdir" \
            distdir="$$new_distdir" \
        am__remove_distdir=: \
        am__skip_length_check=: \
        am__skip_mode_fix=: \
            distdir) \
          || exit 1; \
      fi; \
    done
    $(MAKE) $(AM_MAKEFLAGS) \
      top_distdir="$(top_distdir)" distdir="$(distdir)" \
      dist-hook
    -test -n "$(am__skip_mode_fix)" \
    || find "$(distdir)" -type d ! -perm -755 \
        -exec chmod u+rwx,go+rx {} \; -o \
      ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
      ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
      ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
    || chmod -R a+r "$(distdir)"
boretom commented 4 years ago

I'll have a look at it too, at make distcheck. Maybe I'll see something.

rocky commented 4 years ago

Thanks.

rocky commented 4 years ago

I just don't get that configure and Makefiles are thousands of lines long and you think within the thousands of lines of autogenerated stuff they could include an autogenerated comment describing roughly what is going on.

It's not like they are trying to conserve disk space.

boretom commented 4 years ago

I guess that a thing with all these tools, no? They are helpful but a pain to find the source of a problem.

In this case it is something I added when doing the CFLAGS checks. In Makefile.am I added make_CFLAGS += AMFLAGS (thinking being clever). Which is not needed anyway.

diff --git a/Makefile.am b/Makefile.am
index a3e3a6dc..615e53e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -91,7 +91,6 @@ AM_CPPFLAGS = -Isrc -I$(top_srcdir)/src -Ilib -I$(top_srcdir)/lib \
        -DLOCALEDIR=\"$(localedir)\"

 AM_CFLAGS += $(GUILE_CFLAGS)
-make_CFLAGS    = $(AM_CFLAGS)

 if WINDOWSENV
   make_SOURCES += $(w32_SRCS)
rocky commented 4 years ago

I think AM_CFLAGS is it.

There is a residual problem with not making a test file mock.o needed for the profile test, but I think I can fix that.

rocky commented 4 years ago

... And make distcheck now works. Will clean it up a little and put in a PR. Thanks for the help.

rocky commented 4 years ago

I guess that a thing with all these tools, no?

What's missing in them is that they lack a simple way to debug them. And even in the rare case that there is some sort of debug flag, you now have learn yet another entire new set of debug features instead of there being an effort to build on the old ones or extend them if needed.

This is basically what I've spent my lifetime trying to bridge.

But I think it is is largely a lost cause. Fortunately, I won't be around to have to deal with the ever growing mess and tower of Babel.

rocky commented 4 years ago

Also, now that distcheck has a chance of working, maybe in one (not all) of the CI checks we could try a distcheck as well?

Oops, meant this for remake. (However it could also apply here)

boretom commented 4 years ago

[remake] try a distcheck as well?

For Linux and macOS that should work, I'll test that for macOS tomorrow to be sure.

This is basically what I've spent my lifetime trying to bridge.

But I think it is is largely a lost cause. Fortunately, I won't be around to have to deal with the ever growing mess and tower of Babel.

As one person you're resources are limited and most people are selfish and only interested in a certain tool and nothing else. Are you planning on retiring anytime soon? Or when would you expect the tower of Babel to reach it's critical height?

I can relate. I get by with a lot of help from my friends. (Or anyone who happens to be around)

It's important to have friends you can count on, there is no doubt about that. And my friend is working with refugees and their stories or what happens when they have to leave our country is emotionally very challenging.

rocky commented 4 years ago

Are you planning on retiring anytime soon?

I have no plans. Fate may have his/her/its own though.