.oO I want to write a program to simulate my experience in Narshe. - - PowerPoint PPT Presentation

oo i want to write a program to simulate my experience in
SMART_READER_LITE
LIVE PREVIEW

.oO I want to write a program to simulate my experience in Narshe. - - PowerPoint PPT Presentation

T HE R ACKET P ACKAGE S YSTEM Planet 5.0 and Beyond! .oO I want to write a program to simulate my experience in Narshe. 2 .oO I want to write a program to simulate my experience in Narshe. % emacs magitek.rkt 3 4 .oO Now I need to share my


slide-1
SLIDE 1

THE RACKET PACKAGE SYSTEM

Planet 5.0 and Beyond!

slide-2
SLIDE 2

.oO I want to write a program to simulate my experience in Narshe.

2

slide-3
SLIDE 3

.oO I want to write a program to simulate my experience in Narshe. % emacs magitek.rkt

3

slide-4
SLIDE 4

4

slide-5
SLIDE 5

.oO Now I need to share my package...

5

slide-6
SLIDE 6

.oO Now I need to share my package... % scp magitek.rkt server:public-html/

6

slide-7
SLIDE 7

Terra wrote: Please try my program at: http://terra.com/magitek.rkt % scp magitek.rkt server:public-html/

7

slide-8
SLIDE 8

8

slide-9
SLIDE 9

.oO I should expand my simulation to include the treasure house.

9

slide-10
SLIDE 10

.oO I should expand my simulation to include the treasure house. % mkdir narshe

10

slide-11
SLIDE 11

.oO I should expand my simulation to include the treasure house. % mv magitek.rkt narshe/magitek.rkt % mkdir narshe

11

slide-12
SLIDE 12

.oO I should expand my simulation to include the treasure house. % emacs narshe/lone-wolf.rkt % mv magitek.rkt narshe/magitek.rkt % mkdir narshe

12

slide-13
SLIDE 13

.oO I should expand my simulation to include the treasure house. % scp -r narshe server:public-html/ % emacs narshe/lone-wolf.rkt % mv magitek.rkt narshe/magitek.rkt % mkdir narshe

13

slide-14
SLIDE 14

Terra wrote: Please try my program at: http://terra.com/narshe % scp -r narshe server:public-html/ % emacs narshe/lone-wolf.rkt % mv magitek.rkt narshe/magitek.rkt % mkdir narshe

14

slide-15
SLIDE 15

15

slide-16
SLIDE 16

.oO Ah, I messed up the first time... let me fix that

16

slide-17
SLIDE 17

.oO Ah, I messed up the first time... let me fix that % emacs narshe/lone-wolf

17

slide-18
SLIDE 18

.oO Ah, I messed up the first time... let me fix that % scp -r narshe server:public-html/ % emacs narshe/lone-wolf

18

slide-19
SLIDE 19

Terra wrote: Please re-download my program at: http://terra.com/narshe % scp -r narshe server:public-html/ % emacs narshe/lone-wolf

19

slide-20
SLIDE 20

20

slide-21
SLIDE 21

Banon: Did you know you can install as a package to get updates without having to remember what to download?

21

slide-22
SLIDE 22

Banon: Did you know you can install as a package to get updates without having to remember what to download? % raco pkg install http://terra.com/narshe

22

slide-23
SLIDE 23

Banon: Did you know you can install as a package to get updates without having to remember what to download? % .... % raco pkg install http://terra.com/narshe

23

slide-24
SLIDE 24

Banon: Did you know you can install as a package to get updates without having to remember what to download? % raco pkg update % .... % raco pkg install http://terra.com/narshe

24

slide-25
SLIDE 25

25

slide-26
SLIDE 26

.oO I’d like to analyze the sound from Narshe.

26

slide-27
SLIDE 27

.oO I’d like to analyze the sound from Narshe. % dd if=/dev/dsp of=narshe/soundtrack.wav

27

slide-28
SLIDE 28

.oO I’d like to analyze the sound from Narshe. % emacs narshe/music.rkt % dd if=/dev/dsp of=narshe/soundtrack.wav

28

slide-29
SLIDE 29

