Re: [racket-users] Alternatives to DrRacket

2017-11-26 Thread Konrad Hinsen

On 26/11/2017 16:42, Stephen De Gabrielle wrote:

I know two big reasons for using a complex tool is it’s stickiness 
factors; normally a combination of familiarity (hence speed) with a lot 
of powerful features and non-transportable customisation.


A third big reason is generality. The main reason why I prefer Emacs to 
DrRacket is that it does so many things unrelated to Racket. Anything 
that requires a text-based interface can be done in Emacs.


Putting stickiness factors aside, what features in other editors/IDE’s 
would you like to see in DrRacket?


Since I do use DrRacket from time to time for very Racket-specific 
things (e.g. the debugger and the macro stepper), I do have a small 
wishlist:


1) Paredit mode like in Emacs, sufficiently compatible that I can switch 
seamlessly between the two.


Well, that's it. Just one point.

Konrad.

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] misterious empty line

2017-11-26 Thread Ben Greenman
My guess is that "(define" does something special to figure out where to
insert newlines in the rendered document.

On Thu, Nov 23, 2017 at 9:13 AM, Jos Koot  wrote:

> My code:
>
> #lang scribble/manual
>
> @(require
>   scribble/core
>   scribble/eval
>   racket
>   (for-label racket)
>   (for-syntax racket))
>
> @elemtag["rearrangement" "Not important."]
> @interaction[
> (require racket)
> (code:comment #,(list "Procedure " (racket in-permutations)
>  " produces a sequence of " @elemref["rearrangement" "rearrangements"]
> "."))
> (define (a)
>  (code:comment #,(list "Procedure " (racket in-permutations)
>  " produces a sequence of " @elemref["rearrangement" "rearrangements"]
> "."))
>  (in-permutations '(1 2 3)))
> (a)]
>
> Produces the attached HTML.
>
> Why is there a blank line following the comment within the definition?
> The blank line does not appear after the comment preceding the definition.
>
> Windows 7 Home Premium,
> DrRacket, version 6.11.0.2--2017-11-12(b54ea8c5b1/a) [3m].
> Language: scribble/manual [custom]; memory limit: 4000 MB.
>
> Thanks, Jos
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] DrRacket et al not starting in Sierra (10.12)?

2017-11-26 Thread George Plymale II
What you describe is indeed different from what I experience and I followed 
the exact same steps that you listed. It may perhaps be due to something 
that is different in my system settings. It is also strange because the 
behavior that you describe with the dialog box is also what I experience 
when installing other applications, but not Racket.

On Monday, November 20, 2017 at 1:54:29 PM UTC-5, johnbclements wrote:
>
>
>
> > On Nov 19, 2017, at 17:04, George Plymale II  > wrote: 
> > 
> > This issue still exists on High Sierra and with Racket 6.11. I even see 
> it happen on the non-nightly, stable builds. It's a bit of a hassle to have 
> to do the drag-n-drop dance every single time I update Racket. I'm we would 
> all appreciate having signed app bundles so that this problem goes away. 
>
> That doesn’t sound right to me. Specifically, I’m running High Sierra, I 
> believe these bundles are all signed, and I just followed these steps: 
>
> 1) Delete my existing Racket 6.11 installation. 
> 2) Download the 6.11 installation through racket-lang. (The actual 
> download URL: 
> https://mirror.racket-lang.org/installers/6.11/racket-6.11-x86_64-macosx.dmg) 
>
> 3) Open the file to mount the .dmg, creating finder window showing arrow 
> and link to Applications directory. 
> 4) Open Applications directory, open Racket 6.11 directory, double-click 
> on DrRacket binary. 
> 5) See dialog containing text "“DrRacket” is an application downloaded 
> from the Internet. Are you sure you want to open it?”. 
> 6) Click okay. 
> 7) DrRacket opens fine. 
> 8) second and subsequent openings of DrRacket don’t require dialog. 
>
> Is this different from what you’re observing? 
>
> John Clements 
>
>
>
> > 
> > On Tuesday, October 18, 2016 at 10:04:48 AM UTC-4, Geoffrey Knauth 
> wrote: 
> > On Tuesday, October 18, 2016 at 9:44:56 AM UTC-4, Matthew Flatt wrote: 
> > > Nightly builds are not currently signed, so Sierra doesn't like them. 
> > > 
> > > Try this: Using Finder, drag the DrRacket icon out of its folder. Then 
> > > drag it back in place. Then try double-clicking DrRacket. (Yes, that's 
> > > weird.) 
> > Ha!  Fighting weirdness with weirdness.  I got it to work, but it was 
> slightly more complicated: 
> > 
> > When I dragged the icon out of its folder to the Desktop, it created a 
> link instead.  I got rid of the link on the Desktop, since that wasn't what 
> I was aiming for. 
> > 
> > When I dragged the icon *up*, to the level above where it was, and then 
> back in its folder, those moves worked (as moves), but double-clicking 
> didn't work.  However, right-menu Open did work, and after that 
> double-click worked, and having it in my dock and clicking on it worked. 
> > 
> > So I'm all set.  Thanks! 
> > 
> > 
> > 
> > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Racket Users" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to racket-users...@googlegroups.com . 
> > For more options, visit https://groups.google.com/d/optout. 
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] unexpected behavior of parametric polymorphism in Typed Racket

