J. Ian Johnson | 22 Feb 19:38
Favicon

Scribble documentation bug

In scribblings/scribble/manual.scrbl:
cite does not take only strings. I've been using bib-entries with it exclusively, actually. What all can it
take? I see it makes a link element with a tag like `(cite ,@all-things-that-might-be-strings). I'd
rather not go mucking about with what tags are and such to know what's really going on.

Thanks,
-Ian
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Timur Sufiev | 22 Feb 14:25
Picon
Gravatar

Possible bug in get-module-code function of syntax/modcode

Hi all!

It seems to me that a bug exists in handling so-extensions inside 
get-module-code. Imagine a situation when we want to use get-module-code 
on mzmimer.so file which is located inside 
/opt/dozor/racket/lib/racket/collects/jetinfo/compiled/native/i386-linux/3m 
and is specified by (lib "mzmimer" "jetinfo") module-spec. No, I don't 
really want to do some introspection on so-extension, but geiser (emacs 
extension for racket) does.

Going inside get-module-code (look for squre-bracketed line numbers in 
listing below), path = 
/opt/dozor/racket/lib/racket/collects/jetinfo/mzmimer ...
[1]: orig-path = /opt/dozor/racket/lib/racket/collects/jetinfo/mzmimer
[2]: base = /opt/dozor/racket/lib/racket/collects/jetinfo, orig-file = 
mzmimer
[3]: main-file = mzmimer, alt-file = #f
[4]: main-path = /opt/dozor/racket/lib/racket/collects/jetinfo/mzmimer
[5]: alt-path = #f
[6]: main-path-d = #f
[7]: alt-path-d = #f
[8]: try-alt? = #t
[9]: error!

main-path-d is #f because orig-path doesn't actually exist, but it is ok 
for so-extension. alt-file doesn't exist neither, but stiil we try to 
calculate path to it. The bug in my opinion resides in line [8]: 
[try-alt? (and (not alt-path-d) (not main-path-d))]
so I've changed it to: [try-alt? (and alt-file (not alt-path-d) (not 
main-path-d))]
(Continue reading)

John Clements | 21 Feb 22:56
Gravatar

OS X 10.8 includes new restrictions on running apps

In a move that I find not even slightly surprising, the new Apple operating system (10.8, out soon?)
includes new features that make it harder for developers to deploy their code on user machines. 

http://tidbits.com/article/12795

Specifically, the technology is called "Gatekeeper", and it allows users to choose between various
levels of security.  At the highest level, you can choose to run only programs distributed through Apple's
"App Store." Bleah. There is also a next level down, though, that runs any program that has acquired a
signing certificate from Apple. It's free... if you're a member of Apple's developer program, which
appears to currently be $99/year. 

I'm also curious/worried about what the terms of the agreement are; as with any development environment,
Racket can *certainly* be used to run ill-behaved programs; if acquiring the certificate means signing
something accepting legal liability for harm done by users of the application, Racket is a non-starter.

Anyhow, just something else to be aware of.

John

Attachment (smime.p7s): application/pkcs7-signature, 4624 bytes
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev
Stephen Bloch | 21 Feb 22:44
Favicon

Interactive Stepping

The latest student query on "users <at> racket-lang" comes from a student who typed an expression at the prompt
and hit "Step" to single-step its evaluation.  Which is a reasonable thing to do, and one I've wished for
years were possible.  How difficult would it be?

A related wish-list item: I'd like to be able to select a section of code in Definitions, hit "Step", and
single-step through only that part of the code.  Sure, go ahead and EVALUATE everything before that, but
don't turn on the Stepper until you get to that section of code.

Stephen Bloch
sbloch@...

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

David Van Horn | 21 Feb 20:38
Favicon
Gravatar

EOPL tests

Is there a test suite for EOPL?  I didn't find anything in collects/eopl 
or collects/tests, but eopl.rkt mentions the "test harness".

David
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Norman Gray | 19 Feb 15:42
Picon
Picon
Gravatar

Formlets and POST


Greetings.

Web-server formlets currently send their form input back to the server via an HTTP GET request.  They should
probably generate a form which uses HTTP POST instead.

There are two problems with using GET for this.

1. If there's any sensitive information in the form, such as a password, then it's very obviously exposed in
the URL and stored in logs, which wouldn't be the case if the form contents are in the HTTP request body
instead.  The latter would provide at least a little bit of obscurity, rather than serious security.  This
is of course not a great way to do authentication (to say the least), but if one trusts the network or one is
talking to localhost, then it's good enough for some applications.  The problem isn't just confined to
passwords, obviously.

2. HTTP defines GET to be side-effect free, and cacheable.  Therefore if there's an intermediary server
between the client and the server, and it sees a GET request being made, it is (a) permitted to send a cached
version if the URL is one it has seen before, and (b) permitted to make the GET request to the origin server
multiple times (for example if there is or appears to be a failure), and send only one response to the
client.  Either of these might mess up the form-mediated client-server interaction, and there's nothing
anyone can do about it.  This is probably more of a theoretical problem than a common practical one.  POST is
not defined to be side-effect free, and is not automatically cacheable.

Of course (again), the point of continuation-based forms is that they're functional, just like GET, but
many people implement services using GET forms which are intended to have side-effects.

Simply defining (and using) a send/formlets/post which is identical to send/formlets but with a [method
"POST"] added, seems to work fine, because formlet-process uses request-bindings/raw, which handles
both GET and POST requests.  Therefore, I think that should probably be the default.

(Continue reading)

James McCoy | 19 Feb 03:17
Picon
Favicon
Gravatar

Build failures since 5.2

Hi all,

Since 5.2, racket has been failing to build on some of Debian's less
mainstream architectures where it had been building fine with 5.1.3.
The failure scenario below is common among a few of the architectures
(armel[0], s390[1], s390x[2])

[0]: https://buildd.debian.org/status/fetch.php?pkg=racket&arch=armel&ver=5.2.1%2Bdfsg1-1&stamp=1329603367
[1]: https://buildd.debian.org/status/fetch.php?pkg=racket&arch=s390&ver=5.2.1%2Bdfsg1-1&stamp=1329602283
[2]: https://buildd.debian.org/status/fetch.php?pkg=racket&arch=s390x&ver=5.2.1%2Bdfsg1-1&stamp=1329601933

make[4]: Entering directory `/build/racket-5.2.1+dfsg1/build/racket/gc2'
mkdir xsrc/usr/bin/make xsrc/precomp.h
make[5]: Entering directory `/build/racket-5.2.1+dfsg1/build/racket/gc2'
env XFORM_PRECOMP=yes ../racketcgc -cqu /build/racket-5.2.1+dfsg1/src/racket/gc2/xform.rkt
--setup . --cpp "gcc -E -I./.. -I/build/racket-5.2.1+dfsg1/src/racket/gc2/../include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 "  --keep-lines -o xsrc/precomp.h /build/racket-5.2.1+dfsg1/src/racket/gc2/precomp.c
...d/racket-5.2.1+dfsg1/collects/racket/private/reqprov.rkt:161:8: expand: unbound identifier
in module (in phase 1, transformer environment) in: recur-pre
make[5]: *** [xsrc/precomp.h] Error 1
make[5]: Leaving directory `/build/racket-5.2.1+dfsg1/build/racket/gc2'

I took a look at one of Debian's wiki pages[3] to see if there was any
commonality among those architectures which could explain this.

[3]: http://wiki.debian.org/ArchitectureSpecificsMemo

They all, unlike many others, use unsigned char by default.  Adding
"-fsigned-char" to CFLAGS fixes the issue.  So it seems something was
added between 5.1.3 and 5.2 that is sensitive to char signedness but
(Continue reading)

Matthias Felleisen | 18 Feb 17:03
Favicon

Fwd: [PRL] Julia: new language for scientific computing


Begin forwarded message:

> From: Asumu Takikawa <asumu@...>
> Date: February 18, 2012 10:58:14 AM EST
> To: PRL <prl@...>
> Subject: [PRL] Julia: new language for scientific computing
> 
> http://julialang.org/blog/2012/02/why-we-created-julia/
> 
> Heavily inspired by Lisp, but aimed at scientific computation. It has
> macros for a non-sexpression syntax (no real hygiene though).
> 
> Cheers,
> Asumu
> 
> _______________________________________________
> PRL mailing list
> PRL@...
> https://lists.ccs.neu.edu/bin/listinfo/prl

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Neil Toronto | 18 Feb 16:56
Picon
Gravatar

Possible promotional poster (with apologies to Matthias)

Jay had a cool idea to make propagan--er, promotional posters. The 
attached SVG isn't the style Jay wanted (like the Obama "Hope" posters) 
but I kinda like it. It's here:

http://students.cs.byu.edu/~ntoronto/matthias-poster.svg

Comments and criticisms?

I'm not sure where to put the PLT logo.

Neil ⊥
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev
Tobias Hammer | 16 Feb 14:53
Picon
Favicon
Gravatar

Request for max-log-level

Hi,

i have to synchronize the log levels of a racket logger and an external  
logging
system. Therefore i need the information what the highest logging level of  
a
logger is to already discard any messages in the external system that have  
no
receiver.
Because there is, as far as i know, no possibility to get a notification  
whenever
the internal accepted level changes i have to synchronize pretty often.  
This is
currently only possible by cycling through all levels and check via  
log-level?
which is cumbersome and, at least for my needs, too slow.
Would it be possible to add a function that returns the current maximum  
level of
a logger? The needed information is already stored in  
Scheme_Logger::want_level
but there is no accessor. The following addition (excl. function  
registration)
to error.c would do the job:

static Scheme_Object *
max_log_level(int argc, Scheme_Object *argv[])
{
   Scheme_Logger *logger;
   Scheme_Object *result;

(Continue reading)

Pierpaolo Bernardi | 15 Feb 10:30
Picon
Gravatar

Check-syntax glitch?

Hello,

(for company firewall reasons I cannot use the bug report facility.
Please bear with me).

Racket version 5.2.1;
Environment: windows "Windows NT 6.1 (Build 7601) Service Pack 1"
(win32\i386\3m) (get-display-depth) = 32;

If I put the following text in a buffer:

====
#lang racket

(struct foo (a))

(define (bar x)
  (match x
    ((foo #f) 0)
    ((foo #t) 1)))
====

Running check-syntax, the "foo" in the first branch of the match is
linked to the struct definition, while the foo in the second branch is
not linked.  Is this the intended behaviour or there is a mistake?

Cheers
P.
_________________________
  Racket Developers list:
(Continue reading)


Gmane