Large REBOL applications?
[1/3] from: dhsunanda::gmail::com at: 1-Dec-2008 20:07
LARGE REBOL APPLICATIONS?
=========================
I saw this comment on Carl's blog a few weeks ago ....
> So far I have not seen any large projects implemented in Rebol.
... and got to thinking about how you'd go about measuring "large"
in REBOL.
So I've written a small script that attempts to generate some
metrics about the size of applications:
<http://www.rebol.org/script-information.r?script-name=application-sizer.r>
PLEASE JOIN IN THE HUNT FOR LARGE APPLICATIONS
==============================================
If you have the time, please run it against any applications you
have, and publish the results here. It'd help show just how big
REBOL applications can become.
The script has documentation; and that documentation has the
results of running application-sizer.r against the CGI scripts
that run REBOL.org:
<http://www.rebol.org/documentation.r?script=application-sizer.r>
At 43,000 code lines, I thought it counted as fairly large, but
Graham Chiu has already posted one 50% larger:
<http://www.rebol.org/aga-display-posts.r?post=r3wp146x3030>
That surely is not the biggest we can find!
WHAT COUNTS AS LARGE ANYWAY?
============================
This is a good place too to suggest ways to produce more
meaningful metrics.
Thanks,
Sunanda
[2/3] from: robert::muench::robertmuench::de at: 2-Dec-2008 12:37
Am 01.12.2008, 21:07 Uhr, schrieb Sunanda <dhsunanda-gmail.com>:
> So I've written a small script that attempts to generate some
> metrics about the size of applications:
>
> <http://www.rebol.org/script-information.r?script-name=application-sizer.r>
Hi, cool stuff. Some comments:
1. The script itself should be skipped. Than it can be just run from an
actual directory.
2. Please put the %./ as the default folder in the script, so that it can
run out-of-the-box
3. Add the app-sizer/run and probe command at the end.
4. I'm using prebol a lot in my big app. So the files should be prereboled
as well. Otherwise results are wrong.
> PLEASE JOIN IN THE HUNT FOR LARGE APPLICATIONS
> =========================================
>
> If you have the time, please run it against any applications you
> have, and publish the results here. It'd help show just how big
> REBOL applications can become.
Here is my application result:
make object! [
folders: 1
files: 2
raw-bytes: 1690752
compressed-size: 396721
raw-lines: 30110
code-lines: 26330
elements: make object! [
string: [10677 256191]
datatype: [3632 22230]
number: [6178 10820]
refinement: [894 5668]
function: [29473 127244]
comment: [50 1557]
body: [61360 701524]
whitespace: [112264 565518]
]
element-definitions: ["comment" [
cmt
] "datatype" [
date!
issue!
money!
pair!
time!
tuple!
] "number" [
decimal!
integer!
] "refinement" [
refinement!
] "string" [
char!
email!
file!
string!
tag!
url!
]]
]
Lines of code is definetly wrong here, because I have a rebgui oneliner in
it ;-)
--
Robert M. Münch
Mobile: +49 (177) 245 2802
http://www.robertmuench.de
[3/3] from: dhsunanda:gmai:l at: 3-Dec-2008 15:36
Hi Robert,
> Hi, cool stuff. Some comments:
Thanks!
> 1. The script itself should be skipped. Than it can be just run from an
> actual directory.
Good point. There is now an...
exclude-files: []
...block so you can explicitly say which of your scripts are not
to be included.
application-size.r is in that exclude list by default.
You can also add RebGui.r or other script names to that block.
> 2. Please put the %./ as the default folder in the script, so that it can
> run out-of-the-box
Done!
> 3. Add the app-sizer/run and probe command at the end.
Hmm, I decided not to -- so just loading the script does not start
a potentially long trawl through perhaps the wrong folder -- that
could look invasive.
> 4. I'm using prebol a lot in my big app. So the files should be prereboled
> as well. Otherwise results are wrong.
I would do if I knew how. Please email or Altme me with some hints.
Version 0.0.1
-----------------
Is now in the Library with Robert's suggested improvements.
Also, it counts "functions" better. Previously, the count was of
any-function?
that is a very broad data type. We now count:
* operator
* native
* action
* function (ie any-function? other than operator!, native!, or
action!)
Also it counts:
* object
* image
Plus a modified count of blank lines.
New script here:
<http://www.rebol.org/view-script.r?script=application-sizer.r>
Updated documentation here:
<http://www.rebol.org/documentation.r?script=application-sizer.r>
Sunanda