如何在 Ubuntu Karmic 上安装 LFE?

2024-06-19

Erlang 已经安装:

$dpkg -l|grep erlang
ii  erlang                          1:13.b.3-dfsg-2ubuntu2            Concurrent, real-time, distributed function
ii  erlang-appmon                   1:13.b.3-dfsg-2ubuntu2            Erlang/OTP application monitor
ii  erlang-asn1                     1:13.b.3-dfsg-2ubuntu2            Erlang/OTP modules for ASN.1 support
ii  erlang-base                     1:13.b.3-dfsg-2ubuntu2            Erlang/OTP virtual machine and base applica
ii  erlang-common-test              1:13.b.3-dfsg-2ubuntu2            Erlang/OTP application for automated testin
ii  erlang-debugger                 1:13.b.3-dfsg-2ubuntu2            Erlang/OTP application for debugging and te
ii  erlang-dev                      1:13.b.3-dfsg-2ubuntu2            Erlang/OTP development libraries and header
[... many more]

Erlang 似乎可以工作:

$ erl
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> 

我从 github 下载了 lfe 并签出了 0.5.2:

git clone http://github.com/rvirding/lfe.git
cd lfe
git checkout -b local0.5.2 e207eb2cad

$ configure
configure: command not found

$ make
mkdir -p ebin
erlc -I include -o ebin -W0 -Ddebug +debug_info src/*.erl
#erl -I -pa ebin -noshell -eval -noshell -run edoc file src/leex.erl -run init stop
#erl -I -pa ebin -noshell -eval -noshell -run edoc_run application "'Leex'" '"."' '[no_packages]'
#mv src/*.html doc/

一定是我错过了一些愚蠢的事情:o

$ sudo make install
make: *** No rule to make target `install'.  Stop.

$ erl -noshell -noinput -s lfe_boot start
{"init terminating in do_boot",{undef,[{lfe_boot,start,[]},{init,start_it,1},{init,start_em,1}]}}

Crash dump was written to: erl_crash.dump
init terminating in do_boot ()

有没有一个示例如何创建 hello world 源文件并编译和运行它?


不,你没有错过任何东西。 LIFE 中的 Makefile 是“不够完美”应该被忽略,它将在下一个版本中得到改进。为了补偿所有需要的文件已经编译并且 .beam 文件位于ebin目录。由于它不是 OTP 的一部分,我认为它不应该安装在那里。

处理这个问题最简单的方法是创建一个私有的 erlang 库目录并将环境变量 ERL_LIBS 指向它。然后将整个 LFE 目录拖到那里。当erlang启动时,代码服务器会自动添加lfe/ebin目录到路径中,那里的 .beam 文件将被自动找到并加载。这适用于任何包含 ebin 目录的包。这也适用于 Windows。所以:

  1. 创建一个 libs 目录,例如~/erlang/lib
  2. 设置环境变量ERL_LIBS,export ERL_LIBS=~/erlang/lib
  3. 将整个 LFE 目录放在那里

当你启动 erlang 时你会看到/Users/rv/erlang/lib/lfe/ebin(或任何你有它的地方)在代码路径中(code:get_path())。然后您还可以直接启动 LFE shell

erl -noshell -noinput -s lfe_boot start

将会有一个lfe and an lfe.bat这也包括在未来。

与 erlang 一样,任何文本编辑器都可以编辑 LFE。对于 emacs,有一个 LFE 模式,它仍然相当基本但有效。您还不能在窗口中运行 LFE。很快。包含此内容的最佳方法是将以下内容放入您的 .emacs 文件中:

;; LFE mode.
(setq load-path (cons "/Users/rv/erlang/lib/lfe/emacs" load-path))
(require 'lfe-start)

有一些示例文件lfe/examples,一切都应该有效。在lfe/test/visual我有一堆测试文件,它们已作为示例文件包含在内。要从普通的 erlang shell 编译 LFE 文件,请执行以下操作

lfe_comp:file("foo").
l(foo).                 %No autloload here, do this to ensure loading

而在 LFE shell 中执行以下操作:

(c '"foo")              ;This will autoload

里面有一堆文档lfe/docs这是相当准确的,但是user_guide.txt需要延长。还有一个针对 LFE 的 Google 群组:

http://groups.google.se/group/lisp-flavoured-erlang

其中包含一些有趣的讨论,人们在 github LFE wiki 中写了很多文章。

我想就是这样。如果/当您有更多问题时请联系我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu Karmic 上安装 LFE? 的相关文章

  • 为什么 SBCL eval 函数会丢失它运行的宏?

    print x 打印出我想要评估的内容 但是 eval x 失败了 但如果我运行 x 它就可以了 我缺少什么 请告诉我为什么这不起作用 或者我是否在做一些愚蠢的事情 我正在尝试打印动态大小的表并设置 lambda 变量以最终计算表中每个单元
  • SBCL初始化文件

    我想知道应该在哪里保存 sbclrc 文件 我尝试将其保存在我的 sbcl 文件夹中 但它似乎不起作用 我使用的是 Windows XP 和 Emacs 版本 23 我正在尝试设置 asdf install 这就是为什么我要修改初始化文件
  • Erlang 中的非终止函数类型

    我正在学习 Erlang 并尝试使用 Dialyzer 在可能的情况下获得最大的类型安全性 有一点不太明白 什么是类型非终止的函数以及如何表示它 spec 有人能解释一下吗 永远循环且永不终止的函数具有返回类型no return 该返回类型
  • 如何说服 Lisp SBCL 进行内联 Fixnum 算术?

    我在其他 SO 答案中找到了一些技术 但显然我无法说服 SBCL 进行内联修复数算术 declaim optimize speed 2 safety 1 declaim ftype function fixnum fixnum double
  • 为什么我们在 Lisp 中需要 funcall?

    为什么我们必须使用funcall在 Common Lisp 中调用高阶函数 例如 为什么我们必须使用 defun foo test func args funcall test func args 而不是更简单的 defun bar tes
  • 将数字转换为英文字母列表

    我有下面的函数 它将数字输入转换为这些数字的部分翻译的单词输出 使用乘积和商 它将数字的单词表示相加 同时将数字分组 例如 number name 87969087 gt 87 million 969 thousand 87 number
  • Lisp:使用语法糖访问递归哈希

    我正在尝试构建一个函数 或宏 来简化哈希表深处数据的获取和设置 也就是说 哈希中的哈希 哈希中的哈希等 我不认为我可以用宏来做到这一点 而且我不知道如何用 eval 来做到这一点 我希望能够执行以下操作 gethashdeep HEROES
  • 为什么 epmd 进程不退出?

    在我退出 erlang shell 后 epmd 进程仍然存在 这是一个错误还是一个功能 这是很正常的 EPMD 是一个主机守护进程 当人们打算使用分布式节点时 就需要它的存在 当仅在同一台机器上使用多个节点时 它也很有用
  • Lisp 中的十进制到二进制 - 制作非嵌套列表

    当达到我的递归情况时 我使用list将未来结果附加到当前结果 但由于递归 我最终得到一个嵌套列表 当我有一个导致递归超过五次的数字时 这会导致错误 任何想法如何我可以在一个简单的非嵌套列表中获得结果 例如 CL 用户 100 8 gt BI
  • 关于onlisp中的广义变量

    我不确定这里发生了什么 文中的宏观示例 基本上不知道如何使用get setf 方法 一个内置宏 也许是函数 具体来说 如果某些返回值是这样的情况呢 get setf 方法为零 例如 get setf 方法 x NIL NIL NEW 306
  • Erlang 中的函数链

    最好创建像 Active Record 或 Hibernate 这样的 ORM 它应该像这样处理链式查询 User User new for login stackoverflow admin for password 1984 load
  • 在 Erlang 中是否有一种惯用的方法来对函数参数进行排序?

    似乎列表模块中的不一致 例如 split 将数字作为第一个参数 将列表作为第二个参数 而 sublists 将列表作为第一个参数 将 len 作为第二个参数 好的 讲一下我记得的一些历史以及我的风格背后的一些原则 正如克里斯蒂安所说 图书馆
  • Common Lisp 中的原子和 Clojure 中的原子有什么区别?

    下列page http clojure org atoms讨论原子在 Clojure 中的工作原理 它并没有详细说明 Clojure 和其他 lisp 方言中原子之间的差异 Common Lisp 中的原子和 Clojure 中的原子之间的
  • WhatsApp 如何实现每台服务器 200 万个连接?

    在 Ubuntu 上 可以打开的最大套接字数似乎受以下控制 cat proc sys net ipv4 tcp max orphans 262144 根据 Rick Reed 来自 WhatsApp 的一次演示 这些人使用 FreeBSD
  • 调试此 LISP 病毒正在执行的操作

    我的公司受到 AutoCAD 病毒的攻击 该病毒正在删除并替换我们的acaddoc lsp与下面的例程 我是一名架构师 不太确定重复的 查找 和 删除 是做什么的 问题 这是用什么替换文件 当前正在搜索acadapq 谁为 AutoCAD
  • 在 Common Test 测试运行期间,Lager 调用失败

    我决定在我的 Erlang 项目中设置 lager 我正在使用 erlang mk 所以我添加了 ERLC OPTS parse transform lager transform 到我的 Makefile 我可以跑make all并编译模
  • 我应该在 Erlang 中使用 try catch 还是应该传回错误标记?

    我正在用 Erlang 进行编码 但我有点不确定如何处理错误 尤其是在看到 Erlang 总是返回的丑陋错误之后 我应该在 Erlang 中使用 try catch 还是应该传回错误标记 在顺序 Erlang 中执行异常处理的基本方法有以下
  • 保存 Lisp 状态

    我是 lisp 的初学者 有一个问题 当我直接在 REPL 中编写一些代码 没有任何 lisp 文件 时 如何保存解释器的工作 状态以便下次恢复并继续工作 我用的是ECL 谢谢 抱歉我蹩脚的英语 来自电化学发光手册 http ecls so
  • LISP - 破坏性和非破坏性构造

    正确的定义是什么破坏性的 and 非破坏性的在 LISP 或一般情况下 中构造 我试图寻找真正的含义 但我只发现了这些术语的很多用法 而没有真正解释它们 据我了解 通过破坏性的函数是指一个函数 它改变构造 或变量 的含义 所以当我将一个列表
  • Racket:识别尾递归?

    我在球拍中编写了两个不同的函数来确定数字列表是否升序 define ascending list if lt length list 1 t and lt car list car cdr list ascending cdr list d

随机推荐

  • Spark中如何获取map任务的ID?

    Spark中有没有办法获取map任务的ID 例如 如果每个映射任务都调用用户定义的函数 我可以从该用户定义的函数中获取该映射任务的 ID 吗 我不确定您所说的地图任务 ID 是什么意思 但您可以使用以下方式访问任务信息TaskContext
  • ios 使用 HTTP POST 上传图像和文本

    谢谢阅读 我是 iOS 新手 我正在尝试使用上传图像和文本multi part form encoding在 iOS 中 The curl等价的是这样的 curl F param1 value1 F email protected cdn
  • Next.js TypeScript 错误:您没有安装所需的软件包[重复]

    这个问题在这里已经有答案了 我目前正在他们方便的 typescript starter 的帮助下构建一个基本的 nextjs 网站 使用开发时一切都运行顺利yarn dev直到大约 20 分钟前 每当我尝试运行时 我都会随机收到一条错误消息
  • 我需要从 64 位 exe 访问 32 位 dll

    我知道我阅读了有关代理进程的所有内容 并且我能够创建代理 COM 但它要么全部在 32 位中工作 要么全部在 64 位中工作 正确的结构是什么 1 32 dll 我尝试了以上两种方法 但没有成功调用32 dll 我不太了解您所指的代理 CO
  • ASP.NET MVC 多线程

    我想在我的 asp net mvc 应用程序中实现这样的逻辑 user clicks a button gt server executes some time consuming logic in 15 threads i get dat
  • Xcode 注释自动完成(appledoc 风格)

    我发现记录界面特别痛苦 因为我需要自己输入所有内容 所以我想我一定不是唯一一个这样的人 并开始寻找一种方法来减轻我的痛苦 但没有找到多少 我的问题是 有没有快捷方式或方法可以让 Xcode 自动完成我的评论 例如 我非常希望输入 tab 它
  • 使用 401 发送消息:Asp.net Web-api

    我在 ASP NET Web API 中 在登录方法中 我根据数据库检查用户 密码 如果它们不匹配 我将返回 401 状态代码以及invalid user or password method like var content new St
  • 如果字符串或整数的 getHashCode() 不能保证唯一,为什么要使用它?

    正如我在标题中所写 如果在应用程序中使用 getHashCode 不安全 为什么要使用它 对于字符串和整数 我想用它来交叉方法并排除 Linq 模型中的方法 或创建我自己的 IEqualityCompare 类 这感觉像是一个机会 如果它不
  • NetBeans IDE maven项目无法解决依赖关系

    使用 eclipse 多年后 我正在将自己移植到 NetBeans IDE 我正在打开现有的 Maven 项目 一切似乎都正常 但是当我尝试构建该项目时 它会抛出错误 提示 无法解析项目的依赖项 尽管 JAR 文件存在于我的 m2 目录中
  • 为什么 Android WebView 拒绝用户输入?

    我正在开发一个 Android 应用程序 它使用 WebView 来显示 Facebook 的登录页面 该页面加载精美 我可以选择用户名 密码文本框 但在其中输入内容将不起作用 也就是说 它们肯定有输入焦点 它们有橙色焦点突出显示框和闪烁的
  • 在asp net mvc中简单的图像上传

    我正在构建一个简单的学校门户 我一直坚持将图像上传到我的应用程序中 即用户应该将学校图像上传到我的服务器 我的图像目录为 Content Images 所有上传图像都应该上传到这个目录 我有以下代码 input type file id S
  • 关于 inflater.inflate Android 文档的困惑

    我正在研究此链接中的片段 http developer android com guide components fragments html http developer android com guide components frag
  • Sencha Cmd 5 + Java 8 错误

    在我的 Windows 构建服务器上安装 Java 8 JDK 后 执行以下命令时遇到以下错误sencha命令 C gt sencha Error Registry key Software JavaSoft Java Runtime En
  • 如何将列表列表写入 CSV 文件 Python?

    我有一个列表 例如 a b c d e f 我想将其写入 CSV 文件 如下所示 a b c d e f 我怎么做 我尝试过使用 csv writerows 但输出文件的每个字符位于不同的单元格中 并且全部位于同一行中 从某种意义上说 第一
  • Cocos2D复杂动画[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 Cocos2D 将我的游戏从 Flash 移植到 iOS 我现在有一个工作版本 我很高兴我
  • 使用ftplib进行多线程上传

    我正在尝试进行多线程上传 但出现错误 我猜想也许不可能在 ftplib 中使用多线程 这是我的代码 class myThread threading Thread def init self threadID src counter ima
  • 在汇编中初始化字符串数组

    我想创建一个数据数组 在初始化数据部分保存 5 个字符串 每个字符串正好有 4 个字符 每个字符串都有一些初始数据 例如第一个字符串的 abcd 第二个字符串的 efgh 等等 无效的 0任何字符串都不需要字符 如何用汇编语言初始化字符串数
  • 从存储访问框架 UI 获取文件夹后保存图像

    我设置了一个首选项 让用户使用存储访问框架为我的应用程序选择保存文件夹 获取uri后onActivityResult我将其保存到SharedPreferences作为字符串并在要保存时保存图像 我正在使用此方法成功保存图像 public v
  • Flutter:如何使用 AnimatedContainer 和扩展列?

    假设我们有 3 个孩子Column Flexible flex 1 child Container color Colors red Flexible flex 3 child Container color Colors yellow F
  • 如何在 Ubuntu Karmic 上安装 LFE?

    Erlang 已经安装 dpkg l grep erlang ii erlang 1 13 b 3 dfsg 2ubuntu2 Concurrent real time distributed function ii erlang appm