[Erlang]如何添加自己的BIF

来源:互联网 发布:ubuntu kernel 编辑:程序博客网 时间:2024/06/07 18:49

步骤

1. 运行configure

      2. 将你的bifs添加至erts/emulator/beam/bif.tab

bif re:grep/2 bif re:compile/1

3. 创建一个C代码文件

erts/emulator/beam/erl_bif_re.c

4.将你的C代码文件添加至erts/emulator/<arch>/Makefile里

RUN_OBJS = $(OBJDIR)/erl_bif_re.o \

5. implement your bifs by stealing bits from existing erl_bif_*.c files

参考其余的erl_bif_*.c文件,加入下面这段代码

?
1
2
3
4
5
BIF_RETTYPE re_grep_2(BIF_ALIST_2){
  Eterm result;
  result = magic_function();
  BIF_RET(result);
}

6. 运行make; make install



重点回顾:

步骤0-3只需执行一次,如果你将下面的bif
?
1
bif re:grep/2

添加至bif.tab时,erl_bif_re.c文件要实现下面这个函数

?
1
BIF_RETTYPE re_grep_2(BIF_ALIST_2);
0 0