Skip to content

Releases: com-lihaoyi/os-lib

0.11.4-M1

27 Oct 06:25
18e1be6
Compare
Choose a tag to compare
Update publish-artifacts.yml

0.11.3

21 Oct 09:01
Compare
Choose a tag to compare

Merged Pull Requests

  • Add flag to register shutdown hooks for os.call and os.spawn APIs, overhaul destroy APIs by @lihaoyi in #324

Full Changelog: 0.11.2...0.11.3

0.11.2

17 Oct 13:46
Compare
Choose a tag to compare

Merged Pull Requests

  • Fixed typo on Readme.adoc by @windymelt in #322
  • Use Files.newOutputStream instead of new java.io.FileOutputStream by @sake92 in #323

New Contributors

Full Changelog: 0.11.1...0.11.2

0.11.1

08 Oct 07:50
Compare
Choose a tag to compare

Merged Pull Requests

  • Propagate content length from filesystem through geny.Writable and os.Source by @lihaoyi in #320

Full Changelog: 0.11.0...0.11.1

0.11.0

07 Oct 18:54
Compare
Choose a tag to compare

Merged Pull Requests

Full Changelog: 0.10.7...0.11.0

0.10.7

11 Sep 00:56
Compare
Choose a tag to compare

Merged Pull Requests

  • Allow even more dynamic instrumentation of pwd via os.dynamicPwdFunction by @lihaoyi in #299
  • Allow multiple segments in Stringliterals by @pawelsadlo in #297
  • Update error messages to allow better error messages for invalid path segments by @lihaoyi in #301
  • Make use of concise literal paths everywhere by @lihaoyi in #302
  • Update mima comparison versions by @lihaoyi in #303

New Contributors

Full Changelog: 0.10.6...0.10.7

0.10.7-M2

10 Sep 11:19
4262d5c
Compare
Choose a tag to compare
0.10.7-M2 Pre-release
Pre-release
Allow multiple segments in Stringliterals (#297)

This PR adds support for multi-segment literal strings.
for example
```scala
val path = root / "foo/bar" 
val qux = "qux"
val path = root / "foo/bar" / "baz" / qux
val path = root / "foo/bar" / "baz/qux"
```
it also parses `..` segments from literal as `os.up` enabling syntax
like:
```scala
val path = root / "foo" / ".." / "bar" // equivalent to `root / "foo" / os.up / "bar"`
val path = root / "foo" /  "../bar" // equivalent to `root / "foo" / os.up / "bar"`
```
non-canonical paths used in literals result in compile-time errors,
suggesting usage of canonical paths or removing path segment, eg.
```scala
val path = root / "foo/./bar" //suggests "foo/bar"
val path = root / "foo//bar" //suggests "foo/bar"
val path = root / "//foo//bar/./baz" //suggests "foo/bar/baz"

val path = root / ""  //suggests removing the segment
val path = root / "." //suggests removing the segment
val path = root / "/" //suggests removing the segment
val path = root / "//" //suggests removing the segment
val path = root / "/./" //suggests removing the segment

```

Note:
Its not usable in os-Lib itself, due to the fact that it would lead to
macro expansion in the same compilation unit as its definition.

@lihaoyi 
there is a little bit of hacking involved:

1. There is a default implicit conversion not being a macro to be used
within os library, without this we would have to add a submodule and
split the whole project, I'm not even sure if its doable.
4. Needed to turn off acyclic in `Path` and particular `Macro` files
(also needed to mock `acyclic.skipped` in case of `scala 3`).
5. Needed to provide another implicit conversion in `ViewBoundImplicit`
trait because macros turn out to be not avaliable as implicit views,
this is needed for `ArrayPathChunk` and `SeqPathChunk` to work.

0.10.7-M1

07 Sep 11:25
5561ad6
Compare
Choose a tag to compare
0.10.7-M1 Pre-release
Pre-release
Allow even more dynamic instrumentation of `pwd` via `os.dynamicPwdFu…

0.10.6

07 Sep 10:13
Compare
Choose a tag to compare

Merged Pull Requests

  • Make os.pwd modifiable via the os.pwd0 dynamic variable by @lihaoyi in #298

Full Changelog: 0.10.5...0.10.6

0.10.5

30 Aug 20:19
Compare
Choose a tag to compare

Merged Pull Requests

Full Changelog: 0.10.4...0.10.5