.oO I’d like to analyze the sound from Narshe. % zip -r narshe.zip narshe % emacs narshe/music.rkt % dd if=/dev/dsp of=narshe/soundtrack.wav

29

slide-30
SLIDE 30

.oO I’d like to analyze the sound from Narshe. % scp narshe.zip server:public-html/ % zip -r narshe.zip narshe % emacs narshe/music.rkt % dd if=/dev/dsp of=narshe/soundtrack.wav

30

slide-31
SLIDE 31

31

slide-32
SLIDE 32

Terra wrote: I just updated my package! The new source is... % raco pkg update http://terra.com/narshe.zip

32

slide-33
SLIDE 33

33

slide-34
SLIDE 34

.oO I found a way to improve the Lone Wolf scenario.

34

slide-35
SLIDE 35

.oO I found a way to improve the Lone Wolf scenario. % emacs narshe/lone-wolf.rkt

35

slide-36
SLIDE 36

.oO I found a way to improve the Lone Wolf scenario. % zip -r narshe.zip narshe % emacs narshe/lone-wolf.rkt

36

slide-37
SLIDE 37

.oO I found a way to improve the Lone Wolf scenario. % scp narshe.zip server:public-html/ % zip -r narshe.zip narshe % emacs narshe/lone-wolf.rkt

37

slide-38
SLIDE 38

38

slide-39
SLIDE 39

Terra wrote: I updated the package, you may want to update!

39

slide-40
SLIDE 40

Celes: Um, I try to check for updates regularly and it’s annoying that it always downloads the whole ZIP file and it is never different.

40

slide-41
SLIDE 41

Racket Developer: You should be using a checksum file for that.

41

slide-42
SLIDE 42

Racket Developer: You should be using a checksum file for that. % md5sum narshe.zip > narshe.zip.CHECKSUM

42

slide-43
SLIDE 43

Racket Developer: You should be using a checksum file for that. % scp narshe.zip.CHECKSUM server:public-html/ % md5sum narshe.zip > narshe.zip.CHECKSUM

43

slide-44
SLIDE 44

44

slide-45
SLIDE 45

.oO I found ANOTHER way to improve everything.

45

slide-46
SLIDE 46

.oO I found ANOTHER way to improve everything. % emacs narshe/lone-wolf.rkt

46

slide-47
SLIDE 47

.oO I found ANOTHER way to improve everything. % md5sum narshe.zip > narshe.zip.CHECKSUM % zip -r narshe.zip narshe % emacs narshe/lone-wolf.rkt

47

slide-48
SLIDE 48

.oO I found ANOTHER way to improve everything. % scp narshe.zip narshe.zip.CHECKSUM server:public-html/ % md5sum narshe.zip > narshe.zip.CHECKSUM % zip -r narshe.zip narshe % emacs narshe/lone-wolf.rkt

48

slide-49
SLIDE 49

Terra wrote: Please run ’raco pkg update’ if you want the new version. % scp narshe.zip narshe.zip.CHECKSUM server:public-html/ % md5sum narshe.zip > narshe.zip.CHECKSUM % zip -r narshe.zip narshe % emacs narshe/lone-wolf.rkt

49

slide-50
SLIDE 50

50

slide-51
SLIDE 51

Terra: Why is it so inconvenient to update my package?

51

slide-52
SLIDE 52

Racket Developer: It’s because you’re not using Github.

52

slide-53
SLIDE 53

Racket Developer: It’s because you’re not using Github. % git push % .... % git init % cd narshe

53

slide-54
SLIDE 54

Terra wrote: Thanks, now you should use a new source: % raco pkg update git://github.com/terra/narshe % git push % .... % git init % cd narshe

54

slide-55
SLIDE 55

55

slide-56
SLIDE 56

.oO Is it much easier to update now?

56

slide-57
SLIDE 57

.oO Is it much easier to update now? % git push % emacs narshe/music.rkt

57

slide-58
SLIDE 58

.oO That was awesome! % git push % emacs narshe/music.rkt

58

slide-59
SLIDE 59

Terra wrote: I just did an update everyone! % git push % emacs narshe/music.rkt

59

slide-60
SLIDE 60

60

slide-61
SLIDE 61

Racket Developer: Please stop spamming the mailing list when your package changes, just put it

  • n the catalog and people can read the RSS feed.

61

slide-62
SLIDE 62

.oO That’s great!

62

slide-63
SLIDE 63

.oO That’s great! % raco pkg catalog-upload narshe git://github.com/terra/narshe

63

slide-64
SLIDE 64

Terra wrote: Now you can use: % raco pkg update narshe % raco pkg catalog-upload narshe git://github.com/terra/narshe

64

slide-65
SLIDE 65

65

slide-66
SLIDE 66

.oO Let’s make a change...

66

slide-67
SLIDE 67

.oO Let’s make a change... % git push % emacs narshe/music.rkt

67

slide-68
SLIDE 68

68

slide-69
SLIDE 69

.oO I’ll go to the next stage of the simulation

69

slide-70
SLIDE 70

.oO I’ll go to the next stage of the simulation % emacs returners/banon.rkt (require narshe/magitek) % mkdir returners

70

slide-71
SLIDE 71

.oO I’ll go to the next stage of the simulation % racket returners/banon.rkt ERROR % emacs returners/banon.rkt (require narshe/magitek) % mkdir returners

71

slide-72
SLIDE 72

.oO I’ll go to the next stage of the simulation % raco pkg install --link narshe % racket returners/banon.rkt ERROR % emacs returners/banon.rkt (require narshe/magitek) % mkdir returners

72

slide-73
SLIDE 73

73

slide-74
SLIDE 74

.oO Now I need to distribute Returners

74

slide-75
SLIDE 75

.oO Now I need to distribute Returners % raco pkg catalog-upload .... % git push % .... % git init % cd returners

75

slide-76
SLIDE 76

76

slide-77
SLIDE 77

Cyan: I tried to install Returners and it died because narshe/magitek wasn’t found.

77

slide-78
SLIDE 78

Cyan: I tried to install Returners and it died because narshe/magitek wasn’t found. % emacs returners/info.rkt #lang info (define deps '("narshe"))

78

slide-79
SLIDE 79

79

slide-80
SLIDE 80

.oO I should really be using tm-halts from Racket v6

80

slide-81
SLIDE 81

.oO I should really be using tm-halts from Racket v6 % emacs narshe/lone-wolf.rkt .... tm-halts? ....

81

slide-82
SLIDE 82

82

slide-83
SLIDE 83

Edgar: Um, I can’t use this in Racket v5.9

83

slide-84
SLIDE 84

Edgar: Um, I can’t use this in Racket v5.9 % git push % git branch narshe-for-v5.9 % git checkout master^

84

slide-85
SLIDE 85

Edgar: Um, I can’t use this in Racket v5.9 % raco pkg catalog-version narshe 5.9 git://github.com/terra/narshe#narshe-for-v5.9 % git push % git branch narshe-for-v5.9 % git checkout master^

85

slide-86
SLIDE 86

86

slide-87
SLIDE 87

Gau: Um, when I check this out on my machine into ’narshe-for-v5.9’, then it is messed up because I can’t require ’narshe/magitek’.

87

slide-88
SLIDE 88

Gau: Um, when I check this out on my machine into ’narshe-for-v5.9’, then it is messed up because I can’t require ’narshe/magitek’. % emacs narshe/info.rkt #lang info (define collection "narshe")

88

slide-89
SLIDE 89

Racket Developer: Internal linking is bad! % emacs narshe/info.rkt #lang info (define collection "narshe")

89

slide-90
SLIDE 90

90

slide-91
SLIDE 91

.oO I have a new feature to include about Locke

91

slide-92
SLIDE 92

.oO I have a new feature to include about Locke % emacs narshe/locke.rkt

92

slide-93
SLIDE 93

.oO I have a new feature to include about Locke % emacs returners/jidoor.rkt (require narshe/locke) % emacs narshe/locke.rkt

93

slide-94
SLIDE 94

Locke: I just installed returners on my machine that already has narshe and it was broken because narshe/lock isn’t there! % emacs returners/jidoor.rkt (require narshe/locke) % emacs narshe/locke.rkt

