[Chicken-users] chicken-hosted stalin

2008-01-22 Thread felix winkelmann
Hi!

A stalin egg has been added to the repository that provides
a slightly modified version of Jeffrey Mark Siskinds Stalin
Scheme-C compiler, compiled with chicken. Even though the
compiler is even slower than the original one, it compiles
(the compiler itself) faster and uses less resources (takes
for example around 1 1/2 hours on a 512mb Mac Mini (ppc)).
It also has a few extensions (more character escape sequences
in string literals and SRFI-0 support (cond-expand)).

More information can be found here:

http://chicken.wiki.br/stalin


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken-hosted stalin

2008-01-22 Thread John Cowan
felix winkelmann scripsit:

 Even though the [chicken-stalin] compiler is even slower than the
 original one, it compiles (the compiler itself) faster [...].

This is indecipherable.  The purpose of a compiler is to compile; if
chicken-stalin compiles the Stalin source code faster than native stalin
does, in what sense is it also slower?  And if chicken-stalin *is* slower,
what is the point of compiling Stalin with csc, since a program that
is inherently as slow as Stalin should presumably be compiled with the
compiler that produces the fastest executables, viz. native stalin?

Also, I'm not clear how much use Stalin is in the Chicken environment,
given its severe restrictions on input language.  If Stalin could
be front-ended with an R5RS macro expander, and if enough bootstrap
procedures could be provided that it could understand a larger fraction of
Chicken Scheme, then it would indeed be useful to have as an alternative
compiler.

 http://chicken.wiki.br/stalin

The link to the Stalin manual is to stalin1html, which is broken.  Plausible
alternatives like stalin.1.html, stalin1.html, stalin.1, and stalin1
also don't work.

-- 
Clear?  Huh!  Why a four-year-old child John Cowan
could understand this report.  Run out  [EMAIL PROTECTED]
and find me a four-year-old child.  I   http://www.ccil.org/~cowan
can't make head or tail out of it.
--Rufus T. Firefly on government reports


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken-hosted stalin

2008-01-22 Thread felix winkelmann
On Jan 22, 2008 3:45 PM, John Cowan [EMAIL PROTECTED] wrote:
 felix winkelmann scripsit:

  Even though the [chicken-stalin] compiler is even slower than the
  original one, it compiles (the compiler itself) faster [...].

 This is indecipherable.  The purpose of a compiler is to compile; if
 chicken-stalin compiles the Stalin source code faster than native stalin
 does, in what sense is it also slower?  And if chicken-stalin *is* slower,
 what is the point of compiling Stalin with csc, since a program that
 is inherently as slow as Stalin should presumably be compiled with the
 compiler that produces the fastest executables, viz. native stalin?

chicken-stalin can be built on systems that are too weak to build
the regular stalin, it also runs probably on more platforms.
I think this is useful. Due to the reduced turnaround times and the much
richer runtime environment, one can actually debug and enhance
the system (much more so as the original one).


 Also, I'm not clear how much use Stalin is in the Chicken environment,
 given its severe restrictions on input language.  If Stalin could
 be front-ended with an R5RS macro expander, and if enough bootstrap
 procedures could be provided that it could understand a larger fraction of
 Chicken Scheme, then it would indeed be useful to have as an alternative
 compiler.

You have to see for yourself whether you find it useful. It is possible
to mix chicken and stalin code, so one could conceive trying to get the
best of both worlds (partially fast code and partically using a rich
and dynamic runtime environment).

Adding macros and more compiler language support could be done, though.
So this is a start.


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken-hosted stalin

2008-01-22 Thread John Cowan
felix winkelmann scripsit:

 chicken-stalin can be built on systems that are too weak to build
 the regular stalin, it also runs probably on more platforms.
 I think this is useful. Due to the reduced turnaround times and the much
 richer runtime environment, one can actually debug and enhance
 the system (much more so as the original one).

