Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: XS or SWIG

by MZSanford (Curate)
on Feb 03, 2003 at 16:35 UTC ( #232291=note: print w/replies, xml ) Need Help??


in reply to XS or SWIG

Personally ...

I find that XS makes faster code, since it does not insert another layer of abstraction like SWIG. I think that XS is the best long term solution, since it is the interface provided with perl, and creates very tightly integrated code (letting you handle argument stacks and such as needed). But, i have to admit, porting large libraries can be tedious (but worth it in my opinion)

When i have used SWIG, i have found that quite often it creates code with minor problems that have to be fixed to get it to compile. Since SWIG creates an entire abstraction layer, this C-diving is not simple. But, if the code it creates works, it is ver fast to impliment.

For me, SWIG is quicker to create code, but XS creates better code. Your milage may vary.


from the frivolous to the serious

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://232291]
help
Chatterbox?
[ambrus]: Corion: from the docs, it definitely looks like it would be possible to write an AnyEvent driver for it using Prima::File and Prima::Timer.
[ambrus]: (I haven't found an idle event.)
[ambrus]: However, I also looked at the internals, and found two interesting things:
[marto]: stupid xpath question, I have a xpath copied from the browser, is the * wildcard supposed to work for IDs? e.g. '//*[@id="*"]/ div/div/header/p/a '?
[ambrus]: The main loop for unixish systems is in https://metacpan. org/source/ KARASIK/Prima-1. 49/unix/apc_app.c. It is a hand-rolled select loop, but also always spins at least once every 0.2 seconds for some reason.
[ambrus]: marto: no, not that way. if you just want to test for an existing id attribute, then write *[@id] , or you can match a regexp to the value of that attribute like *[@id=~/something/ ]
[marto]: ambrus, thanks I ended up going with '//*[starts- with(@id, "thread_")]...
[ambrus]: Sometimes it's easier to just match elements in ways other than xpath, like directly with perl code.

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (6)
As of 2016-12-08 10:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (140 votes). Check out past polls.