glDrawArrays(GL_POINTS, , ) and the core profile

Hello everyone,
Been stuck with the following problem for a while, so any insight or clue will be greatly appreciated.
The following commands work fine with glsl 330 and the compatibility profile, but not with the core profile.

                glDrawArrays(GL_POINTS, 0, nPoints);

If the core profile is requested, glGetError returns a GL_INVALID_OPERATION.

If it can help, here are the shader codes.

// vertex shader
#version 330

uniform mat4 pvmMatrix;
uniform mat4 vmMatrix;
in vec4 vertexPosition_modelSpace;
in vec4 vertexColor;

uniform float pointsize;

out vec4 pointcolor;
out vec3 Position_viewSpace;

void main(void)
    gl_Position =  pvmMatrix * vec4(, 1.0f);
    vec4 vsPos = vmMatrix * vec4(, 1.0f);
    Position_viewSpace =;

    gl_PointSize = pointsize;
    pointcolor = vertexColor;
//fragment shader
#version 330

uniform float clipPlane0; // defined in view-space

in vec3 Position_viewSpace;
in vec4 pointcolor;

layout(location=0) out vec4 fragColor;

void main(void)
    if (Position_viewSpace.z > clipPlane0)

    fragColor = pointcolor;

Thanks in advance,

Core doesn’t support client arrays or the default VAO (IIRC), and so requires VAO+VBO use. You might check that.

The missing VAO was indeed the cause of the problem.
Thanks for the help.