Fair enough.  I'm still not clear on whether it is actually slower or faster,
though, or perhaps slower in general but faster when compiling Stalin, or what.

 You have to see for yourself whether you find it useful. It is possible
 to mix chicken and stalin code, so one could conceive trying to get the
 best of both worlds (partially fast code and partically using a rich
 and dynamic runtime environment).
 
 Adding macros and more compiler language support could be done, though.
 So this is a start.

Also fair enough.

-- 
John Cowan   [EMAIL PROTECTED]  http://www.ccil.org/~cowan
Most languages are dramatically underdescribed, and at least one is
dramatically overdescribed.  Still other languages are simultaneously
overdescribed and underdescribed.  Welsh pertains to the third category.
--Alan King


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken-hosted stalin

2008-01-22 Thread Tobia Conforto

John Cowan wrote:

felix winkelmann scripsit:

Even though the [chicken-stalin] compiler is even slower than the
original one, it compiles (the compiler itself) faster.


This is indecipherable.


I was wondering too what is faster or slower than what!

Chichen compiling Stalin to C, vs. Stalin compiling Stalin to C?
Gcc compiling Chicken-compiled Stalin to executable, vs. gcc compiling  
Stalin-compiled Stalin to executable?
Chicken-compiled Stalin compiling user code to C, vs. Stalin-compiled  
Stalin compiling user code to C?

I'm probably missing some combination too...

LOL

Tobia


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken-hosted stalin

2008-01-22 Thread Alex Shinn
On Jan 23, 2008 9:09 AM, John Cowan [EMAIL PROTECTED] wrote:
 felix winkelmann scripsit:

  Compilation of Scheme with Stalin takes extremely long. The chicken-compiled
  Stallin is smaller and doesn't stress gcc so much, but is (naturally)
  even slower than the original Stalin, which means slow compiling Scheme to 
  C.

 Well, that's what I expected.  But then what is the meaning of saying that 
 there
 are faster turnaround times for chicken-stalin than for native stalin?

I think the relevant point is that there are faster turnaround
times for hacking Stalin itself.  This is very important, because
Stalin is minimal to the point of being unusable, and so a lot of
hacking is needed.

-- 
Alex


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-06 Thread felix winkelmann

On 6/5/07, Brandon Van Every [EMAIL PROTECTED] wrote:


If Scheme were a mental
disorder, it would be ADD.



Brilliant! I have to save this for future generations.


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread felix winkelmann

On 6/4/07, Brandon Van Every [EMAIL PROTECTED] wrote:


Reading this thread, all I can say is man what a bunch of goofy
noodlers you are!  :-)  I can't even fathom the practical motivation
to do any of this, seeing as Stalin is the most user unfriendly and
unsupported Scheme distribution out there.  Where is Stalin's wiki,
bug tracker, source code repository, extensions repository, mailing
list, and user community?  The question isn't how you would use Stalin
with Chicken, but whether anyone uses Stalin at all.



applause

(Goofy noodlers: I like that!)


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread felix winkelmann

On 6/5/07, John Cowan [EMAIL PROTECTED] wrote:

Brandon Van Every scripsit:
 Speed, to the exclusion of all other considerations, is not the real
 world.  I can understand compiling portable Scheme code under any 2
 different compilers.  I cannot fathom trying to get such code to
 interoperate.  This thread reads like a Frankenstein support
 nightmare.

Developing code under Chicken is fairly straightforward; developing
code under Stalin is painful in the extreme.  It therefore is plausible
to have a Stalin-compatible library for Chicken that allows one to
develop code that Stalin can handle after it is fully debugged under
Chicken.  You can then gain the advantages of Stalin's massive
optimizations to gain execution speed.



BTW, has anyone gotten stalin to work lately? I ran my 512mb Athlon
for the whole night and was not able to compile stalin 0.11 (gcc 4.1.2).


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread foobar
felix winkelmann schrieb:
 On 6/5/07, John Cowan [EMAIL PROTECTED] wrote:
 Brandon Van Every scripsit:
  Speed, to the exclusion of all other considerations, is not the real
  world.  I can understand compiling portable Scheme code under any 2
  different compilers.  I cannot fathom trying to get such code to
  interoperate.  This thread reads like a Frankenstein support
  nightmare.

 Developing code under Chicken is fairly straightforward; developing
 code under Stalin is painful in the extreme.  It therefore is plausible
 to have a Stalin-compatible library for Chicken that allows one to
 develop code that Stalin can handle after it is fully debugged under
 Chicken.  You can then gain the advantages of Stalin's massive
 optimizations to gain execution speed.


 BTW, has anyone gotten stalin to work lately? I ran my 512mb Athlon
 for the whole night and was not able to compile stalin 0.11 (gcc 4.1.2).
I didn't compile it myself, but it is in the universe repos of feisty fawn.
It's version 0.11-1 so basically yes, i am able to work with it.


Greets David



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread Sven . Hartrumpf
Tue, 05 Jun 2007 13:06:29 +0300, danmbox wrote:

  BTW, has anyone gotten stalin to work lately? I ran my 512mb Athlon
  for the whole night and was not able to compile stalin 0.11 (gcc 4.1.2).

 Same here with a 768 MB box. The machine tries to compile stalin.c but
 mostly trashes the swap space (strangely, since it's just a  -O2
 compilation). I wonder how much memory is needed to avoid swapping.

Works for me:

  memtime gcc -o stalin -I./include -O3 -fomit-frame-pointer \
 -fno-strict-aliasing -freg-struct-return stalin.c -L./include -lm -lgc

1263.35 user, 7.76 system, 1271.91 elapsed -- Max VSize = 1672KB, Max RSS = 
544KB

Max VSize and the gcc version might be the problem for some people.

 gcc --version
gcc (GCC) 4.2.0
 uname -a
Linux 2.6.11.4 ... i686 i386 GNU/Linux

Ciao
Sven


pgpcxW78xSEFK.pgp
Description: PGP signature
___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread Brandon Van Every

On 6/4/07, John Cowan [EMAIL PROTECTED] wrote:

Brandon Van Every scripsit:
 Speed, to the exclusion of all other considerations, is not the real
 world.  I can understand compiling portable Scheme code under any 2
 different compilers.  I cannot fathom trying to get such code to
 interoperate.  This thread reads like a Frankenstein support
 nightmare.

Developing code under Chicken is fairly straightforward; developing
code under Stalin is painful in the extreme.  It therefore is plausible
to have a Stalin-compatible library for Chicken that allows one to
develop code that Stalin can handle after it is fully debugged under
Chicken.  You can then gain the advantages of Stalin's massive
optimizations to gain execution speed.


With no eggs.

This is infrastructurally lame.  Anyone who is that enamored with
speed deserves what they get.  Efforts would be better spent actually
creating a community around Stalin and showing some leadership
addressing its utter inadequacies.  C'mon guys, if you want to develop
with someone's FTP dump then you just don't appreciate what it takes
to do software.  Stalin properly exists as a research reference and
nothing more.


Cheers,
Brandon Van Every


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread John Cowan
Brandon Van Every scripsit:

 This is infrastructurally lame.  Anyone who is that enamored with
 speed deserves what they get.  Efforts would be better spent actually
 creating a community around Stalin and showing some leadership
 addressing its utter inadequacies.  C'mon guys, if you want to develop
 with someone's FTP dump then you just don't appreciate what it takes
 to do software.  Stalin properly exists as a research reference and
 nothing more.

Brandon, this is pure negativity, only one step up from Don't do that,
it won't help me develop games on Windows.  If Stalin compatibility
scratches someone's itch or tickles their fancy, it'll get done.  If
not, it won't.  In either case, you are better off spending your time
achieving your objectives than trying to tell other people not to achieve
theirs.

