diff --git a/ci/environment-win.yml b/ci/environment-win.yml
index 7e847e7..af9671e 100644
--- a/ci/environment-win.yml
+++ b/ci/environment-win.yml
@@ -8,7 +8,7 @@ dependencies:
   - requests
   - zstandard
   - python-snappy
-  - lz4
+  - lz4<3.1.3
   - pyftpdlib
   - cloudpickle
   - pytest
diff --git a/fsspec/dircache.py b/fsspec/dircache.py
index 97a73bc..014e482 100644
--- a/fsspec/dircache.py
+++ b/fsspec/dircache.py
@@ -38,7 +38,7 @@ class DirCache(MutableMapping):
         use_listings_cache: bool
             If False, this cache never returns items, but always reports KeyError,
             and setting items has no effect
-        listings_expiry_time: int (optional)
+        listings_expiry_time: int or float (optional)
             Time in seconds that a listing is considered valid. If None,
             listings do not expire.
         max_paths: int (optional)
diff --git a/fsspec/implementations/local.py b/fsspec/implementations/local.py
index 16eda94..51f86d3 100644
--- a/fsspec/implementations/local.py
+++ b/fsspec/implementations/local.py
@@ -184,7 +184,7 @@ class LocalFileSystem(AbstractFileSystem):
         path = stringify_path(path)
         if path.startswith("file://"):
             path = path[7:]
-        return make_path_posix(path).rstrip("/")
+        return make_path_posix(path).rstrip("/") or cls.root_marker
 
     def _isfilestore(self):
         # Inheriting from DaskFileSystem makes this False (S3, etc. were)

diff --git a/fsspec/implementations/tests/test_local.py b/fsspec/implementations/tests/test_local.py
index 2779018..f3bbad8 100644
--- a/fsspec/implementations/tests/test_local.py
+++ b/fsspec/implementations/tests/test_local.py
@@ -370,6 +370,7 @@ def test_directories(tmpdir):
     assert fs.ls(tmpdir, True)[0]["type"] == "directory"
     fs.rmdir(tmpdir + "/dir")
     assert not fs.ls(tmpdir)
+    assert fs.ls(fs.root_marker)
 
 
 def test_file_ops(tmpdir):

FileNotFoundError [LocalFileSystem] on unix-like root / directory 
Hello,

in case of `LocalFileSystem().ls('/')`, a `FileNotFoundError` is being raised. 

```python
FileNotFoundError: [Errno 2] No such file or directory: ''
```

This looks quite normal as path is stripped right 
https://github.com/fsspec/filesystem_spec/blob/b68be6c57f54a71c6ffc89e669c410da353ebc1f/fsspec/implementations/local.py#L54

Is this an expected behavior?
fsspec/implementations/tests/test_local.py::test_directories
fsspec/implementations/tests/test_local.py::test_urlpath_inference_strips_protocol fsspec/implementations/tests/test_local.py::test_urlpath_inference_errors fsspec/implementations/tests/test_local.py::test_urlpath_expand_read fsspec/implementations/tests/test_local.py::test_cats fsspec/implementations/tests/test_local.py::test_urlpath_expand_write fsspec/implementations/tests/test_local.py::test_open_files fsspec/implementations/tests/test_local.py::test_open_files_text_mode[utf-8] fsspec/implementations/tests/test_local.py::test_open_files_text_mode[ascii] fsspec/implementations/tests/test_local.py::test_compressions[None-rt] fsspec/implementations/tests/test_local.py::test_compressions[None-rb] fsspec/implementations/tests/test_local.py::test_compressions[zip-rt] fsspec/implementations/tests/test_local.py::test_compressions[zip-rb] fsspec/implementations/tests/test_local.py::test_compressions[bz2-rt] fsspec/implementations/tests/test_local.py::test_compressions[bz2-rb] fsspec/implementations/tests/test_local.py::test_compressions[gzip-rt] fsspec/implementations/tests/test_local.py::test_compressions[gzip-rb] fsspec/implementations/tests/test_local.py::test_compressions[lzma-rt] fsspec/implementations/tests/test_local.py::test_compressions[lzma-rb] fsspec/implementations/tests/test_local.py::test_compressions[xz-rt] fsspec/implementations/tests/test_local.py::test_compressions[xz-rb] fsspec/implementations/tests/test_local.py::test_bad_compression fsspec/implementations/tests/test_local.py::test_not_found fsspec/implementations/tests/test_local.py::test_isfile fsspec/implementations/tests/test_local.py::test_isdir fsspec/implementations/tests/test_local.py::test_open_files_write[compression_opener0] fsspec/implementations/tests/test_local.py::test_open_files_write[compression_opener1] fsspec/implementations/tests/test_local.py::test_abs_paths fsspec/implementations/tests/test_local.py::test_glob_weird_characters[+-/] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[+-\\] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[++-/] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[++-\\] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[(-/] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[(-\\] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[)-/] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[)-\\] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[|-/] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[|-\\] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[\\-/] fsspec/implementations/tests/test_local.py::test_glob_weird_characters[\\-\\] fsspec/implementations/tests/test_local.py::test_globfind_dirs fsspec/implementations/tests/test_local.py::test_touch fsspec/implementations/tests/test_local.py::test_file_ops fsspec/implementations/tests/test_local.py::test_recursive_get_put fsspec/implementations/tests/test_local.py::test_commit_discard fsspec/implementations/tests/test_local.py::test_make_path_posix fsspec/implementations/tests/test_local.py::test_linked_files fsspec/implementations/tests/test_local.py::test_linked_files_exists fsspec/implementations/tests/test_local.py::test_linked_directories fsspec/implementations/tests/test_local.py::test_isfilestore fsspec/implementations/tests/test_local.py::test_pickle fsspec/implementations/tests/test_local.py::test_strip_protocol_expanduser fsspec/implementations/tests/test_local.py::test_mkdir_twice_faile fsspec/implementations/tests/test_local.py::test_iterable fsspec/implementations/tests/test_local.py::test_mv_empty fsspec/implementations/tests/test_local.py::test_mv_recursive fsspec/implementations/tests/test_local.py::test_copy_errors fsspec/implementations/tests/test_local.py::test_transaction fsspec/implementations/tests/test_local.py::test_delete_cwd fsspec/implementations/tests/test_local.py::test_infer_compression[open-.bz2] fsspec/implementations/tests/test_local.py::test_infer_compression[open-.gz] fsspec/implementations/tests/test_local.py::test_infer_compression[open-] fsspec/implementations/tests/test_local.py::test_info_path_like fsspec/implementations/tests/test_local.py::test_seekable