Releases: facebookresearch/nle
v0.5.0
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 cd
s into HACKDIR
, which changes the pwd
of the process.
💣 Breaking Change
v0.2.0
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
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
- Bump version.txt to v0.1.2 (#37, @edran)
- Fix typo in Readme.md (#15, @sYnfo)
- Adding a related Minecraft environment (#14, @MadcowD)
🚀 New Features
- Add savedir / archivefile flags to play script (#22, @edran)
- update plot.py with examples and utility fixes (#16, @alexholdenmiller)
🐛 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
- update plot.py with examples and utility fixes (#16, @alexholdenmiller)
🔨 Maintenance
v0.1.1
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
🐛 Bug Fixes
📝 Documentation
🔨 Maintenance
- Bump acorn from 7.1.0 to 7.1.1 in /nle/dashboard (#10, @dependabot)