MINOS is a simulator designed to support the development of multisensory models for goal-directed navigation in complex indoor environments. MINOS leverages large datasets of complex 3D environments and supports flexible configuration of multimodal sensor suites.
Use the I/J/K/L keys to step and turn, the arrow keys to strafe and look up or down, the R key to respawn, and the O key to update the agent observations panel on the right. The M key toggles various navigation grid and shortest path visualizations.
Installing
MINOS can be used on Linux and MacOS systems. Use under Windows is possible but not recommended.
Request and download the SUNCG and Matterport3D datasets. Please indicate "use with MINOS simulator" in your request email. For Matterport3D, use the invocation download_mp.py --task_data minos -o . with the provided download script. This will download a 5.1GB zip archive which expands to approximately 6.3GB. For SUNCG, by default the download_suncg.py script will download the latest version of the dataset. You can obtain the v1 or v2.0 versions using download_suncg.py --version <version>.
Install node.js using the Node Version Manager (nvm).
If you use zsh instead of bash, replace all instances of bash with zsh. Confirm node installation is succesful using node -v at the terminal.
Build the MINOS server modules by running npm install inside the server directory. This process will download and compile all server module dependencies and might take a few minutes. There are some prerequisites for the build process in Ubuntu, they can be installed using sudo apt-get install build-essential libxi-dev libglu1-mesa-dev libglew-dev libvips.
Make sure you have a Python3 installation with pip3 available on your command line. The following steps can be carried out in a virtualenv, or with the system python installation.
Install the minos Python module by running pip3 install -e . -r requirements.txt in the root of the repository.
Extract the SUNCG and/or MP3D data packages under $HOME/work/suncg and/or $HOME/work/mp3d, or under another parent directory of your choice. If you choose a directory other than $HOME/work as the dataset parent directory remember to run all remaining commands with the prefix NODE_BASE_URL=path/to/data_parent_dir.
Check that everything works by running the interactive client through python3 -m minos.tools.pygame_client, invoked from the root of the repository. You should see a live view which you can control with the W/A/S/D keys and the arrow keys. This client can be configured through various command line arguments. Run with the --help argument for an overview and try some of these other examples:
python3 -m minos.tools.pygame_client --empty_room : navigation in empty SUNCG environments
python3 -m minos.tools.pygame_client --dataset mp3d --scene_ids 17DRP5sb8fy --env_config pointgoal_mp3d_s : an example Matterport3D environment
python3 -m minos.tools.pygame_client --depth -s normal -s objectId -s objectType -s map --navmap --width 128 --height 128 : multimodal agent with depth, normals, object instance and category frames
Documentation
See the API document for an overview of the Simulator API and a reference of the available configuration parameters. Please also refer to the FAQ document for answers to common questions and resolutions for common errors.
OpenAI gym example code
We provide a demo gym wrapper of MINOS in gym/demo.py. Install by running pip3 install -e . in the gym directory. Run through python3 demo.py. Various configuration options are available and documented in the --help information. For example, you can run the room goal task in small Matterport3D environments using:
python3 demo.py --env_config roomgoal_mp3d_s
Or run the object goal (door target) task in medium furnished SUNCG environments using:
We provide a collection of scripts that are useful for setting up experiments, benchmarking, and visualizing agent episodes. The scripts provide --help documentation.
Presampling episodes for reproducible testing
minos/tools/generate_episodes.py - Presamples agent episodes (start states and goals) and produces a CSV format file that can be used as a parameter to the states_file task configuration option.
minos/server/check_episode_states.js - Checks presampled agent episodes to verify navigability.
Exporting precomputed resources
minos/server/export_navgrid.js - Exports precomputed navigation maps (will need to be computed and exported for scene sets other than the ones provided in the repo):
Benchmarking scripts to test the performance of the simulator:
minos/server/benchmark.js - Use to benchmark the javascript server component in standalone mode.
minos/tools/benchmark.py - Use to benchmark client-server communication through SocketIO. Allows for specification of sceneIds and episodes per scene to go through, various simulator configurations (sensory inputs to enable, rendering options) and for running with multiple simulators.
News
2017-12-11 MINOS beta release!
Roadmap
We are committed to continuously improving MINOS and supporting the research community. We will post a detailed roadmap and contribution guidelines in the near future.
@article{savva2017minos,
author = {Manolis Savva and Angel X. Chang and Alexey Dosovitskiy and Thomas Funkhouser and Vladlen Koltun},
title = {{MINOS}: Multimodal Indoor Simulator for Navigation in Complex Environments},
journal = {arXiv:1712.03931},
year = {2017}
}
License
MINOS specific code is distributed under the MIT License.
Environment
OS: Ubuntu 16.04 LTS
Python: 3.5.2
node: v8.9.3
only SUNCG data is installed in the $HOME/work directory.
Hi, I am trying to run the code but it gives following messages. Though they are not "ERROR" messages, nothing happens. Could you help me out with this error?
2017-12-27 22:49:10,513 INFO {'stk_git_hash': '03855da', 'sim_id': 'sim00', 'sim_git_hash': '03855da', 'machine': 'mymachine'}
Starting simulator...
2017-12-27 22:49:10,524 INFO sim00:Starting sim server at /home/me/Projects/minos/server/server.js with port 17226
2017-12-27 22:49:11,533 INFO Starting new HTTP connection (1): localhost
2017-12-27 22:49:12,350 INFO sim00:connect
2017-12-27 22:49:12,447 WARNING localhost:17226/socket.io [connection error] recv disconnected ([Errno 104] Connection reset by peer)
2017-12-27 22:49:13,448 WARNING localhost:17226/socket.io [connection error] recv disconnected ([Errno 104] Connection reset by peer)
2017-12-27 22:49:13,448 INFO sim00:disconnect
2017-12-27 22:49:13,449 INFO Resetting dropped connection: localhost
2017-12-27 22:49:13,450 WARNING localhost:17226/socket.io [waiting for connection] HTTPConnectionPool(host='localhost', port=17226): Max retries exceeded with url: /socket.io/?EIO=3&t=1514382553449-0&transport=polling (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fdae3e040f0>: Failed to establish a new connection: [Errno 111] Connection refused',))
2017-12-27 22:49:14,451 INFO Starting new HTTP connection (2): localhost
2017-12-27 22:49:14,451 WARNING localhost:17226/socket.io [waiting for connection] HTTPConnectionPool(host='localhost', port=17226): Max retries exceeded with url: /socket.io/?EIO=3&t=1514382554450-0&transport=polling (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fdae3e04ef0>: Failed to establish a new connection: [Errno 111] Connection refused',))
2017-12-27 22:49:15,453 INFO Starting new HTTP connection (3): localhost
2017-12-27 22:49:15,453 WARNING localhost:17226/socket.io [waiting for connection] HTTPConnectionPool(host='localhost', port=17226): Max retries exceeded with url: /socket.io/?EIO=3&t=1514382555452-0&transport=polling (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fdae3e05080>: Failed to establish a new connection: [Errno 111] Connection refused',))
...
...
Actually, it seems to be a problem while connecting the socket, so I tried to manually run the node server in separate terminal by typing in node server.js -p 17226 inside the server directory. Then the python gives following message and stops to throw warnings. But it still does not pop up any windows or give anything.
2017-12-27 22:57:11,571 INFO Starting new HTTP connection (14): localhost
2017-12-27 22:57:12,089 INFO sim00:reconnect
I found useful to retrieve necessary information form sensors, which I can get from sensors.
For example, to get rgb image observation I do observation['observation']['sensors']['color']['data']
But resolution of output data (arrays) is (128, 128). After trying to change resolution of observations rendering from simulator in sensors.yml as well as via env_config files, I didn't reach any solution.
Could you please tell more about resolution changing (for observations, not for environment rendering via end.render(mode='rgba_array'))?
I want to print the position and angle of agent , just like nvmap command is providing. If I could save them in excel or text form or could display them on terminal continuously.
I am trying to run MINOS demo.py in /gym on headless Linux machine with NVIDIA GPU card.
I have two settings, which one works fine and the other have the exact same issue with Linux Machine without Xserver of @XL2013 in #3 .
The command I run was below
NODE_BASE_URL="somepath" xvfb-run -s "-ac -screen 0 1280x1024x24" python3 demo.py --env_config objectgoal_suncg_mf
It worked perfectly fine when I run the command on the node of headless Linux server I am sshing.
However, when I run the same command on the node of same server with NVIDIA GPU card, I cannot have WebGLRenderer correctly working and the log of simserver.log is attached below, which is equivalent to that of @XL2013.
If anyone has any ideas to get this working, that is very appreciated.
Thanks in advance.
Hi! Following error occurs while running MINOS. I tried reinstalling Python3 but it had no effect, I've installed Anaconda as well.
romi@romi-Z370-AORUS-Gaming-3:~/minosmi/minos$ python3 -m minos.tools.pygame_client --empty_room
pygame 1.9.4
Hello from the pygame community. https://www.pygame.org/contribute.html
2018-11-14 19:44:31,043 INFO {'sim_id': 'sim00', 'machine': 'romi-Z370-AORUS-Gaming-3', 'sim_git_hash': '478f622', 'stk_git_hash': '478f622'}
Starting simulator...
2018-11-14 19:44:31,051 INFO sim00:Starting sim server at /home/romi/minosmi/minos/minos/server/server.js with port 51849
2018-11-14 19:44:32,055 INFO sim00:sim server has exited with rv 1
2018-11-14 19:44:32,062 WARNING localhost:51849/socket.io [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206672057-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce361668>: Failed to establish a new connection: [Errno 111] Connection refused',))
2018-11-14 19:44:33,066 WARNING localhost:51849/socket.io [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206673063-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce3614a8>: Failed to establish a new connection: [Errno 111] Connection refused',))
2018-11-14 19:44:34,070 WARNING localhost:51849/socket.io [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206674067-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce3615f8>: Failed to establish a new connection: [Errno 111] Connection refused',))
2018-11-14 19:44:35,074 WARNING localhost:51849/socket.io [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206675071-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce361e10>: Failed to establish a new connection: [Errno 111] Connection refused',))
2018-11-14 19:44:36,078 WARNING localhost:51849/socket.io [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206676076-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce361cc0>: Failed to establish a new connection: [Errno 111] Connection refused',))
2018-11-14 19:44:37,082 WARNING localhost:51849/socket.io [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206677080-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce361630>: Failed to establish a new connection: [Errno 111] Connection refused',))
2018-11-14 19:44:38,086 WARNING localhost:51849/socket.io [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206678084-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce361668>: Failed to establish a new connection: [Errno 111] Connection refused',))
^CTraceback (most recent call last):
File "/home/romi/anaconda3/lib/python3.6/site-packages/socketIO_client/logs.py", line 29, in _yield_warning_screen
yield elapsed_time
Exception: [engine.io waiting for connection] HTTPConnectionPool(host='localhost', port=51849): Max retries exceeded with url: /socket.io/?EIO=3&transport=polling&t=1542206678084-0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa3ce361668>: Failed to establish a new connection: [Errno 111] Connection refused',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/romi/minosmi/minos/minos/tools/pygame_client.py", line 438, in main
ep_info = sim.start()
File "/home/romi/minosmi/minos/minos/lib/Simulator.py", line 321, in start
started = self.start_child_servers()
File "/home/romi/minosmi/minos/minos/lib/Simulator.py", line 255, in start_child_servers
self._sio = SocketIO(self.params.host, self.params.port)
File "/home/romi/anaconda3/lib/python3.6/site-packages/socketIO_client/__init__.py", line 353, in __init__
resource, hurry_interval_in_seconds, **kw)
File "/home/romi/anaconda3/lib/python3.6/site-packages/socketIO_client/__init__.py", line 54, in __init__
self._transport
File "/home/romi/anaconda3/lib/python3.6/site-packages/socketIO_client/__init__.py", line 62, in _transport
self._engineIO_session = self._get_engineIO_session()
File "/home/romi/anaconda3/lib/python3.6/site-packages/socketIO_client/__init__.py", line 83, in _get_engineIO_session
warning_screen.throw(warning)
File "/home/romi/anaconda3/lib/python3.6/site-packages/socketIO_client/logs.py", line 35, in _yield_warning_screen
time.sleep(1)
KeyboardInterrupt
Error running simulator. Aborting.
2018-11-14 19:44:38,210 INFO sim00:Stopping the simulator
2018-11-14 19:44:38,210 INFO Counter()
2018-11-14 19:44:38,210 INFO sim00:Stopping child servers
2018-11-14 19:44:38,211 INFO sim00:Stopped child servers
2018-11-14 19:44:38,211 INFO sim00:Simulator killed.
When I save action_trace file, there is column of rotation, what does it means? the rotation is in degrees or radians ? Looking forward for the reply !
Hello, as written in the paper I got the field of view for the agent is 90, but what is the angle of view of the agent? Is this also 90 degrees, and where exactly on the code are they specified (could you probably point me to the script or text file)? Thanks for your response in advance.
When I replaced the add_sim_args_basic with add_sim_args, I got the following error
** (demo.py:4496): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-NpYiBpNtPY: Connection refused
/home/hzjiang/.local/lib/python3.4/site-packages/matplotlib/backends/backend_gtk3agg.py:17: UserWarning: The Gtk3Agg backend is known to not work on Python 3.x with pycairo. Try installing cairocffi.
"The Gtk3Agg backend is known to not work on Python 3.x with pycairo. "
val:7 episodes
test:11 episodes
train:35 episodes
Traceback (most recent call last):
File "gym/demo.py", line 46, in
main()
File "gym/demo.py", line 42, in main
run_gym(sim_args)
File "gym/demo.py", line 16, in run_gym
env.configure(sim_args)
File "/data/hzjiang/Code/minos/gym/gym_minos/envs/indoor_env.py", line 25, in configure
self._sim = RoomSimulator(sim_args)
File "/data/hzjiang/Code/minos/lib/RoomSimulator.py", line 50, in init
self.sim = Simulator(params)
File "/data/hzjiang/Code/minos/lib/Simulator.py", line 62, in init
if 'port' not in params.audio or params.audio.port is None:
TypeError: argument of type 'bool' is not iterable
Exception ignored in: <bound method Simulator.del of <lib.Simulator.Simulator object at 0x7f5326375cf8>>
Traceback (most recent call last):
File "/data/hzjiang/Code/minos/lib/Simulator.py", line 164, in del
if not self.killed:
AttributeError: 'Simulator' object has no attribute 'killed'
When I explicitly set params.audio = {} in Simulator's constructor following the default setting of add_sim_args_basic, I was unable to connect to the server.
Hello, I wanted to try minos but after running npm install in the server directory got the next errors:
failed: true,
signal: null,
cmd: 'npm install',
timedOut: false,
exitCode: 1 }
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sstk@0.5.3 bootstrap: lerna bootstrap --hoist
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sstk@0.5.3 bootstrap script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/serhii/.npm/_logs/2018-10-11T21_10_27_100Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sstk@0.5.3 postinstall: npm run bootstrap
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sstk@0.5.3 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/serhii/.npm/_logs/2018-10-11T21_10_28_990Z-debug.log
make: Entering directory '/home/serhii/work/minos/minos/server/node_modules/node-expat/build'
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlparse.o
../deps/libexpat/lib/xmlparse.c: In function ‘gather_time_entropy’:
../deps/libexpat/lib/xmlparse.c:780:7: warning: variable ‘gettimeofday_res’ set but not used [-Wunused-but-set-variable]
int gettimeofday_res;
^
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmltok.o
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlrole.o
AR(target) Release/obj.target/deps/libexpat/libexpat.a
COPY Release/libexpat.a
CXX(target) Release/obj.target/node_expat/node-expat.o
In file included from ../../nan/nan_new.h:189:0,
from ../../nan/nan.h:203,
from ../node-expat.cc:1:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::StringObject::return_t Nan::imp::Factoryv8::StringObject::New(v8::Localv8::String)’:
../../nan/nan_implementation_12_inl.h:337:37: warning: ‘static v8::Localv8::Value v8::StringObject::New(v8::Localv8::String)’ is deprecated: Use Isolate* version [-Wdeprecated-declarations]
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from /home/serhii/.node-gyp/10.12.0/include/node/v8.h:26:0,
from /home/serhii/.node-gyp/10.12.0/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/v8.h:5053:37: note: declared here
static Local New(Local value));
^
/home/serhii/.node-gyp/10.12.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^
In file included from ../node-expat.cc:1:0:
../../nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’:
../../nan/nan.h:840:60: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, func, argc, argv);
^
In file included from ../../nan/nan.h:51:0,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/node.h:176:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/serhii/.node-gyp/10.12.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^
In file included from ../node-expat.cc:1:0:
../../nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’:
../../nan/nan.h:855:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate*, v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, symbol, argc, argv);
^
In file included from ../../nan/nan.h:51:0,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/node.h:169:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/serhii/.node-gyp/10.12.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^
In file included from ../node-expat.cc:1:0:
../../nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, const char, int, v8::Localv8::Value)’:
../../nan/nan.h:870:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, const char*, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, method, argc, argv);
^
In file included from ../../nan/nan.h:51:0,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/node.h:162:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/serhii/.node-gyp/10.12.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^
In file included from ../node-expat.cc:1:0:
../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’:
../../nan/nan.h:916:53: warning: ‘v8::Localv8::String v8::Value::ToString() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
v8::Localv8::String string = from->ToString();
^
In file included from /home/serhii/.node-gyp/10.12.0/include/node/node.h:63:0,
from ../../nan/nan.h:51,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/v8.h:10040:15: note: declared here
Local Value::ToString() const {
^
In file included from ../node-expat.cc:1:0:
../../nan/nan.h:926:74: warning: ‘int v8::String::WriteUtf8(char, int, int*, int) const’ is deprecated: Use Isolate* version [-Wdeprecated-declarations]
length_ = string->WriteUtf8(str_, static_cast(len), 0, flags);
^
In file included from /home/serhii/.node-gyp/10.12.0/include/node/v8.h:26:0,
from /home/serhii/.node-gyp/10.12.0/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/v8.h:2659:21: note: declared here
int WriteUtf8(char* buffer, int length = -1,
^
/home/serhii/.node-gyp/10.12.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^
In file included from ../node-expat.cc:1:0:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::Callback::Call_(v8::Isolate*, v8::Localv8::Object, int, v8::Localv8::Value) const’:
../../nan/nan.h:1484:5: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
));
^
In file included from ../../nan/nan.h:51:0,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/node.h:176:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/serhii/.node-gyp/10.12.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^
../node-expat.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Parser::Parse(Nan::NAN_METHOD_ARGS_TYPE)’:
../node-expat.cc:98:33: warning: ‘v8::Localv8::String v8::Value::ToString() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
str = info[0]->ToString();
^
In file included from /home/serhii/.node-gyp/10.12.0/include/node/node.h:63:0,
from ../../nan/nan.h:51,
from ../node-expat.cc:1:
/home/serhii/.node-gyp/10.12.0/include/node/v8.h:10040:15: note: declared here
Local Value::ToString() const {
^
../node-expat.cc:103:47: warning: ‘v8::Localv8::Object v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
Local