[racket-dev] OS X 10.7 review/summary

2011-08-06 Thread John Clements
I don't know if you folks have already seen this, but for any of you 
considering or using OS X 10.7, the Ars Technica review appears to contain some 
fairly detailed developer information.  I'm only on the second page, but table 
of contents entries such as "Automatic Reference Counting vs. Garbage 
Collection" look ... interesting. 

http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars


• Installation
• Reconsidering fundamentals
• Lion's new look
• Scroll bars
• Window resizing
• Animation
• Here's to the crazy ones
• Window management
• Application management
• Document model
• Process model
• The pitch
• The reality
• Internals
• Security
• Sandboxing
• Privilege separation
• Automatic Reference Counting
• Enter (and exit) garbage collection
• Cocoa memory management
• Enter ARC
• ARC versus garbage collection
• ARC versus the world
• The state of the file system
• What's wrong with HFS+
• File system changes in Lion
• File system future
• Document revisions
• Resolution independence
• Applications
• The Finder
• Mail
• Safari
• Grab bag
• System Preferences
• Auto-correction
• Mobile Time Machine
• Lock screen
• Emoji
• Terminal
• About This Mac
• Recommendations
• Conclusion

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] OS X 10.7 review/summary

2011-08-06 Thread Neil Van Dyke

John Clements wrote at 08/06/2011 06:29 AM:

[...] table of contents entries such as "Automatic Reference Counting vs. Garbage 
Collection" look ... interesting. [...]


Might be helpful to exchange notes with CL implementors on any wins that 
can be had with any new Apple OS X features.


OS X is popular among CL hackers, sometimes for running CL locally, and 
you know that CL implementors tend to be all over low-level 
optimizations (sometimes to the point of working only if certain kernel 
versions with certain nonstandard kernel options are set, and breaking 
on a new gcc or glibc version).


(Separately, OS X laptops are also popular among CL hackers who use them 
as Emacs-based front-ends to SBCL or something running on headless Linux 
machines, for some goshforsaken reason.)



--
http://www.neilvandyke.org/
_
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] OS X 10.7 review/summary

2011-08-06 Thread Matthias Felleisen

In a fairly user-focused review I saw, the 'automatic snapshots' sounded great. 
Apparently an app that subscribes to some Lion protocol gets automatic 
snapshots so that you can say 'I don't like what I did in the last 10 mins, 
let's go back' It also saves automatically when you forget. Good for kids, 
students, and old professors. 




On Aug 6, 2011, at 6:29 AM, John Clements wrote:

> I don't know if you folks have already seen this, but for any of you 
> considering or using OS X 10.7, the Ars Technica review appears to contain 
> some fairly detailed developer information.  I'm only on the second page, but 
> table of contents entries such as "Automatic Reference Counting vs. Garbage 
> Collection" look ... interesting. 
> 
> http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars
> 
> 
>   • Installation
>   • Reconsidering fundamentals
>   • Lion's new look
>   • Scroll bars
>   • Window resizing
>   • Animation
>   • Here's to the crazy ones
>   • Window management
>   • Application management
>   • Document model
>   • Process model
>   • The pitch
>   • The reality
>   • Internals
>   • Security
>   • Sandboxing
>   • Privilege separation
>   • Automatic Reference Counting
>   • Enter (and exit) garbage collection
>   • Cocoa memory management
>   • Enter ARC
>   • ARC versus garbage collection
>   • ARC versus the world
>   • The state of the file system
>   • What's wrong with HFS+
>   • File system changes in Lion
>   • File system future
>   • Document revisions
>   • Resolution independence
>   • Applications
>   • The Finder
>   • Mail
>   • Safari
>   • Grab bag
>   • System Preferences
>   • Auto-correction
>   • Mobile Time Machine
>   • Lock screen
>   • Emoji
>   • Terminal
>   • About This Mac
>   • Recommendations
>   • Conclusion_
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] OS X 10.7 review/summary

2011-08-06 Thread John Clements

On Aug 6, 2011, at 11:14 AM, Matthias Felleisen wrote:

> 
> In a fairly user-focused review I saw, the 'automatic snapshots' sounded 
> great. Apparently an app that subscribes to some Lion protocol gets automatic 
> snapshots so that you can say 'I don't like what I did in the last 10 mins, 
> let's go back' It also saves automatically when you forget. Good for kids, 
> students, and old professors. 

Agreed; it'll probably take some work on our part, though (a.k.a.: work on 
Robby & Matthew's part).

John

> 
> 
> 
> 
> On Aug 6, 2011, at 6:29 AM, John Clements wrote:
> 
>> I don't know if you folks have already seen this, but for any of you 
>> considering or using OS X 10.7, the Ars Technica review appears to contain 
>> some fairly detailed developer information.  I'm only on the second page, 
>> but table of contents entries such as "Automatic Reference Counting vs. 
>> Garbage Collection" look ... interesting. 
>> 
>> http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars
>> 
>> 
>>  • Installation
>>  • Reconsidering fundamentals
>>  • Lion's new look
>>  • Scroll bars
>>  • Window resizing
>>  • Animation
>>  • Here's to the crazy ones
>>  • Window management
>>  • Application management
>>  • Document model
>>  • Process model
>>  • The pitch
>>  • The reality
>>  • Internals
>>  • Security
>>  • Sandboxing
>>  • Privilege separation
>>  • Automatic Reference Counting
>>  • Enter (and exit) garbage collection
>>  • Cocoa memory management
>>  • Enter ARC
>>  • ARC versus garbage collection
>>  • ARC versus the world
>>  • The state of the file system
>>  • What's wrong with HFS+
>>  • File system changes in Lion
>>  • File system future
>>  • Document revisions
>>  • Resolution independence
>>  • Applications
>>  • The Finder
>>  • Mail
>>  • Safari
>>  • Grab bag
>>  • System Preferences
>>  • Auto-correction
>>  • Mobile Time Machine
>>  • Lock screen
>>  • Emoji
>>  • Terminal
>>  • About This Mac
>>  • Recommendations
>>  • Conclusion_
>> For list-related administrative tasks:
>> http://lists.racket-lang.org/listinfo/dev
> 



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [plt] Push #23181: master branch updated

2011-08-06 Thread Matthias Felleisen

1. I like Robby's mode suggestion. 

2. I prefer shorter keywords, e.g., define-judgment. 

3. Why is this in github and not in the docs? 


On Aug 5, 2011, at 9:56 PM, Robby Findler wrote:

> How about 
> 
>  #:mode (sum I I O)
> 
> for the mode spec where the #:mode keyword is optional but, if present must 
> be followed by what looks like a use of the relation but with a
> Mode?
> 
> Robby
> 
> On Friday, August 5, 2011, Casey Klein  wrote:
> > On Fri, Aug 5, 2011 at 8:13 AM,   wrote:
> >> clklein has updated `master' from 1a65678924 to 576272362b.
> >>  http://git.racket-lang.org/plt/1a65678924..576272362b
> >>
> >
> > This push adds a more general way to define relations in Redex,
> > currently under the name define-judgment-form. For those of you
> > familiar with the existing define-relation form, this new form lifts
> > the restriction that relations have no outputs when executed. In
> > particular, it lets you specify which positions are inputs and which
> > are outputs, and it statically checks that the outputs can be computed
> > from the inputs without "guessing" any intermediate values.
> >
> > Here's a simple example:
> >
> > (define-language nats
> >  (n z (s n)))
> >
> > (define-judgment-form nats
> >  mode : O O I
> >  sum ⊆ n × n × n
> >  [(sum z n n)]
> >  [(sum (s n_1) n_2 (s n_3))
> >   (sum n_1 n_2 n_3)])
> >
> >> (judgment-holds (sum (s (s z)) (s z) (s (s (s z)
> > true
> >> (judgment-holds (sum (s (s z)) (s z) (s (s z
> > false
> >> (judgment-holds (sum (s z) n (s (s z))) n)
> > `((s z))
> >> (judgment-holds (sum n_1 n_2 (s (s z))) (n_1 n_2))
> > `(((s (s z)) z) ((s z) (s z)) (z (s (s z
> >
> > I see three use cases:
> >
> > 1. Defining type systems in a way that supports mechanized
> > typesetting. Here's an example:
> >
> > https://gist.github.com/1128672
> >
> > There are still plenty of type systems Redex can't express, but the
> > new form gets a lot of low-hanging fruit.
> >
> > 2. Defining structural operational semantics in a way that supports
> > mechanized typesetting. Here's an example:
> >
> > https://gist.github.com/1128685
> >
> > Relations defined in this way don't work directly with traces. You can
> > embed them in reduction-relation, as the example demonstrates, but you
> > lose out on edge labels. It shouldn't be too difficult to rig up
> > something better, if this turns out to be important.
> >
> > 3. Defining relations using something like multi-valued metafunctions.
> > Here's an example in which (add1 e) may reduce to 0.
> >
> > https://gist.github.com/1128692
> >
> > Any feedback is welcome, but I'm especially interested in opinions on
> > two points:
> >
> > 1. Is there a better name than define-judgment-form? I would have
> > liked the name define-relation, if it weren't already taken. Is it OK
> > to overload it?
> >
> > 2. Should mode declarations use a different syntax? I tried to do
> > something in the paren-free style of define-relation contracts, but I
> > don't like the result -- partially because I personally like parens,
> > partially because it makes it harder to give good error messages.
> >
> > _
> >  For list-related administrative tasks:
> >  http://lists.racket-lang.org/listinfo/dev 
> > _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [plt] Push #23181: master branch updated

2011-08-06 Thread Robby Findler
On Sat, Aug 6, 2011 at 8:43 AM, Matthias Felleisen  wrote:
> 3. Why is this in github and not in the docs?

I think you're mistaken here. It is in the head on our git servers.

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] [plt] Push #23181: master branch updated

2011-08-06 Thread Casey Klein
On Sat, Aug 6, 2011 at 10:43 AM, Matthias Felleisen
 wrote:
>
> 1. I like Robby's mode suggestion.
> 2. I prefer shorter keywords, e.g., define-judgment.

I'm having trouble reconciling these comments. Robby's suggestion, if
I understand it correctly, is to overload the `define-relation' name
instead of choosing a new one. If you supply the #:mode keyword, you
get the `define-judgment-form' behavior (inputs and outputs, static
checking, the `judgment-holds' syntax for application); if not, you
get the current `define-relation' behavior.

Do you mean keep the forms separate but use the name `define-judgment'
for the new one? I intentionally avoided that name because what it
defines, for example `sum', is not itself a judgment. Judgments are
uses of that thing, i.e., assertions about particular objects, for
example (sum z z z).

> 3. Why is this in github and not in the docs?
>

Oh, good idea!
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] [plt] Push #23181: master branch updated

2011-08-06 Thread Robby Findler
On Sat, Aug 6, 2011 at 1:53 PM, Casey Klein
 wrote:
> On Sat, Aug 6, 2011 at 10:43 AM, Matthias Felleisen
>  wrote:
>>
>> 1. I like Robby's mode suggestion.
>> 2. I prefer shorter keywords, e.g., define-judgment.
>
> I'm having trouble reconciling these comments. Robby's suggestion, if
> I understand it correctly, is to overload the `define-relation' name
> instead of choosing a new one. If you supply the #:mode keyword, you
> get the `define-judgment-form' behavior (inputs and outputs, static
> checking, the `judgment-holds' syntax for application); if not, you
> get the current `define-relation' behavior.

My suggestion was meant to be separate from the overloading thing. You
could use a #:mode even for define-judgment.

(Casey is referring to the idea that define-relation is kind of like
define-judgment but where you have an all-output mode as the default.)

> Do you mean keep the forms separate but use the name `define-judgment'
> for the new one? I intentionally avoided that name because what it
> defines, for example `sum', is not itself a judgment. Judgments are
> uses of that thing, i.e., assertions about particular objects, for
> example (sum z z z).
>
>> 3. Why is this in github and not in the docs?
>>
>
> Oh, good idea!
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Tony Garnock-Jones
On 2011-08-05 12:13 AM, Robby Findler wrote:
> So I wonder if anyone has a positive experience with this kind of
> searching in an "in anger" kind of setting?

Not with search by type, but at the risk of derailing the thread, I have
had quite a few positive experiences with search by example.

For instance, many's the time I've been unable to remember the name of
the selector that tells me whether a string starts with some other
substring in Smalltalk. So I open the "method finder", and enter

  'abcde'. 'abc'. true

for the first and second arguments and the expected result,
respectively, and start it ticking, and it answers with suggested
methods such as

  'abc' < 'abcde' --> true
  'abcde' > 'abc' --> true
  'abcde' beginsWith: 'abc' --> true
  'abcde' includesSubString: 'abc' --> true

and so on. See attached picture. Clicking on the "beginsWith:" entry in
the results shows me all the classes implementing that method, in a
list. Clicking on an entry of that list opens up the relevant source code.

It has been useful to me on more than one occasion (e.g. entering
"'cbabad'. $a. 2" gives #occurrencesOf:).

There's nothing magic about Smalltalk either. It's implemented as a
giant hackish crock rather than as anything remotely viewable as elegant
:-) The implementation simply has a list of "safe" methods that it runs
through in order, collecting non-erroring results that compare equal to
the expected output, which it then displays in a list.

Something similar could work for Racket. Useful for students and others
learning or transitioning to the language, perhaps.

You could even use contracts, perhaps: check each given argument against
the positional arguments of a candidate's contract, check the given
result; you don't even have to run the contracted procedure, which could
after all be dangerous, and thus you get to avoid some of the
crockishness of the Squeak implementation.

(You could also, in both Squeak's and this imagined Racket solution,
permit additional examples to be given to narrow the field after some
first candidate is found. #('abcde' 'xyz' false), for instance, for the
original example.)

Cheers,
  Tony
<>_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [plt] Push #23181: master branch updated

2011-08-06 Thread Casey Klein
On Sat, Aug 6, 2011 at 1:58 PM, Robby Findler
 wrote:
> On Sat, Aug 6, 2011 at 1:53 PM, Casey Klein
>  wrote:
>> On Sat, Aug 6, 2011 at 10:43 AM, Matthias Felleisen
>>  wrote:
>>>
>>> 1. I like Robby's mode suggestion.
>>> 2. I prefer shorter keywords, e.g., define-judgment.
>>
>> I'm having trouble reconciling these comments. Robby's suggestion, if
>> I understand it correctly, is to overload the `define-relation' name
>> instead of choosing a new one. If you supply the #:mode keyword, you
>> get the `define-judgment-form' behavior (inputs and outputs, static
>> checking, the `judgment-holds' syntax for application); if not, you
>> get the current `define-relation' behavior.
>
> My suggestion was meant to be separate from the overloading thing. You
> could use a #:mode even for define-judgment.
>

Oh, I see. I like that. How do you feel about using the same style for
contracts? For example:

(define-judgment-form nats
#:mode (sum I I O)
#:contract (sum n n n)
[(sum z n n)]
[(sum (s n_1) n_2 (s n_3))
 (sum n_1 n_2 n_3)])
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Roogle?

2011-08-06 Thread Casey Klein
On Thu, Aug 4, 2011 at 11:13 PM, Robby Findler
 wrote:
> So I wonder if anyone has a
> positive experience with this kind of searching in an "in anger" kind
> of setting?
>

I've had positive experiences searching by type signature in Hoogle.

I've wished I could do the same for the Racket docs every time I try
to remember the name of the function with this signature: (a -> [b])
-> [a] -> [b]. It's the first result in Hoogle, even if you get the
order of arguments backwards.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Tony Garnock-Jones
[Oops - forgot to reply to all.]

To build a sketch of this, I've found module->exports, dynamic-require
and friends, but I think I'd need procedures along the lines of

   function-contract? : any -> boolean
   function-contract-domain-contracts : function-contract? ->
 (listof contract?)
   function-contract-range-contracts : function-contract? ->
 (listof contract?)

I see contract?, flat-contract? etc, but I don't see anything that could
let me take apart a contract to use its pieces. Is there any such thing?

(Also there are, as usual, interesting wrinkles with search-by-example
with higher-order functions.)

Regards,
  Tony

On 2011-08-06 3:13 PM, Tony Garnock-Jones wrote:
> Not with search by type, but at the risk of derailing the thread, I have
> had quite a few positive experiences with search by example.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] [plt] Push #23181: master branch updated

2011-08-06 Thread Robby Findler
I like it.

Robby

On Sat, Aug 6, 2011 at 2:47 PM, Casey Klein
 wrote:
> On Sat, Aug 6, 2011 at 1:58 PM, Robby Findler
>  wrote:
>> On Sat, Aug 6, 2011 at 1:53 PM, Casey Klein
>>  wrote:
>>> On Sat, Aug 6, 2011 at 10:43 AM, Matthias Felleisen
>>>  wrote:

 1. I like Robby's mode suggestion.
 2. I prefer shorter keywords, e.g., define-judgment.
>>>
>>> I'm having trouble reconciling these comments. Robby's suggestion, if
>>> I understand it correctly, is to overload the `define-relation' name
>>> instead of choosing a new one. If you supply the #:mode keyword, you
>>> get the `define-judgment-form' behavior (inputs and outputs, static
>>> checking, the `judgment-holds' syntax for application); if not, you
>>> get the current `define-relation' behavior.
>>
>> My suggestion was meant to be separate from the overloading thing. You
>> could use a #:mode even for define-judgment.
>>
>
> Oh, I see. I like that. How do you feel about using the same style for
> contracts? For example:
>
> (define-judgment-form nats
>    #:mode (sum I I O)
>    #:contract (sum n n n)
>    [(sum z n n)]
>    [(sum (s n_1) n_2 (s n_3))
>     (sum n_1 n_2 n_3)])
>

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Robby Findler
There isn't a way to do that, no.

But I think in Racket we have better ways of avoiding such danger
(namely using the sandbox library or the pieces it builds upon). In
general, in fact, you'd have to do that anyways, since a contract can
be some arbitrary predicate (and don't forget do-dads like #:pre and
friends).

Robby

On Sat, Aug 6, 2011 at 3:31 PM, Tony Garnock-Jones  wrote:
> [Oops - forgot to reply to all.]
>
> To build a sketch of this, I've found module->exports, dynamic-require
> and friends, but I think I'd need procedures along the lines of
>
>   function-contract? : any -> boolean
>   function-contract-domain-contracts : function-contract? ->
>     (listof contract?)
>   function-contract-range-contracts : function-contract? ->
>     (listof contract?)
>
> I see contract?, flat-contract? etc, but I don't see anything that could
> let me take apart a contract to use its pieces. Is there any such thing?
>
> (Also there are, as usual, interesting wrinkles with search-by-example
> with higher-order functions.)
>
> Regards,
>  Tony
>
> On 2011-08-06 3:13 PM, Tony Garnock-Jones wrote:
>> Not with search by type, but at the risk of derailing the thread, I have
>> had quite a few positive experiences with search by example.
>

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Tony Garnock-Jones
On 2011-08-06 4:41 PM, Robby Findler wrote:
> But I think in Racket we have better ways of avoiding such danger
> (namely using the sandbox library or the pieces it builds upon). In
> general, in fact, you'd have to do that anyways, since a contract can
> be some arbitrary predicate (and don't forget do-dads like #:pre and
> friends).

OK - so rather than using the contracts as a kind of executable
documentation, just go ahead and try out each possibility in the
sandbox? Not a bad approach.

Tony
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Eli Barzilay
Three hours ago, Tony Garnock-Jones wrote:
> On 2011-08-06 4:41 PM, Robby Findler wrote:
> > But I think in Racket we have better ways of avoiding such danger
> > (namely using the sandbox library or the pieces it builds
> > upon). In general, in fact, you'd have to do that anyways, since a
> > contract can be some arbitrary predicate (and don't forget do-dads
> > like #:pre and friends).
> 
> OK - so rather than using the contracts as a kind of executable
> documentation, just go ahead and try out each possibility in the
> sandbox? Not a bad approach.

This makes more sense.  In some cases, the contracts would be
implemented manually (eg, primitives), etc.  So running it in a
sandbox makes the most sense in terms of getting safe executions as
well as limiting the time you wait for each try.

*However*, there's an awful lot of functions to try -- going over them
will make a very slow search...

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Robby Findler
We've just got to figure out some clever caching/incrementalization
thing and then get one of google's or amazon's or whoever's trucks to
drive up and plug in somewhere. Sounds like a nice research project.

Robby

On Sat, Aug 6, 2011 at 7:25 PM, Eli Barzilay  wrote:
> Three hours ago, Tony Garnock-Jones wrote:
>> On 2011-08-06 4:41 PM, Robby Findler wrote:
>> > But I think in Racket we have better ways of avoiding such danger
>> > (namely using the sandbox library or the pieces it builds
>> > upon). In general, in fact, you'd have to do that anyways, since a
>> > contract can be some arbitrary predicate (and don't forget do-dads
>> > like #:pre and friends).
>>
>> OK - so rather than using the contracts as a kind of executable
>> documentation, just go ahead and try out each possibility in the
>> sandbox? Not a bad approach.
>
> This makes more sense.  In some cases, the contracts would be
> implemented manually (eg, primitives), etc.  So running it in a
> sandbox makes the most sense in terms of getting safe executions as
> well as limiting the time you wait for each try.
>
> *However*, there's an awful lot of functions to try -- going over them
> will make a very slow search...
>
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!
>

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Eli Barzilay
Two minutes ago, Robby Findler wrote:
> We've just got to figure out some clever caching/incrementalization
> thing and then get one of google's or amazon's or whoever's trucks
> to drive up and plug in somewhere. Sounds like a nice research
> project.

With caching up results it will be interesting if that helps, but if
you get your hand on a server truck, you could just as well run them
all in parallel.

(BTW, `random' and `read' would also be problematic.)

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Robby Findler
On Sat, Aug 6, 2011 at 7:30 PM, Eli Barzilay  wrote:
> Two minutes ago, Robby Findler wrote:
>> We've just got to figure out some clever caching/incrementalization
>> thing and then get one of google's or amazon's or whoever's trucks
>> to drive up and plug in somewhere. Sounds like a nice research
>> project.
>
> With caching up results it will be interesting if that helps, but if
> you get your hand on a server truck, you could just as well run them
> all in parallel.
>
> (BTW, `random' and `read' would also be problematic.)

Lets just throw out state. Its too hard to program with anyways.

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Tony Garnock-Jones
On 2011-08-06 8:25 PM, Eli Barzilay wrote:
> *However*, there's an awful lot of functions to try -- going over them
> will make a very slow search...

There's not *that* many. How long does 100,000 function calls take?

I'd imagine you'd search the exports from racket/base before looking
further afield, as well.

Tony
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Search by example (was Re: Roogle?)

2011-08-06 Thread Eli Barzilay
Two minutes ago, Tony Garnock-Jones wrote:
> On 2011-08-06 8:25 PM, Eli Barzilay wrote:
> > *However*, there's an awful lot of functions to try -- going over
> > them will make a very slow search...
> 
> There's not *that* many. How long does 100,000 function calls take?

Not much, but:

* Just loading the code will take some significant time.

* Some calls will inevitably need to be rejected on the basis of a
  timeout.  (For example, imagine (sleep 10).)  If there are many of
  these, things become slow again.

(Oh, and BTW, gui functionality will be interesting too.)


> I'd imagine you'd search the exports from racket/base before looking
> further afield, as well.

If you restrict the search for only these, then things are definitely
much more practical.

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev