[racket] OPERATING SYSTEM ON A FPGA

From: David Blubaugh (davidblubaugh2000 at yahoo.com)
Date: Wed Dec 5 11:16:47 EST 2012

To All,
 
 
I was wondering if anyone has ever created a real time operating system with Racket.  As well as, create applications within a FPGA device by utilizing racket??  Can racket be a solution to ALL PROBLEMS that is the question.
 
 
David Blubaugh
 


--- On Wed, 12/5/12, users-request at racket-lang.org <users-request at racket-lang.org> wrote:


From: users-request at racket-lang.org <users-request at racket-lang.org>
Subject: users Digest, Vol 88, Issue 18
To: users at racket-lang.org
Date: Wednesday, December 5, 2012, 10:30 AM


Send users mailing list submissions to
    users at racket-lang.org

To subscribe or unsubscribe via the World Wide Web, visit
    http://lists.racket-lang.org/users/listinfo
or, via email, send a message with subject or body 'help' to
    users-request at racket-lang.org

You can reach the person managing the list at
    users-owner at racket-lang.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of users digest..."


[Racket Users list:
http://lists.racket-lang.org/users]


Today's Topics:

   1. Re: Whats the difference between a predicate and a flat
      contract? (Harry Spier)
   2. Re: Whats the difference between a predicate and a flat
      contract? (Robby Findler)
   3. Re: DRRacket right-click menu fragility in Linux. (Neil Toronto)
   4. Re: minimum spanning tree (Matthias Felleisen)


----------------------------------------------------------------------

Message: 1
Date: Tue, 4 Dec 2012 21:59:42 -0500
From: Harry Spier <vasishtha.spier at gmail.com>
To: Robby Findler <robby at eecs.northwestern.edu>
Cc: Carl Eastlund <cce at ccs.neu.edu>, users <users at racket-lang.org>
Subject: Re: [racket] Whats the difference between a predicate and a
    flat    contract?
Message-ID:
    <CAJ3b0o9_yd-j4U6tbEOQaB+JKWto_A1XwSrh3_xyRTk=Uviy=Q at mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Are flat-contract and flat-contract-predicate equivalent?

> ((flat-contract 'x) 'x)
#t
> ((flat-contract-predicate 'x) 'x)
#t
> ((flat-contract 'x) 'y)
#f
> ((flat-contract-predicate 'x) 'y)
#f
>

Harry

On Tue, Dec 4, 2012 at 9:41 PM, Robby Findler
<robby at eecs.northwestern.edu> wrote:
> It does that for symbols, but not everything.
>
> This is the place you should be looking, I think.
>
> http://docs.racket-lang.org/reference/contracts.html
>
> Robby
>
> On Tue, Dec 4, 2012 at 8:38 PM, Harry Spier <vasishtha.spier at gmail.com> wrote:
>> OK I see the docs to flat-contract? but not flat-contract
>> http://docs.racket-lang.org/reference/contract-utilities.html#(def._((lib._racket/contract/private/misc..rkt)._flat-contract~3f))
>> mention that flat-contracts are more than predicates.  Those docs
>> don't mention it, but it appears from experimentation that
>> (flat-contract something) produces a procedure such that
>> ((flat-contract something) x) is #t if something eq? x .
>>
>> Harry Spier
>>
>> On Tue, Dec 4, 2012 at 8:57 PM, Robby Findler
>> <robby at eecs.northwestern.edu> wrote:
>>> On Tue, Dec 4, 2012 at 7:28 PM, Carl Eastlund <cce at ccs.neu.edu> wrote:
>>>> On Tue, Dec 4, 2012 at 7:49 PM, Robby Findler <robby at eecs.northwestern.edu>
>>>> wrote:
>>>>>
>>>>> Flat contracts includes more things than contracts. For example:
>>>>>
>>>>> [robby at yanpu] ~/git/plt/collects/scribblings/reference$ racket
>>>>> Welcome to Racket v5.3.1.9.
>>>>> > (flat-contract? 'x)
>>>>> #t
>>>>> > (procedure? 'x)
>>>>> #f
>>>>>
>>>>> The flat-contract function is a holdover from the days when flat contracts
>>>>> weren't able to be used directly as predicate functions.
>>>>>
>>>>>
>>>>> I'll push a clarification to the docs for flat-contract.
>>>>
>>>>
>>>> Isn't that the wrong way around?  The flat-contract function lets you use a
>>>> predicate as a contract, not a contract as a predicate.  Presumably it's
>>>> from before predicates could be used as contracts, although I hadn't
>>>> realized there was such a time.
>>>
>>> There was a time when you had to call 'flat-contract' to turn a
>>> predicate into a contract, yep. There was a housecleaning (anyone
>>> remember the days when there were multiple suffixes (not just "/c") on
>>> the combinators?) and I probably should have gotten rid of it at that
>>> time, but I didn't.
>>>
>>> (Oh and I mean "contracts" where I wrote "preducate functions" above. Oops.)
>>>
>>> Robby


------------------------------

Message: 2
Date: Tue, 4 Dec 2012 21:05:45 -0600
From: Robby Findler <robby at eecs.northwestern.edu>
To: Harry Spier <vasishtha.spier at gmail.com>
Cc: Carl Eastlund <cce at ccs.neu.edu>, users <users at racket-lang.org>
Subject: Re: [racket] Whats the difference between a predicate and a
    flat    contract?
Message-ID:
    <CAL3TdOMVL4xerBMr9xWqNz3tPjxbSXDfjaiJro2N9j6fxrSrOQ at mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Yes ..., I think so (well, eq? probably messes things up, as usual).

But that's a funny question! What's really going on there is that
flat-contract is coercing the value into a contract, and flat
contracts also acts as predicate functions (matching what the
contracts match). flat-contract-predicate takes its argument, turns it
into the contract and then returns the predicate. This last step is
useless, as flat-contracts are now predicates without any coercion
(again, not something that was always the case).

I'll add a similar note to the docs for this function too.

Robby

On Tue, Dec 4, 2012 at 8:59 PM, Harry Spier <vasishtha.spier at gmail.com> wrote:
> Are flat-contract and flat-contract-predicate equivalent?
>
>> ((flat-contract 'x) 'x)
> #t
>> ((flat-contract-predicate 'x) 'x)
> #t
>> ((flat-contract 'x) 'y)
> #f
>> ((flat-contract-predicate 'x) 'y)
> #f
>>
>
> Harry
>
> On Tue, Dec 4, 2012 at 9:41 PM, Robby Findler
> <robby at eecs.northwestern.edu> wrote:
>> It does that for symbols, but not everything.
>>
>> This is the place you should be looking, I think.
>>
>> http://docs.racket-lang.org/reference/contracts.html
>>
>> Robby
>>
>> On Tue, Dec 4, 2012 at 8:38 PM, Harry Spier <vasishtha.spier at gmail.com> wrote:
>>> OK I see the docs to flat-contract? but not flat-contract
>>> http://docs.racket-lang.org/reference/contract-utilities.html#(def._((lib._racket/contract/private/misc..rkt)._flat-contract~3f))
>>> mention that flat-contracts are more than predicates.  Those docs
>>> don't mention it, but it appears from experimentation that
>>> (flat-contract something) produces a procedure such that
>>> ((flat-contract something) x) is #t if something eq? x .
>>>
>>> Harry Spier
>>>
>>> On Tue, Dec 4, 2012 at 8:57 PM, Robby Findler
>>> <robby at eecs.northwestern.edu> wrote:
>>>> On Tue, Dec 4, 2012 at 7:28 PM, Carl Eastlund <cce at ccs.neu.edu> wrote:
>>>>> On Tue, Dec 4, 2012 at 7:49 PM, Robby Findler <robby at eecs.northwestern.edu>
>>>>> wrote:
>>>>>>
>>>>>> Flat contracts includes more things than contracts. For example:
>>>>>>
>>>>>> [robby at yanpu] ~/git/plt/collects/scribblings/reference$ racket
>>>>>> Welcome to Racket v5.3.1.9.
>>>>>> > (flat-contract? 'x)
>>>>>> #t
>>>>>> > (procedure? 'x)
>>>>>> #f
>>>>>>
>>>>>> The flat-contract function is a holdover from the days when flat contracts
>>>>>> weren't able to be used directly as predicate functions.
>>>>>>
>>>>>>
>>>>>> I'll push a clarification to the docs for flat-contract.
>>>>>
>>>>>
>>>>> Isn't that the wrong way around?  The flat-contract function lets you use a
>>>>> predicate as a contract, not a contract as a predicate.  Presumably it's
>>>>> from before predicates could be used as contracts, although I hadn't
>>>>> realized there was such a time.
>>>>
>>>> There was a time when you had to call 'flat-contract' to turn a
>>>> predicate into a contract, yep. There was a housecleaning (anyone
>>>> remember the days when there were multiple suffixes (not just "/c") on
>>>> the combinators?) and I probably should have gotten rid of it at that
>>>> time, but I didn't.
>>>>
>>>> (Oh and I mean "contracts" where I wrote "preducate functions" above. Oops.)
>>>>
>>>> Robby


------------------------------

Message: 3
Date: Tue, 04 Dec 2012 21:30:23 -0700
From: Neil Toronto <neil.toronto at gmail.com>
To: users at racket-lang.org
Subject: Re: [racket] DRRacket right-click menu fragility in Linux.
Message-ID: <50BECDDF.4030508 at gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed

Could what you're experiencing have anything to do with tooltips? It 
seems my right-click menu doesn't stay up whenever there's a tooltip 
out. Which is, like, every time I want it.

Neil ?

On 12/04/2012 07:55 PM, Ray Racine wrote:
> Yea, I didn't want to make a big deal out of it, but the up/down button
> change did not fix the issue.   In fact I'd say no impact positive or
> negative.
>
> It seems to happen when there is additional drawing 'complexity' in
> co-occurrence with the pop up drawing area.  I.e. the pop up menu is
> drawing where arrows are drawn or error highlighting is occurring etc.
> Also maybe when the pop up menu area is near the 'edge' of the Dr window
> and or pane area.  But again the problem is not consistently
> reproducible yet happens more often then not.  Its not a once in a blue
> moon that thing.  Sometimes an attempt to right click pop up  menu will
> fail numerous times in a row then succeed for no apparent reason.
>
> On Dec 4, 2012 9:07 PM, "Robby Findler" <robby at eecs.northwestern.edu
> <mailto:robby at eecs.northwestern.edu>> wrote:
>
>     On Tue, Dec 4, 2012 at 6:11 PM, Stephen Chang <stchang at ccs.neu.edu
>     <mailto:stchang at ccs.neu.edu>> wrote:
>      > On Fri, Nov 2, 2012 at 9:33 PM, Robby Findler
>      > <robby at eecs.northwestern.edu
>     <mailto:robby at eecs.northwestern.edu>> wrote:
>      >> I've pushed a fix to this. Thanks to Matthew for looking into it and
>      >> sorting it out and sorry for the delay.
>      >
>      > I'm using git head and I'm still seeing this problem (Ubuntu
>     11.10). I
>      > can't reliably reproduce it but in case it helps, it most recently
>      > happened when I selected tack arrows and now I can't bring up the
>     menu
>      > to untack the arrows anymore.
>      >
>
>     The particular fix Matthew pointed me to is popping up the menu on a
>     mouse down event, not a mouse up event.
>
>     http://git.racket-lang.org/plt/blobdiff/27aa99944657c5827eee3772f715df7dd971d1e0..0377bda9474f8848a97509ace898174c83361006:/collects/framework/private/keymap.rkt
>
>     So I guess there's something else going on, too (because that's the
>     code that pops up the menu with the check syntax items).
>
>     Robby
>
>
>
> ____________________
>    Racket Users list:
>    http://lists.racket-lang.org/users
>



------------------------------

Message: 4
Date: Wed, 5 Dec 2012 10:30:22 -0500
From: Matthias Felleisen <matthias at ccs.neu.edu>
To: Pierpaolo Bernardi <olopierpa at gmail.com>
Cc: Racket mailing list <users at racket-lang.org>
Subject: Re: [racket] minimum spanning tree
Message-ID: <CE678990-63D0-4400-AF2A-C6B2880E4FFB at ccs.neu.edu>
Content-Type: text/plain; charset="iso-8859-1"


You are making a very good point here, especially the last one, 
which in a sense exposes the folly of Perlis's maxim (it is better
to have one data type with a 100 operations than 10 data types 
with 10 operations each). One, the maxim biases programmers 
and before they know it, they have introduced bad dependences 
and performance problems and whoknowswhat. 

---------------------------------------------------------------

Having said that, I think Ian's point is equally good. So here
is what I am wondering. 

Isn't the case of graphs worth a case study where we define 
a WIDE interface for graphs and their operations, which we 
can do so with contracts. Then we implement it in several 
different ways and conduct performance studies (small and
large). And we advertise, which library is good for which 
kind of scenario. 

I am sure that some data structure person has done this
for C++ or some such language. The Saarbr?cken MPI 1 comes
to mind. BUT, I am also sure that we don't have it and that
we would benefit from having one. 

NOW: as we conduct this study, we might be able to articulate
performance "contracts" (that's probably the wrong word) and
possibly learn how to add those to library implementations as
a secondary interface. Doing so would once again distinguish
Racket from other programming languages. 

It is probably a dissertation, possibly more. 



















On Dec 4, 2012, at 5:36 AM, Pierpaolo Bernardi wrote:

> On Mon, Dec 3, 2012 at 5:07 PM, J. Ian Johnson <ianj at ccs.neu.edu> wrote:
>> Graph algorithms are often meant to be very fast, and different algorithms necessitate different representations. Two popular representations are adjacency lists and shared structures.
> 
> The representations usually used in general purpose graphs libraries
> are adiacency lists and incidence matrices.
> 
> Two good examples that I know of are:  Knuth's Stanford GraphBase
> (available from his home page and in published book form), and the
> Combinatorica library for Mathematica (code available freely on the
> net, manual available as a published book "Computational Discrete
> Mathematics" by Skiena & Pemmaraju).
> 
>> It also isn't right to call them lists unless you're talking about multigraphs. Indeed successor nodes should be treated as a set, but Racket's sets have quite a bit of overhead, especially for small sets. Should it be fast to compute predecessor nodes? There are too many considerations for there to be just one blessed representation, IMHO.
> 
> Linked lists made of cons pairs are not the best data structure for
> every possible use of a sequence data structure.  However, we find
> this data structure very useful, don't we?  we force them into uses
> for which they are not optimal, because of the convenience of having
> available a vast library using them. And when we can't fit them to our
> purpose we use a more specialized data structure.
> 
> I think a similar compromise for a graph data structure would be very useful.
> 
> Cheers
> P.
> 
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4373 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20121205/52954024/attachment.p7s>

End of users Digest, Vol 88, Issue 18
*************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20121205/143b3668/attachment-0001.html>

Posted on the users mailing list.