On Sun, Jun 10, 2007 at 03:10:01PM +0000, Martin Stjernholm,  Roxen IS @ Pike  
developers forum wrote:
> > the describe_functions are not generic, means, i'd have to do multiple
> > tests, and it still does not make it any easier to get the type.
> If you want the type then that's exactly what _typeof gives you. No
> sprintf'ing and no scanning needed. I don't understand what you want.

what i want is to be able to decide whether a given object is a module or
not.

having the type as given by _typeof() or by master()->describe_module()
does not solve the problem because each module has a different type,
and i'd have to try to look at the output for hints that help me decide
if that type is a module or not. 

eg: by doing stunts like: search(sprintf("%O", _typeof(Stdio)), "node")

> > master()->objects[object_program(Stdio)];
> > should have done the trick. i am puzzled why that does not work.
> Ah, yes, dirnodes and joinnodes don't end up there, only "proper"
> module objects. The fc mapping is better:

but the DO end up there:

> master()->objects;
(1) Result: ([ /* 30 elements */
              master: master(),
              object_program(_static_modules): _static_modules,
              object_program(_Charset): _Charset,
              object_program(Locale.Charset): Locale.Charset,
              object_program(Pike): Pike,
              object_program(System): System,
              object_program(Stdio): Stdio,
              object_program(Locale): Locale,
              object_program(___Math): ___Math,
              object_program(Math): Math,
              object_program(Array): Array,
              object_program(String): String,
              object_program(Gmp): Gmp,
              object_program(_ADT): _ADT,
              object_program(ADT): ADT,
              object_program(Parser.XML.Tree): Parser.XML.Tree,
              object_program(Parser.XML): Parser.XML,
              object_program(__builtin): __builtin,
              object_program(Parser._parser): Parser._parser,
              object_program(Parser): Parser,
              object_program(Tools.AutoDoc.PikeObjects): 
Tools.AutoDoc.PikeObjects,
              object_program(Tools.AutoDoc.PikeExtractor): 
Tools.AutoDoc.PikeExtractor,
              object_program(Tools.AutoDoc): Tools.AutoDoc,
              object_program(Thread): Thread.Thread(0),
              object_program(Stdio.Terminfo): Stdio.Terminfo,
              object_program(Tools.Hilfe): Tools.Hilfe,
              object_program(Getopt): Getopt,
              object_program(Parser.Pike): Parser.Pike,
              object_program(Tools.AutoDoc.DocParser): Tools.AutoDoc.DocParser,
              object_program(Error): Error
            ])

>   > master()->fc_reverse_lookup (Mapping);
>   (1) Result: "/home/mast/Pike/stable/lib/modules/Mapping"
>   > master()->fc_reverse_lookup (Stdio);
>   (2) Result: "/home/mast/Pike/stable/lib/modules/Stdio"

what version of pike is that?

i get:
> master()->fc_reverse_lookup(Stdio);
(2) Result: 0

fails both in the 7.7 pikefarm build as well as in a regular installed 7.6

greetings, martin.
      • ... Mirar @ Pike developers forum
        • ... Martin Baehr
      • ... Martin Nilsson (Opera Mini - AFK!) @ Pike (-) developers forum
        • ... Martin Baehr
  • fin... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
  • fin... Martin Stjernholm, Roxen IS @ Pike developers forum
    • ... Martin Baehr
      • ... Martin Stjernholm, Roxen IS @ Pike developers forum
        • ... Martin Baehr
          • ... Martin Stjernholm, Roxen IS @ Pike developers forum
            • ... Martin Baehr
              • ... Martin Stjernholm, Roxen IS @ Pike developers forum
              • ... Martin Stjernholm, Roxen IS @ Pike developers forum
              • ... Martin Baehr
        • ... Martin Baehr

Reply via email to