guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Typed Guile?


From: Ian Price
Subject: Re: Typed Guile?
Date: Thu, 20 Sep 2012 03:18:03 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

address@hidden writes:

> "Typed Racket is designed for Racket. One day Guile will have a Typed
> Guile companion, and Chez Scheme may have a Typed Chez companion but
> until then TR is for Racket." [1]
>
> Is it this bad? Do we really need Typed Guile?

Is what bad? The state of code reuse? yes, frankly.
Do we need typed guile? I dunno, maybe, couldn't hurt. Stis already has
some work porting racket contracts[0], which is kind of a first step.
Languages are going to head in the mixed static/dynamic route anyway, so
it would be worth it to get a head start :P

> Can we somehow adapt the static code to achieve its features in Guile?
Yes, and no. Guile is obviously extensible through C, and it does
support the addition of new languages, and you could write a typed one
if you want, _but_ if you are using it from guile, you will need to do
some sort of type checking at the interface, since obviously all that
can get removed from within static code. This is how racket's contracts
work IIRC. They are enforced at the boundary, but unnecessary inside the
module. 

> My writing skills are not very great...
> So I'm going to summarize the above:
>
>  1. What language should I choose for my library?
What ever you want, as long as it's C, or supported in guile
(Scheme/elisp-sorta/js-sorta), or you write your own $lang library for guile.

0. https://gitorious.org/guile-contract
I haven't actually used this yet, since stis has far too many toys to
play with :) It looks like it's all scheme though, so I could create a
guildhall package for others.

-- 
Ian Price -- shift-reset.com

"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]