[erlang-questions] Binary pattern matching inconsistencies with R12B

Bjorn Gustavsson bjorn@REDACTED
Mon Mar 3 16:42:24 CET 2008


Rory Byrne <rory@REDACTED> writes:

> The following code won't make real sense. The full scanner 
> makes sense but this is only a mutated 10% of that. Sorry
> the code is so unintelligible - but on the bright side 
> it fails more frequently and predictably than the full 
> scanner does.

Again thanks for your bug report.

I have extended our test suites and corrected the bug. The correction will
be included in R12B-2.

Here is the correction:

*** erts/emulator/beam/beam_emu.c@@/OTP_R12B-1  Tue Feb  5 14:37:01 2008
--- erts/emulator/beam/beam_emu.c       Mon Mar  3 16:21:22 2008
***************
*** 3471,3476 ****
--- 3471,3477 ----
                 ms = (ErlBinMatchState *) boxed_val(tmp_arg1);
                 dst = (ErlBinMatchState *) HTOP;
                 *dst = *ms;
+                *HTOP = HEADER_BIN_MATCHSTATE(slots);
                 HTOP += wordsneeded;
                 StoreResult(make_matchstate(dst), Arg(3));
             }


/Bjorn
-- 
Björn Gustavsson, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list