2017-11-26 Thread Richard Cobbe
Returning to this after a long delay...

On Sat, Nov 11, 2017 at 01:34:05PM -0500, Matthias Felleisen wrote:

> > (Context: I only actually intend to use `store' with a single type, but I
> > want to define that type in a separate module.  Since the type's definition
> > refers to `addr', I made `store' polymorphic to break the cyclical
> > dependency.)
>
> This of course calls for Typed Units, which are now available in Typed Racket 
> thanks to Daniel Feltey.
>
> It might be worth trying it out — Matthias

I started to take a look at this, and I'm having trouble seeing how this
would work.  In particular, I'm not seeing how to include a type in a
signature.  The following isn't syntactically correct:

(define-signature store^
  Addr
  Store
  [empty-store : Store]
  [alloc : (Store Integer -> (Values Store Addr))]
  [alloc* : (Store (Listof Integer) -> (Values Store (Listof Addr)))]
  [deref : (Store Addr -> Integer)]
  [update : (Store Addr Integer -> Store)])

The presence of the bare `Addr' on the second line causes a syntax error,
as one would expect from the docs.  Purely at random, I tried the
following:

(define-signature store^
  [Addr : Type]
  [Store : Type]
  [empty-store : Store]
  [alloc : (Store Integer -> (Values Store Addr))]
  [alloc* : (Store (Listof Integer) -> (Values Store (Listof Addr)))]
  [deref : (Store Addr -> Integer)]
  [update : (Store Addr Integer -> Store)])

This doesn't compile either (no surprise there), but it yields an
interesting error message:

define-signature: expected sig-var-form or expected sig-type-form
  at: Addr
  in: ...

The mention of `sig-type-form' in the error message suggests that it is
possible to do this, but I'm not seeing the concrete syntax for this
described anywhere.  Am I overlooking something?

;;;

Next: the signatures above only allow storing Integers in a Store.  I'd
assumed that I'd eventually want to import the value type into the store@
unit -- but then how do I include specify that type in store^ ?  In ML, I'd
use a signature plus a 'with', but I don't see an equivalent to that here.

I'm starting to think that my base assumption (that Typed Units are more or
less equivalent to ML signatures, structures, and functors) is way off.

Richard

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Alternatives to DrRacket

2017-11-26 Thread Matthias Felleisen

> On Nov 26, 2017, at 11:27 AM, 'Royall Spence' via users-redirect 
>  wrote:
> 
>  DrRacket actually does the things it claims to do and isn't a broken mess.


Yes, it is an amazing tool. I occasionally escape to Emacs for tasks that I 
can’t do easily in Dr (e.g. rectangular editing) but never for long. 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Alternatives to DrRacket

2017-11-26 Thread Richard Cobbe
On Sun, Nov 26, 2017 at 03:42:14PM +, Stephen De Gabrielle wrote:
> Hi,
>
> I’ve noticed some list members use other editors or IDE’s.
>
> I know two big reasons for using a complex tool is it’s stickiness factors;
> normally a combination of familiarity (hence speed) with a lot of powerful
> features and non-transportable customisation.
>
> Putting stickiness factors aside, what features in other editors/IDE’s
> would you like to see in DrRacket?

I generally switch back and forth between Emacs and DrRacket as appropriate
for the task at hand.  DrRacket is good for code navigation, but if I'm
doing a lot of writing, I generally prefer emacs, largely for reasons that
others have mentioned in this thread.

There is one particular issue, however, that I haven't seen come up: power
usage.  I haven't really investigated what's going on here, but DrRacket
drains the battery on my MacBook Pro quite rapidly (last experienced with
DrRacket 6.11 on MacOS 10.12.latest).  What's more, it appears to do this
even if the app is only open in the background and I'm not actually
interacting with it.  So if I don't have access to AC power, I generally
close DrRacket and stick with Emacs.

If the DrRacket maintainers are interested, I'd be happy to help diagnose
the power problem in more detail, as time permits.  However, I don't really
know what tests would be useful.  Suggestions welcome!

Richard

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Alternatives to DrRacket

2017-11-26 Thread HiPhish
I use Neovim and I'm working on a Racket client for it:
https://gitlab.com/HiPhish/neovim.rkt

One of the cool features Neovim has over Vim is that it provides an API for 
remote processes; a client application can connect to the editor and they 
can communicate with each other. What that means in practice is that my 
Racket client allows you to write Neovim plugins in directly Racket. This 
would make it possible for example to re-use parts of DrRacket to write 
analogous Neovim plugins without having to re-invent the wheel. I don't 
know much about Emacs, but from looking at Racket Mode it looks like almost 
70% of it is Emacs Lisp. With a Racket client for Neovim the plugin could 
be written (almost?) entirely in Racket.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Alternatives to DrRacket

2017-11-26 Thread David Thrane Christiansen
Hi Stephen,

> I’ve noticed some list members use other editors or IDE’s.
> 
> I know two big reasons for using a complex tool is it’s stickiness factors;
> normally a combination of familiarity (hence speed) with a lot of powerful
> features and non-transportable customisation.
> 
> Putting stickiness factors aside, what features in other editors/IDE’s
> would you like to see in DrRacket?

I use both Emacs and DrRacket for Racket code, Emacs for basically
everything else.

As you surmise, there are generally-useful Emacs packages and features
that keep me there. In particular:

1. Paredit: The DrRacket Paredit emulation is different enough to make
it much less convenient. In particular, it leaves lots of extra closing
parens floating around.

2. helm-ag: This lets me very quickly search everything in the closest
Git repo, without it having to be a big ceremony.

3. Magit: This is the best interface to Git on the planet, and having it
in the same editor is much more convenient than switching over to Emacs
just to Git.

4. Speed. Emacs is very snappy, while DrRacket sometimes noticably lags
after input.

5. General editing: Emacs has things like keyboard macros and the
ability to write a quick little on-off bit of elisp that make
large-scale editing far more convenient. As far as I can tell, I'd need
to write a DrRacket tool to make this happen, and that involves a lot
more ceremony than a quick defun in *scratch*. And filling is hard to do
without.

6. M-/ for autocomplete of anything open anywhere.

