Skip to content
This repository has been archived by the owner on May 6, 2024. It is now read-only.

Releases: facebookresearch/nle

v0.5.0

18 Sep 14:39
6e35e02
Compare
Choose a tag to compare

Installing NLE

Install with pip: pip install nle==0.5.0.

Or pull the docker image: docker pull fairnle/nle:0.5.0.

See README.md and/or docker/README.md for further instructions.

What's new?

This is nethack as a library.

Uses:

  • fcontext for context switching ("yielding"), originally from Boost.
  • dlopen/dlclose to reset global state. This is not POSIX compliant[1], but "works".
    • Even worse, we copy the .so file in order for dlopen to create a new global state in a situation when we have several environments in the same process (dlopen looks at the inode or something, sym/hard-linking won't work). That's nuts but appears to work. On Linux, dlmopen and linker namespaces might be an alternative; however I didn't manage to make this work.

🚀 Speed measurements indicate a > 10x improvement over the current IPC implementation. 🚀

Speed measurements, raw environment in a Python loop:

$ python nle/scripts/play.py -m random -n 3 --no-render -e raw
Episode: 0. Steps: 2139. SPS: 25038.358496
Episode: 1. Steps: 1736. SPS: 29816.063741
Episode: 2. Steps: 1574. SPS: 31407.483889
Finished after 3 episodes. Mean sps: 28753.968709

Speed measurements, environment with Gym wrapper in a Python loop:

$ python nle/scripts/play.py -m random -n 3 --no-render
Final reward: 0.0
End status: DEATH
Mean reward: -0.006100478468899518
Episode: 0. Steps: 418. SPS: 17717.339515
Final reward: 0.0
End status: DEATH
Mean reward: 0.0023146067415730303
Episode: 1. Steps: 445. SPS: 16878.123638
Final reward: 0.0
End status: DEATH
Mean reward: 0.0019212598425196886
Episode: 2. Steps: 1270. SPS: 14700.374649
Finished after 3 episodes. Mean sps: 16431.945934

This implementation currently cds into HACKDIR, which changes the pwd of the process.

[1]: "Although a dlclose() operation is not required to remove structures from an address space, neither is an implementation prohibited from doing so."

💣 Breaking Change

  • Libnethack 3.6 (#59, @heiner)
  • Does not currently have the inventory observation
  • Probably lots of other stuff

v0.2.0

30 Jul 14:28
0f2d20b
Compare
Choose a tag to compare

Installing NLE

Install with pip: pip install nle==0.2.0.

Or pull the docker image: docker pull fairnle/nle:0.2.0.

See README.md and/or docker/README.md for further instructions.

New in NLE v0.2.0

🚀 New Features

  • Install HACKDIR into package (#45, @edran)
  • Implement cmake-based build (#38, @edran)
  • Enable chars, colors, specials as observation tensors. (#56, @heiner)
  • Update helpers (#55, @heiner)
  • Define a new penalty_mode, "always", and make it the default. (#40, @heiner)

🐛 Bug Fixes

  • Create temporal ttyrecs inside temporal HACKDIR. (#51, @heiner)
  • Require cmake version >= 3.14 (#54, @heiner)
  • Clone repository recursively in CI when building docker images (#43, @edran)
  • Attempt to fix #41: "smooth quitting of game failed". (#42, @heiner)

🔨 Maintenance

v0.1.2

22 Jun 11:06
74be2c5
Compare
Choose a tag to compare

Installing NLE

Install with pip: pip install nle==0.1.2.

Or pull the docker image: docker pull fairnle/nle:0.1.2.

See README.md and/or docker/README.md for further instructions.

New in NLE v0.1.2

🚀 New Features

🐛 Bug Fixes

  • Remove unnecessary check in CI (#36, @edran)
  • Set clang as linker on MacOS (#32, @edran)
  • Explicitly ask for clang in hints/macosx. (#29, @heiner)
  • Do step check outside of _is_episode_end (#24, @edran)
  • Allow kicking (#20, @heiner)
  • Fix play script when using human mode with raw nethack (#19, @heiner)
  • Disable E402 for imports in agent.py (#18, @edran)

📝 Documentation

🔨 Maintenance

  • [in-repo] Deploy pip package and docker images on release (#34, @edran)
  • Create NLE hint files, and restore originals to NH 3.6.6 (#25, @edran)
  • Update minimist to latest version (#27, @edran)
  • Use raw image URLs for PyPI compatibility (#17, @edran)

v0.1.1

08 May 12:19
99ae15e
Compare
Choose a tag to compare

Installing NLE

Install with pip: pip install nle==0.1.1
Install with docker: docker pull fairnle/nle:0.1.1-bionic

See README.md for further instructions.

New in NLE v0.1.1

🚀 New Features

  • Add linux dockerfiles, patch compilation for older g++ versions (#4, @edran)

🐛 Bug Fixes

  • Fix action selection in play script for nethack mode (#7, @edran)

📝 Documentation

  • Clear up installation instructions (#9, @edran)

🔨 Maintenance

v0.1.0

06 May 07:26
Compare
Choose a tag to compare
Add NLE public version 0.1