晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /usr/share/doc/protobuf-c/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/protobuf-c/TODO
----------------------
--- IMPORTANT TODO ---
----------------------

--------------------
--- NEEDED TESTS ---
--------------------
- test:
  - service method lookups
  - out-of-order fields in messages (ie if the number isn't ascending)
  - gaps in numbers: check that the number of ranges is correct
  - default values
  - message unpack alloc failures when allocating new slab
  - message unpack alloc failures when allocating unknown field buffers
  - packed message corruption.
    - meta-todo: get a list of all the unpack errors together to check off

---------------------
--- DOCUMENTATION ---
---------------------
Document:
  - services
  - check over documentation again

--------------------------
--- LOW PRIORITY STUFF ---
--------------------------
- support Group (whatever it is)
- proper support for extensions
  - slot for ranges in descriptor
  - extends is implemented as c-style function
    whose name is built from the package, the base message type-name
    and the member.  which takes the base message and returns the
    value, if it is found in "unknown_values".
    boolean package__extension_member_name__get(Message *message,
                                                type     *out);
    void    package__extension_member_name__set_raw(type      in,
                                                ProtobufCUnknownValue *to_init);

------------------------------------
--- EXTREMELY LOW PRIORITY STUFF ---
------------------------------------
- stop using qsort in the code generator:  find some c++ish way to do it

----------------------------------------------
--- ISSUES WE ARE PROBABLY GOING TO IGNORE ---
----------------------------------------------
- strings may not contain NULs

-------------------------
--- IDEAS TO CONSIDER ---
-------------------------

- optimization: structures without repeated members could skip
  the ScannedMember phase

- optimization: a way to ignore unknown-fields when unpacking

- optimization: certain functions are not well setup for WORDSIZE==64;
  especially the int64 routines are inefficient that way.
  The best might be an internal #define WORDSIZE (sizeof(long)*8)"
  except w/ a real constant there, one that the preprocessor can use.
  I think the functions in protobuf-c.c are already tagged.

- lifetime functions for messages:
   message__new()
       return a new message using an allocator with standard allocation policy
   message__unpack_onto(...)
       unpack onto an initialized message
   message__clear(...)
       clears all allocations, does not free the message itself
   message__free(...)
       free the message.
  [yeah, right: after typing it out, i see it's way too complicated]

- switching to pure C.
  - Rewrite the code-generator in C, including the parser.
  - This would have the huge advantage that we could use ".proto" files
    directly, instead of having to invoke the compilers.
  - keep in a separate c file for static linking optimziation purposes
  - need alignment tests
  - the CAVEATS should discuss our structure-packing assumptions

haha - 2025