www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Dub seems to be using an earlier version of the dependency that I tell

reply vnr <cfcr gmail.com> writes:
Hello 😊

I'm trying to use the combinator Pry parser library 
(https://code.dlang.org/packages/pry/0.3.2), but, as I'll explain 
in the rest of this message, it seems to be a bad version of the 
lib that dub downloads me.

So, simply by adding pry as a dependency on a virgin project, and 
using features that are present in the documentation and 
examples, dub indicates that these features are non-existent. I 
have identified the following combinators that were not 
recognized: `delimited`, `optional`, `skipWs`, `slice`, 
`utfString` and also the `stk `atom. There may be others.

Searching in the code and in the different versions, it seems 
that the combinators I quoted are not part of the old versions 
(under 0.3.2), but it is indeed this version that I included in 
the blank project...

Here is a simple example (by the way, the examples in the 
"example" folder don't work for me either):
```d
import pry;
import std.stdio;

void main()
{
     alias S = SimpleStream!string;
     with(parsers!S)
     {
         auto p = delimited(range!('0', '9').rep, tk!',');
         auto s = "3,3,4".stream;
         string[] values;
         S.Error err;
         auto r = p.parse(s, values, err);
         writeln(r);
     }
}
```
With the following dub.sdl :
```sdl
name "test"
dependency "pry" version="~>0.3.2"
```
By building, I get:
```bash
$ dub build
pry 0.3.2: target for configuration "library" is up to date.
test ~master: building configuration "application"...
source\app.d(9,12): Error: undefined identifier delimited
```

What's wrong with all this? How come I'm using the "newest" 
version of pry, but an older version of the library seems to be 
used instead?

Is there a problem with the way I use dub, or is the library too 
old (4 years old anyway)?

I only need to analyze a very simple format, so changing library 
or method won't be complicated, but since I already have a base 
with this lib, I was wondering if there was not a way to continue 
with it.

Thanks for your help! 😃
Jan 22 2021
parent reply Steven Schveighoffer <schveiguy gmail.com> writes:
On 1/22/21 10:34 AM, vnr wrote:
 Hello 😊
 
 I'm trying to use the combinator Pry parser library 
 (https://code.dlang.org/packages/pry/0.3.2), but, as I'll explain in the 
 rest of this message, it seems to be a bad version of the lib that dub 
 downloads me.
 
 So, simply by adding pry as a dependency on a virgin project, and using 
 features that are present in the documentation and examples, dub 
 indicates that these features are non-existent. I have identified the 
 following combinators that were not recognized: `delimited`, `optional`, 
 `skipWs`, `slice`, `utfString` and also the `stk `atom. There may be 
 others.
 
 Searching in the code and in the different versions, it seems that the 
 combinators I quoted are not part of the old versions (under 0.3.2), but 
 it is indeed this version that I included in the blank project...
 
 Here is a simple example (by the way, the examples in the "example" 
 folder don't work for me either):
 ```d
 import pry;
 import std.stdio;
 
 void main()
 {
      alias S = SimpleStream!string;
      with(parsers!S)
      {
          auto p = delimited(range!('0', '9').rep, tk!',');
          auto s = "3,3,4".stream;
          string[] values;
          S.Error err;
          auto r = p.parse(s, values, err);
          writeln(r);
      }
 }
 ```
 With the following dub.sdl :
 ```sdl
 name "test"
 dependency "pry" version="~>0.3.2"
 ```
 By building, I get:
 ```bash
 $ dub build
 pry 0.3.2: target for configuration "library" is up to date.
 test ~master: building configuration "application"...
 source\app.d(9,12): Error: undefined identifier delimited
 ```
 
 What's wrong with all this? How come I'm using the "newest" version of 
 pry, but an older version of the library seems to be used instead?
 
 Is there a problem with the way I use dub, or is the library too old (4 
 years old anyway)?
It just needs a tag. delimited (for example) added here: https://github.com/DmitryOlshansky/pry-parser/commit/808d01c30b50a928f5795dab7e6c0a7a392899b0 May of 2017, Last tag was v0.3.2 on January 2017. Just add an issue, ask Dmitry to release a new version. -Steve
Jan 22 2021
parent vnr <cfcr gmail.com> writes:
On Friday, 22 January 2021 at 15:57:00 UTC, Steven Schveighoffer 
wrote:
 On 1/22/21 10:34 AM, vnr wrote:
 [...]
It just needs a tag. delimited (for example) added here: https://github.com/DmitryOlshansky/pry-parser/commit/808d01c30b50a928f5795dab7e6c0a7a392899b0 May of 2017, Last tag was v0.3.2 on January 2017. Just add an issue, ask Dmitry to release a new version. -Steve
All right, I'll do that, thank you.
Jan 22 2021