-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Strange behaviour with nested patterns #22
Comments
Brilliant. Thanks. And you're timing is perfect. Sorry, but I have had to
attend to things other than acism in a long while. Really appreciate this.
Um ... wait, did you by any chance see my post about "prune_backlinks"
being an error, with a trivial fix of commenting out the call to
prune_backlinks in acism_create?
I'm still trying to sort out a certificate error that prevented me from
updating github.
…On 3 March 2017 at 03:01, BabeleDunnit ***@***.***> wrote:
Hi Mischa, me again :)
While writing some tests, I found a strange behaviour and I was able to
reproduce it in a very tight way.
I will attach directly the source hereunder, just copy and compile it.
Briefly, there is a #define STRANGE_BEHAVIOUR in the code which controls
the creation of AC with a slightly different set of patterns. While one is
absolutely intuitive, the other seems to act a bit strange IMHO. Also,
there are some comments. Have a look.
Maybe this is related to ticket #20
<#20>?
Thank you again for your excellent work.
Later, Aaron
------------------------------
#include "msutil.h"
#include <assert.h>
#include "acism.h"
static int actual = 0;
static int
on_match(int strnum, int textpos, MEMREF const *pattv)
{
(void)strnum, (void)textpos, (void)pattv;
++actual;
printf("%9d %7d '%.*s'\n", textpos, strnum, (int)pattv[strnum].len, pattv[strnum].ptr);
return 0;
}
int
main(int argc, char **argv)
{
ACISM *psp = NULL;
#define STRANGE_BEHAVIOUR
#ifdef STRANGE_BEHAVIOUR
// this is strange.
// run on string "bananas", will find 1 "ana", 2 "na", 1 "banana" and NO "nana".
// I would expect 1 "banana", 1 "nana", 2 "ana" and 2 "na".
// is this a bug or it's just me which do not know Aho-Corasick well enough?
MEMREF patterns[4] = {
{ "banana", strlen("banana")},
{ "nana", strlen("nana")},
{ "ana", strlen("ana")},
{ "na", strlen("na")},
};
psp = acism_create(patterns, 4);
#else
// this works as expected.
// run on string "bananas", will find 2 "na", 1 "banana" and 1 "nana".
MEMREF patterns[3] = {
{ "banana", strlen("banana")},
{ "nana", strlen("nana")},
{ "na", strlen("na")},
};
psp = acism_create(patterns, 3);
#endif
assert(psp);
acism_dump(psp, PS_STATS, stderr, patterns);
const char* t = "bananas";
MEMREF text = {
t, strlen(t)
};
int state = 0;
while(acism_more(psp, text, (ACISM_ACTION*)on_match, patterns, &state));
acism_destroy(psp);
return 0;
}
------------------------------
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#22>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABjJMT7TutECgLr79tBFWas43o1iRAy6ks5rh_MIgaJpZM4MSIa7>
.
|
prune_backlinks now removed completely, and it ain't coming back. |
Hi Mischa, yes, I did see the "prune_backlinks" stuff and did try it out, but unfortunately does not fix this problem.. :( later, |
Okay. Thanks again, I'll explore your really tidy test case.
…On 6 March 2017 at 00:24, BabeleDunnit ***@***.***> wrote:
Hi Mischa, yes, I did see the "prune_backlinks" stuff and did try it out,
but unfortunately does not fix this problem.. :(
later,
Aaron
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABjJMTgv7qox9FvjEpjpY3hL7B3M6Wemks5ri8KpgaJpZM4MSIa7>
.
|
Okay, thank you so much for that really simple test case. |
HI Mischa, if you are using the command-line git, you could just re-clone the repo using HTTPS instead of SSL, do the fix, commit and and push. Git will ask you just your github login/pwd, no need of SSL certificates at all. If you are instead using some GUI please forget my suggestion :) |
Thank you! And I am a command-line person; gui's slow me down.
…On 17 March 2017 at 01:27, BabeleDunnit ***@***.***> wrote:
HI Mischa,
if you are using the command-line git, you could just re-clone the repo
using HTTPS instead of SSL, do the fix, commit and and push. Git will ask
you just your github login/pwd, no need of SSL certificates at all.
If you are instead using some GUI please forget my suggestion :)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABjJMYkWpjiMZh8t7l9H0RU92gu66Rwfks5rmkP7gaJpZM4MSIa7>
.
|
Meanwhile, the fix amounts to a change in one line of add_backlinks() not
counting the comment:
// Go through the parent (srcp) node's backlink chain,
looking for a useful backlink for the child (dstp).
// If the parent (srcp) has a backlink to (tp), and (tp)
has a child matching the transition sym (srcp -> dstp),
// AND that child has children, then it is a useful
backlink for the child (dstp).
for (tp = srcp->back; tp; tp = tp->back)
if ((bp = find_child(tp, dstp->sym)) /*>>>>>*/&&
bp->child/*<<<<<*/)
break;
On 17 March 2017 at 09:03, Mischa Sandberg <mischa_sandberg@telus.net>
wrote:
… Thank you! And I am a command-line person; gui's slow me down.
On 17 March 2017 at 01:27, BabeleDunnit ***@***.***> wrote:
> HI Mischa,
>
> if you are using the command-line git, you could just re-clone the repo
> using HTTPS instead of SSL, do the fix, commit and and push. Git will ask
> you just your github login/pwd, no need of SSL certificates at all.
>
> If you are instead using some GUI please forget my suggestion :)
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#22 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ABjJMYkWpjiMZh8t7l9H0RU92gu66Rwfks5rmkP7gaJpZM4MSIa7>
> .
>
|
Hi Mischa, Some good and bad news... :) I confirm that the fix hereabove works for the test case, but now something else has broken... and this is really quite strange: with patterns
and string
you are not going to catch the second "/2."... and this is strange because all other tests on "banana" submatching are passing. here comes the code:
|
Ok, I have botched the manual update of github. I just checked your
example, and I get the two expected matches.
Sigh. Sorry. Thanks for your patience.
…On 3 March 2017 at 03:01, BabeleDunnit ***@***.***> wrote:
Hi Mischa, me again :)
While writing some tests, I found a strange behaviour and I was able to
reproduce it in a very tight way.
I will attach directly the source hereunder, just copy and compile it.
Briefly, there is a #define STRANGE_BEHAVIOUR in the code which controls
the creation of AC with a slightly different set of patterns. While one is
absolutely intuitive, the other seems to act a bit strange IMHO. Also,
there are some comments. Have a look.
Maybe this is related to ticket #20
<#20>?
Thank you again for your excellent work.
Later, Aaron
------------------------------
#include "msutil.h"
#include <assert.h>
#include "acism.h"
static int actual = 0;
static int
on_match(int strnum, int textpos, MEMREF const *pattv)
{
(void)strnum, (void)textpos, (void)pattv;
++actual;
printf("%9d %7d '%.*s'\n", textpos, strnum, (int)pattv[strnum].len, pattv[strnum].ptr);
return 0;
}
int
main(int argc, char **argv)
{
ACISM *psp = NULL;
#define STRANGE_BEHAVIOUR
#ifdef STRANGE_BEHAVIOUR
// this is strange.
// run on string "bananas", will find 1 "ana", 2 "na", 1 "banana" and NO "nana".
// I would expect 1 "banana", 1 "nana", 2 "ana" and 2 "na".
// is this a bug or it's just me which do not know Aho-Corasick well enough?
MEMREF patterns[4] = {
{ "banana", strlen("banana")},
{ "nana", strlen("nana")},
{ "ana", strlen("ana")},
{ "na", strlen("na")},
};
psp = acism_create(patterns, 4);
#else
// this works as expected.
// run on string "bananas", will find 2 "na", 1 "banana" and 1 "nana".
MEMREF patterns[3] = {
{ "banana", strlen("banana")},
{ "nana", strlen("nana")},
{ "na", strlen("na")},
};
psp = acism_create(patterns, 3);
#endif
assert(psp);
acism_dump(psp, PS_STATS, stderr, patterns);
const char* t = "bananas";
MEMREF text = {
t, strlen(t)
};
int state = 0;
while(acism_more(psp, text, (ACISM_ACTION*)on_match, patterns, &state));
acism_destroy(psp);
return 0;
}
------------------------------
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#22>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABjJMT7TutECgLr79tBFWas43o1iRAy6ks5rh_MIgaJpZM4MSIa7>
.
|
You mean it works for you? no bugs? With your previous bugfix applied? The one on prune_backlinks() being completely removed? Even more strange. I am using your codebase for this test, and I definitely have the bug. I will try to re-clone and check on a fresh codebase, maybe I have modified something somewhere. ----------EDIT----------- Aha! You did some more small changes, I see now! Gonna apply them and let you know. |
There were two fixes: removing prune_backlinks, and adding "...&&
bp->child" (my last note).
And yes, no bugs, exactly the two matches.
Aha! spotted it. A compiler ought to warn that nhashes is used but not set.
What's missing is:
int nhash = 0;
TNODE* tp = troot + nnodes;
while (--tp > troot) nhash += tp->match && tp->child;
…On 20 March 2017 at 11:45, BabeleDunnit ***@***.***> wrote:
You mean it works for you? no bugs?
With your previous bugfix applied? The one on prune_backlinks() being
completely removed?
Even more strange. I am using your codebase for this test, and I
definitely have the bug. I will try to re-clone and check on a fresh
codebase, maybe I have modified something somewhere.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABjJMXTc8HfD49lnbxZoBnCNBEwsks9Hks5rnsldgaJpZM4MSIa7>
.
|
Sorry. Code updates and corp take-overs don't mix :-P
On 20 March 2017 at 12:30, Mischa Sandberg <mischa_sandberg@telus.net>
wrote:
… There were two fixes: removing prune_backlinks, and adding "...&&
bp->child" (my last note).
And yes, no bugs, exactly the two matches.
Aha! spotted it. A compiler ought to warn that nhashes is used but not
set. What's missing is:
int nhash = 0;
TNODE* tp = troot + nnodes;
while (--tp > troot) nhash += tp->match && tp->child;
On 20 March 2017 at 11:45, BabeleDunnit ***@***.***> wrote:
> You mean it works for you? no bugs?
>
> With your previous bugfix applied? The one on prune_backlinks() being
> completely removed?
>
> Even more strange. I am using your codebase for this test, and I
> definitely have the bug. I will try to re-clone and check on a fresh
> codebase, maybe I have modified something somewhere.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#22 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ABjJMXTc8HfD49lnbxZoBnCNBEwsks9Hks5rnsldgaJpZM4MSIa7>
> .
>
|
Hi Mischa, I did everything from scratch to be sure. re-cloned your repo in a fresh location. Issuing "make" to build the lib, I have a compilation problem: https://github.com/mischasan/aho-corasick/blob/master/acism_create.c#L88 : Which compiler/platform are you using? You should get a compilation error too IMHO... (I am on Ubuntu GCC 5.2.1) I commented /* TNODE* */ at line 88. Issuing "make", it builds. then, again, compiling my "acism_pl_test.c", the last test code I already sent you:
and then
I get strs:2 syms:12 chars:14 trans:23 empty:6 mod:0 hash:0 size:660 so, no match on the second "/2." Could you please try to reproduce in a freshly cloned repo? I suspect there is something strange going on here... Why you do not have the compilation error? Am I compiling OK? Am I missing something in my compilation line? this drives me nuts :) Thanks, |
So sorry. I plan to use (your) https resync method, once I can catch my
breath.
fwiw here's what I have and see:
$ cat babel_t.c
#include "msutil.h"
#include <assert.h>
#include "acism.h"
#include "tap.h"
static int actual = 0;
static int
on_match(int strnum, int textpos, MEMREF const *pattv)
{
++actual;
fprintf(stderr, "match: pos %d str %d '%.*s'\n", textpos, strnum,
(int)pattv[strnum].len, pattv[strnum].ptr);
return 0;
}
static void test(MEMREF* pattv, int npatts, MEMREF inp, int nexpected);
#define STRREF(x) { x, strlen(x) }
int
main(int argc, char **argv)
{
plan_tests(2);
MEMREF banana[] = { STRREF("banana"), STRREF("nana"), STRREF("ana"),
STRREF("na") };
MEMREF bananas = STRREF("bananas");
test(banana, sizeof banana/sizeof*banana, bananas, 6);
MEMREF firefox[] = { STRREF("/2."), STRREF("Firefox/2.0") };
MEMREF ff2 = STRREF("***/2.----Firefox/2.0");
test(firefox, sizeof firefox/sizeof*firefox, ff2, 2);
return exit_status();
}
static void
test(MEMREF* pattv, int npatts, MEMREF inp, int expected)
{
ACISM* psp = acism_create(pattv, npatts);
assert(psp);
acism_dump(psp, PS_STATS, stderr, pattv);
int state = actual = 0;
while(acism_more(psp, inp, (ACISM_ACTION*)on_match, pattv, &state));
acism_destroy(psp);
ok(actual == expected, "%.*s matched %d, state %d\n", (int)inp.len,
inp.ptr, actual, state);
}
$ ./babel_t
1..2
strs:4 syms:4 chars:15 trans:22 empty:1 mod:2 hash:2 size:672
match: pos 4 str 2 'ana'
match: pos 4 str 3 'na'
match: pos 6 str 0 'banana'
match: pos 6 str 1 'nana'
match: pos 6 str 2 'ana'
match: pos 6 str 3 'na'
ok 1 - bananas matched 6, state 0
strs:2 syms:12 chars:14 trans:23 empty:6 mod:0 hash:0 size:660
match: pos 6 str 0 '/2.'
match: pos 21 str 1 'Firefox/2.0'
ok 2 - ***/2.----Firefox/2.0 matched 2, state 0
…On 21 March 2017 at 07:57, BabeleDunnit ***@***.***> wrote:
Hi Mischa,
I did everything from scratch to be sure.
re-cloned your repo in a fresh location. Issuing "make" to build the lib,
I have a compilation problem:
https://github.com/mischasan/aho-corasick/blob/master/acism_create.c#L88 :
tp is already defined at line 74.
Which compiler/platform are you using? You should get a compilation error
too IMHO... (I am on Ubuntu GCC 5.2.1)
I commented /* TNODE* */ at line 88. Issuing "make", it builds.
then, again, compiling my "acism_pl_test.c", the last test code I already
sent you:
gcc -o plbug acism_pl_test.c msutil.c tap.c -L. -lacism
and then
./plbug
I get
strs:2 syms:12 chars:14 trans:23 empty:6 mod:0 hash:0 size:660
6 0 '/2.'
21 1 'Firefox/2.0'
so, no match on the second "/2."
Could you please try to reproduce in a freshly cloned repo? I suspect
there is something strange going on here... Why you do not have the
compilation error? Am I compiling OK? Am I missing something in my
compilation line?
this drives me nuts :)
Thanks,
Aaron
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABjJMeIYKUhB1Z-gLU3rXqLLMMqKLykJks5rn-VXgaJpZM4MSIa7>
.
|
URK and I just see the bug in example 2. So much for typing and sleeping at
the same time.
On 21 March 2017 at 09:52, Mischa Sandberg <mischa_sandberg@telus.net>
wrote:
…
So sorry. I plan to use (your) https resync method, once I can catch my
breath.
fwiw here's what I have and see:
$ cat babel_t.c
#include "msutil.h"
#include <assert.h>
#include "acism.h"
#include "tap.h"
static int actual = 0;
static int
on_match(int strnum, int textpos, MEMREF const *pattv)
{
++actual;
fprintf(stderr, "match: pos %d str %d '%.*s'\n", textpos, strnum,
(int)pattv[strnum].len, pattv[strnum].ptr);
return 0;
}
static void test(MEMREF* pattv, int npatts, MEMREF inp, int nexpected);
#define STRREF(x) { x, strlen(x) }
int
main(int argc, char **argv)
{
plan_tests(2);
MEMREF banana[] = { STRREF("banana"), STRREF("nana"), STRREF("ana"),
STRREF("na") };
MEMREF bananas = STRREF("bananas");
test(banana, sizeof banana/sizeof*banana, bananas, 6);
MEMREF firefox[] = { STRREF("/2."), STRREF("Firefox/2.0") };
MEMREF ff2 = STRREF("***/2.----Firefox/2.0");
test(firefox, sizeof firefox/sizeof*firefox, ff2, 2);
return exit_status();
}
static void
test(MEMREF* pattv, int npatts, MEMREF inp, int expected)
{
ACISM* psp = acism_create(pattv, npatts);
assert(psp);
acism_dump(psp, PS_STATS, stderr, pattv);
int state = actual = 0;
while(acism_more(psp, inp, (ACISM_ACTION*)on_match, pattv, &state));
acism_destroy(psp);
ok(actual == expected, "%.*s matched %d, state %d\n", (int)inp.len,
inp.ptr, actual, state);
}
$ ./babel_t
1..2
strs:4 syms:4 chars:15 trans:22 empty:1 mod:2 hash:2 size:672
match: pos 4 str 2 'ana'
match: pos 4 str 3 'na'
match: pos 6 str 0 'banana'
match: pos 6 str 1 'nana'
match: pos 6 str 2 'ana'
match: pos 6 str 3 'na'
ok 1 - bananas matched 6, state 0
strs:2 syms:12 chars:14 trans:23 empty:6 mod:0 hash:0 size:660
match: pos 6 str 0 '/2.'
match: pos 21 str 1 'Firefox/2.0'
ok 2 - ***/2.----Firefox/2.0 matched 2, state 0
On 21 March 2017 at 07:57, BabeleDunnit ***@***.***> wrote:
> Hi Mischa,
>
> I did everything from scratch to be sure.
>
> re-cloned your repo in a fresh location. Issuing "make" to build the lib,
> I have a compilation problem:
>
> https://github.com/mischasan/aho-corasick/blob/master/acism_create.c#L88
> :
> tp is already defined at line 74.
>
> Which compiler/platform are you using? You should get a compilation error
> too IMHO... (I am on Ubuntu GCC 5.2.1)
>
> I commented /* TNODE* */ at line 88. Issuing "make", it builds.
>
> then, again, compiling my "acism_pl_test.c", the last test code I already
> sent you:
>
> gcc -o plbug acism_pl_test.c msutil.c tap.c -L. -lacism
>
> and then
>
> ./plbug
>
> I get
>
> strs:2 syms:12 chars:14 trans:23 empty:6 mod:0 hash:0 size:660
> 6 0 '/2.'
> 21 1 'Firefox/2.0'
>
> so, no match on the second "/2."
>
> Could you please try to reproduce in a freshly cloned repo? I suspect
> there is something strange going on here... Why you do not have the
> compilation error? Am I compiling OK? Am I missing something in my
> compilation line?
>
> this drives me nuts :)
>
> Thanks,
> Aaron
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#22 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ABjJMeIYKUhB1Z-gLU3rXqLLMMqKLykJks5rn-VXgaJpZM4MSIa7>
> .
>
|
Oh carp, I figured it where the bug is. I may have time tomorrow night to
change it. Thanks as always for your patience and test cases.
On 21 March 2017 at 12:44, Mischa Sandberg <mischa_sandberg@telus.net>
wrote:
… URK and I just see the bug in example 2. So much for typing and sleeping
at the same time.
On 21 March 2017 at 09:52, Mischa Sandberg ***@***.***>
wrote:
>
> So sorry. I plan to use (your) https resync method, once I can catch my
> breath.
>
> fwiw here's what I have and see:
>
> $ cat babel_t.c
> #include "msutil.h"
> #include <assert.h>
> #include "acism.h"
> #include "tap.h"
>
> static int actual = 0;
>
> static int
> on_match(int strnum, int textpos, MEMREF const *pattv)
> {
> ++actual;
> fprintf(stderr, "match: pos %d str %d '%.*s'\n", textpos, strnum,
> (int)pattv[strnum].len, pattv[strnum].ptr);
> return 0;
> }
>
> static void test(MEMREF* pattv, int npatts, MEMREF inp, int nexpected);
>
> #define STRREF(x) { x, strlen(x) }
>
> int
> main(int argc, char **argv)
> {
> plan_tests(2);
>
> MEMREF banana[] = { STRREF("banana"), STRREF("nana"), STRREF("ana"),
> STRREF("na") };
> MEMREF bananas = STRREF("bananas");
> test(banana, sizeof banana/sizeof*banana, bananas, 6);
>
> MEMREF firefox[] = { STRREF("/2."), STRREF("Firefox/2.0") };
> MEMREF ff2 = STRREF("***/2.----Firefox/2.0");
> test(firefox, sizeof firefox/sizeof*firefox, ff2, 2);
>
> return exit_status();
> }
>
> static void
> test(MEMREF* pattv, int npatts, MEMREF inp, int expected)
> {
> ACISM* psp = acism_create(pattv, npatts);
> assert(psp);
> acism_dump(psp, PS_STATS, stderr, pattv);
>
> int state = actual = 0;
> while(acism_more(psp, inp, (ACISM_ACTION*)on_match, pattv, &state));
>
> acism_destroy(psp);
> ok(actual == expected, "%.*s matched %d, state %d\n", (int)inp.len,
> inp.ptr, actual, state);
> }
>
> $ ./babel_t
> 1..2
> strs:4 syms:4 chars:15 trans:22 empty:1 mod:2 hash:2 size:672
> match: pos 4 str 2 'ana'
> match: pos 4 str 3 'na'
> match: pos 6 str 0 'banana'
> match: pos 6 str 1 'nana'
> match: pos 6 str 2 'ana'
> match: pos 6 str 3 'na'
> ok 1 - bananas matched 6, state 0
>
> strs:2 syms:12 chars:14 trans:23 empty:6 mod:0 hash:0 size:660
> match: pos 6 str 0 '/2.'
> match: pos 21 str 1 'Firefox/2.0'
> ok 2 - ***/2.----Firefox/2.0 matched 2, state 0
>
>
> On 21 March 2017 at 07:57, BabeleDunnit ***@***.***> wrote:
>
>> Hi Mischa,
>>
>> I did everything from scratch to be sure.
>>
>> re-cloned your repo in a fresh location. Issuing "make" to build the
>> lib, I have a compilation problem:
>>
>> https://github.com/mischasan/aho-corasick/blob/master/acism_create.c#L88
>> :
>> tp is already defined at line 74.
>>
>> Which compiler/platform are you using? You should get a compilation
>> error too IMHO... (I am on Ubuntu GCC 5.2.1)
>>
>> I commented /* TNODE* */ at line 88. Issuing "make", it builds.
>>
>> then, again, compiling my "acism_pl_test.c", the last test code I
>> already sent you:
>>
>> gcc -o plbug acism_pl_test.c msutil.c tap.c -L. -lacism
>>
>> and then
>>
>> ./plbug
>>
>> I get
>>
>> strs:2 syms:12 chars:14 trans:23 empty:6 mod:0 hash:0 size:660
>> 6 0 '/2.'
>> 21 1 'Firefox/2.0'
>>
>> so, no match on the second "/2."
>>
>> Could you please try to reproduce in a freshly cloned repo? I suspect
>> there is something strange going on here... Why you do not have the
>> compilation error? Am I compiling OK? Am I missing something in my
>> compilation line?
>>
>> this drives me nuts :)
>>
>> Thanks,
>> Aaron
>>
>> —
>> You are receiving this because you commented.
>> Reply to this email directly, view it on GitHub
>> <#22 (comment)>,
>> or mute the thread
>> <https://github.com/notifications/unsubscribe-auth/ABjJMeIYKUhB1Z-gLU3rXqLLMMqKLykJks5rn-VXgaJpZM4MSIa7>
>> .
>>
>
>
|
Hi Mischa, I forked and will try to fix it... could you please point me in the right direction? small recap:
Gimme some hint (if possible at all... I know I will need to dvelve in your code and this is not going to be an easy walk...) :) thanks again and later, |
Thanks for your perseverance. I'm reading the source now (today's a holiday
in Canada). Will let you know. Meanwhile, still trying to re-establish
github access (other than the web editor).
…On 3 July 2017 at 00:57, BabeleDunnit ***@***.***> wrote:
Hi Mischa, I forked and will try to fix it... could you please point me in
the right direction?
small recap:
1. I did found the "banana bug"
2. you removed prune_backlinks() and "...&& bp->child" in
add_backlinks(), which fixed the "banana" bug
3. but unfortunately this change introduced another bug which is even
worse, which is the "firefox" bug above.
Gimme some hint (if possible at all... I know I will need to dvelve in
your code and this is not going to be an easy walk...) :)
thanks again and later,
Aaron
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABjJMZiueHAt992nRD-9ntlT7QI3wcUcks5sKJ7OgaJpZM4MSIa7>
.
--
Engineers think equations approximate reality.
Physicists think reality approximates the equations.
Mathematicians never make the connection.
|
good. thank you. BTW, I spotted a quite nasty bug, but I am going to open a new issue on that... klingon coders never sleep :) |
The fix is in for the nonmatching suffix error. Apologies for the time it took. |
Hi Mischa, me again :)
While writing some tests, I found a strange behaviour and I was able to reproduce it in a very tight way.
I will attach directly the source hereunder, just copy and compile it.
Briefly, there is a "#define STRANGE_BEHAVIOUR" in the code which controls the creation of AC with a slightly different set of patterns. While one works as expected, the other seems to act a bit strange IMHO. Also, there are some comments. It seems that the sub-matching "ana" pattern breaks something somewhere. Have a look.
Just comment "#define STRANGE_BEHAVIOUR" to get an AC behaving as expected.
Maybe this is related to ticket #20?
Thank you again for your excellent work.
Later, Aaron
The text was updated successfully, but these errors were encountered: