ben
2021-10-22 14:26:45

to anyone with Racket 8.0 or 8.1 handy, does this program run for you? #lang racket/base (struct a (n1) #:prefab) (struct b a (n2) #:prefab) (define val #s((b a 1) 0 1)) (unless (b? val) (+ "unreachable 1")) (unless (a? val) (+ "unreachable 2")) 7.9CS is ok 8.2CS hits unreachable 2


ryanc
2021-10-22 14:31:44

8.1CS gives a contract violation involving “unreachable 2”


samth
2021-10-22 14:33:55

All of 8.0, 8.1, 8.2, and HEAD give that result


ben
2021-10-22 14:44:53

thanks! I’ll open an issue


soegaard2
2021-10-22 15:15:29

Do you think it is enough to change it to [(regexp-match #px"^fc\\d\\d" uname) 'fedora] I.e. only match “fc” at the beginning?


samth
2021-10-22 15:15:48

Maybe?


samth
2021-10-22 15:16:38

Here’s what uname -a produces in a docker container: root@b60ac181bef4:/# uname -a Linux b60ac181bef4 5.11.0-34-generic #36-Ubuntu SMP Thu Aug 26 19:22:09 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux


soegaard2
2021-10-22 15:17:19

I’ll look for the result of uname on a Fedora machine.


soegaard2
2021-10-22 15:18:36

It shows something like: uname -a Linux <http://ourhost.edu\|ourhost.edu> 4.19.12-301.fc29.x86_64 #1 SMP Mon Dec 24 01:58:57 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux So simply adding ^ won’t work.


soegaard2
2021-10-22 15:21:16

Maybe the suggestion of @samdphillips of using /etc/os-release might work. Is that available on all distributions?


soegaard2
2021-10-22 15:22:56

Or … simply skip the two first fields returned by uname.


samdphillips
2021-10-22 15:30:25

FWIW /etc/os-release exists on Amazon Linux 2, Debian (used in the full install Racket docker image), and Ubuntu. It’s part of systemd so a “modern” Linux distro should have it.


badkins
2021-10-22 15:37:15

Works fine in DrRacket for me: version 8.2.0.8--2021-09-07(-/f) [cs].


badkins
2021-10-22 15:37:32

i.e. no contract violation


samth
2021-10-22 15:38:43

Do you have “debugging” on in DrR?


badkins
2021-10-22 15:39:18

How do I determine that?


badkins
2021-10-22 15:39:24

it does fail at command line for me


samth
2021-10-22 15:39:32

In the Language dialog


badkins
2021-10-22 15:40:00

samth
2021-10-22 15:40:28

Yes, as you can see “Debugging and profiling” is checked


samth
2021-10-22 15:40:34

top right


samth
2021-10-22 15:40:55

Also it should print “Language: racket/base, with debugging; memory limit: 256 MB.” in the Interactions window


badkins
2021-10-22 15:40:59

Yes, I do see that. I don’t know the full effect of that being on or off.


ben
2021-10-22 15:41:23

thanks @badkins I’ll add that to the issue


badkins
2021-10-22 15:41:25

Ah, yes, I see it in the Language: line.


samth
2021-10-22 15:41:42

That turns on debugging annotations with errortrace. If I turn it off the error comes back.


samth
2021-10-22 15:42:08

racket -l errortrace -t bug.rkt also succeeds


sorawee
2021-10-22 21:31:49

@mflatt I don’t know where to give you a feedback on expeditor, so let me use this space.

; seems to terminate the REPL. This is not ideal because code copied from various places could have comments.

Also, thanks for adjusting return in the middle! That was kinda annoying.


mflatt
2021-10-22 21:35:10

I pushed a repair for ; - thanks!


sorawee
2021-10-22 21:36:35

When typing ,help or any xrepl command that has an optional argument for the first time, it will wait for the optional argument. Interestingly, subsequent commands will not wait for optional arguments.


mflatt
2021-10-22 21:47:07

Yes, I haven’t yet sorted that out. xrepl assumes that input all goes through (current-input-port), but that’s not how expeditor works. Also, xrepl assumes S-expressions. I guess this issue is the most important one left.


sorawee
2021-10-22 21:59:30

I’m not sure if this is intentional, but typing 1 2 results in 1 being evaluated, and 2 is left on the editor. I can then enter again to evaluate 2. In the previous REPL, it would evaluate both 1 and 2.

Not saying it’s wrong. The behavior is somewhat reasonable.

One thing that does seem weird is the the history, because I would have:

1 22 in the history. I would expect 1 and 2, or just 1 2 with both 1 and 2 evaluated together.


mflatt
2021-10-23 01:41:30

I’ve pushed some improvements on the xrepl side.


sorawee
2021-10-23 03:20:40

Related to the previous issue: consider:

;; a ;; b ;; c 1


sorawee
2021-10-23 03:22:34

Enter it, and press up. The history entry initially appears to be

;; a it requires a down key to reveal that there is a next line:

;; a ;; b and two more down keys to reveal the whole

;; a ;; b ;; c 1 I would expect that there is only one history entry, and it’s the full

;; a ;; b ;; c 1