summaryrefslogtreecommitdiff
path: root/source4/build/pidl/pidl.pl
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r6973: Merge new version of pidl into the main SAMBA_4_0 branch.Jelmer Vernooij1-17/+45
The main difference in this new version is the extra data structure generated between the IDL data structure and the NDR parser: IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc } This makes the ndr_parser.pm internals much more sane. Other changes include: - Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags. - Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc.. - Use if() {} rather then if () goto foo; everywhere - NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC - By default, top level pointers are now "ref" (as is the default in most other IDL compilers). This can be overridden using the default_pointer_top() property. - initial work on new ethereal parser generators by Alan DeKok and me - pidl now writes errors in the standard format used by compilers, which is parsable by most editors - ability to warn about the fact that pidl extension(s) have been used, useful for making sure IDL files work with other IDL compilers. oh, and there's probably some other things I can't think of right now.. (This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2007-10-10r6926: More build farm fixes:Jelmer Vernooij1-13/+3
- Warn about unknown attributes in .mk - Remove more unused functions (This used to be commit 6bf8126ae9368dc56cf0cd91b972a2d939974679)
2007-10-10r6854: Add --quiet option to pidlJelmer Vernooij1-2/+5
Some work on a testsuite for pidl, including one simple test. (This used to be commit a5aa61f54ea20f0b400359f9b3119f0ff0720431)
2007-10-10r6836: Allow optionally passing in a destination filename for NDR parsersJelmer Vernooij1-12/+18
and NDR headers (This used to be commit 421e7feee96ebda1bf92814e06257d728ea2b1e5)
2007-10-10r5852: Rename ndr.pm to ndr_parser.pmJelmer Vernooij1-1/+1
I'm going to add a ndr.pm later on that'll generate a tree with necessary information for the two NDR backends (eparser, ndr_parser) containing alignment info, etc. (This used to be commit 5162daa9464cd64930f5a8fd0d7b381b122c931d)
2007-10-10r5675: - More DCOM bug fixesJelmer Vernooij1-1/+1
- Keep COM and DCOM more seperated (This used to be commit f694f484c422d0c86beb58e8f62f134f8676d5e1)
2007-10-10r5672: Use switch_type() and the token storage mechanism for unions:Jelmer Vernooij1-4/+1
- Makes union handling less special - Allows unions in arrays, etc - Compatible with midl - Pidl will warn about switch_type() and the type of the switch_is() variable being different (This used to be commit dc6b4ffc82a191631bc16a4b93a4916a39183ec6)
2007-10-10r5669: Couple of minor clearifications, simplifications.Jelmer Vernooij1-4/+4
(This used to be commit 09a9222b600d58271f42ee0870e0c933d2e105d0)
2007-10-10r5490: The big (D)COM commit! :-) Contains most of the changes described in theJelmer Vernooij1-49/+69
DCOM paper in lorikeet. This is the result of 1.5 months work (mainly figuring out how things *really* work) at the end of 2004. In general: - Clearer distinction between COM and DCOM. DCOM is now merely the glue between DCE/RPC+ORPC and COM. COM can also work without DCOM now. This makes the code a lot clearer. - Clearer distinction between NDR and DCOM. Before, NDR had a couple of "if"s to cope with DCOM, which are now gone. - Use "real" arguments rather then structures for function arguments in COM, mainly because most of these calls are local so packing/unpacking data for every call is too much overhead (both speed- and code-wise) - Support several mechanisms to load class objects: - from memory (e.g. part of the current executable, registered at start-up) - from shared object files - remotely - Most things are now also named COM rather then DCOM because that's what it really is. After an object is created, it no longer matters whether it was created locally or remotely. There is a very simple example class that contains both a class factory and a class that implements the IStream interface. It can be tested (locally only, remotely is broken at the moment) by running the COM-SIMPLE smbtorture test. Still to-do: - Autogenerate parts of the class implementation code (using the coclass definitions in IDL) - Test server-side - Implement some of the common classes, add definitions for common interfaces. (This used to be commit 71fd3e5c3aac5f0002001ab29d2248e6c6842d6f)
2007-10-10r5479: Add ODL input support.Jelmer Vernooij1-0/+10
The ODL module can convert an ODL structure to an IDL structure so that: - The COM subsystem can use the ODL structure - The DCE/RPC subsystem can use the IDL structure (This used to be commit a339765d99c90c46f29e2bd71a6aa271febb096d)
2007-10-10r5477: - Move some more of the typelist stuff out of ndr.pmJelmer Vernooij1-0/+5
- Remember INTERFACEs as well (they can be types in DCOM) (This used to be commit d914cd1804636eb1a34805d48c18e016835e973b)
2007-10-10r5319: Make some more alignment code generic, move NDR-specific stuff toJelmer Vernooij1-3/+3
parser.pm (now renamed to ndr.pm). (This used to be commit a469a5fefb4e6941264c11f4bde60eab71f6f7aa)
2007-10-10r5073: Call new autogenerator function for swig stuff instead of old one.Tim Potter1-6/+6
(This used to be commit a1c98101e4ebdcc4a9504d401a9d34c88c797e6e)
2007-10-10r5044: fix pidl--swigStefan Metzmacher1-1/+1
metze (This used to be commit 030bfd8d7feb16fd6d5117d17913b77b1468a507)
2007-10-10r5024: Fix build.Tim Potter1-7/+1
(This used to be commit 425b988541fa669e7f2905fe959522f2d2d50da1)
2007-10-10r5019: Some tweaks to building the swig .i files.Tim Potter1-7/+12
(This used to be commit c252a286efcb9ca2024c8d234c8a65855522fb25)
2007-10-10r4599: Remove some duplicated code in pidl.pl.Tim Potter1-20/+8
Start working on adding support for bitmaps and enums. In progress tweaks for arrays of structures. (This used to be commit d39cb7ecb4c193cbba628ee6d6f9b5c5bbf89d33)
2007-10-10r4469: Version n + 1 of the pidl ethereal parser generator. This version isTim Potter1-9/+17
based on the idea of manipulating the .c and .h files generated by parser.pm with perl regexps and glueing it all together to make an ethereal plugin. I thought this was a pretty crazy idea to start off with but it has turned out to be not as complicated as I thought and has the huge advantage of not duplicating any of the difficult code in parser.pm. (This used to be commit 7007522f83740f41f9a47f5ad5942ea46320d405)
2007-10-10r3881: Split up the LIBNDR_GEN subsystem into NDR_* and RPC_NDR_* subsystems.Jelmer Vernooij1-5/+22
This reduces the total size of the samba binaries from 119 Mb to 73 Mb. Next step will be to have the build system obtain some of this information by itself, so that we don't have to write ~10 lines per interface manually. (This used to be commit 16d905f6b0cbec591eebc44ee2ac9516a5730378)
2007-10-10r3861: - Put ndr and rpc client code in seperate filesJelmer Vernooij1-0/+29
- Add some const (This used to be commit a00bda88e1b6abdc36e5aa8c2a35f64855f67c96)
2007-10-10r3689: Large number of COM updates:Jelmer Vernooij1-1/+12
- Work on server side and local COM support (should work, just no example classes yet) - Use vtables so that local and remote calls can be used transparently - Generate 'proxies and stubs' rather then heavily modified code in client.pm and server.pm. proxies (client side code) are generated in proxy.pm, stubs (server side dispatchers) are generated in stubs.pm - Support registering classes and interfaces - DCOM interfaces no longer have to be in the same IDL file as their base interface, which will allow us to split up dcom.idl (This used to be commit 7466947a23985f9bb15209b67880f7b94dc515c8)
2007-10-10r3442: Add support for the "call_as" and "local" attributes.Jelmer Vernooij1-0/+1
(This used to be commit 8e25117103b0339441bc6328176ed34034005528)
2007-10-10r2777: Correctly abort if an idl file fails to parse. Bloody perl...Tim Potter1-1/+1
(This used to be commit 35ff140b43b353a8848e417bb309046605e98085)
2007-10-10r2704: Complain about 'object interfaces' that don't have version 0.0 (the ↵Jelmer Vernooij1-1/+1
standard doesn't allow them to! I think the idea is that you just create a new interface that inherits your old interface, thus ensuring backwards-compatibility) Re-enable to validator (This used to be commit e364e46a88e5a222c94cdb9cf8e7a124e43f0bcf)
2007-10-10r2253: Add test program, as small example of what's going on.Tim Potter1-1/+11
(This used to be commit fd31ae38dfe2d005b3e01ac059c2e15fa389aad4)
2007-10-10r2223: Include autogenerated header file for idl file we are processing withTim Potter1-0/+1
--eparser. (This used to be commit 68b10c4aeebc4aa1225aab3c8a9fc0a4d28d6455)
2007-10-10r1736: - Pidl updates:Jelmer Vernooij1-1/+1
- Support for "object oriented" interfaces in pidl - Support for inherited interfaces in pidl - Simplification of the support for properties on an interface - Start on dcom rpc torture tests (This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
2007-10-10r1083: Generate prototypes for structs and unions marked "public" in the idl.Tim Potter1-0/+6
Delete various hacks to work around not doing this before. (This used to be commit 5c3c3d3e72d8dd5d995a5bc5b2c7d7217b7c0432)
2007-10-10r955: Update debian package rules... builds nowJelmer Vernooij1-1/+1
(This used to be commit 3df8ff6cf111c6601554bffb411506bd43f726c7)
2007-10-10r948: Tridge suggested that the best way to write the ethereal parser is toTim Potter1-1/+1
base it on the generator for the ndr pull/push code rather than trying to get all the alignment and other junk sorted out by hand. This commit (nearly) gets eparser to the same state it previously was but based on parser.pm. We correctly parse simple types, strings and sids. (This used to be commit 6739cd5fdd353c575626cbfbc6339a8a6908daf7)
2007-10-10r602: Autogenerated packet-dcerpc-samr.c now compiles!Tim Potter1-1/+1
(This used to be commit 0c1069b56e7c80e2b428f6a6b550eacd5ac3d762)
2007-10-10r600: Get rid of trailing whitespace which freaks out emacs' fontification.Tim Potter1-6/+6
(This used to be commit d0383e9a7a0a5bee9a52ddc81d5f89c9f01c269b)
2007-10-10r550: Remove clientfns.pm module - it was a bad idea.Tim Potter1-9/+1
Start to resurrect eparser.pm for auto-generating ethereal dissectors for rpc. (This used to be commit 993a18dd35fb0b09c088eb2bb38d3e14ff755130)
2007-10-10r363: nicer error handling in pidlAndrew Tridgell1-1/+2
(This used to be commit cafc8a5e763834a26432c467abfe84f140bb7d80)
2007-10-10r356: Start of auto-generated client functions. Tridge can you take a lookTim Potter1-0/+8
and tell me what you think? Output does not compile yet. (This used to be commit 65692c9a9301329ad93628778e3d8f9188a67059)
2003-12-15added "pidl.pl --template" to dump a rough template to save typingAndrew Tridgell1-0/+8
when starting a pipe. Thanks to metze for a script that gave the idea. do something like this to use it: pidl.pl --parse --template librpc/idl/XXX.idl > rpc_server/XXX/rpc_XXX.c then fill in the functions in rpc_XXX.c (This used to be commit 68e71d7497ddc7b8239fc4bd7cb3e780a1f53a39)
2003-12-14added auto-generation of the server side boilerplate code for eachAndrew Tridgell1-5/+14
pipe. The server side code gets generated as librpc/gen_ndr/ndr_NAME_s.c and gets included in the pipe module (This used to be commit bd3dcfe5820489a838e19b244266bd9126af5eb4)
2003-12-07don't save the intermediate form to disk unless we need toAndrew Tridgell1-19/+14
(This used to be commit 4e1a5a21a4c8da0d2a23d5ba02168eac1987c260)
2003-12-07make pidl a little less verboseAndrew Tridgell1-4/+2
(This used to be commit 76f48affe5d1e8fd96d5dc9af2ec1059f3dd741c)
2003-12-07re-wrote pidl to use Parse::Yapp instead of Parse::RecDescent, ThisAndrew Tridgell1-13/+4
makes pidl about 3x faster, and also gives us much better error reporting and a more standard grammer definition that will be much easier to code in lex/yacc if we want to do so at a later date. (Parse::Yapp uses essentially the same grammer file as lex/yacc) It also means we no longer need Parse::RecDescent, which should make pidl much more portable. (This used to be commit 4bbaffeb44dca99ad8c0245beb1fddbe01557215)
2003-11-28 * support multiple interfaces in one IDL file in pidlAndrew Tridgell1-12/+0
* make far more generated functions static * get rid of gen_rpc, and include the client calls in ndr_*.c * added placeholder IDL for a number of intefaces (dcom, wzcsvc, browser etc) (This used to be commit a2bdf0be0119023df3c2b9ea515ed355020f2625)
2003-11-28added auto-generation of the IDL interface tables. This makes two lessAndrew Tridgell1-1/+1
places that need to be edited when someone adds a new IDL file. (This used to be commit ccd9ddeed679baa6cbb05ac728b381b50420e00f)
2003-11-23save about 35% of the time for "make idl" by processing multiple IDLAndrew Tridgell1-58/+72
files at once, which means less perl startup time. (This used to be commit 64b2c67e479ddc754d18f752d347ba22a6d77682)
2003-11-22added the beginnings of an IDL validator, to give clearer errors whenAndrew Tridgell1-0/+3
IDL is not valid (This used to be commit c1b708708e262350d697829d444d0fb6a981a80f)
2003-11-22added Parse::RecDescent module into pidl to ensure we all use the sameAndrew Tridgell1-0/+1
version. This should fix the problems Richard was seeing. (This used to be commit 76c24a5cb09b096a9cb490f3bb42af0b9d0f5fa9)
2003-11-20a bit neater way of emitting codeAndrew Tridgell1-1/+1
(This used to be commit 964c3237215b36f5768b98c19689ddc43cf86cac)
2003-11-20 * cope with pidl not being in $HOME/pidlAndrew Tridgell1-2/+2
* cope with empty structures in unions (This used to be commit a706ff78937bea64acd28381466770749566399f)
2003-11-20use a precompiled grammer in pidl. This speeds up pidl by about aAndrew Tridgell1-5/+2
factor of 2 on my system. (This used to be commit a291dd835f68ae5a109670b1d1ca1a48b2aacfb6)
2003-11-17* support inline arraysAndrew Tridgell1-1/+1
* add enough to allow security descriptors to be IDL described * added "noprint" property to allow fancy printing for specific functions (This used to be commit 08df20c8bed57bbb9a9a907c807ad850382fd4e8)
2003-11-14* make pidl.pl exit with an error on a parse errorAndrew Tridgell1-0/+1
* fixed a buffers/scalars bug in structures (This used to be commit e66daf527357c65228db55a3d3319a0c20d8f51c)