1. 19 Oct, 2020 8 commits
  2. 13 Oct, 2020 10 commits
    • Mark's avatar
      ansi-tests: default reporting is for compiled tests · 108f8a7a
      Mark authored
      108f8a7a
    • Mark's avatar
      Recent ANSI test results · a36995fc
      Mark authored
      a36995fc
    • Mark's avatar
      pathname: change parsing of type · 5fb3b951
      Mark authored
      Change the algorithim for determining type from parsing strings to be
      more in line with SBCL/CCL:
      
      | Expression | NAME   | TYPE |
      |------------+--------+------|
      | #p"..."    | ".."   | ""   |
      | #p".foo"   | ".foo" | NIL  |
      5fb3b951
    • Mark's avatar
      pathname: actually perform deep copy of host · b6ad3546
      Mark authored
      Fix MAKE-PATHNAME creation of JAR-PATHNAME with remote URL.
      b6ad3546
    • Mark's avatar
      pathname: further cleanup to use of copyFrom() · bd0ceb5e
      Mark authored
      bd0ceb5e
    • Mark's avatar
      FILE-DELETE for pathnames for ZipCache items now works · 6bcc1390
      Mark authored
      Construct from JAR-PATHNAME from PATHNAME with proper type.
      6bcc1390
    • Mark's avatar
      pathname: don't always convert to namestrings · b08e2d70
      Mark authored
      b08e2d70
    • Mark's avatar
      pathname: various fixed in order to work Windows · 4d8be0bf
      Mark authored
      Don't use #P reader macro in source as it can throw errors.  Use
      PATHNAME function instead.
      
      LOAD for URL-PATHNAME working under Windows
      
      TODO work through ramifications of needing to uri-encode whitespace
      and other components for URLPathname.
      
      Give up on java.net.{URL,URI} for construction of pathnames, as they
      provide no help in uri encoding and fail to account for
      MSDOS drive letters.
      4d8be0bf
    • Mark's avatar
      Refactor pathname java hierarchy to reflect lisp hierarchy · 33159771
      Mark authored
      JarPathname instead of PathnameJar, usw. correcting for my dyslexia.
      33159771
    • Mark's avatar
      build: make building and running a local ABCL easier · e7a05ab4
      Mark authored
      (From a suggestion by Slyrus)
      
      Replace use of abcl.javac.{source,target} with the "magic"
      ant.build.javac,{source,target} properties.
      
      Explicitly configure 'abcl.release' target to use openjdk8 compilation.
      
      The Java compilation options are perhaps underspecified in terms of
      the target JVM in order to support a developer who simply wants to
      compile and run locally with least hassles.
      
      When preparing ABCL binaries for wider distribution, the values of the
      abcl.build.target.javac and abcl.build.source.java become more
      important.
      
      The 'abcl.properties.autoconfigure.*' targets use the
      ci/create-build-properties.bash script to set these options for
      various openjdk platforms.
      * * *
      build: build the wrapper with the release
      
      N.b. the wrapper is a local artifact, not supposed to be shipped with
      the release.
      e7a05ab4
  3. 10 Oct, 2020 18 commits
    • Mark's avatar
      Able to OPEN, PROBE-FILE, and LOAD contents of nested jar · ac72742b
      Mark authored
      Pathname.mergePathname() returns a Pathname, while Pathname.truename()
      returns a LispObject as it needs to be able to return NIL.
      
      PathnameURL.truename() coerces its result to a PathnameURL if necessary.
      ac72742b
    • Mark's avatar
      INCOMPLETE Implement Zip from InputStream access · 1b20b067
      Mark authored
      ZipCache.Archive.getEntry() now works on pathnames relative to the
      root of the Archive.
      
      Able to retrieve the reference to the InputStream for a nested pathname.
      
      Now need to implement accessing entries within this reference.
      
      TODO Rework decision to always use fully qualified pathname in the cache.
      * * *
      Fix Pathname.copyFrom() not to change order of DEVICE cons
      
      Reproduce via:
      
         #p"jar:jar:file:/var/tmp/cl-ppcre-all-2.1.1.jar!/cl-ppcre/packages.abcl!/**/*"
         (namestring *)
      * * *
      PROBE-FILE fails for archive stream
      
      Somewhere in the code we can construct root jar as a Pathname rather
      than PathnameURL which means that the two values are not
      java.lang.Object.equals(), so not matched.
      
      TODO figure out how we are getting such a value
      * * *
      Start being more explicit about the truename method
      * * *
      Delegate cloning of device to the JAR-PATHNAME Java object
      
      TODO PathnameXXX.createXXX() routines uniformly return object over
      LispObject.  Is this really necessary?  It seems to work now in a kind
      of "mixed" state.
      1b20b067
    • Mark's avatar
      Remove unused methods, extraneous comments · 6d43896d
      Mark authored
      6d43896d
    • Mark's avatar
      Our namestrings should always contain forward-slash delimited directories · 7eb391a0
      Mark authored
      We want to convert all Windows backslashes to this format on reading
      namestrings, but always emit directories delimited with forward slashes.
      
      TODO move away from using File.pathSeparator???
      7eb391a0
    • Mark's avatar
      Modernize Cons references · e6e1a214
      Mark authored
      e6e1a214
    • Mark's avatar
      Use PathnameURL namespace for URL things · 776f1a10
      Mark authored
      Remove Pathname.jarSeparator in favor of PathnameURL.JAR_URI_SUFFIX.
      776f1a10
    • Mark's avatar
      pathname: carefully refactor finishing(?) touches · e225e1d6
      Mark authored
      Return NIL as opposed to signalling error with PATHNAME-JAR-P and
      PATHNAME-URL-P.
      * * *
      FILE-WRITE-DATE for remote jar
      
      DELETE-FILE for local jar
      * * *
      Define static Pathname.ncoerce in terms of copyFrom()
      e225e1d6
    • Mark's avatar
      a6ed6d22
    • Mark's avatar
      Fixes for working under Windows 10 · 5ae328f4
      Mark authored
      Remove intermediate compiler artifacts from the ZipCache.
      
      Fix URI for previous release.
      5ae328f4
    • Mark's avatar
      Expand abstraction of Archive · aa74a3a6
      Mark authored
      Fix ZipTest
      
      Start working on creating a test for a nested jar.
      
      pathname: overhaul semantics for zips using PATHNAME-DEVICE
      
      Implement CL:PATHNAME-DEVICE references to files which are cons cells
      to the level of abcl-1.7.0, which is that nested pathnames do not
      fully work for all variants of CL:TRUENAME.
      
      Attempt to start coding "worst case, cache everything we find
      strategy".
      
      TODO memoize storage via a weak reference so that the VM can possibly
      reclaim space if it needs to.
      
      TODO re-implement references to URIs. (???)
      * * *
      OPEN of remote Zip archives works
      
      TODO no last modified times are being returned
      aa74a3a6
    • Mark's avatar
      Ensure that we behave like previous implementation · 427d6a3a
      Mark authored
      Seemingly working for simple loads
      
      TODO: No relative pathnames for jars or urls
      
      Everything but PATHNAME-URL loads seem to be working
      * * *
      Properly signal PARSE-ERROR when choking on namestrings
      * * *
      Validate JAR-PATHNAME components better
      
      Enables ABCL/TEST/LISP to at least complete locally.
      
      TODO: incomplete checking for all possible code paths to object
      constructions, notably missing is PathnameURL construction/validation.
      * * *
      IN-PROGRESS restore MERGE-PATHNAMES relative-jar
      
      Need to reinstate relative local PATHNAME-JAR
      427d6a3a
    • Mark's avatar
      Make Pathname.init() static method · 71b6c1bc
      Mark authored
      Running under Netbeans, but failing to enumerate jar pathnames in the
      Java tests.
      
      Moved (most) Pathname.truename() invocations to using symbols
      
      Changed a lot of use of PROBE-FILE over TRUENAME.
      
      Running under Netbeans, but can't probe-file on jar locations:
      
        (probe-file "jar:file:/opt/local/share/java/abcl/abcl.jar!/org/armedbear/lisp/")
        (probe-file "jar:file:/opt/local/share/java/abcl/abcl.jar!/org/armedbear/lisp/boot.lisp")
      
      
      Loading from boot jar not working.
      
      Reading all the jar entries into the entry cache at once is not a good
      idea.  For abcl.jar this is ~10k entries which takes a noticable
      amount of time.
      
      And PathnameJar does not implement the right equals() contract, so
      looking up the entry in the cache doesn't work either.
      
      Running from abcl.jar!
      
      Not loading in contribs…
      Good progress: able to load from abcl.jar.
      
      Failing to bootstrap contrib due to the following errors.
      
      DIRECTORY partly working for jar archives
      
      Use java.net.URI to encode namestrings.
      
      INCOMPLETE Overhaul ZipCache to give linear access to PathnameURL keys
      
      TODO Failing to distinguish that org/armedbear/lisp/java *doesn't* name a directory
      
      TODO: comprehensive multi-level cache design that will plausibly work
      71b6c1bc
    • Mark's avatar
      Starting to hook jar/uri mechanisms up · 6b884d84
      Mark authored
      Failing to roundtrip
      
           (pathname "jar:jar:file:foo.jar!/baz.abcl!/")
      6b884d84
    • Mark's avatar
      INCOMPLETE Hook up implementation of PathnameJar and PathnameURL · 631e423d
      Mark authored
      Current problem:
      
      working through getting TRUENAME working, Lisp.coerceToPathname()
      always returns a Pathname even if it creates a JarPathname?
      631e423d
    • Mark's avatar
      Debugging Pathname transition with logical pathnames · b469fbb6
      Mark authored
      Added LogicalPathname.create() and LogicalPathname()
      
      Solved problems with getting Pathname._makePathname() to return objects of
      type LogicalPathname.
      
          (ignore-errors (asdf:load-system :abcl/test/lisp))
          (abcl-test:run-matching "logical")
      
      TODO: refactor the creation of logical pathnames in
      Pathname._makePathname() into a new LogicalPathname._makePathname().
      * * *
      Used UNREACHED constant to mark non-local exits
      
      TODO do this consistently
      b469fbb6
    • Mark's avatar
      pathname: normalize Pathname to new Java conventions · bc929cf8
      Mark authored
      1. use setter/getter methods for accessing internal components
      
      2. use create() to construct new Pathname objects
      
      Also known as using a Factory pattern which allows one to do stuff
      like:
      
             Pathname p = new Pathname("/foo/").setName("build").setType("me");
      
      TODO: remove invalidateNamestring()
      
      Disallow use of Pathname constructor where possible to encourage use
      of create() routines.
      bc929cf8
    • Mark's avatar
      ONGOING Document current problems and status with pathname overhaul · e90a18b0
      Mark authored
      TODO Fix: have to have the "root" device not use the DEVICE component as it
      is reserved under Windows to refer to drive letters.  Currently: under
      Windows, if the device is an abstract string, it refers to the local
      SMB mount at runtime.
      e90a18b0
    • Mark's avatar
      Introduce a synonym for the null reference · 0e87e951
      Mark authored
      0e87e951
  4. 08 Oct, 2020 1 commit
    • Mark's avatar
      Ensure that SYS:CHECK-REDEFINITION does not signal error conditions · 727011c4
      Mark authored
      Unfortunately, SLIME v2.26 code can throw errors when compiling Emacs
      buffers, namely the pathname may have a device containing the string
      "emacs-buffer" whose PATHNAME name denotes the buffer which often
      contain wild-pathname characters (e.g. "*slime-scratch*") causing a
      naieve PROBE-FILE to throw errors.
      
      TODO redo ABCL SLIME's use of PATHNAME-DEVICE components to mark a
      source location.
      
      Use IGNORE-ERRORS to be extra careful.
      727011c4
  5. 01 Oct, 2020 1 commit
  6. 30 Sep, 2020 1 commit
  7. 26 Sep, 2020 1 commit
    • Mark's avatar
      ci: various maintenance changes · 80e58e8d
      Mark authored
      Travis CI now uses versions of STATIC-VECTORS, CL+SSL, and CFFI from
      Quicklisp distribution as all outstanding patches have been absorbed
      upstream.  While this means testing will change depending on the
      current Quicklisp distribution when the tests are invoked, it will
      more properly reflect common usage of these systems.
      
      Overhaul ABCL-PROVE system definition explicitly enumerating tests for
      more deterministic behavior.  Remove unnecessary ABCL-PROVE/T
      sub-system.  Remove testing of JEANNIE from ABCL-PROVE so that it has
      no dependencies external to the ABCL source tree.
      
      Add TIME forms to ABCL/TEST/ANSI invocation.
      80e58e8d