-- 
John Cowanhttp://ccil.org/~cowan  [EMAIL PROTECTED]
'Tis the Linux rebellion / Let coders take their place,
The Linux-nationale / Shall Microsoft outpace,
We can write better programs / Our CPUs won't stall,
So raise the penguin banner of / The Linux-nationale.  --Greg Baker


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] chicken and stalin

2007-06-05 Thread Brandon Van Every

On 6/5/07, John Cowan [EMAIL PROTECTED] wrote:

Brandon Van Every scripsit:

 This is infrastructurally lame.  Anyone who is that enamored with
 speed deserves what they get.  Efforts would be better spent actually
 creating a community around Stalin and showing some leadership
 addressing its utter inadequacies.  C'mon guys, if you want to develop
 with someone's FTP dump then you just don't appreciate what it takes
 to do software.  Stalin properly exists as a research reference and
 nothing more.

Brandon, this is pure negativity, only one step up from Don't do that,
it won't help me develop games on Windows.  If Stalin compatibility
scratches someone's itch or tickles their fancy, it'll get done.  If
not, it won't.  In either case, you are better off spending your time
achieving your objectives than trying to tell other people not to achieve
theirs.


This goes far beyond games on Windows.  This is about people
completely wasting their time on projects that, if they have no
academic context, are completely worthless.  I've gone bankrupt
chasing nonsense.  I have delusions of grandeur that I *might* save
some young buck from his/her utter cluelessness in the face of
industrial reality.

I don't want to invoke Felix as having an opinion on this issue, but
why do you think he rolls his eyeballs when R6RS comes up?  I'll
wager, because there's a huge chunk of people in Scheme-land that
DON'T GET IT when it comes to practical reality.  That's why Scheme
sucks as far as standardization, why it remains a research rather than
practical language for most of the computer industry, and why it fails
to gain any relevance.  Too many smart, tweaky people with no clue
working on things that don't matter.  If Scheme were a mental
disorder, it would be ADD.

I don't really believe in software as a playground.  I believe in
software that gets important things done.  That's why I was willing to
put 1 man year into the Chicken build system, a fairly dull task, and
other people generally aren't.  My build system is going to be here
years from now, unless something substantially better than CMake comes
along, which I don't expect to happen anytime soon.  Whereas Chicken
and Stalin compatibility libraries and interop will *NEVER* be here.
Not in any sense beyond 1 person's irreproducible homebrew that breaks
the 1st month they have to go get a real job.

I've spent 3 years evaluating what counts in open source.  THIS DOESN'T COUNT.

This isn't even about the prowess of any particular author who wishes
to take Chicken-Stalin on.  As cynical as I am about what
well-intentioned people can actually accomplish, the real issue is
LOOK AT YOUR PARTNER.  Stalin is the biggest joke from an open source
support standpoint that I've ever seen.  You're never going to get
anything out of its author.  His compiler is out there so that people
can do what they like with it, without bugging him about it.  It is a
research reference implementation and nothing more.  Great stuff if
you're getting your PhD in compiler design; otherwise, worthless.
Stalin's author knows that he's contributing to an academic corpus,
the publish or perish crowd.  He has NO INCENTIVE WHATSOEVER to
pursue the practical industrial things that we pursue in the Chicken
community.

This pattern is abundant in the academic language research community.
You will find it with the SML/NJ crowd as well, to a lesser degree.
They make no bones about being academic guys, not open source
community building guys.

Felix's language leadership is very different from the academic
average.  Be thankful and avail yourself of it.

Nobody can tell anyone what to do in open source.  But I sure hope
someone out there is capable of learning from other people chopping
off their fingers, rather than chopping off their own.


Cheers,
Brandon Van Every


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread John Cowan
Dan Muresan scripsit:

 I think it's pretty well established that Stalin (and Gambit?) are 
 faster than Chicken, but Chicken has a much better ecosystem (community, 
 libraries etc). 

