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

World: r4wp

[#Red] Red language group

DocKimbel
28-Jul-2013
[9741]
Yes, you input ASCII characters, but the runtime lexer needs to decode 
your Unicode codepoint in hex format, and the lexer has no support 
for that.
Gerard
28-Jul-2013
[9742]
OK that's already fine as is for now.
DocKimbel
28-Jul-2013
[9743]
Right, I'm not far from going to bed. ;-)
Gerard
28-Jul-2013
[9744x2]
Keep up the good work - i'll support you by means of other donations, 
as soon as my next cheque is coming in.
Must go back to some real work now - I just played all the day with 
these other websites and books ...
DocKimbel
28-Jul-2013
[9746]
Thanks Gerard! I'll have a look at your posts on RebelBB and will 
send you my comments, if any.
Arnold
28-Jul-2013
[9747]
Results for the initialized state-table are now the same, finally. 
Thanks!
Arnold
29-Jul-2013
[9748x2]
Red/System: Could it be that if you 
#define MAX-SIZE 100
my-array: as int-ptr! allocate MAX-SIZE * size? integer!
then using  
my-array/MAX-SIZE 
gives a compilation error??
*** Compilation Error: undefined pointer index variable
Probably food for an issue?
DocKimbel
29-Jul-2013
[9750]
I remember that we allowed macro replacement in paths, but it might 
be only for macros with parameters. Have you found an existing ticket 
about that?
Arnold
29-Jul-2013
[9751]
doesn't look like it.
Kaj
29-Jul-2013
[9752x4]
That may indeed very well have been only about macro parameters
You could work around it:
i: MAX-SIZE
my-array/i
Arnold
29-Jul-2013
[9756x2]
Right but then I have a #define macro AND a variable. So I had better 
started of with the variable in this case.
But is really is a constant.
Kaj
30-Jul-2013
[9758]
Yes, it's imperfect
Arnold
30-Jul-2013
[9759]
That is why I created an issue for it #504.
DocKimbel
30-Jul-2013
[9760]
I'm finishing installing the tools I need and migrating all my data 
from old disks, I should be able to get back to full coding tonight....finally.
Kaj
30-Jul-2013
[9761]
Such things always take a lot of time
Arnold
30-Jul-2013
[9762x2]
I reached this:
C code:
hex value 2214165945 is=0x83f97db9

* 1664525 gives 32710463130033 plus j 0 and plus the init_key of 
value 291 
mt[i] 32710463130324 and(&) FFFFFFFFh results in mt[i] 4287171284
Red/Systemcode
-2080801351 which is also (to-hex -2080801351)
== #83F97DB9

multiplied by 1664525:: 1658067045 and then added also 291 and 1 
minus 1
state-array/i: 1658067336
(My) Conclusion the multiplication by 1664525 causes the results 
of the C source and Red/System source to diverge, possible reason 
calculation with long integers in C versus integer calculation in 
Red/System troubled by overflows.
Kaj
30-Jul-2013
[9764]
Is that on a 64 bit machine?
Arnold
30-Jul-2013
[9765x2]
It is my Macbook from 2008.
That is 64 bit but not the core or something, that is why it can't 
upgrade beyond Snow Leopard.
Kaj
30-Jul-2013
[9767x4]
It must be 64 bit, because a long on Mac would probably be 84 bit 
there. Indeed, your multiplication result is 64 bit, so on Red/System, 
it is wrapping around
64
However, the algorithm should also work on 32 bit, shouldn't it?
Or is it using long longs?
Arnold
30-Jul-2013
[9771]
Yes, there is a trick to AND with FFFFFFFFh to bring it back to 32 
bits, but harm to the resulting values has been done then.
Kaj
30-Jul-2013
[9772]
Not if the algorithm is meant to work on 32 bit
Arnold
30-Jul-2013
[9773]
I have no idea how to compile and run the C variant in 32 bit mode
Kaj
30-Jul-2013
[9774]
There would be some compiler option, -32 or something
Arnold
30-Jul-2013
[9775x2]
That was easy on XCode. Getting closer now. (still differences :( 
)
(changing target)
Kaj
30-Jul-2013
[9777]
Shooting rabbits now?
Arnold
30-Jul-2013
[9778x2]
pow pow pow!
all hits now :-)
Arnold
31-Jul-2013
[9780]
There were some more hooks and traps, in the end the same generated 
numbers! Now removing a real truckload of dumps and prints from the 
source.
Kaj
31-Jul-2013
[9781]
So does the C program produce different results in 32 and 64 bit 
versions?
Arnold
31-Jul-2013
[9782]
That is what I concluded Tue 9:52. Still stands.
Kaj
31-Jul-2013
[9783x2]
That's very strange for such an algorithm
Is the code supposed to support 64 bit?
Arnold
31-Jul-2013
[9785x2]
After current test, I conclude otherwise :) Output is the same. Output 
in C source is unsigned, output in R/S is signed.
C: 10 outputs of genrand_int32()
1067595299  955945823  477289528 4107218783 4228976476 
3344332714 3355579695  227628506  810200273 2591290167 
R/S:--- Test 3 10 outputs of genrand-int32 ---
--------------------------------------------
1067595299 955945823 477289528 -187748513 -65990820 
-950634582 -939387601 227628506 810200273 -1703677129 
----------------------------------

(Where the negative values are bitwise equal to their unsigned counterpart 
in the C output.)
I was mislead by an incorrect intermediate result in the Red/System 
source that I expected to be correct already but had not fixed on 
this machine, together with a short blackout overseeing that adding 
nonzerobits to the left of a binary number changes the decimal representation 
in the lower digits too. Lots of output lines, many output terminal 
windows, small laptopscreen.
Same results make sense.
Kaj
31-Jul-2013
[9787]
Syncing problems? Better use Fossil :-)
Bo
31-Jul-2013
[9788]
Kaj made a big breakthrough today on the commercial project we are 
using Red to develop.  That means we are close to getting paid.  
In turn, that means that Doc is close to getting as big a donation 
as we can afford for creating Red and helping us develop the functionality 
we needed in Red.  And if we can successfully market the product, 
Doc will be getting a donation for each one sold.  We are doing a 
presentation of the product on August 19th to people in the Computer-Aided 
Design industry toward that goal.
DocKimbel
31-Jul-2013
[9789]
Wow, congrats to both of you! :-)
amacleod
31-Jul-2013
[9790]
Great