[gambit-list] Speed on XML-parsing
Marc Feeley
feeley at iro.umontreal.ca
Sat Aug 16 09:46:31 EDT 2008
That's a bug... input-port-byte-position should require a "byte
port". Device ports such as files are byte ports, but so are u8vector
ports. So it should work on u8vector ports. While I was testing this
I wrote this code, which you may find useful.
(define (read-as-u8vector filename)
(let* ((size (file-size filename))
(u8vect (make-u8vector size 0))
(n (with-input-from-file filename
(lambda ()
(read-subu8vector u8vect 0 size)))))
(if (not (equal? n size))
(error "inconsistent file size???")
u8vect)))
(define (test filename)
(let ((u8vect (read-as-u8vector filename)))
(let ((port (open-input-u8vector u8vect)))
(let ((content (read-line port)))
(close-input-port port)
content))))
(pretty-print (test "~/.emacs"))
On 16-Aug-08, at 8:27 AM, Hans Petter Egesund wrote:
> Hi, more on slow xml...
>
> I can't get ssax to parse from a string, it seems the library is
> using input-port-byte-position which needs a device input port. So
> the attempt so slurp the file into memory, and then do the parsing
> ends here?!
>
> I will tell if I come up with something interesting.
>
> Petter
>
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
More information about the Gambit-list
mailing list