94

slide-95
SLIDE 95

Racket Developer: You should use version 1.0 if this is the stable interface and version 2.0 if you meant to use version 1.0 before. % emacs returners/jidoor.rkt (require narshe/locke) % emacs narshe/locke.rkt

95

slide-96
SLIDE 96

Racket Developer: You should use version 1.0 if this is the stable interface and version 2.0 if you meant to use version 1.0 before. % emacs narshe/info.rkt (define version "2.0") % emacs returners/jidoor.rkt (require narshe/locke) % emacs narshe/locke.rkt

96

slide-97
SLIDE 97

Racket Developer: You should use version 1.0 if this is the stable interface and version 2.0 if you meant to use version 1.0 before. % emacs returners/info.rkt (define deps '(("narshe" #:version "2.0"))) % emacs narshe/info.rkt (define version "2.0") % emacs returners/jidoor.rkt (require narshe/locke) % emacs narshe/locke.rkt

97

slide-98
SLIDE 98

98

slide-99
SLIDE 99

Leo: How do I get version 0.0 of narshe after it has gone? I loved that version even though it didn’t last long.

99

slide-100
SLIDE 100

Racket Developer: This question does not make sense.

100

slide-101
SLIDE 101

.oO I should play the music rather than analyze it.

101

slide-102
SLIDE 102

.oO I should play the music rather than analyze it. % emacs narshe/music-player.rkt (match (system-type) .... dynamic-require ...)

102

slide-103
SLIDE 103

.oO I should play the music rather than analyze it. % emacs narshe/info.rkt (define deps '(("openal" #:platform macosx) ("directaudio" #:platform windows) ("libsndfile" #:platform unix))) % emacs narshe/music-player.rkt (match (system-type) .... dynamic-require ...)

103

slide-104
SLIDE 104

104

slide-105
SLIDE 105

.oO Gee, maybe I should write some documentation.

105

slide-106
SLIDE 106

.oO Gee, maybe I should write some documentation. % emacs narshe/narshe.scrbl

106

slide-107
SLIDE 107

.oO Gee, maybe I should write some documentation. % emacs narshe/info.rkt (define scribblings '(("narshe.scrbl"))) % emacs narshe/narshe.scrbl

107

slide-108
SLIDE 108

Ghost: Um, raco setup dies when I install your package because scribble isn’t on my EC2 instance. % emacs narshe/info.rkt (define scribblings '(("narshe.scrbl"))) % emacs narshe/narshe.scrbl

108

slide-109
SLIDE 109

Ghost: Um, raco setup dies when I install your package because scribble isn’t on my EC2 instance. % emacs narshe/info.rkt (define deps .... "scribble-lib" ....) % emacs narshe/info.rkt (define scribblings '(("narshe.scrbl"))) % emacs narshe/narshe.scrbl

109

slide-110
SLIDE 110

Ghost: Um, I don’t /want/ to install scribble to run your package. % emacs narshe/info.rkt (define deps .... "scribble-lib" ....) % emacs narshe/info.rkt (define scribblings '(("narshe.scrbl"))) % emacs narshe/narshe.scrbl

110

slide-111
SLIDE 111

Ghost: Um, I don’t /want/ to install scribble to run your package. % emacs narshe/info.rkt (define build-deps '("scribble-lib")) % emacs narshe/info.rkt (define deps .... "scribble-lib" ....) % emacs narshe/info.rkt (define scribblings '(("narshe.scrbl"))) % emacs narshe/narshe.scrbl

111

slide-112
SLIDE 112

112

slide-113
SLIDE 113

Terra: How do you install it at all without building it?

113

slide-114
SLIDE 114

Terra: How do you install it at all without building it? % raco pkg export-pkg --binary narshe

114

slide-115
SLIDE 115

115

slide-116
SLIDE 116

Gogo: I do the same thing for my students, but I want them to have the code too, so I use a built package and just download it from the server.

116

slide-117
SLIDE 117

Gogo: I do the same thing for my students, but I want them to have the code too, so I use a built package and just download it from the server. % wget http://..../built/v6.0/narshe.zip

117

slide-118
SLIDE 118

118

slide-119
SLIDE 119

Terra: I’d really like to run ’raco play soundtrack.wav’

119

slide-120
SLIDE 120

Terra: I’d really like to run ’raco play soundtrack.wav’ % emacs narshe/raco.rkt

120

slide-121
SLIDE 121

Terra: I’d really like to run ’raco play soundtrack.wav’ % emacs narshe/info.rkt (define raco-commands ....) % emacs narshe/raco.rkt

121

slide-122
SLIDE 122

Mog: I installed your package and ’raco play’ doesn’t work like you say it does. % emacs narshe/info.rkt (define raco-commands ....) % emacs narshe/raco.rkt

122

slide-123
SLIDE 123

Mog: I installed your package and ’raco play’ doesn’t work like you say it does. % emacs narshe/info.rkt (define setup-collects ....) % emacs narshe/info.rkt (define raco-commands ....) % emacs narshe/raco.rkt

123

slide-124
SLIDE 124

124

slide-125
SLIDE 125

Mog: This music player stuff is cool, but why do I need this Narshe stuff?

125

slide-126
SLIDE 126

Mog: This music player stuff is cool, but why do I need this Narshe stuff? % mkdir music-player

126

slide-127
SLIDE 127

Mog: This music player stuff is cool, but why do I need this Narshe stuff? % mkdir music-player/music % mkdir music-player

127

slide-128
SLIDE 128

Mog: This music player stuff is cool, but why do I need this Narshe stuff? % mv narshe/music-player.rkt music-player/music/music-player.rkt % mkdir music-player/music % mkdir music-player

128

slide-129
SLIDE 129

Mog: This music player stuff is cool, but why do I need this Narshe stuff? % mkdir music-player/narshe % mv narshe/music-player.rkt music-player/music/music-player.rkt % mkdir music-player/music % mkdir music-player

129

slide-130
SLIDE 130

130

slide-131
SLIDE 131

% emacs music-player/narshe/music-player.rkt

131

slide-132
SLIDE 132

% emacs music-player/info.rkt (define collection 'multi) (define raco-commands ....) % emacs music-player/narshe/music-player.rkt

132

slide-133
SLIDE 133

% raco play .... ERROR % emacs music-player/info.rkt (define collection 'multi) (define raco-commands ....) % emacs music-player/narshe/music-player.rkt

133

slide-134
SLIDE 134

% emacs music-player/narshe /info.rkt (define raco-commands ....) % raco play .... ERROR % emacs music-player/info.rkt (define collection 'multi) (define raco-commands ....) % emacs music-player/narshe/music-player.rkt

134

slide-135
SLIDE 135

% emacs narshe /info.rkt (define deps ....) % emacs music-player/narshe /info.rkt (define raco-commands ....) % raco play .... ERROR % emacs music-player/info.rkt (define collection 'multi) (define raco-commands ....) % emacs music-player/narshe/music-player.rkt

135

slide-136
SLIDE 136

136

slide-137
SLIDE 137

Relm: Um, when I compile my program that built

  • n narshe/music-player, I get a warning from raco

setup.

137

slide-138
SLIDE 138

Relm: Um, when I compile my program that built

  • n narshe/music-player, I get a warning from raco

setup. % emacs narshe /info.rkt (define implies ....)

138

slide-139
SLIDE 139

139

slide-140
SLIDE 140

Mash: Here’s a patch that makes it faster by using the GPU!

140

slide-141
SLIDE 141

Mash: Here’s a patch that makes it faster by using the GPU! % curl ... | git am

141

slide-142
SLIDE 142

Mash: Here’s a patch that makes it faster by using the GPU! % cat music-player/data/gpu-vector.rkt % curl ... | git am

142

slide-143
SLIDE 143

Setzer: Um, I can’t install music-player and general-gpu % cat music-player/data/gpu-vector.rkt % curl ... | git am

143

slide-144
SLIDE 144

Racket Developer: There’s a conflict. I think we should talk about it. % cat music-player/data/gpu-vector.rkt % curl ... | git am

144

slide-145
SLIDE 145

Racket Developer: There’s a conflict. I think we should talk about it. % rm music-player/data/gpu-vector.rkt % cat music-player/data/gpu-vector.rkt % curl ... | git am

145

slide-146
SLIDE 146

Terra: Isn’t this backwards incompatible? % rm music-player/data/gpu-vector.rkt % cat music-player/data/gpu-vector.rkt % curl ... | git am

146

slide-147
SLIDE 147

147

slide-148
SLIDE 148

.oO I have a new implementation idea...

148

slide-149
SLIDE 149

.oO I have a new implementation idea... % emacs narshe/*

149

slide-150
SLIDE 150

Shadow: Ah, everything is broken!! % emacs narshe/*

150

slide-151
SLIDE 151

Racket Developer: This is a different package, you should name it different. % emacs narshe/*

151

slide-152
SLIDE 152

Racket Developer: This is a different package, you should name it different. % git branch narshe-v1 % git checkout master^ % emacs narshe/*

152

slide-153
SLIDE 153

Racket Developer: This is a different package, you should name it different. % raco pkg catalog-source narshe git://github.com/terra/narshe#narshe-v1 % git branch narshe-v1 % git checkout master^ % emacs narshe/*

153

slide-154
SLIDE 154

Racket Developer: This is a different package, you should name it different. % raco pkg catalog-upload narshe2 git://github.com/terra/narshe % raco pkg catalog-source narshe git://github.com/terra/narshe#narshe-v1 % git branch narshe-v1 % git checkout master^ % emacs narshe/*

154

slide-155
SLIDE 155

155

slide-156
SLIDE 156

Strago: I’d like to run all the versions at the same time for my Narshian simulation simulation environment

156

slide-157
SLIDE 157

Racket Developer: Yes, it is possible to deprecate completely, but we generally want to allow all old versions.

157

slide-158
SLIDE 158

Racket Developer: Yes, it is possible to deprecate completely, but we generally want to allow all old versions. % emacs narshe/info.rkt (define collection "narshe2")

158

slide-159
SLIDE 159

159

slide-160
SLIDE 160

Umaro: I need to make sure I get everything install exactly right on my deployment.

160

slide-161
SLIDE 161

Umaro: I need to make sure I get everything install exactly right on my deployment. % raco pkg export-installed > narshe.com.pkgs

161

slide-162
SLIDE 162

Umaro: I need to make sure I get everything install exactly right on my deployment. % scp narshe.com.pkgs server: % raco pkg export-installed > narshe.com.pkgs

162

slide-163
SLIDE 163

Umaro: I need to make sure I get everything install exactly right on my deployment. % raco pkg import-installed < narshe.com.pkgs % scp narshe.com.pkgs server: % raco pkg export-installed > narshe.com.pkgs

163

slide-164
SLIDE 164

164

slide-165
SLIDE 165

Umaro: It takes too long to run import-installed, because it installs everything and I’m worried that this Zip-backed package won’t have old versions.

165

slide-166
SLIDE 166

Racket Developer: Zip-backed packages aren’t very good.

166

slide-167
SLIDE 167

Racket Developer: Zip-backed packages aren’t very good. % raco pkg export-pkgs --binary narshe.com.zip pkg ...

167

slide-168
SLIDE 168

Racket Developer: Zip-backed packages aren’t very good. % scp narshe.com.zip server: % raco pkg export-pkgs --binary narshe.com.zip pkg ...

168

slide-169
SLIDE 169

Racket Developer: Zip-backed packages aren’t very good. % raco pkg import-pkgs narshe.com.zip % scp narshe.com.zip server: % raco pkg export-pkgs --binary narshe.com.zip pkg ...

169

slide-170
SLIDE 170

Thank You!

170

slide-171
SLIDE 171

Model of Package System

171

slide-172
SLIDE 172

Model of Package System

  • The core is the same as the leaves.

172

slide-173
SLIDE 173

Model of Package System

  • The core is the same as the leaves.
  • Social processes are as valuable, if not more

valuable, than technical frameworks.

173

slide-174
SLIDE 174

Model of Package System

  • The core is the same as the leaves.
  • Social processes are as valuable, if not more

valuable, than technical frameworks.

  • Compatibility is very valuable and rarely broken

(2htdp/image, #lang mzscheme, etc)

174

slide-175
SLIDE 175

Model of Package System

  • The core is the same as the leaves.
  • Social processes are as valuable, if not more

valuable, than technical frameworks.

  • Compatibility is very valuable and rarely broken

(2htdp/image, #lang mzscheme, etc)

  • Incompatibility is removing features and

disobeying documentation.

175

slide-176
SLIDE 176

Model of a Package

176

slide-177
SLIDE 177

Model of a Package

  • A package is a set of modules. From any

collection.

177

slide-178
SLIDE 178

Model of a Package

  • A package is a set of modules. From any

collection.

  • Version numbers go up to indicate new features.

178

slide-179
SLIDE 179

Model of a Package

  • A package is a set of modules. From any

collection.

  • Version numbers go up to indicate new features.
  • Dependencies are vanilla, versioned, and

platformed.

  • Dependency violations are warnings, not errors.

179

slide-180
SLIDE 180

A Good Package...

  • uses a neutral name.
  • is on Github*.
  • has an explicit name or is ’multi.
  • is listed officially and does not conflict with

anything.

180

slide-181
SLIDE 181

A Better Package...

  • starts at version 0.0 and switches to 1.0 on

stability. If interface is same, no version change. If interface is grown, version increases. If interface shrinks, a fork occurs.

181

slide-182
SLIDE 182

A Better Package...

  • starts at version 0.0 and switches to 1.0 on

stability. If interface is same, no version change. If interface is grown, version increases. If interface shrinks, a fork occurs.

  • updates the catalog when depencies on Racket

versions are added.

182

slide-183
SLIDE 183

A Better Package...

  • starts at version 0.0 and switches to 1.0 on

stability. If interface is same, no version change. If interface is grown, version increases. If interface shrinks, a fork occurs.

  • updates the catalog when depencies on Racket

versions are added.

  • has informative tags and description in catalog.

183

slide-184
SLIDE 184

A Best Package...

  • includes documentation and tests.
  • is a ’multi package.
  • specifies a license and uses a problem tracker.
  • has a responsive author.

184

slide-185
SLIDE 185

A not so good package...

  • exposes the internal development of the package.
  • is not for public consumption.

185

slide-186
SLIDE 186

A not so good package...

  • exposes the internal development of the package.
  • is not for public consumption.
  • You can communicate with different groups by

sharing sources and making your own catalog.

186

slide-187
SLIDE 187

Model of a System

  • The same computer may contain many users of

Racket and many installations of Racket.

  • Packages can be arbitrarily shared or not shared

between any combination of these through installation names and scopes.

187

slide-188
SLIDE 188

Open Problems

  • There’s work to do, but we know how to do it, it

just takes time.

188

slide-189
SLIDE 189

Open Problems

  • There’s work to do, but we know how to do it, it

just takes time.

  • Documentation will be a challenge.

189

slide-190
SLIDE 190

Open Problems

  • There’s work to do, but we know how to do it, it

just takes time.

  • Documentation will be a challenge.

What is a structure property?

190

slide-191
SLIDE 191

Open Problems

  • There’s work to do, but we know how to do it, it

just takes time.

  • Documentation will be a challenge.

What is a structure property? What functions work on lists?

191

slide-192
SLIDE 192

Open Problems

  • There’s work to do, but we know how to do it, it

just takes time.

  • Documentation will be a challenge.

What is a structure property? What functions work on lists? How can the Tutorial, Guide, Exegesis, Reference, data/file/net, etc documentation be extensible?

192

slide-193
SLIDE 193

Open Problems

  • There’s work to do, but we know how to do it, it

just takes time.

  • Documentation will be a challenge.

What is a structure property? What functions work on lists? How can the Tutorial, Guide, Exegesis, Reference, data/file/net, etc documentation be extensible?

  • How can we truly support multiple simultaneous

versions for all aspects of the system, core and

  • therwise?

193