함수형 언어/Erlang

[펌] Erlang BIF 만들기

manywaypark 2013. 11. 9. 22:33

steps

1. run configure
2. add your bifs to erts/emulator/beam/bif.tab

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

3. create a C file

erts/emulator/beam/erl_bif_re.c

4. add your C file to erts/emulator/<arch>/Makefile

RUN_OBJS = $(OBJDIR)/erl_bif_re.o \

5. implement your bifs by stealing bits from existing erl_bif_*.c files
1
2
3
4
5
BIF_RETTYPE re_grep_2(BIF_ALIST_2){
  Eterm result;
  result = magic_function();
  BIF_RET(result);
}
6. run make; make install

notes

  • steps 0-3 need only be done once.
  • note that if you add
1
bif re:grep/2

to bif.tab there should be a erl_bif_re.c that implements

1
BIF_RETTYPE re_grep_2(BIF_ALIST_2);


from: https://erlangcentral.org/wiki/index.php/Adding_my_own_BIF


happy hackin'