#37 allow modules to define new built-in stream types

open
5
2007-11-18
2007-11-18
No

http://article.gmane.org/gmane.lisp.clisp.devel:16984
http://article.gmane.org/gmane.lisp.clisp.devel:16997

Sam asked:
> why is not screen a module?
> the answer always have been: "for the same reason so sockets have to be
> in stream.d: modules cannot create new built-in streams".
> this is a valid reason for sockets which must be as fast as file and
> pipe streams and thus cannot be gray streams, but why can't window
> streams be gray streams?

The speed argument here too, and a question of ease of implementation.

> PS. actually, it is not clear why modules cannot create new kinds of
> streams. they already create objects, why can't they create
> pseudofunctions?

It's because pseudocode_tab and pseudodata_tab are fixed arrays. If you
were to change it into an extensible array of arrays, modules could register
their share of it.

> and what else is needed for new built-in streams created by modules?

There are 4 instances of 'case strmtype_window' in stream.d. These would
have to be replaced with C function calls, through function pointers.

Bruno

Discussion

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks