cancel
Showing results for 
Search instead for 
Did you mean: 

Use .Q functions or not

codh
New Contributor

in q.k, after .q.fmt, it says: /DO NOT USE ROUTINES PAST HERE. SUBJECT TO CHANGE 

I also noticed .Q.qm is removed from 3.6. 

So the question is: Shall users stay away from .Q functions? 

 

 

2 ACCEPTED SOLUTIONS

davidcrossey
Moderator Moderator
Moderator

Hi codh,

Thanks for your query on the KX Community!

@kjame is spot on here 👏🏻 .Q namespace tool usage is encouraged as it provides a lot of useful functionality. Users should only use the publicly documented API as per The .Q namespace

Undocumented functions are subject to change without warning or notice as per the disclaimer in .q.k - usage is at the user's own risk.

We can look into documenting changes to the publicly documented API as these occur.

Kind regards,

David

 

View solution in original post

SJT
Contributor
Contributor

The behaviour of q primitives and KX namespace objects occasionally changes. Most such changes are extensions: what was formerly an error now does something useful. The Reference does not always note in which version the extension was made. If your version of q does not behave as described, check the Release Notes.  

Very occasionally a change breaks earlier behavior. The Reference documents such changes; generally for one major version. Currently, the Reference should show any breaking changes introduced since V3.0; for anything earlier, see the Release Notes.

View solution in original post

5 REPLIES 5

kjame
New Contributor

.Q namespace functions can (and should!) be used --> they are very useful in lots of different situations. However it is safest to only use .Q functions that are documented on the .Q reference card found here: https://code.kx.com/q/ref/dotq/.

Using any other undocumented .Q namespace functions (or any other undocumented namespace function) may cause issues as these are what we call 'exposed infrastructure'

codh
New Contributor

Thank you for the answer. @kjame. This is most people expected.

I'm here actually try to get an official answer from kx, a promise that they will never break documented .Q functions.

 

davidcrossey
Moderator Moderator
Moderator

Hi codh,

Thanks for your query on the KX Community!

@kjame is spot on here 👏🏻 .Q namespace tool usage is encouraged as it provides a lot of useful functionality. Users should only use the publicly documented API as per The .Q namespace

Undocumented functions are subject to change without warning or notice as per the disclaimer in .q.k - usage is at the user's own risk.

We can look into documenting changes to the publicly documented API as these occur.

Kind regards,

David

 

View solution in original post

SJT
Contributor
Contributor

The behaviour of q primitives and KX namespace objects occasionally changes. Most such changes are extensions: what was formerly an error now does something useful. The Reference does not always note in which version the extension was made. If your version of q does not behave as described, check the Release Notes.  

Very occasionally a change breaks earlier behavior. The Reference documents such changes; generally for one major version. Currently, the Reference should show any breaking changes introduced since V3.0; for anything earlier, see the Release Notes.

View solution in original post

Great clarification here, thanks very much for sharing 🙌