+ LOG4CXX_DEBUG(logger, "Loading file \"" << filename << "\"");
+ evaluateWithErrorHandling((SCM (*)(void *))scm_c_primitive_load,
+ (void*)filename.c_str(),
+ stdout, stderr, result);
+ LOG4CXX_DEBUG(logger, "Finished file \"" << filename << "\"");
+ return 0;
+}
+
+namespace guile {
+ void Geiser::run() {
+ scm_init_guile();
+
+ QString socketpath = Settings::get()->getRuntimeDirectory()->canonicalPath()
+ + "/frida." + QString::number(QCoreApplication::applicationPid(), 16) + ".geiser.sock";
+
+ SCM scm_socketpath = scm_from_locale_string(socketpath.toStdString().c_str());
+ SCM socket = scm_call_2(scm_c_public_ref("system repl server", "make-unix-domain-server-socket"),
+ scm_from_locale_keyword("path"), scm_socketpath);
+ scm_call_1(scm_c_public_ref("system repl server", "run-server"), socket);
+ }