[Erlang]怎样加入自己的BIF
步骤
- 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 ); |