r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[All] except covered in other channels

Steeve
2-Apr-2009
[3471x2]
As I see the problem, it would be:

1/ create a compile function in Rebol using parse to translate a 
dialect into some bytecodes.
2/ call an external (dll or so) tiny virtual machine.

3/ The VM uses a JIT libray (ie. AsmJIT) to convert the bytecodes 
into ASM instructions.
4/ the VM execute the code
could be faster than rebcode (especially the loops)
[unknown: 5]
2-Apr-2009
[3473]
Well if your going to go that route why not just use REBOL to create 
a MACRO language that outputs assembly code?  That would be rather 
easy to implement.
Steeve
2-Apr-2009
[3474x2]
want to be done in real-time, with a jit library. Not with intermediate 
files and slow compile time
need to inject code
[unknown: 5]
2-Apr-2009
[3476]
SLOW compile time?  Assemblers are using macro's already and compiling 
extremely fast.
Steeve
2-Apr-2009
[3477]
but how do you inject code in your running application without a 
good framework to do that.
You can't just throw a bynary stream in the heaven
[unknown: 5]
2-Apr-2009
[3478x3]
I wasn't objecting to your comment about injection.
I'm not agreeing with it either.
But if that is what you desire go for it.
Steeve
2-Apr-2009
[3481x2]
give me a dll wich accept a binary stream and run it as a function 
and i'm ok to generate assembler with rebol
*which
[unknown: 5]
2-Apr-2009
[3483]
Go for it Steeve.
BrianH
2-Apr-2009
[3484]
Gabriele: "callback on error" - how is that different from using 
PARSE and LOAD/NEXT ??

It's *much* slower (according to Carl). That is why he decided to 
handle this with TRANSCODE/error (which returns the data so far, 
an error object, and the next position), rather than TRANSCODE/else 
on-error (which would have called the provided on-error function 
when there was a parse error).
btiffin
3-Apr-2009
[3485]
Gabriele; Ahh ... lights are coming on.  MAGIC lights.   ;)  Ok, 
I can see how the success backtracking could lead to more grief than 
I originally imagined.


So now I'll shutup on this ... until we see what comes of user types 
(if we get 'em) mixed with transcode/error.  Could be cool.
BrianH
3-Apr-2009
[3486]
Don't worry, I'll be sure to play with TRANSCODE/error until I can 
make it do magic tricks - it's already helped in LOAD :)
btiffin
3-Apr-2009
[3487]
Go Hawley Go!
Maxim
3-Apr-2009
[3488]
an accessor like /load ?    ;-)
Oldes
3-Apr-2009
[3489x2]
Steeve.. how can I help you? :)
It would be fine to have AsmJIT integrated in REBOL as it could be 
used to speed up blitting as well.
Pekr
3-Apr-2009
[3491]
What about JIT method for AGG I posted earlier?
Oldes
3-Apr-2009
[3492]
that's it.. blitjit is based on asmjit
Pekr
3-Apr-2009
[3493]
is that cross platform?
Steeve
3-Apr-2009
[3494]
yep cross platform
Pekr
3-Apr-2009
[3495]
Then we should order Cyphre to do few AGG tests :-)
Steeve
3-Apr-2009
[3496]
Simulating AGG is not the main aim here. The first target is to replace 
rebcode in R3
Pekr
3-Apr-2009
[3497x2]
ah, but you surely noticed what initiated this discussion? It was 
some test some guys did with the lib for AGG.
http://code.google.com/p/blitjit/- BlitJit is based upon ASMJit. 
I am all for RebCode replacement, especially as RebCode turned out 
to be rather slow to R2 version
Steeve
3-Apr-2009
[3499]
i started my own thread :-)
Pekr
3-Apr-2009
[3500]
HLA?
Steeve
3-Apr-2009
[3501x2]
no
here
Graham
3-Apr-2009
[3503x2]
just wondering .. how many error free LOC should one expect from 
a REBOL programmer in an hour?
I'm guessing one line a minute.
PeterWood
4-Apr-2009
[3505x3]
That would be very high but it all depends on your definition of 
LOC written. Does it include undertanding (or even analysisng) the 
requirement, desigNing the script, coding, unit testing, system testing, 
acceptance testing and documentation?
When I first started work, our LOC metric included understanding 
the spec, flowcharting the program, coding (on paper - wihich was 
then punched onto cards), compiling the program, desk checking the 
program and unit testing.

We averaged 50 line of PL/1 code per day on that basis.
It is easier to write PL/1 code than Rebol because each line does 
much less.
Graham
4-Apr-2009
[3508]
50 lines per day?  wow.
PeterWood
4-Apr-2009
[3509]
With extrremely powerful languages like Rebol, LOC is even less reliable 
than less powerful languages. Are these comparable:

a: a + 1


repeat n 100 [if not error? try [close open probe join tcp://localhost: 
n] [print [n "is open"]]]
Graham
4-Apr-2009
[3510]
I'd rate the 2nd line as 5 lines
PeterWood
4-Apr-2009
[3511]
50 lines per day was twice the average for in-house companies which 
was one factor in the company's success.
Anton
4-Apr-2009
[3512]
I think lines of code is a pretty useless metric. Some lines are 
much more difficult to find than others.
PeterWood
4-Apr-2009
[3513x2]
and it is made less useful by the million different definitions of 
writing a line of code.
Graham: A good figure for you would be to count all the lines of 
code in Synapse-EMR and divide by the total number of hours you have 
spent working on it.
Anton
4-Apr-2009
[3515]
That's if the program you're comparing with is similar to the size 
and complexity of Synapse-EMR.
Henrik
4-Apr-2009
[3516x2]
LOC: And what about code that you write, throw out and rewrite? LOC 
is not a useful productivity measuring method.
Much of the time is also spent on optimizing code = reducing code 
size.
Graham
4-Apr-2009
[3518]
If you start with 30 lines of code and end up with 10, that's still 
10 lines of production code ...
Anton
4-Apr-2009
[3519]
Yes.. and ? What does it tell you?
Henrik
4-Apr-2009
[3520]
and tomorrow, that code may go away or be reduced to 3 lines, because 
you figured out an even better way to do it. LOC doesn't tell you 
anything.