1. Build failed on raspberry.
- Posted by Thomas Sep 11, 2015
- 2439 views
When i try to build any version version of euphoria for raspberry i get this error.
Translating eui.ex to create rm -f /home/pi/build/jsmn/intobj/{*.c,*.o} (cd /home/pi/build/jsmn/intobj;/home/pi/build/6267/bin/eui -i /home/pi/build/euphoria/include /home/pi/build/euphoria/source/euc.ex -nobuild -i /home/pi/build/euphoria/include -gcc \ -arch ARM -c "/home/pi/build/jsmn/eu.cfg" \ -c /home/pi/build/euphoria/source/eu.cfg /home/pi/build/euphoria/source/eui.ex ) /home/pi/build/euphoria/include/std/mathcons.e:20 <0607>:: The number specified here is too small. PI = 3.14159_26535_89793_23846,Euphoria Interpreter v4.1.0 development 32-bit Linux, Using System Memory Revision Date: 2014-10-01 12:14:09, Id: 6257:e9a250c9e114
2. Re: Build failed on raspberry.
- Posted by jimcbrown (admin) Sep 11, 2015
- 2440 views
When i try to build any version version of euphoria for raspberry i get this error.
Translating eui.ex to create rm -f /home/pi/build/jsmn/intobj/{*.c,*.o} (cd /home/pi/build/jsmn/intobj;/home/pi/build/6267/bin/eui -i /home/pi/build/euphoria/include /home/pi/build/euphoria/source/euc.ex -nobuild -i /home/pi/build/euphoria/include -gcc \ -arch ARM -c "/home/pi/build/jsmn/eu.cfg" \ -c /home/pi/build/euphoria/source/eu.cfg /home/pi/build/euphoria/source/eui.ex ) /home/pi/build/euphoria/include/std/mathcons.e:20 <0607>:: The number specified here is too small. PI = 3.14159_26535_89793_23846,Euphoria Interpreter v4.1.0 development 32-bit Linux, Using System Memory Revision Date: 2014-10-01 12:14:09, Id: 6257:e9a250c9e114
I'm stumped as to why this could be happening.
Try editing line 115 of euphoria/include/std/fenv.e from
public function test(object e_p) fexcept_t ee if integer(e_p) then ee = {e_p} else ee = e_p end if if fetestexcept = -1 then return 0 end if integer ce = c_func(fetestexcept, {e_to_c(ee)}) sequence ans = c_to_e(ce) if integer(e_p) then return ce end if return ans end function
to
public function test(object e_p) fexcept_t ee if integer(e_p) then ee = {e_p} else ee = e_p end if if fetestexcept = -1 or 1 then return 0 end if integer ce = c_func(fetestexcept, {e_to_c(ee)}) sequence ans = c_to_e(ce) if integer(e_p) then return ce end if return ans end function
That should at least get your build past this error.
3. Re: Build failed on raspberry.
- Posted by SDPringle Sep 11, 2015
- 2430 views
Perhaps the parsing algorithm when running on the ARM system triggers a number floating point exception. I wrote the code that displays that error message. It must have been a year ago. This didn't happen in my tests with a Pentium IV and the OS was and is 32-bit. The eudouble is the same size on both Intel and ARM but ARM is one quirky critter.
The exceptions detect whether a number register gets an overflow and some kind of analog when a number gets too small. None of these apply to pi of course.
Shawn
4. Re: Build failed on raspberry.
- Posted by SDPringle Sep 11, 2015
- 2418 views
Do the corresponding values of the constants in the ARM headers match the values of the following constants in EUPHORIA?
type enum c_fe by *2 C_FE_INVALID, C_FE_DIVBYZERO = 4, C_FE_OVERFLOW, C_FE_UNDERFLOW, C_FE_INEXACT end type
5. Re: Build failed on raspberry.
- Posted by jimcbrown (admin) Sep 11, 2015
- 2408 views
Perhaps the parsing algorithm when running on the ARM system triggers a number floating point exception.
Our euphoria/info.e doesn't report Intel/AMD vs ARM (which is a bug imvho), but I assumed that Thomas was crosscompiling and the exception happened on an Intel/AMD system.
If ARM is just quirky, can we disable the checks in scanner.e for just the ARM arch?
6. Re: Build failed on raspberry.
- Posted by Thomas Sep 11, 2015
- 2418 views
Perhaps the parsing algorithm when running on the ARM system triggers a number floating point exception.
Our euphoria/info.e doesn't report Intel/AMD vs ARM (which is a bug imvho), but I assumed that Thomas was crosscompiling and the exception happened on an Intel/AMD system.
If ARM is just quirky, can we disable the checks in scanner.e for just the ARM arch?
No i'm building on the rpi now. I have default and jsm interpreters working thank you for your help.
7. Re: Build failed on raspberry.
- Posted by ukscone Sep 22, 2015
- 2348 views
i can confirm that a quick ifdef around the enum in fenv.e will allow building on a raspberry pi. it still fails a lot of tests but that's not a biggy at the moment.
ifdef ARM then type enum c_fe by *2 C_FE_INVALID = 1, C_FE_DIVBYZERO = 2, C_FE_OVERFLOW = 4, C_FE_UNDERFLOW = 8, C_FE_INEXACT= 16 end type elsedef type enum c_fe by *2 C_FE_INVALID, C_FE_DIVBYZERO = 4, C_FE_OVERFLOW, C_FE_UNDERFLOW, C_FE_INEXACT end type end ifdef
Test results summary: FAIL: t_callc.e FAIL: t_eutest.e FAIL: t_machine.e FAIL: t_net_http.e FAIL: t_system_exec.e FAIL: t_c_overflow_sbni.e FAIL: t_c_overflow_sci1.e FAIL: t_c_overflow_sci2.e FAIL: t_c_overflow_sci3.e FAIL: t_c_overflow_sci4.e FAIL: t_c_overflow_sdnf.e FAIL: t_c_overflow_sdni.e FAIL: t_c_overflow_shni.e FAIL: t_c_overflow_soni.e FAIL: t_c_underflow_sci.e FAIL: t_c_underflow_sdn.e Files (run: 169) (failed: 16) (91% success)
p.s. i used to be rkdavis on the forums but forgot my password (i didn't but it failed to work) and i no longer have access to the email address i'd used to register originally
Creole tip: The ## tag is for Monospaced inline text. Use <eucode> or the {{{ / }}} tags for blocks of code. -Greg
8. Re: Build failed on raspberry.
- Posted by SDPringle Sep 22, 2015
- 2310 views
The PI number causes the scanner to trigger the inexact flag because there are too many digits for 64-bit doubles. The inexact flag for ARM is the same numerical value as the underflow flag for i386. This makes sense.
If t_eutest.e is failing, it kind of invalidates the 91% success rate as it means the testing system itself is not working. Theoretically, the ifdef you added should make all tests t_c_underflow* and t_c_overflow* succeed.
SDPringle
9. Re: Build failed on raspberry.
- Posted by ukscone Sep 22, 2015
- 2265 views
yup i know it's not not really working but the 1st thing to do was to actually get openeuphoria building again as it hadn't since february. building for arm has always failed some of the unittests but in practice it's mostly good enough for messing around with.
the t_eutest.e failure was what I was planning at looking at tonight.
pi@raspberrypi /euphoria/tests $ eutest t_eutest.e -ALL -log
interpreting t_eutest.e:
Setting executable to '/home/pi/euphoria/tests/eutest/eui
Specified interpreter via -eui or -exe parameter was not found
passed: eutest t_c_bad_err_file.e
Setting executable to '/home/pi/euphoria/tests/eutest/eui'
Specified interpreter via -eui or -exe parameter was not found
passed: eutest t_c_no_err_file.e
Setting executable to '/home/pi/euphoria/tests/eutest/eui'
Specified interpreter via -eui or -exe parameter was not found
failed: eutest t_c_good_err_file.e, expected: 1 but got: 0
Setting executable to '/home/pi/euphoria/tests/eutest/eui'
Specified interpreter via -eui or -exe parameter was not found
passed: eutest t_test_false.e
Setting executable to '/home/pi/euphoria/tests/eutest/eui'
Specified interpreter via -eui or -exe parameter was not found
failed: eutest t_test_true.e, expected: 1 but got: 0
t_eutest summary:
5 tests run, 3 passed, 2 failed, 60% success
FAILURE: t_eutest.e program died with status 1
Test results summary:
FAIL: t_eutest.e
Files (run: 1) (failed: 1) (0% success)
10. Re: Build failed on raspberry.
- Posted by SDPringle Sep 24, 2015
- 2157 views
Alright. Thanks for putting in this extra effort. I got the same results on a ix86. Unfortunately, this is some problem in eutest. Eutest is trying to call an interpreter that doesn't exist. This is a distinct bug.
The makefile specifies the location of the interpreter so this better will reproduce what "make test" shows you:
eutest -eui `which eui` t_eutest.e -ALL -log
Replace optionally `which eui` with the path and name of eui.
SD Pringle
11. Re: Build failed on raspberry.
- Posted by ukscone Sep 24, 2015
- 2172 views
- Last edited Sep 25, 2015
t_eutest.e gives http://pastebin.com/yYw0HGEG
t_rand.e sometimes fails, sometimes doesn't (on the chance() function :) )
as for the rest it's just two files i expect will have problems and the under/overflow tests
Test results summary: FAIL: t_callc.e FAIL: t_machine.e FAIL: t_net_http.e FAIL: t_c_overflow_sbni.e FAIL: t_c_overflow_sci1.e FAIL: t_c_overflow_sci2.e FAIL: t_c_overflow_sci3.e FAIL: t_c_overflow_sci4.e FAIL: t_c_overflow_sdnf.e FAIL: t_c_overflow_sdni.e FAIL: t_c_overflow_shni.e FAIL: t_c_overflow_soni.e FAIL: t_c_underflow_sci.e FAIL: t_c_underflow_sdn.e Files (run: 169) (failed: 14) (92% success)
Creole tip: The ## tag is for Monospaced inline text. Use <eucode> or the {{{ / }}} tags for blocks of code. -Greg
12. Re: Build failed on raspberry.
- Posted by ghaberek (admin) Sep 25, 2015
- 2158 views
t_eutest.e gives http://pastebin.com/yYw0HGEG
Forum tip: we have our own Pastey so you don't have to go out to Pastebin. I mean, you can still use Pastebin if you want, but we have complete control over the local Pastey and it supports Euphoria code and Creole formatting. Also, please see the tips I added to your posts about Creole formatting for code in posts. Better formatting can save you time and make your posts easier for everyone to read.
-Greg
13. Re: Build failed on raspberry.
- Posted by SDPringle Sep 25, 2015
- 2131 views
t_eutest.e gives http://pastebin.com/yYw0HGEG
t_rand.e sometimes fails, sometimes doesn't (on the chance() function :) ) }}} Greg
It seems that t_eutest.e is working just fine now. What changed? Did you rebuild from newer sources? Presently, the current ix86 eubins interpreter from two weeks ago is failing in all of those tests save t_machine.e. It is a lot less work on a computer to specify the troubling tests by naming them on the command line. Like this:
eutest t_callc.e t_machine.e t_net_http.e t_c_{over,under}flow*.e -log
I then used this to create an HTML file to look at the differences.
eutest -process-log -html > results.html
When I looked at them in the browser, the underflow vs. overflow tests are failing correctly: That is, they both report the same error message in both cases but the numerical error is wrong. This in practice wont affect the user's experience. It should be very easy to fix these t_c_{over,under}*.d/control.err files so they have matching error numbers to what is being reported.
I am concerned about t_machine.e on ARM and t_callc.e on everything. The functionality of the systems tested by these files are crucial to calling dlls from Euphoria.
S D Pringle
14. Re: Build failed on raspberry.
- Posted by ukscone Sep 25, 2015
- 2088 views
the last post I made was (with the pastebin) after pulling your changes yesterday.
i'll do a clean run later tonight
16. Re: Build failed on raspberry.
- Posted by SDPringle Sep 26, 2015
- 2083 views
I think if you update to changeset 2f79e40d0f20, you will find t_machine.e works fine and most of the t_over/t_under test files. There is one problem with one of the t_under/ and t_over which requires more investigation. Then there t_callc, and some other test file that doesn't work quite right.
This brings the raspberry pi to the same level as ix86 which is less than 100% passing. I have just found an issue involving numbers that have 54 bits or more. Something that I will call 54-bits of complexity for lack of a better term. This issue effects all 32 bit systems.
S D Pringle
17. Re: Build failed on raspberry.
- Posted by ukscone Sep 26, 2015
- 2071 views
this is starting to look much better. the only failures were http://russelldavis.org/oe/results2.html
18. Re: Build failed on raspberry.
- Posted by ukscone Oct 02, 2015
- 1996 views
tarball of build of OE for the raspberry pi http://www.russelldavis.org/Files/files/RaspberryPi/euphoria-4.1.0-RaspberryPi.tar.gz
19. Re: Build failed on raspberry.
- Posted by xecronix Oct 02, 2015
- 1949 views
I downloaded from arm_download and then built using these intructions this AM.
20. Re: Build failed on raspberry.
- Posted by ryanj Oct 02, 2015
- 1948 views
I will try building Euphoria on my Radxa Rock Pro (running Debian) when i have time. I have never built it before, so it will be a learning experience.
21. Re: Build failed on raspberry.
- Posted by xecronix Oct 02, 2015
- 1911 views
I will try building Euphoria on my Radxa Rock Pro (running Debian) when i have time. I have never built it before, so it will be a learning experience.
If you get stuck and my tutorial doesn't help please let me know and I'll write a better tutorial.