No dispute about any of that.

 P.S. All this talk of Stalin has made me curious; is there a page 
 documenting Stalin's limitations / standard adherence? If it's just the 
 lack of syntax-rules support, that can be worked around with the help of 
 Alexpander.

First, note that Stalin is an R4RS Scheme, so not only no syntax-rules,
but also no eval, dynamic-wind, or multiple values.  It's not clear
to me whether () is true or false; R4RS allowed either behavior.

Here are the relevant parts of the README:


  DEVIATIONS [from R4RS]


 1. Unimplemented syntax:
4.2.6 Nested quasiquotation is not supported.
appendix Macros
 2. Unimplemented procedures:
6.5.5NUMERATOR
 DENOMINATOR
 RATIONALIZE
 MAKE-RECTANGULAR
 MAKE-POLAR
 REAL-PART
 IMAG-PART
 MAGNITUDE
 ANGLE
6.10.4   LOAD
 TRANSCRIPT-ON
 TRANSCRIPT-OFF
 3. (1.1) Tail recursion optimization is done only on self calls.
  [Apparently no longer true with a recent enough gcc.]
 4. (6.5) The following numeric data types are not supported:
a. bignums: exact integers of arbitrary magnitude
   Furthermore, exact integer arithmetic can overflow without signaling an
   error and without yielding an inexact floating point number.
b. ratios: exact non-integer rationals
c. polar format complex numbers
d. exact rectangular format complex numbers
 5. It is not possible to access all of the underlying C scalar types.  (This
is not an incompatibility with R4RS but nonetheless important for other
reasons.)
a. No independent control over the float/double distinction.
b. No long/short chars/ints/floats/doubles
c. No unsigned chars/ints
 6. (1.3.1) No R4RS compliance mode is provided.
 7. Limitations of (6.5.6) STRING-NUMBER, (6.10.2) READ, and the source
program:
a. Can't parse largest negative number.
b. Can't parse polar numbers with @.
c. Can't parse rectangular numbers with i.
d. Can't parse ratios with /.
e. Can't parse numbers with embedded #.
f. Can't parse exactness with #E and #I.
g. Can't parse inexact numbers with mantissas where the digit string
   before the decimal point would overflow if read as an exact number,
h. On Intel, SPARC, and SGI, the source program can't contain exact
   integer constants -536870912 or 536870911.  On Intel and SPARC, the
   compiler will generate incorrect C code without warning.  On SGI, the
   compiler might signal an exception or might generate incorrect C code
   without warning.  On Alpha, the source program can't contain exact
   integer constants -2305843009213693952 or 2305843009213693951.  The
   compiler will generate incorrect C code without warning.
 8. (6.5.6) STRING-NUMBER doesn't accept the optional radix argument.
 9. APPLY and CALL-WITH-CURRENT-CONTINUATION don't accept continuations or
