Closed Avimitin closed 7 months ago
First of all, thanks for your report. Could you attach the configure.log file so we will see which regexp backend is used. Could you also provide us with the output of the "make test" command. Thank you in advance for your help.
Here is the configure.log
file. It is using pcre2
as regexp backend
regexp................................ pcre2
And here is the full log of the make test
command: bigloo-4.4c_4-4-riscv64-check.log
Hi Avimitin,
Thanks for the log file. I have no idea of what could be going wrong. I can only think of two things:
wget http://www-sop.inria.fr/indes/fp/Bigloo/download/bigloo-unstable.tar.gz
./configure --custompcre2=yes && make && sudo make install
make test
Conducting this experiment will be extremelly valuable. If this fails, then we will have investigate deeper, which means debugging the pcre2 binding.
The pcre2 binding is relatively easy to debug (located in
runtime/Clib/cpcre2.h
) but unfortunately I don't have access to any
RiscV machine. Does anyone know if there are publicly available RiscV
platforms that I could use for testing? Thanks in advance.
Thanks for your guidance.
Does anyone know if there are publicly available RiscV platforms that I could use for testing?
You can follow this article to create a RISC-V QEMU user https://github.com/felixonmars/archriscv-packages/wiki/Setup-Arch-Linux-RISC-V-Development-Environment
After adding flag --custompcre2=yes
with the unstable source code, the test pass successfully. I am now trying to add this flag to the 4.4c version and test again.
Does this related to JIT? After I disabled the JIT feature (it is not available on RISC-V), the pregexp test fail again.
I tried to link bigloo against a pcre2 library without JIT feature enabled, the pregexp test is also fail. This error is reproducible on x86_64 platform. So now I can confirm that the root cause of the pregexp
test error is related to the pcre2 JIT feature.
JIT support for pcre2 is now available for RISC-V platform. This test is all pass now. But I don't know if this is a bug or just because bigloo functionality relies on JIT feature of pcre2.
I am trying to build bigloo on Arch Linux RISC-V. The build process is successfully finished, but when I ran
make test
, thepregexp
test fail. I am not familiar with bigloo tests so I came here to ask for help.Full failure output
```text pregexp.scm: 3.pregexp((pregexp-match-positions needle hay needle stack)) fail: provided [#f], wanted [((4 . 10))] 4.pregexp((pregexp-match-positions needle his hay needle stack -- my hay needle stack -- her hay needle stack 24 43)) fail: provided [#f], wanted [((31 . 37))] 6.pregexp((pregexp-match needle hay needle stack)) fail: provided [#f], wanted [("needle")] 7.pregexp((pregexp-replace te liberte ty)) fail: provided ["liberte"], wanted ["liberty"] 8.pregexp((pregexp-replace* te liberte egalite fraternite ty)) fail: provided ["liberte egalite fraternite"], wanted ["liberty egality fratyrnity"] 10.pregexp((pregexp-match-positions laugh$ laugh laugh laugh laugh)) fail: provided [#f], wanted [((18 . 23))] 11.pregexp((pregexp-match-positions yack\b yackety yack)) fail: provided [#f], wanted [((8 . 12))] 12.pregexp((pregexp-match-positions an\B an analysis)) fail: provided [#f], wanted [((3 . 5))] 13.pregexp((pregexp-match p.t pet)) fail: provided [#f], wanted [("pet")] 14.pregexp((pregexp-match \d\d 0 dear, 1 have to read catch 22 before 9)) fail: provided [#f], wanted [("22")] 15.pregexp((pregexp-match [[:alpha:]_] --x--)) fail: provided [#f], wanted [("x")] 16.pregexp((pregexp-match [[:alpha:]_] --_--)) fail: provided [#f], wanted [("_")] 18.pregexp((pregexp-match [[:alpha:]] --a--)) fail: provided [#f], wanted [("a")] 20.pregexp((pregexp-match-positions c[ad]*r cadaddadddr)) fail: provided [#f], wanted [((0 . 11))] 21.pregexp((pregexp-match-positions c[ad]*r cr)) fail: provided [#f], wanted [((0 . 2))] 22.pregexp((pregexp-match-positions c[ad]+r cadaddadddr)) fail: provided [#f], wanted [((0 . 11))] 25.pregexp((pregexp-match-positions c[ad]?r cr)) fail: provided [#f], wanted [((0 . 2))] 26.pregexp((pregexp-match-positions c[ad]?r car)) fail: provided [#f], wanted [((0 . 3))] 27.pregexp((pregexp-match [aeiou]{3} vacuous)) fail: provided [#f], wanted [("uou")] 30.pregexp((pregexp-match [aeiou]{2,3} zeugma)) fail: provided [#f], wanted [("eu")] 31.pregexp((pregexp-match <.*>