2

All that I know about CURLLink is that it is a package, I believe. I need to find out more about CURLLinkUtilities but I'm not really sure where to start, and all my searches are turning up dry.

Is there a place for Mathematica Package documentation?

Jmeeks29ig
  • 1,447
  • 7
  • 13
  • 1
    It would be helpful to know why you need to find out more about it to help us formulate our answers. To begin with, do you know that CURLLink is probably a wrapper around libcurl? You could start by doing Needs["CURLLink\"], then using?CURLFormorResourceFunction["PrintDefinitions"][CURLForm]. It does not appear than any documentation is shipped aroundCURLLink`, and normally this means that it is unsupported by WRI. – Carl Lange Jun 05 '19 at 00:31
  • @CarlLange - thanks, that helps. I did give more detail in another question, here at https://mathematica.stackexchange.com/questions/199644/what-could-cause-an-uncaught-throwfailed-curllinkutilitiesexception-return?noredirect=1#comment516736_199644. It was about an error message I am continually getting while trying to use WebExecute[]. However, I thought that a more simple question could help get me pointed in the right direction for how to figure out the error I am getting. – Jmeeks29ig Jun 05 '19 at 00:37
  • 1
    On my system, it seems the source code for CURLLink lives at FileNameJoin[{$InstallationDirectory, "SystemFiles", "Links", "CURLLink"}] It does not appear that any documentation is included but the source is readable. – Carl Lange Jun 05 '19 at 00:39
  • @CarlLange Thanks, I appreciate it! – Jmeeks29ig Jun 05 '19 at 00:41
  • 1
    Happy to help. You would likely have a better time solving your root issue by posting more of your code in the question you linked - particularly if you can come up with a Minimum Working Example that exhibits the problem you're seeing. – Carl Lange Jun 05 '19 at 00:43
  • @CarlLange Ok, I will try and figure that out. The only trouble is that the error doesn't seem to happen until more than 20 minutes after starting the program, and I'm not exactly sure what part of the code is causing the error, but I will see if I can replicate it with simpler code. – Jmeeks29ig Jun 05 '19 at 00:45

1 Answers1

5

It does not appear that any documentation is shipped around CURLLink, and normally this means that it is unsupported by WRI. However, the source is shipped without any obfuscation and most of it is in Wolfram Language, so you can gain insight into its inner workings that way.

On my system, it seems the source code for CURLLink lives at

FileNameJoin[{$InstallationDirectory, "SystemFiles", "Links", "CURLLink"}]

From a cursory glance, CURLLink is a wrapper around libcurl that allows for low-level HTTP actions. More than likely it's used internally as the underpinnings of URLRequest and friends, and it is probably undocumented because it's somewhat un-WL to have these direct wrappers to external functionality (calling libcurl to POST a HTTP form) instead of a more idiomatic interface (such as URLRequest). It may also be undocumented because the interface is very likely to change in future releases - although I find this reason unlikely because libcurl itself is historically extremely stable.

You may find the libcurl documentation somewhat useful in your escapades.

Carl Lange
  • 13,065
  • 1
  • 36
  • 70
  • Thanks, I really appreciate it. Would there be anything that I might be able to do to help make the program more stable without having to look through all the code? I can look through it and get a better understanding of it, but I am doubtful that I will be able to pinpoint exactly what is causing the issue. For example, just a shot in the dark - could there be some simple solution like clearing the memory that might make me less likely to run into trouble? – Jmeeks29ig Jun 05 '19 at 01:07
  • Unfortunately, without (a lot) more details and a MWE, I can't help you with that problem. Perhaps do a bit of research on how to debug WL code, since it seems like your issue is quite involved. Have you tried simply Catching the exception? – Carl Lange Jun 05 '19 at 07:58
  • Not yet, to be honest. I don't yet fully understand the Catch and Throw part of Mathematica, but I should probably get around to learning it. I, since last comment, made Print[] statements to get a better idea of when the program is cutting out, but I know that isn't the most ideal way to deal with bugs. – Jmeeks29ig Jun 05 '19 at 21:13
  • It seems to be a problem with MailServerConnect[], because that is where to program seems to always stop. – Jmeeks29ig Jun 05 '19 at 21:16