Re: [Chicken-users] Readline

2008-11-13 Thread Mark Fredrickson
Do I need to updated repo perms? I tried to check into the readline
directory and got denied (probably a good thing). My username is
"mfredrickson"

Thanks in advance!
-Mark

On Thu, Nov 13, 2008 at 6:28 AM, felix winkelmann <[EMAIL PROTECTED]> wrote:
> On Thu, Nov 13, 2008 at 5:52 AM, Mark Fredrickson
> <[EMAIL PROTECTED]> wrote:
>> Hello,
>>
>> Does the readline egg have an active maintainer?
>>
>> I'm trying to add file globbing to the completions, and I have a very
>> basic patch. I'm thinking of creating a little completion callback API
>> and I'd like to coordinate with the maintainer.
>
> Several people have hacked on it (mostly elf, recently). The original
> author is Tony Garnock-Jones, but he doesn't much chicken hacking
> nowadays. I think it is safe for you to work on it, without stepping on
> somebodies feet.
>
>
> cheers,
> felix
>


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


[Chicken-users] Readline

2008-11-12 Thread Mark Fredrickson
Hello,

Does the readline egg have an active maintainer?

I'm trying to add file globbing to the completions, and I have a very
basic patch. I'm thinking of creating a little completion callback API
and I'd like to coordinate with the maintainer.

Cheers,
-Mark


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


Re: [Chicken-users] using the compiler at runtime

2008-11-11 Thread Mark Fredrickson
While this is probably not what you are looking for, there is always  
(system "csc -s path/to/file.scm"). This should help with issues of  
using (eval ...). You can (write ...) your code to a temp file, run  
csc on it, and (load ...) the .so.


If you are trying to compile a closure, I'm not sure of a good way to  
make it happen, but I'd be interested to hear other input.


I am at this very moment working on a similar problem (though I'm only  
compiling files not metaprogrammed code, so my situation may be easier).


Good luck and report back if you find anything,
-Mark




On Nov 11, 2008, at 4:09 PM, Felix Lange wrote:


hi, chicken-users,

i've been using chicken scheme for quite a while now, and would like
to request a feature (or at least a hint on doing something roughly  
equivalent).


most, if not all common lisp implementations provide the 'compile- 
file and 'compile functions.
these are very useful for implementing domain-specific languages  
(among other tasks).
having 'compile available at runtime makes it possible to compile  
these languages into lisp code, which,
when it is run, executes at the same speed as everything else in the  
running image.


in scheme, since 'compile is not provided, i'd be building an  
interpreter or, even worse,

use eval.

as chicken is a scheme-to-C compiler, 'compile, if it were available
would probably return  a  string of C code (and should therefore be  
called 'compile-to-c).
the output of 'compile-to-c could be written to a temporary file,  
which in turn could be
compiled/linked by an external c compiler (assuming it's presence,  
libtcc?) and loaded back into the running user program as a shared  
library.


example from dsl background (compilation might improve speed if some- 
long-list is really really long):


(define dl (dsl-code->lambda-form (quote . )))
(map (compile dl) some-long-list)
a penny for your thoughts

felix












___
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


Re: [Chicken-users] Anyone up for porting Termite to Chicken?

2008-05-21 Thread Mark Fredrickson


On May 20, 2008, at 8:04 PM, Ivan Raikov wrote:



Answers embedded below:


Alaric Snell-Pym <[EMAIL PROTECTED]> writes:


Well, as far as I can tell, MPI seems to have a fairly static view of
the world as having a fixed number of processes in it upon startup,
so the following (in Erlang) comes to mind:

http://www.erlang.org/doc/reference_manual/processes.html#10.2

Which, basically, creates a new process and returns its PID, which is
then usable as the destination for a message send.


 Ok, you cannot do this with MPI as far as I know.


An Erlang "process" is really a green thread, not dissimilar to  
Chicken's continuation based threads. Erlang processes run inside of a  
virtual machine, which is the equivalent of the Chicken run-time. At  
least on paper (which is as far as my knowledge extends) the Erlang  
and Scheme + MPI models are fairly similar.


I do believe that one can start a new Erlang VM and add it to the  
cloud at any time, but I get the impression this is actually rare.  
With n cores, why not just start a VM on each core to begin with? The  
Erlang designers are extremely paranoid about the VM's stability (e.g.  
I understand a large portion of IO is done over pipes so that if the  
IO process crashes, the VM is safe), so restarts of VMs tend to be  
few. This is probably one area that Chicken would not fair as well. In  
Erlang, if one "process" (thread really) has a problem it crashes (by  
design) and everyone else is fine. A Chickeny Termite would probably  
need to expend some effort to match this. Though I think it certainly  
could be done.


Cheers,
-Mark



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


[Chicken-users] Benchmark game: binary-trees

2008-02-23 Thread Mark Fredrickson

Hi Isaac,

I'm bothering you because I'm under the impression you are an insider  
at the PL benchmark game. If I'm wrong, feel free to disregard.


Can you comment on why Chicken's binary tree implementation is listed  
as "no program"


http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=all&lang=chicken&lang2=chicken

but we clearly have a program:

http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=binarytrees&lang=chicken

There was a theory that Chicken's implementation was considered  
"alternate" for some reason, though it's basis for Bigloo and Ikarus's  
implementations.


http://shootout.alioth.debian.org/sandbox/benchmark.php?test=binarytrees&lang=bigloo&id=0

From the looks of it, Mzscheme is in the same boat.

Thanks for any info you can provide,
-Mark



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


Re: [Chicken-users] Chicken For Ruby Programmers

2008-02-19 Thread Mark Fredrickson

Hi Raymond,

I've added my 1st draft presentation outline:

https://galinha.ucpel.tche.br/cgi-bin/svnwiki/default/chicken-for-ruby-programmers

This is just my rambling thoughts on what my Ruby group might be  
interested in.


On Feb 19, 2008, at 9:37 PM, raymond medeiros wrote:
I actually have a profile page.  Well specific correlations between  
languages would be good, I think for this document it would be best  
to show how things like

map work in ruby and in scheme.


Agreed. I think showing how Ruby knowledge is immediately applicable  
in Scheme is a good tack to take. For example, Hash.new is like (make- 
hash-table).


 There are a few articles out there under various names you might  
want to read up on.  Search for "functional programming in ruby"
and also "ruby lisp".  I was thinking something along those lines,  
because we can relate those paradigms in both languages.  Also what  
i'd like to see is
emphasis on meta-programming in Ruby vs meta-programming in lisp.   
That's just off the top of my head.


While I don't disagree that showing off metaprogramming would be  
useful, I think I may focus on more "immediate" task needs: shell  
scripting, regexes, various object systems, eggs vs. gems. I think  
this balance of quick-start, immediate needs with a higher level idiom  
and meta-programming comparison would make a very strong introduction.  
Divide and conquer!


something else to consider, would it be prudent to create an  
introductory tutorial on
spiffy/web-unity/mettle and show how one might pursue web  
development for

people who currently use a framework like RoR?


Certainly. It's not my area of expertise, but perhaps we can draft  
some more individuals. I think such a tutorial could have more value  
if it also addressed other web frameworks such as Struts or CakePHP.


Cheers,
-M



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


Re: [Chicken-users] Chicken For Ruby Programmers

2008-02-19 Thread Mark Fredrickson

Hi Raymond,

On Feb 19, 2008, at 7:16 PM, Raymond Medeiros wrote:

Hi, myself and my friend Liam Irish were considering working on this  
portion of the hack-a-thon.
So I'm throwing it out there, I noticed that Mark Fredrickson is  
already on the list for Ruby.


Great! I know Peter Bex also expressed a willigness to help. The more  
help the better. I have absolutely no intention of monopolizing this  
work! I would encourage you to add your name(s) to the list. Also,  
Mario is encouraging people to add profile pages, and this might be a  
good time to do both.


