• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[#Red] Red language group

Kaj
23-Jun-2013
[8598]
Odd. Is that on a Mac?
Andreas
23-Jun-2013
[8599]
Linux
Kaj
23-Jun-2013
[8600]
Which GCC version?
Andreas
23-Jun-2013
[8601]
Red/System (current master, g0c9c1bf): 2.5s
GCC 4.8.1 -O0: 1.9s
Clang 3.3 -O0: 1.6s
Clang 3.3 -O2: 0.6s
GCC 4.8.1 -O2: 0.5s
Kaj
23-Jun-2013
[8602x3]
So there's a much bigger difference between optimised and unoptimised 
versions than in previous tests
I was on an older GCC version then, 4.1.2 or 4.2.3
Xie is on Windows, and his compiler is apparently called cl. XieQ, 
is that CLang? Which version?
Andreas
23-Jun-2013
[8605]
That's MSVC.
Kaj
23-Jun-2013
[8606]
Perhaps GCC has gotten better at optimisation
Andreas
23-Jun-2013
[8607x3]
Compared to 6-year old GCC 4.1.2, it certainly has improved a lot.
Just dug one of your Fibonacci results from back in Feb-2012, that 
used GCC 4.43.
dug up*
Kaj
23-Jun-2013
[8610x2]
Oh, don't remember that
Ah, it must have been GoboLinux's GCC
Andreas
23-Jun-2013
[8612]
You mentioned the benchmarks running on Syllable Server.
Kaj
23-Jun-2013
[8613x3]
Yes, that's why I thought 4.2.3. But I would have tried them on Syllable 
Workstation on top of Syllable Server
That's an unreleased GoboLinux-on-Syllable-Server FrankenLinux
So it's a pretty big difference in optimisation, and MSVC doesn't 
show it
XieQ
23-Jun-2013
[8616]
I use VS2012 and it's MSVC ver 17.
Kaj
23-Jun-2013
[8617]
Thanks
Arnold
23-Jun-2013
[8618]
We

 are a team! Yoho!! According to Frank Ruben on the Red mailinglist. 
 He has a question about interfacing a C app in Red/System.
XieQ
24-Jun-2013
[8619]
Now in Red/System, we can't pass a function as parameter to Red/System 
FUNC,
but we can pass it to external C FUNC, right?


cmp-func!: alias function! [left [byte-ptr!] rihgt [byte-ptr!] return: 
[integer!]] 
quick-sort: func [
	base	 [byte-ptr!]
	n		 [integer!]
	size	 [integer!]
	cmp-func [cmp-func!]	
][
	; can't use cmp-func in this function
]
DocKimbel
24-Jun-2013
[8620x3]
XieQ, that should work too.
You should try passing the function! pointer as integer! then type-cast 
it inside the function. IIRC, function! cannot be  yet used in a 
Red/System func spec block.
(But as you mentioned, function! is accepted for external functions)
XieQ
24-Jun-2013
[8623x2]
I write a simple test  try to understand it, it's can be compiled, 
but the output is not expected
Red/System []


cmp-func!: alias function! [left [byte-ptr!] right [byte-ptr!] return: 
[integer!]]

cmp-int: func [
	left [byte-ptr!] right [byte-ptr!]
	return: [integer!]
	/local a b
][
	a: as int-ptr! left
	b: as int-ptr! right
	a/value - b/value
]

bar: func [
	cmp-func [cmp-func!]
][
	a: 1
	b: 2
	print cmp-func :a :b
]

bar :cmp-int
Pekr
24-Jun-2013
[8625]
XieQ - that's what Doc stated, no? you use cmp-func! function type 
in func spec block, which is not allowed (except the external functions, 
whatever that means). Sorry if misunderstood on my side, just trying 
to point that out ...
XieQ
24-Jun-2013
[8626x2]
it's print a memery address ( 00401A8F in my windows 7)
Pekr, I will try again
DocKimbel
24-Jun-2013
[8628]
Yes, because the compiler is not yet able to process `cmp-func [cmp-func!]` 
correctly. Try to declare an integer! there and then type cast it 
to a cmp-func! inside the body.
XieQ
24-Jun-2013
[8629x2]
Got the right result! Thanks Doc
bar: func [
	cmp-func [integer!]
	/local compare result
][
	a: 1
	b: 2
	compare: as cmp-func! cmp-func
	result: compare as byte-ptr! :a as byte-ptr! :b
	print result
]

bar as-integer :cmp-int
DocKimbel
24-Jun-2013
[8631x3]
I guess I should complete the function! support at some point before 
starting on Red/System 2.0.
New try for the Red port on Android demo:
http://static.red-lang.org/hello2.apk


This time it should work fine on all devices, please let me know 
if you find any issues. Just be sure to uninstall previous version 
before installing this one (just to be sure you won't report false 
positives).
Source code for the demo: http://pastebin.com/R5ySC8sw
Andreas
24-Jun-2013
[8634]
I'm happy to confirm that this now works on my Nexus 4 :)
DocKimbel
24-Jun-2013
[8635]
Great! :)
XieQ
24-Jun-2013
[8636]
Nice! works fine on all my devices (my phone 2.3.7 and my pad 4.1.1)
DocKimbel
24-Jun-2013
[8637]
Good, so we're almost ready to start infecting the Android world 
with the Red virus. ;-)
Endo
24-Jun-2013
[8638]
Works on Samsung S3 Galaxy, Android 2.3.6
Maxim
24-Jun-2013
[8639]
doesn't work on my 4S 5.01  ;-)
DocKimbel
24-Jun-2013
[8640x2]
Actually it does even on your 4S using iAndroid emulator: http://www.youtube.com/watch?v=gehh6zIijXM
;-)
Endo, thanks for testing it.
AdrianS
24-Jun-2013
[8642]
It still won't install on my Galaxy Nexus with 4.2.2.
DocKimbel
24-Jun-2013
[8643]
AdrianS: do you have a previous version already installed? What is 
the installation error message?
AdrianS
24-Jun-2013
[8644]
It's a very nondescript message - "App not installed"
DocKimbel
24-Jun-2013
[8645x3]
The only reasons I can think of for that issue are:
1) Not enough internal memory available for new apps.
2) You have a debug version of the same app already installed.
Also, you might want to check if you have allowed installation of 
apps from "unstrusted sources". You need to have that option checked 
to be able to install apps coming from outside of the PlayStore.
untrusted sources