I have added an option to JOD to dump in the ASCII85 format. I'm using the verbs of load 'convert/misc/ascii85. Some observations. The orginal (wraplinear) verb verb is considerably faster and consumes less working memory but it does produce a larger output. The ASCII85 option produces smaller dump files and works better for all the LaTeX and EPS documents that are stored in JOD development dictionaries.
I will eventually document this "feature" after I've spent sometime working with this dump format. The old dump format has been working perfectly for years so I am reluctant to push out a fundamental change without sufficient testing. jdb On Fri, Oct 10, 2008 at 9:20 AM, John Baker <[EMAIL PROTECTED]> wrote: > I just took a quite look at the ascii85 verbs. They produce a > representation > that could be easily adapted by JOD dump scripts. > > > > > On Fri, Oct 10, 2008 at 9:05 AM, John Baker <[EMAIL PROTECTED]> wrote: > >> Oleg, >> >> The best source of information about jod is the jod.pdf. It can be seen >> at: >> >> http://bakerjd99.googlepages.com/jod.pdf >> >> You are correct about the representation used in dump files being >> inefficient for character data. The dump files in jodsource >> are complete dictionary dumps - essentially long JOD >> scripts that can rebuild the binary jfiles dictionary. I wrote the dump >> code a number of years ago and my main concern was to produce something >> that was absolutely portable and editable on just about anything. >> The wrapped a. encoding does this by avoiding all character >> translation and and "strange character" behaviour. The wrapping >> also circuments any line length limitations in J and external >> editors. This brute force approach has held up well and even handled new >> datatypes (like unicode) without a hiccup. >> >> What J really needs is a new 5!:n call that generates a zip >> style compressed byte stream for any J object that is >> constructed from only visible ASCII characters. Then we >> could have maximum portability and low byte counts. >> >> On Thu, Oct 9, 2008 at 1:31 PM, Oleg Kobchenko <[EMAIL PROTECTED]>wrote: >> >>> JOD is an interesting project. It looks like >>> it manages J definitions. Is there a list of features >>> or datasheet with a list of things what it is capable >>> of to get an idea what to expect before actually fully >>> learning it. >>> >>> For example, is there a GUI to manage these definitions? >>> >>> Also there is the JOD source addon, which is noticeable >>> by its size and casually looking into it is shows some >>> kind of encoding. From first impression it may not be >>> most efficient. What is the reasoning behind it? >>> >>> For example, here JOD encoding is more than 2.5 times larger >>> than ascii85 encoding. >>> >>> load'general/jod' >>> ('zz';61) wraplinear_ajodmake_ (3 : '5!:5<''y''')a.{~ ?.~255 >>> zz=:'' >>> zz=:zz,'246 220 69 151 40 194 29 168 174 89 196 53 13 181 4 107 63 17' >>> zz=:zz,'5 82 249 12 193 121 187 19 186 88 242 114 231 80 96 150 147 1' >>> zz=:zz,'77 66 211 162 153 160 136 61 169 14 36 127 129 7 203 182 208 ' >>> zz=:zz,'195 133 239 243 49 117 98 100 138 157 116 5 202 142 52 200 23' >>> zz=:zz,'6 118 55 188 170 86 244 25 207 84 85 51 226 171 143 67 210 21' >>> zz=:zz,'8 234 158 120 35 173 212 183 59 101 237 190 238 180 131 206 1' >>> zz=:zz,'39 201 179 224 223 184 43 232 140 227 216 132 154 222 104 0 1' >>> zz=:zz,'5 78 122 39 8 50 251 192 109 47 229 247 245 204 23 230 165 17' >>> zz=:zz,'2 115 191 163 110 38 233 77 253 42 6 79 34 105 106 75 44 21 2' >>> zz=:zz,'0 144 95 130 56 60 111 141 3 221 164 87 112 10 94 235 228 81 ' >>> zz=:zz,'54 74 103 250 128 185 73 17 102 135 152 123 225 33 9 197 137 ' >>> zz=:zz,'46 83 18 26 97 214 159 217 134 32 71 70 31 16 64 93 248 156 9' >>> zz=:zz,'2 2 252 205 45 37 22 11 146 254 198 48 57 213 27 108 68 215 1' >>> zz=:zz,'24 65 91 145 176 58 209 113 62 219 28 119 166 76 99 240 148 1' >>> zz=:zz,'67 90 189 72 149 1 30 41 161 199 126 24 155 178 241 125{a. ' >>> zz=:912{.zz >>> #('zz';61) wraplinear_ajodmake_ (3 : '5!:5<''y''')a.{~ ?.~255 >>> 1083 >>> >>> load'convert/misc/ascii85' >>> 'zz=:fromascii85 0 : 0',LF,')',~toascii85 a.{~ ?.~255 >>> zz=:fromascii85 0 : 0 >>> >>> p=r*'.)I"'Y$&\#%CH=S5Hdu\%)I5$'=q<:Ep$8,QBSR?e"W8'Lcq^I,_(@MbI5d8L%"UfF^em= >>> >>> STG%XN\niDFuR(6<qI9U<)ka6X,fWrg?P8S,H]J)4([fnm^.VlMoi<`hmb3#N8rQDRbh]X%o.Eu >>> >>> #Vu:mD(k#Foun67V6"aQUM_FC:&QOG:EjLf9.UelOC*T!4E$2]h5"+k$=<&Z;)V$ZqLH+J&S?fc >>> Hf6+S`JH3G&[EMAIL PROTECTED] >>> +R35[F/T>QXiJ/L;/?P5`HT3Ro'b7+ZfP>EQ-Nd;_A)*-\8RA+5_\ >>> >.mIl!?N\`a*nkpZLN> >>> ~> >>> ) >>> #'zz=:fromascii85 0 : 0',LF,')',~toascii85 a.{~ ?.~255 >>> 404 >>> >>> >>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >>> >> >> > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