foreign procedures as their first argument.
10. (6.2) EQV? might return #T when given two procedures that can never be
called.
(BEGIN (DEFINE (F X) (LAMBDA () X)) (EQV? (F 1) (F 2))) == #T
EQV? might return #T when given two fictitious pairs or degenerate vectors.
(EQV? (CONS #T #T) (CONS #T #T)) == #T
(EQV? (VECTOR #T) (VECTOR #T)) == #T
11. (6.5.5) =, , , =, = might not be transitive.
12. (6.5.6) STRING-NUMBER, READ, DISPLAY, and WRITE don't obey write/read
invariance for inexact numbers.
13. (APPLY (LAMBDA X X) y) == y without checking that y is a list and without
copying y.  Furthermore, because of the way LIST is defined, (APPLY LIST X)
doesn't copy X.
14. (6.10.1) Closing a port that has already been closed yields undefined
behaviour rather than having no effect.

  EXTENSIONS

Stalin extends R4RS in a number of ways:

 1. New syntax: PRIMITIVE-PROCEDURE and FOREIGN-PROCEDURE.
 2. New procedures: LIST-LENGTH, SUBLIST, SUB, LIST-APPEND, LIST-REVERSE, REF,
LIST-SET!, REF!, LIST-FILL!, FILL!, LIST-COPY, STRING-UNINTERNED-SYMBOL,
STRING-REVERSE, , , BITWISE-NOT, BITWISE-AND, BITWISE-OR,
MAKE-DISPLACED-VECTOR, SUBVECTOR, VECTOR-APPEND, VECTOR-REVERSE,
VECTOR-COPY, PANIC, POINTER?, INTEGER-STRING, INTEGER-INPUT-PORT,
INTEGER-OUTPUT-PORT, and INTEGER-POINTER.
 3. New data type: pointer.  ZERO? can be used to check for null pointers
(as well as null strings and null ports).  INTEGER-POINTER can be used to
convert an integer address to a pointer.  INTEGER-STRING,
INTEGER-INPUT-PORT, and INTEGER-OUTPUT-PORT can be used to convert an
integer address to a string, input port, or output-port, respectively.
 4. New variable: ARGV is bound to a vector of strings containing 

Re: [Chicken-users] chicken and stalin

2007-06-05 Thread Zbigniew

Bryan,

I'd like to know from what perspective you are approaching this.  Do
you already have code written for Stalin that you need to interface to
Chicken?  Or are you interested in the optimizations Stalin does
purely as a research problem and would like to see if they are
applicable to Chicken?  Do you have a need for speed in a particular
application you've written or is this just a general question?

The reason I ask is that if you're interested in this from a practical
standpoint of speed up my application, and are looking at Stalin
primarily because it's fast,  then I would attack this from a
different angle.  Write your application in Chicken, profile it, then
take the bottleneck or critical paths and 1) rewrite the algorithm; 2)
disable safe mode, interrupts, etc.; 3) rewrite in C; 4) use the
crunch egg; and so on.It all depends on the goals of your
application; pure speed is the goal only in select domains. Oh, and
premature optimization is the root of all evil. :)

If you're looking at this more from a theoretical angle, or just for
fun, then that's a different matter, and other people have mentioned
some possibilities.  Something interesting may come of it.


On 6/4/07, bryan rasmussen [EMAIL PROTECTED] wrote:

 I guess (for me) what I was meaning was what are different ways that
people might be using Stalin for doing parts of their C compilation,
and how Chicken works with what comes out of Stalin compilation as
first part. Second part, analysis of Chicken Scheme code to see what
would be more optimized in Stalin.



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread bryan rasmussen

Well, I suppose it is a general question. Basically I have a big
application made a few years ago, we (meaning myself and some
partners) want to start it up again and add capabilities to it, this
application was at the point in it where I know what I will want to do
will require C because will need to write some low level stuff that
should be optimized  - I don't want to write in C (mainly because as a
C programmer I am at best at maintenance level) so a language I find
enjoyable that compiles to C is good, I decided to pick Chicken
because while I am a Scheme newbie I often find the code relatively
easy to understand and elegant (I've gone through SICP and have a good
bit of functional programming). That Stalin was faster was interesting
because some of the things I can see writing is for example providing
drivers for Erlang in C, well the reason one writes a driver for
Erlang in C (for example, via dryverl http://dryverl.objectweb.org/ )
is because it is a situation where performance and speed is critical

Of course the things Brandon has said has made me reconsider, because
the reason why I would consider doing anything with Stalin (speed)
will not be trumped by the need I have above speed, being development
time. That is to say the need for speed is a possible vague future
optimization, I realize premature optimization is evil but I figure
premature discussion of optimization can only be, at worst, slightly
naughty.



Cheers,
Bryan
On 6/5/07, Zbigniew [EMAIL PROTECTED] wrote:

Bryan,

I'd like to know from what perspective you are approaching this.  Do
you already have code written for Stalin that you need to interface to
Chicken?  Or are you interested in the optimizations Stalin does
purely as a research problem and would like to see if they are
applicable to Chicken?  Do you have a need for speed in a particular
application you've written or is this just a general question?

The reason I ask is that if you're interested in this from a practical
standpoint of speed up my application, and are looking at Stalin
primarily because it's fast,  then I would attack this from a
different angle.  Write your application in Chicken, profile it, then
take the bottleneck or critical paths and 1) rewrite the algorithm; 2)
disable safe mode, interrupts, etc.; 3) rewrite in C; 4) use the
crunch egg; and so on.It all depends on the goals of your
application; pure speed is the goal only in select domains. Oh, and
premature optimization is the root of all evil. :)

If you're looking at this more from a theoretical angle, or just for
fun, then that's a different matter, and other people have mentioned
some possibilities.  Something interesting may come of it.


On 6/4/07, bryan rasmussen [EMAIL PROTECTED] wrote:
  I guess (for me) what I was meaning was what are different ways that
 people might be using Stalin for doing parts of their C compilation,
 and how Chicken works with what comes out of Stalin compilation as
 first part. Second part, analysis of Chicken Scheme code to see what
 would be more optimized in Stalin.




___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-05 Thread Pierre-Alexandre Fournier

Hi Bryan,

if you're looking for performance you might consider gambit:
http://www.iro.umontreal.ca/~gambit/

It compiles to C, has a great debugger, and you should find people on
the gambit mailing list to help you if you have questions.

You might want to take a look at termite too:
Termite is an Erlang-like distributed programming system written in Scheme.
http://toute.ca/

But if you're looking for lots of libraries your should probably stick
with chicken.

Cheers,

--
Pierre-Alexandre



2007/6/5, bryan rasmussen [EMAIL PROTECTED]:

Well, I suppose it is a general question. Basically I have a big
application made a few years ago, we (meaning myself and some
partners) want to start it up again and add capabilities to it, this
application was at the point in it where I know what I will want to do
will require C because will need to write some low level stuff that
should be optimized  - I don't want to write in C (mainly because as a
C programmer I am at best at maintenance level) so a language I find
enjoyable that compiles to C is good, I decided to pick Chicken
because while I am a Scheme newbie I often find the code relatively
easy to understand and elegant (I've gone through SICP and have a good
bit of functional programming). That Stalin was faster was interesting
because some of the things I can see writing is for example providing
drivers for Erlang in C, well the reason one writes a driver for
Erlang in C (for example, via dryverl http://dryverl.objectweb.org/ )
is because it is a situation where performance and speed is critical

Of course the things Brandon has said has made me reconsider, because
the reason why I would consider doing anything with Stalin (speed)
will not be trumped by the need I have above speed, being development
time. That is to say the need for speed is a possible vague future
optimization, I realize premature optimization is evil but I figure
premature discussion of optimization can only be, at worst, slightly
naughty.



Cheers,
Bryan
On 6/5/07, Zbigniew [EMAIL PROTECTED] wrote:
 Bryan,

 I'd like to know from what perspective you are approaching this.  Do
 you already have code written for Stalin that you need to interface to
 Chicken?  Or are you interested in the optimizations Stalin does
 purely as a research problem and would like to see if they are
 applicable to Chicken?  Do you have a need for speed in a particular
 application you've written or is this just a general question?

 The reason I ask is that if you're interested in this from a practical
 standpoint of speed up my application, and are looking at Stalin
 primarily because it's fast,  then I would attack this from a
 different angle.  Write your application in Chicken, profile it, then
 take the bottleneck or critical paths and 1) rewrite the algorithm; 2)
 disable safe mode, interrupts, etc.; 3) rewrite in C; 4) use the
 crunch egg; and so on.It all depends on the goals of your
 application; pure speed is the goal only in select domains. Oh, and
 premature optimization is the root of all evil. :)

 If you're looking at this more from a theoretical angle, or just for
 fun, then that's a different matter, and other people have mentioned
 some possibilities.  Something interesting may come of it.


 On 6/4/07, bryan rasmussen [EMAIL PROTECTED] wrote:
   I guess (for me) what I was meaning was what are different ways that
  people might be using Stalin for doing parts of their C compilation,
  and how Chicken works with what comes out of Stalin compilation as
  first part. Second part, analysis of Chicken Scheme code to see what
  would be more optimized in Stalin.



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users