7. It works the same way for everything. I get all the same features
whether I'm working on Racket, Haskell, Idris, LaTeX, Agda, or a
Makefile (that's about in the order of frequency of editing for me).
It's great to have everything that makes sense in one work well in the
other.

8. Commands like motion and isearch work *everywhere*, not just in text
buffers. So there's no need for a separate search mechanism for things
like settings.

racket-mode supports some things that DrRacket doesn't, above and beyond
standard Emacs. In particular,
1. The ability to get a REPL in the context of a particular submodule,
which makes developing things like tests more convenient.

2. I can put custom indentation rules for my macros into a
.dir-locals.el so that they don't pollute a global indentation config.

3. There's a keybinding to cycle through paren shapes for the
surrounding expression, () -> [] -> {} -> (). I use this constantly.

So why use DrRacket?

1. Good support for languages like Scribble. I never got that working to
my liking in Emacs.

2. The macro stepper is extremely handy when it works, and being able to
inspect syntax objects in the interactions pane is wonderful when the
macro stepper doesn't work.

3. It's easier to create close integrations between a #lang and its
interface.  For example, binding arrows, adding tooltips showing types,
and designing interactive editing commands written in Racket. Doing this
in Emacs is not nearly as fun (and I know, I've done it for Idris).

4. Students use it, so they should be supported.

5. Much better control over subprocesses. It's far easier for a runaway
process in Emacs to make the computer very slow, while DrRacket stops it
when it allocates too much.

Hope that was useful. Thanks for your interest in making things even better!

/David

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Alternatives to DrRacket

2017-11-26 Thread Neil Van Dyke
DrRacket is never going to be able to do everything as well as Emacs 
(and DrRacket can do some things a lot better than Emacs), but a few 
small conveniences that I'd like to see in DrRacket when I use it:


* Visually distinguish identifiers that start special syntax separate 
from `#lang racket/base` (or whatever Scheme-like lang), so, when 
reading code, you know whether some identifier you don't recognize JUST 
CHANGED ALL THE RULES.  See black bold variable names in screenshot: 
http://www.neilvandyke.org/temporary/20171126-quack.png


* Visually distinguish identifiers that define top-level names 
(variables, syntax extensions, unhygienic structs ahem, etc.).  See blue 
in screenshot.  I often visually scan for these names, and making them 
more prominent helps.  (Non-top-level, such as in `let` forms, would 
also be nice, though I don't have Quack doing that, and Quack just uses 
regexp kludges for the top-level ones.)


* Have Emacs-like "filling" of paragraphs of text in comments, including 
support for prefixed paragraphs like bulleted lists.  I sometimes make a 
lot of multiline TODO and code-explanatory comments, and as a compromise 
with the simple text-file representation of source code, and considering 
various 80-column tools and screen sizes that might be involved, I try 
to keep most of the code within the historical 79 columns. So, after I 
touch comments in DrRacket, I have to go to Emacs to re-fill them.


* Have a "tidy" feature like Quack's, which converts tabs to 
spaces, removes extraneous whitespace (ends of lines, multiple blank 
lines, beginning and end of file), and reindents the entire buffer.  
(This doesn't do automatic comment-filling in Emacs, because sometimes 
that requires human discretion or crafting, and can be a mess if the 
code already wasn't written for filling (e.g., if it loses some other ad 
hoc formatting, and ends up blending paragraphs together, destroying 
tables and ASCII art, etc.)


* Emacs-like indenting of comments with 1-semicolon (i.e., indented to a 
column independent of indent level and whether there is preceding code 
on the line; the column position is either a fixed one (40), or, if the 
preceding line has a 1-semicolon comment beyond that fixed column, then 
the column of that preceding comment).  This is an old Emacs 
convention.  I could live without this, but DrRacket's 1-semicolon 
comments indenting to the code indent level means that they get messed 
up when indenting in Emacs or DrRacket, or when doing Quack tidy.


Also, for experienced use of DrRacket (not for intro students), I'd like 
to get rid of some of the clutter outside of the text widgets, such as 
buttons and indicators that I don't need.  And I wish that various 
message subwindows that pop into the frame and then need their close 
boxes to be clicked would go away automatically (see how Emacs uses the 
message area, does isearch, etc.).


--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Alternatives to DrRacket

2017-11-26 Thread 'Royall Spence' via users-redirect
One thing I appreciate about racket-mode in emacs is the more
detailed syntax highlighting. I've attached two screenshots of the
same code in emacs and DrRacket. I think what's happening here is
that racket-mode highlights `for-clause` names and function
applications (sometimes?) while DrRacket does not. I might be
misunderstanding what I'm looking at.
Looking at the two screens, I didn't realize how much DrRacket was
highlighting until I tried to describe the differences. Now I've
adjusted DrRacket to match my emacs colors and find the code a bit
easier to navigate. The default dark colors in DrRacket seem to prefer
bolding over color change, which is less distinct to me.
I've got to say, though, that unlike most other IDEs (for any
language), DrRacket actually does the things it claims to do and isn't
a broken mess.
On Sun, Nov 26, 2017, at 10:42 AM, Stephen De Gabrielle wrote:
> Hi,
> 
> I’ve noticed some list members use other editors or IDE’s. 
> 
> I know two big reasons for using a complex tool is it’s stickiness
> factors; normally a combination of familiarity (hence speed) with a
> lot of powerful features and non-transportable customisation.> 
> Putting stickiness factors aside, what features in other editors/IDE’s
> would you like to see in DrRacket?> 
> Kind regards,
> 
> Stephen
> 
> 
> -- 
> Kind regards,
> Stephen
> --
> Ealing (London), UK
> 


> --
>  You received this message because you are subscribed to the Google
>  Groups "Racket Users" group.>  To unsubscribe from this group and stop 
> receiving emails from it,
>  send an email to racket-users+unsubscr...@googlegroups.com.>  For more 
> options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Alternatives to DrRacket

2017-11-26 Thread Stephen De Gabrielle
Hi,

I’ve noticed some list members use other editors or IDE’s.

I know two big reasons for using a complex tool is it’s stickiness factors;
normally a combination of familiarity (hence speed) with a lot of powerful
features and non-transportable customisation.

Putting stickiness factors aside, what features in other editors/IDE’s
would you like to see in DrRacket?

Kind regards,

Stephen


-- 
Kind regards,
Stephen
--
Ealing (London), UK

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.