We both have extensive "real world" experience with Ruby as a  
language, might not be so
strong on the scheme side, but could possibly lend a hand in  
fleshing this out.


Cool. I have less Ruby experience, but I agreed to give a presentation  
on Scheme to my local Ruby user's group. I would greatly value your  
experience.



BTW,
I love the "Chicken for X Programmers" I think that this is  
precisely the kind of thing Chicken
needs to gain more exposure.  I welcome any comments suggestions on  
this.


Neither a comment nor suggestion, but a question: As a Ruby  
programmer, what would you like to see in an introductory document? I  
was brainstorming ideas tonight, and I find it hard to decide whether  
to focus on very specific topics (e.g. "Instead of a Hash class, you  
can use (make-hash-table)") vs. higher level concepts (e.g. "Blocks  
are like anonymous functions.").


I suspect these intro docs will be a combo of the two.

Cheers,
-Mark



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


[Chicken-users] ANN: new egg, Stacktor

2008-02-18 Thread Mark Fredrickson

Hi all,

I'm happy to announce my first egg: Stacktor.

Stacktor is a DSL for programming in a stack based style, like  
languages such as Forth or Factor. The idea came from a talk at my  
local Ruby user's group by Slava Pestov  on Factor. While I know Slava  
likes Lisp/Scheme, he made an offhand joke about Lisp, and I felt  
obligated to show that the Lisp/Scheme world can do stack based  
programming too.


Here's a real quick example. Let's say we want to find all the squares  
of a list that are larger than a given value. In a functional style,  
we'd either have to write it "backwards" or use a lot of intermediate  
bindings. We can skip both with in stack programming:


  (begin-stack
9
'(1 2 3 4 5)
(push (lambda (x) (* x x)))
map
stk-swap
(lambda (x) (lambda (y) (> y x))) ;; returns a function that will  
be pushed on the stack

filter
)
=> (stack 16 25)

I won't bore you with a lot details. Feel free to hit me up if you  
have more questions.


Cheers,
-Mark




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


Re: [Chicken-users] Re: YADT: yet another documentation thread

2008-02-18 Thread Mark Fredrickson


On Feb 18, 2008, at 12:45 PM, Peter Bex wrote:


On Sat, Feb 16, 2008 at 05:03:47PM -0500, Graham Fawcett wrote:
The CL community has a "My Road to Lisp" meme, where CL users write  
up a
quick story on how they "arrived". I'd *love* to hear people's My  
Road to

Chicken stories.


Pre-university:
BASIC. Pascal. C. C++.

University:
Rexx (I never discovered if this was a real language or just a  
teaching tool at my school. It's very similar to...) SML. Java. More C/ 
C++. More SML. Perl.


Post-university:
PHP. Ruby. JavaScript. Scheme (finally!)

I've been looking for my "go to" language for a long time. Ruby was a  
strong candidate, but Scheme takes what I like about Ruby and gives me  
more options. I looked at CL but found it weird and inconsistent. The  
little things matter. Now, I plan to plant myself firmly in Scheme and  
see where it takes me.



(BTW, if nobody else is interested I'd
be happy to try my hand at a Ruby->Chicken tutorial).


I too would be happy to help. I recently volunteered to give a Scheme  
introduction my local Ruby group.


-Mark



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


Re: [Chicken-users] YADT: yet another documentation thread

2008-02-15 Thread Mark Fredrickson


 I disagree that new users should know how to put together a R5RS
environment with Chicken. As a new user of Chicken, my concern was not
with standards-conforming code; my concern was how to get code to work
using the functional programming idioms I had learned from Standard
ML.


With a high probibility that Chicken users will be coming from other  
PLs, I think a series of "Chicken for Python Programmers", "Chicken  
for Ruby Programmers", etc could be very helpful. Where are my hashes?  
How do I do string concatenation? Where are my objects? These  
questions, and more, should be answered.


I suggest we draft Hans (http://4.flowsnake.org/) for the Python  
doc. :-)


I'll add these tasks to the Wiki.

-M





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


Re: [Chicken-users] Compromise Hackathon Doc Proposal

2008-02-14 Thread Mark Fredrickson



Good idea.  Could you please add these points to the wiki page?


Added.

I also added an additional hackathon goal of improving Chicken's  
performance on the PL Shootout. I know there was some noise around  
that in previous weeks, but I don't know where it ended up.


-M



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


[Chicken-users] Compromise Hackathon Doc Proposal

2008-02-13 Thread Mark Fredrickson

Hi all,

I still think focusing on documentation is still a good idea for a  
Hackathon goal, even if it has proven divisive. While I certainly have  
opinions on the subject, I'd like to propose a compromise to keep us  
moving forward.


1. Our primary focus is on updating documentation where it currently  
resides (wiki, svn, etc) in the format it currently uses. Getting the  
documentation that exists current is a big task as it is. Let's not  
worry about moving documentation just yet.


2. Where documentation is non-existent, give the person(s) working on  
the new documentation the right to choose the format. Again, let's  
focus on building the bikeshed, not the color.


3. Let's put any new functionality on the back burner, at least when  
talking about the Hackathon. Peter suggested this in his original  
proposal and I think it is a good idea. That said, I too would be  
interested in looking at literate programming options -- after the  
Hackathon. :-)


4. Let's try to dedicate some time to infrastructure improvements:  
Mario suggested expanding SVN wiki tags, it sounds like the *-commit  
hooks could use a refactoring, etc. As Zbigniew said, infrastructure  
lasts.


There are a lot of smart people on this list with good ideas. Like  
Ivan, I'm a Scheme fan for the wild-west aspect. I'm not tied to any  
programming paradigm. I can experiment with many styles. I think we  
should take a similar attitude towards our documentation. :-)


Yours in the public service,
-Mark



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


Re: [Chicken-users] Comprehensive documentation rewrite

2008-02-12 Thread Mark Fredrickson
Perhaps before we decide where data should live, what format, etc, we
should come up with a list of requirements that we want to meet?
Here's my attempt at cataloging what I've heard so far:

0. Data should not be duplicated. Duplicated data will get out of
date, fork, etc.
1. Data should be easy to translate into different formats
(potentially wiki, texi, SXML, HTML, man pages, others) [1]
2. Data should be available off-line.
3. Data should come with egg.
4. Users should be able to update data via wiki system [2]
5. Data should apply to more than just lambdas/procedures
6. Presentation of data (at least online) should be consistent

[1] For each format F, this requirement implies a mapping from data D
-> F. Do we also need a mapping from F -> D, so that if a user changes
F the original data can be updated?

[2] I think this is related to [1]. If we change the wiki (a
representation) does the original data change? Also, there are some
permissions and branching issues here if the document data is stored
in the egg. E.g. should all users get to update the wiki
documentation? Is the wiki branched such that documentation changes in
one branch do not inappropriately change other branches?

---

Other requirements?
-Mark


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


Re: [Chicken-users] egg documentation

2008-02-12 Thread Mark Fredrickson
This idea dove tails with discussion last week of providing docstrings
for lambdas. Felix pointed out that there is a hook to capture lambda
documentation. Will this work for documenting eggs, which might also
have data types, parameters, other info?

Texi seems like a reasonable standard to me, FWIW.

Cheers,
-M

> I think the best alternative would be having svnwiki tags to markup
> chicken docs (which is possible).
>
> Something like:
>
>   
>   This is foo
>   
>
> From a known format, we can convert the wiki documentation to whatever
> format we need and even have an interactive documentation system.  The
> current problem with the wiki documentation is that we don't have
> semantic markup.
>
> Best wishes,
> Mario
>
>
>
>
> ___
> 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


Re: [Chicken-users] Re: A few questions

2008-01-31 Thread Mark Fredrickson


a third possibility is similar to whats in place already... have  
explicitly
named elements of an associated proplist with each var/func,  
optionally.



I assume you mean extending (declare (exports )) to something like
(declare
  (exports
((square ((required int) (docstring "Returns the square of it's  
input"))


I think this is an excellent suggestion. The only thing we really need  
to document in this way is the public interface of units. Code  
comments should suffice for private functions (and some sort of  
(define-with-docinfo ) type form could be made available for cases  
where you really need to comment something, or are testing in the  
interpreter, but I think that's a separate issue).


Compiling with -X docinfo could add all of this to a unit.db file  
which could be optionally loaded, so we could eliminate overhead for  
cases where you don't need the info. Perhaps (use-with-info xyz) to  
load?


I recently saw a talk on Factor, which has some nice documentation  
features built into the standard REPL. Click on a symbol to get  
documentation. Certainly not necessary for development, but a similar  
system for chicken would probably require some sort of db of symbols  
and docstrings.


I promise to go look at the (declare ...) system and help on this  
endeavor, if committers think it is a worth while idea.


Cheers,
-Mark






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


Re: [Chicken-users] Runtime arity?

2008-01-29 Thread Mark Fredrickson
Thanks for the info, Kon.

I've created a ticket to track this:
http://trac.callcc.org/ticket/417

For now, I'll just special case for my needs.

Cheers,
-M

On Jan 29, 2008 12:52 PM, Kon Lovett <[EMAIL PROTECTED]> wrote:
>
> On Jan 29, 2008, at 10:37 AM, John Cowan wrote:
>
> > Graham Fawcett scripsit:
> >
> >> Hm, is it just primitive C functions that need better "procedure
> >> information"? It might be easier to fix that, than to build and
> >> maintain a database.
> >
> > Really only the primitives that are also user-exposed, like +
> > but unlike cons (which is not, technically, a primitive in Chicken).
>
> Yes. By "database" I meant something that maps ##core#primitive
> procedures to "full" lambda info. Don't think it practical to change
> every use of '(##core#primitive "C_foo")' when a central lookup table
> can be built.
>
> >
> > --
> > Samuel Johnson on playing the violin:   John Cowan
> > "Difficult do you call it, Sir? [EMAIL PROTECTED]
> >  I wish it were impossible."http://www.ccil.org/
> > ~cowan
>
> Best Wishes,
> Kon
>
>
>
>
>
> ___
> 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] Runtime arity?

2008-01-29 Thread Mark Fredrickson
Is it possible to determine at run time the arity of function? I'm
thinking something like

(arity (lambda (x y z) (* x y z)))
=> 3

Something that could also inform me about "rest" params would useful too.

My searching of the wiki has turned up no info.

Thanks in advance,
-Mark


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


Re: [Chicken-users] SICP study group

2008-01-24 Thread Mark Fredrickson
How fortuitous! My local (Minneapolis, MN, USA) functional languages  
group is starting a SICP read-along on a similar schedule. I'll pass  
this along. And if anyone is in the Twin Cities area and would like to  
join up to watch the videos, let me know. Our first viewing will be on  
Feb 11th.


Thanks Graham,
-Mark

On Jan 24, 2008, at 8:54 AM, Graham Fawcett wrote:


Hi folks,

There's a study group for SICP (the book, "Structure and
Interpretation of Computer Programs"), just starting up. If you're
interested in joining, please see

http://inkdroid.org/journal/2008/01/23/sicp-reading/

If you haven't read SICP (in print or the free, online version), it's
a mind-expanding book. I haven't read it in years, and might follow
along. (I joined the group anyway, in the hope of spreading some
Scheme goodwill and helping to answer Scheme-specific questions.) All
are welcome!

Graham


___
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


Re: [Chicken-users] advice egg

2008-01-22 Thread Mark Fredrickson
Lordy! Does Felix ever sleep?

-M

On Jan 22, 2008 3:58 PM, felix winkelmann <[EMAIL PROTECTED]> wrote:
> Hi!
>
>
> Another egg freshly available: advice
>
> http://chicken.wiki.br/advice
>
>
> cheers,
> felix
>
>
> ___
> 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


Re: [Chicken-users] repository branching

2008-01-20 Thread Mark Fredrickson
SVN external definitions *might* be what you want, though this
particular application sounds gruesome. Externals are roughly the
equivalent of symbolic links: a given directory in one
repository/branch actually points at another repository/branch.
Managing them for 300+ eggs sounds like a nightmare. Egg maintainers
would each need to point their external definitions at the current
branch from trunk. I don't see a way to automate it for all eggs.

Good luck,
-M


On Jan 20, 2008 9:30 PM, felix winkelmann <[EMAIL PROTECTED]> wrote:
> On Jan 20, 2008 7:41 AM, Ivan Raikov <[EMAIL PROTECTED]> wrote:
> >
> > Is it
> > possible to use some Subversion trick so that a commit to a top-level
> > egg directory automatically does copy/commit in the latest release
> > branch also?
>
> I'm not aware of such a thing.
>
>
> cheers,
> felix
>
>
>
> ___
> 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


Re: [Chicken-users] Some pointers on easyffi and interfacing with C code

2008-01-15 Thread Mark Fredrickson
A quick thank you to everyone who responded. Those tips helped
immensely. When starting out with a new system, not only does one need
questions answered, you need to know what questions to ask! I'd like
to *think* I'm on better ground for both of those items.

Cheers,
-M


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


[Chicken-users] Some pointers on easyffi and interfacing with C code

2008-01-10 Thread Mark Fredrickson

Hello Chicken expertgenzia,

In attempt to broaden my knowledge of Chicken, I'm attempting to  
create an egg for the GEOS C library[1]. My first cut has been to use  
easyffi, and I'm pleased with the results. With minimal hacking at the  
GEOS API header[2] I've been able to see some results. Now I'm looking  
to refine.


Here are my questions:

1. Many of the GEOS functions return 'char', even though the actual  
data should be a bool. Is there a way to tell easyffi to treat these  
characters as #t/#f? I'm thinking there might be a __declare() for it,  
but I didn't see anything that made immediate sense to me.


2. Several of the functions return ints to represent success, errors,  
and take a "return" argument by reference. Is there a best practice  
for dealing with these kinds of functions? Here's an example if I'm  
not being clear (the goal is to compute the length of a "geometry"  
e.g. a line):


extern int GEOSLength(const GEOSGeometry* g1, double *length);

3. How do you get those cool <#TYPENAME> print outs in the the  
interpreter? E.g.

#;1> (make-hash-table)
#

Since geometries have literal represenstions in the form of Well-Known- 
Text (e.g. "POINT(100 100)") is there a way to get a call back and  
print out a literal value? Similarly, can I write a reader macro to  
turn a literal in source into a geometry? Something like:


(let (p #WKT(POINT 100 100)) .

This last point is just for my edification right now. I've got plenty  
to do with the rest of the API first.


Finally, if anyone is feeling like going above and beyond, I could use  
suggestions how to handle callbacks for the initGEOS() function in  
that C header. It's a little too complex for easyffi. While I can  
certainly write a pair of handlers in C, it'd be nice to be able to  
pass in user lambdas to execute on error and warning conditions.


Thanks in advance,
-Mark

[1] http://geos.refractions.net/
[2] http://geos.refractions.net/ro/doxygen_docs/html/geos__c_8h-source.html



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


Re: [Chicken-users] SRFI-1

2007-12-23 Thread Mark Fredrickson
Thanks for the pointer. I had tried that. I assumed the error message
I received indicated said extension did not exist. Actually, it's a
well documented issue on OS X when using macports:

http://chicken.wiki.br/platforms#Fixing%20libchicken.dylib

I made the link and now I have access to all the built in stuff. Sweetness.

On a side note: Is there a way I can see all the "units" I have available?

-M


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


[Chicken-users] SRFI-1

2007-12-22 Thread Mark Fredrickson
Is there an egg for SRFI-1? Google searches show nothing, and eggs
unlimited does not appear to have a SFRI-1 implementation on hand.
Without having tried it, I'm guessing
http://srfi.schemers.org/srfi-1/srfi-1-reference.scm will probably
work.

Am I being thick? Does everyone just write their own version of filter
and fold? :-)

Cheers,
-Mark


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


Re: [Chicken-users] Re: Style Guide

2007-11-05 Thread Mark Fredrickson
> William Ramsay wrote:
> > Is there such a thing as a Chicken/Scheme style guide? [...] If there
> > is such a thing as teaching an old dog new tricks I'd like to try.
>
> Your last sentence makes me think that you're referring to algorithm
> design, not mere syntax style.  Things like learning to use closures and
> continuations effectively, learning to express iterative processes with
> recursive syntax, and so on.

There is certainly a idiomatic style of Scheme, but I think the actual
style as defined by the layout of the source code matters as well.
Those two documents were useful reads to some who frets over such
issues (me).

Here's a related question for more experienced Schemers: In Dybvig, he
states that the define form:

(define square (lambda (x) (* x x)))

is to be preferred to

(define (square x) (* x x))

After reading that, I started using the first form religiously. Now
I'm not so sure. For no small part because the text editor I use
(TextMate) doesn't highlight the first form as a function definition
but does highlight the second form.

Anyone have an opinion? I'm not looking for an opinion, but perhaps a
tip as to why one method might prove more useful as I release code or
maintain code that I've already written.

TIA,
-M


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


Re: [Chicken-users] daemonize egg: redirect I/O?

2007-10-29 Thread Mark Fredrickson
> I think it would suffice for daemonize to wrap the call to the daemon's
> main procedure in a dynamic-wind block and call the cleanup function
> from the exit thunk. Unless the daemon procedure terminates itself with
> a low-level _exit or by sending itself a kill signal, the cleanup code
> should then always be executed.

Wouldn't this also call the exit thunk if the daemon proc itself ever
issues a call-with-current-continuation? That sounds like unexpected
behavior.

-M


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


Re: [Chicken-users] On parameterize and fluid-let

2007-10-15 Thread Mark Fredrickson
On 10/15/07, Tobia Conforto <[EMAIL PROTECTED]> wrote:
> Mark Fredrickson wrote:
> > ... we can see the macro expansion of parameterize using dynamic-wind.
> > Dynamic-wind will call the function g6 before and after control enters
> > or leaves the thunk, by call/cc, the basis of threads in chicken
>   ^
>
> No, I believe threads are orthogonal to continuations.

I was basing this analysis on a single line of text from the
call/cc.org page. (It comprises my entire understanding of threads in
chicken):

"Lightweight threads based on first-class continuations"

If this does not mean that threads are a implemented as continuations,
what does it mean?

-M


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


Re: [Chicken-users] Choosing a programming language for a web project

2007-10-01 Thread Mark Fredrickson
> FWIW, Peter, I also have a mini-framework I've been meaning to eggify.
> I wonder how many of us have rolled their own?

I too would like to see them. Even if not in an egg form. An example
app would be good enough for me. Perhaps the classic Reddit clone?
I've been looking at some Lisp frameworks that use that as an example:

http://bc.tech.coop/blog/051221.html

That page highlights KPAX as one example CL framework. An interesting
approach in KPAX is use of object prevalence instead of a RDBMS or
similar for data storage. Is anyone in the chicken world doing
something similar? I've been thinking about porting the CL
implementation KPAX uses over to chicken, but I wouldn't mind saving
myself the effort.

Cheers,
-Mark

(Apologies to Graham who is seeing this for the 2nd time. I didn't
realize the list didn't munge my reply headers. Mea culpa)


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