___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] chicken and stalin

2007-06-04 Thread bryan rasmussen

Hi,

I was wondering about integration between Chicken and Stalin, has
anyone ever done anything to use the two together in any way?

Cheers,
Bryan Rasmussen


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-04 Thread felix winkelmann

On 6/4/07, bryan rasmussen [EMAIL PROTECTED] wrote:

Hi,

I was wondering about integration between Chicken and Stalin, has
anyone ever done anything to use the two together in any way?



What exactly do you mean with integration?


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-04 Thread Sunnan

bryan rasmussen wrote:

Hi,

I was wondering about integration between Chicken and Stalin, has
anyone ever done anything to use the two together in any way?



1. Stalin reads sexps, chicken writes sexps (or vice versa)
2. Develop with a subset of chicken, deploy with stalin
3. Separate processes with fork/exec or client/server



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-04 Thread felix winkelmann

On 6/4/07, Sunnan [EMAIL PROTECTED] wrote:

bryan rasmussen wrote:
 Hi,

 I was wondering about integration between Chicken and Stalin, has
 anyone ever done anything to use the two together in any way?


1. Stalin reads sexps, chicken writes sexps (or vice versa)


You mean, chicken+stalin compiled code exchanges information, right?
Sure, supported. ;-)


2. Develop with a subset of chicken, deploy with stalin


A stalin-compat library? No problem.


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-04 Thread Sunnan

felix winkelmann wrote:


A stalin-compat library? No problem.


It wasn't so much a request as an example of what people can do.


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-04 Thread Brandon Van Every

On 6/4/07, felix winkelmann [EMAIL PROTECTED] wrote:

On 6/4/07, Sunnan [EMAIL PROTECTED] wrote:
 felix winkelmann wrote:
 
  A stalin-compat library? No problem.
 
 It wasn't so much a request as an example of what people can do.


I was not suggesting to write such a thing. :-)


Reading this thread, all I can say is man what a bunch of goofy
noodlers you are!  :-)  I can't even fathom the practical motivation
to do any of this, seeing as Stalin is the most user unfriendly and
unsupported Scheme distribution out there.  Where is Stalin's wiki,
bug tracker, source code repository, extensions repository, mailing
list, and user community?  The question isn't how you would use Stalin
with Chicken, but whether anyone uses Stalin at all.


Cheers,
Brandon Van Every


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-04 Thread Alex Queiroz

Hallo,

On 6/4/07, Brandon Van Every [EMAIL PROTECTED] wrote:


Reading this thread, all I can say is man what a bunch of goofy
noodlers you are!  :-)  I can't even fathom the practical motivation
to do any of this, seeing as Stalin is the most user unfriendly and
unsupported Scheme distribution out there.


Speed.

--
-alex
http://www.ventonegro.org/


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken and stalin

2007-06-04 Thread John Cowan
Brandon Van Every scripsit:
 Speed, to the exclusion of all other considerations, is not the real
 world.  I can understand compiling portable Scheme code under any 2
 different compilers.  I cannot fathom trying to get such code to
 interoperate.  This thread reads like a Frankenstein support
 nightmare.

Developing code under Chicken is fairly straightforward; developing
code under Stalin is painful in the extreme.  It therefore is plausible
to have a Stalin-compatible library for Chicken that allows one to
develop code that Stalin can handle after it is fully debugged under
Chicken.  You can then gain the advantages of Stalin's massive
optimizations to gain execution speed.

-- 
John Cowan  [EMAIL PROTECTED]  http://ccil.org/~cowan
In the sciences, we are now uniquely privileged to sit side by side
with the giants on whose shoulders we stand.
--Gerald Holton


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users