Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add flag to disable generation of withX, addX, clearX methods #613

Closed
dgrnbrg opened this issue Jul 5, 2019 · 1 comment
Closed

Add flag to disable generation of withX, addX, clearX methods #613

dgrnbrg opened this issue Jul 5, 2019 · 1 comment

Comments

@dgrnbrg
Copy link

dgrnbrg commented Jul 5, 2019

Hello, it looks like very large protobuf definitions can cause scalac to generate classes that exceed the JVM's class bytecode limit. I've inlined an example protobuf below. It's possible that this is due to with with/add/clear methods being generated; perhaps removing them would allow this file to build?

This is on Scala 2.12.5.

Here's the error message:

error: Could not write class com/foo/bar/bar/MyProto because it exceeds JVM code size limits. Class file too large!
one error found
one error found
java.lang.RuntimeException: Build failed
        at io.bazel.rulesscala.scalac.ScalacProcessor.compileScalaSources(ScalacProcessor.java:242)
        at io.bazel.rulesscala.scalac.ScalacProcessor.processRequest(ScalacProcessor.java:67)
        at io.bazel.rulesscala.worker.GenericWorker.runPersistentWorker(GenericWorker.java:45)
        at io.bazel.rulesscala.worker.GenericWorker.run(GenericWorker.java:111)
        at io.bazel.rulesscala.scalac.ScalaCInvoker.main(ScalaCInvoker.java:41)
syntax = "proto3";

package com.foo.bar.proto;

import "scalapb/scalapb.proto";

option (scalapb.options) = {
    collection_type: "Array"
};

message MyProto {
    int64 someweirdnumber = 1;
    repeated string foo = 2;

    repeated double fopsfizzbop = 3;
    repeated double fopsfazzk = 4;
    repeated double fopsriak = 5;
    repeated double fopsworkword = 6;
    repeated double fopsnorp = 7;
    repeated double fopsrock = 8;
    repeated double fopslolz = 9;
    repeated double fopshidden = 10;
    repeated double fopsregister = 11;

    repeated double cosfizzbop = 12;
    repeated double cosfazzk = 13;
    repeated double cosriak = 14;
    repeated double cosworkword = 15;
    repeated double cosnorp = 16;
    repeated double cosrock = 17;
    repeated double coslolz = 18;
    repeated double coshidden = 19;
    repeated double cosregister = 20;

    repeated double cpxfizzbop = 21;
    repeated double cpxfazzk = 22;
    repeated double cpxriak = 23;
    repeated double cpxworkword = 24;
    repeated double cpxnorp = 25;
    repeated double cpxrock = 26;
    repeated double cpxlolz = 27;
    repeated double cpxhidden = 28;
    repeated double cpxregister = 29;

    repeated double rrsfizzbop = 30;
    repeated double rrsfazzk = 31;
    repeated double rrsriak = 32;
    repeated double rrsworkword = 33;
    repeated double rrsnorp = 34;
    repeated double rrsrock = 35;
    repeated double rrslolz = 36;
    repeated double rrshidden = 37;
    repeated double rrsregister = 38;

    repeated double e5afizzbop = 39;
    repeated double e5afazzk = 40;
    repeated double e5ariak = 41;
    repeated double e5aworkword = 42;
    repeated double e5anorp = 43;
    repeated double e5arock = 44;
    repeated double e5alolz = 45;
    repeated double e5ahidden = 46;
    repeated double e5aregister = 47;

    repeated double razzfizzbop = 48;
    repeated double razzfazzk = 49;
    repeated double razzriak = 50;
    repeated double razzworkword = 51;
    repeated double razznorp = 52;
    repeated double razzrock = 53;
    repeated double razzlolz = 54;
    repeated double razzhidden = 55;
    repeated double razzregister = 56;

    repeated double obsfufizzbop = 57;
    repeated double obsfufazzk = 58;
    repeated double obsfuriak = 59;
    repeated double obsfuworkword = 60;
    repeated double obsfunorp = 61;
    repeated double obsfurock = 62;
    repeated double obsfulolz = 63;
    repeated double obsfuhidden = 64;
    repeated double obsfuregister = 65;

    repeated double omidfizzbop = 66;
    repeated double omidfazzk = 67;
    repeated double omidriak = 68;
    repeated double omidworkword = 69;
    repeated double omidnorp = 70;
    repeated double omidrock = 71;
    repeated double omidlolz = 72;
    repeated double omidhidden = 73;
    repeated double omidregister = 74;

    repeated double sizzxfizzbop = 75;
    repeated double sizzxfazzk = 76;
    repeated double sizzxriak = 77;
    repeated double sizzxworkword = 78;
    repeated double sizzxnorp = 79;
    repeated double sizzxrock = 80;
    repeated double sizzxlolz = 81;
    repeated double sizzxhidden = 82;
    repeated double sizzxregister = 83;

    repeated double amaebifizzbop = 84;
    repeated double amaebifazzk = 85;
    repeated double amaebiriak = 86;
    repeated double amaebiworkword = 87;
    repeated double amaebinorp = 88;
    repeated double amaebirock = 89;
    repeated double amaebilolz = 90;
    repeated double amaebihidden = 91;
    repeated double amaebiregister = 92;

    repeated double workfizzbop = 93;
    repeated double workfazzk = 94;
    repeated double workriak = 95;
    repeated double workworkword = 96;
    repeated double worknorp = 97;
    repeated double workrock = 98;
    repeated double worklolz = 99;
    repeated double workhidden = 100;
    repeated double workregister = 101;

    repeated double qjjfizzbop = 102;
    repeated double qjjfazzk = 103;
    repeated double qjjriak = 104;
    repeated double qjjworkword = 105;
    repeated double qjjnorp = 106;
    repeated double qjjrock = 107;
    repeated double qjjlolz = 108;
    repeated double qjjhidden = 109;
    repeated double qjjregister = 110;

    repeated double headshoulderfizzbop = 111;
    repeated double headshoulderfazzk = 112;
    repeated double headshoulderriak = 113;
    repeated double headshoulderworkword = 114;
    repeated double headshouldernorp = 115;
    repeated double headshoulderrock = 116;
    repeated double headshoulderlolz = 117;
    repeated double headshoulderhidden = 118;
    repeated double headshoulderregister = 119;

    repeated double germfizzbop = 120;
    repeated double germfazzk = 121;
    repeated double germriak = 122;
    repeated double germworkword = 123;
    repeated double germnorp = 124;
    repeated double germrock = 125;
    repeated double germlolz = 126;
    repeated double germhidden = 127;
    repeated double germregister = 128;

    repeated double scotchfizzbop = 129;
    repeated double scotchfazzk = 130;
    repeated double scotchriak = 131;
    repeated double scotchworkword = 132;
    repeated double scotchnorp = 133;
    repeated double scotchrock = 134;
    repeated double scotchlolz = 135;
    repeated double scotchhidden = 136;
    repeated double scotchregister = 137;

    repeated double ryefizzbop = 138;
    repeated double ryefazzk = 139;
    repeated double ryeriak = 140;
    repeated double ryeworkword = 141;
    repeated double ryenorp = 142;
    repeated double ryerock = 143;
    repeated double ryelolz = 144;
    repeated double ryehidden = 145;
    repeated double ryeregister = 146;

    repeated double bourbonfizzbop = 147;
    repeated double bourbonfazzk = 148;
    repeated double bourbonriak = 149;
    repeated double bourbonworkword = 150;
    repeated double bourbonnorp = 151;
    repeated double bourbonrock = 152;
    repeated double bourbonlolz = 153;
    repeated double bourbonhidden = 154;
    repeated double bourbonregister = 155;

    repeated double vodkafizzbop = 156;
    repeated double vodkafazzk = 157;
    repeated double vodkariak = 158;
    repeated double vodkaworkword = 159;
    repeated double vodkanorp = 160;
    repeated double vodkarock = 161;
    repeated double vodkalolz = 162;
    repeated double vodkahidden = 163;
    repeated double vodkaregister = 164;

    repeated double mathesfizzbop = 165;
    repeated double mathesfazzk = 166;
    repeated double mathesriak = 167;
    repeated double mathesworkword = 168;
    repeated double mathesnorp = 169;
    repeated double mathesrock = 170;
    repeated double matheslolz = 171;
    repeated double matheshidden = 172;
    repeated double mathesregister = 173;

    repeated double inversinfizzbop = 174;
    repeated double inversinfazzk = 175;
    repeated double inversinriak = 176;
    repeated double inversinworkword = 177;
    repeated double inversinnorp = 178;
    repeated double inversinrock = 179;
    repeated double inversinlolz = 180;
    repeated double inversinhidden = 181;
    repeated double inversinregister = 182;

    repeated double micheladafizzbop = 183;
    repeated double micheladafazzk = 184;
    repeated double micheladariak = 185;
    repeated double micheladaworkword = 186;
    repeated double micheladanorp = 187;
    repeated double micheladarock = 188;
    repeated double micheladalolz = 189;
    repeated double micheladahidden = 190;
    repeated double micheladaregister = 191;

    repeated double wazzlefizzbop = 192;
    repeated double wazzlefazzk = 193;
    repeated double wazzleriak = 194;
    repeated double wazzleworkword = 195;
    repeated double wazzlenorp = 196;
    repeated double wazzlerock = 197;
    repeated double wazzlelolz = 198;
    repeated double wazzlehidden = 199;
    repeated double wazzleregister = 200;

}
@dgrnbrg
Copy link
Author

dgrnbrg commented Jul 5, 2019

I'm closing this because it may just be correlated to pre-scala 2.12.8, and this feature is really to enable builds, not because I don't want those nice functions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant