Expression is not assignable c ошибка

What you are doing here is a conditionnal assignation.

Usually you can do it like that:

if (base == 0)
    theBase = 10;
else
    theBase = base;

Here you chosed to use a ternary expression. It does work a bit like an if/else structure, but it is really different.

The ternary return a value, it’s not made to execute code based on a condition. No, it return a value based on a condition.

So here, you have to do:

theBase = (base == 0 ? 10 : base);

(the parenthesis are not required, but it’s a lot better to avoid error).

In fact, you can make a ternary execute code, in a multiple way, like returning a function:

int my_function()
{
    printf("Code executedn");
    return (10);
}

/* ... */

theBase = (base == 0 ? my_function() : base);

EDIT:

And yes you can use that code:

base == 0 ? (theBase = 10) : (theBase = base);

But it’s pretty useless to use a ternary in that case, because you still have to duplicate the theBase = X code.

In C++ int is a primitive type, not a class, like in Java. If you return int, you just return it as a constant, so

gL[i].get_sold(i) = something;

is not possible. You need to have proper getter and setter for your class:

int Item::get_sold() {
    return sold;
}
void Item::set_sold(int s) {
    sold= s;
}

//..

if(gL[i].get_sold() > gL[smallestPos].get_sold()) {

    temp = gL[i].get_sold();
    gL[i].set_sold(gL[smallestPos].get_sold()); 
    gL[smallestPos].set_sold(temp);      
}

also, consider to use std::vector template and sort function:

http://www.cplusplus.com/reference/algorithm/sort/

#include <algorithm>
#include <vector>

// Create comparsion function (or simple overload an < operator):
bool compareSold(Item i1, Item i2) {
    return i1.get_sold() < i2.get_sold();
}    

// replace static array with std::vector<Item>
std::vector<Item> arrItems();

// You can init it with your static array, but better way would be
// to delete a static array and use this vector all the time.
arrItems.assign(gL, gL+ct); 

// Sort it
std::sort (arrItems.begin(), arrItens.end(), compareSold);

// If you need to convert std::vector to [] array, you can use &arrItems.front()
Item* i = &arrItems[0];

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include "vector.h"
#include "math.h"

Vector::Vector(){
    x = y = z = 0.0f;
}

Vector::Vector(float X,float Y, float Z){
    x = X; y = Y; z = Z;
}

Vector::~Vector()
{}

float Vector::operator [ ](int i) const{

    switch(i){
    case 0: return x;
    case 1:return y;
    case 2: return z;
    default :
         std::cout << "ERROR ....";
         return x;
    }
    //return something
        return x;
}

float Vector::length() const{


    return sqrt(x*x + y*y + z*z);
}

float Vector::dot(const Vector &v) const {

    return (x*v.x + y*v.y + z*v.z);
}

const Vector Vector::norm() const{

    return Vector( 0.0,0.0,0.0 );
}

const Vector Vector::cross(const Vector &v) const {

    return Vector( (y*v.z) - (z*v.y) ,((z*v.x)-(x*v.z)),((x*v.y)-(y*v.x)) );
}

// C++ print routine
std::ostream & operator<< (std::ostream & ostr, Vector v){
    ostr << "(" << v.x << ", " << v.y << ", " << v.z << ")";
    return ostr;
}

const Vector operator -(const Vector &v){

    return Vector( -v.x,-v.y,-v.z );
}

//Addition
const Point operator+ (const Point &p, const Vector &v){

    return Point((p.x + v.x),(p.y + v.y),(p.z + v.z));
}

const Vector operator+ (const Vector &v, const Vector &w){


    return Vector( v.x+w.y,v.y+w.y,v.z+w.z );
}
// Subtraction
const Point operator- (Point p, Vector v){

    return Point( p.x-v.x,p.y-v.y,p.z-v.z );
}


const Vector operator- (Vector v, Vector w){

    return Vector( v.x-w.x,v.y-w.y,w.z-w.z );
}

const Vector operator- (const Point &tail, const Point &head){

    return Vector( tail.x -head.x ,tail.y - head.y,tail.z -head.z );
}

// Scalar Multiplication
const Vector operator* (float s, const Vector &v){

    return Vector( s * v.x,s * v.y,s * v.z );
}

const Vector operator* (const Vector &v, float s){

    return Vector( v.x*s,v.y*s,v.z*s );
}


@dunnface

I can configure without errors, but then I cannot make all due to a C error:

someone:labltk-8.06.4 someone$ ./configure -tkdefs '-I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers/ -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers/' -tklibs '-framework Tcl -framework Tk' -tk-no-x11
Configuring LablTk...
tcl.h and tk.h version 8.6 found with "-I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers/ -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers/".
Tcl/Tk libraries found.

** Configuration summary **

Configuration for the "labltk" library:
        use tcl/tk version ....... 8.6
        options for compiling .... -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers/ -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers/
        options for linking ...... -framework Tcl -framework Tk
        use native compilers ..... yes
someone:labltk-8.06.4 someone$ make all
cd support; /Applications/Xcode.app/Contents/Developer/usr/bin/make
gcc  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers/ -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers/  -c cltkEval.c
cltkEval.c:49:19: error: expression is not assignable
    Field(res, 0) = str;
    ~~~~~~~~~~~~~ ^
cltkEval.c:50:19: error: expression is not assignable
    Field(res, 1) = oldres;
    ~~~~~~~~~~~~~ ^
2 errors generated.
make[1]: *** [cltkEval.o] Error 1
make: *** [all] Error 2

Any help would be appreciated.

@garrigue

Can you indicate which version of gcc you are using?

@dunnface

Certainly.

someone:labltk-8.06.4 someone$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

@garrigue

And also which version of ocaml.
Note that if your ocaml is 4.07 or newer, the latest version of LablTk is 8.06.8.

@dunnface

The OCaml version:

someone:labltk-8.06.4 someone$ ocaml --version
The OCaml toplevel, version 4.06.1+multicore-dev0

I’m using ocaml-multicore.

@garrigue

I see.
Unfortunately it seems that LablTk is not compatible with ocaml-multicore.
ocaml-multicore uses a different internal representation for values, and does not provide the same FFI as ocaml.
In theory it should be possible to port LablTk to ocaml-multicore (it does nothing special with the FFI), but this would still require somebody knowledgeable in ocaml-multicore (which I’m not).

@dunnface

Thank you, I will try installing LablTk on top of a vanilla ocaml.
At first I did not think that error could come from using a different ocaml but I trust your judgement.
Would you be interested in making LablTk support ocaml-multicore if you were paid for your time?
Regardless, thank you for the prompt help and for your time.

@garrigue

Sorry, I’m busy with other things.
But if somebody with a good understanding of ocaml-multicore wants to do that, I can provide some support about the labltk part.
By the way, @camlspotter is a professional ocaml developer, and he is actually the one who did the Labl part of LablTk.

@dunnface

Okay, I attempted now to install LablTk on top of a regular OCaml (ocaml-trunk, master branch) and I get this error:

someone:ocaml-trunk someone$ cd ../labltk-master
someone:labltk-master someone$ ./configure -tkdefs '-I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers' -tklibs '-framework Tcl -framework Tk' -tk-no-x11
Configuring LablTk...
tcl.h and tk.h version 8.6 found with "-I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers".
Tcl/Tk libraries found.

** Configuration summary **

Configuration for the "labltk" library:
        use tcl/tk version ....... 8.6
        options for compiling .... -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers
        options for linking ...... -framework Tcl -framework Tk
        use native compilers ..... yes
someone:labltk-master someone$ make all
cd support; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3  support.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  support.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  rawwidget.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  rawwidget.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  widget.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  widget.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  protocol.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  protocol.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  textvariable.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  textvariable.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  timer.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  timer.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  fileevent.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  fileevent.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  camltkwrap.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  camltkwrap.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3  -I +threads -I vmthreads tkthread.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3  -I +threads -I vmthreads tkthread.ml
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkCaml.c
cltkCaml.c:61:30: warning: passing 'const char *' to parameter of type 'char *' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
  Tcl_SetResult(cltclinterp, String_val(v), TCL_VOLATILE);
                             ^~~~~~~~~~~~~
/usr/local/lib/ocaml/caml/mlvalues.h:265:23: note: expanded from macro 'String_val'
#define String_val(x) ((const char *) Bp_val(x))
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Frameworks/Tcl.framework/Versions/8.6/Headers/tclDecls.h:694:54: note: passing argument to
      parameter 'result' here
EXTERN void             Tcl_SetResult(Tcl_Interp *interp, char *result,
                                                                ^
cltkCaml.c:81:17: warning: assigning to 'value *' (aka 'long *') from 'const value *'
      (aka 'const long *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    tkerror_exn = caml_named_value("tkerror");
                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
cltkCaml.c:83:18: warning: assigning to 'value *' (aka 'long *') from 'const value *'
      (aka 'const long *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    handler_code = caml_named_value("camlcb");
                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkUtf.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkEval.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkEvent.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkFile.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkMain.c
cltkMain.c:82:9: warning: assigning to 'char *' from 'const char *' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
  argv0 = String_val( Field( argv, 0 ) );
        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cltkMain.c:92:14: warning: initializing 'value *' (aka 'long *') with an expression of type
      'const value *' (aka 'const long *') discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
      value *interp = caml_named_value("cltclinterp");
             ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cltkMain.c:121:21: warning: assigning to 'char *' from 'const char *' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
          tkargv[i] = String_val(Field(tmp, 0));
                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkMisc.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkTimer.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkVar.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkWait.c
gcc  -O2 -fno-strict-aliasing -fwrapv  -I/usr/local/lib/ocaml/caml -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers  -c cltkImg.c
/usr/local/bin/ocamlmklib -o labltk cltkCaml.o cltkUtf.o cltkEval.o cltkEvent.o cltkFile.o cltkMain.o cltkMisc.o cltkTimer.o cltkVar.o cltkWait.o cltkImg.o -ldopt "-framework" -ldopt "Tcl" -ldopt "-framework" -ldopt "Tk"
cd compiler; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support flags.ml
(echo "let copyright="\"; 
	sed -e 's/$/\n\/' copyright; 
	echo """; 
	echo "let write ~w = w copyright;;") > copyright.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support copyright.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support tsort.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support tables.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support printer.ml
/usr/local/bin/ocamllex lexer.mll
45 states, 921 transitions, table size 3954 bytes
/usr/local/bin/ocamlyacc -v -v parser.mly
3 shift/reduce conflicts.
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support parser.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support lexer.ml
/usr/local/bin/ocamllex pplex.mll
44 states, 754 transitions, table size 3280 bytes
/usr/local/bin/ocamlyacc -v -v ppyac.mly
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support code.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support ppyac.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support pplex.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support pplex.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support ppyac.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support ppexec.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support ppparse.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support parser.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support compile.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support intf.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support maincompile.ml
/usr/local/bin/ocamlc.opt -g  -o tkcompiler ../support/support.cmo flags.cmo copyright.cmo tsort.cmo tables.cmo printer.cmo lexer.cmo pplex.cmo ppyac.cmo ppexec.cmo ppparse.cmo parser.cmo compile.cmo intf.cmo maincompile.cmo
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -g -I ../support pp.ml
/usr/local/bin/ocamlc.opt -g  -o pp pplex.cmo ppyac.cmo ppexec.cmo ppparse.cmo pp.cmo
cd labltk; /Library/Developer/CommandLineTools/usr/bin/make -f Makefile.gen
cd ..; /usr/local/bin/ocamlrun compiler/tkcompiler -outdir labltk
(echo 'open StdLabels'; 
	 echo 'open Widget'; 
	 echo 'open Protocol'; 
	 echo 'open Support'; 
	 echo 'open Textvariable'; 
	 cat ../builtin/report.ml; 
	 cat ../builtin/builtin_*.ml; 
	 cat _tkgen.ml; 
	 echo ; 
	 echo ; 
	 echo 'module Tkintf = struct'; 
	 cat ../builtin/builtini_*.ml; 
	 cat _tkigen.ml; 
	 echo 'end (* module Tkintf *)'; 
	 echo ; 
	 echo ; 
	 echo 'open Tkintf' ;
	 echo ; 
	 echo ; 
	 cat ../builtin/builtinf_*.ml; 
	 cat _tkfgen.ml; 
	 echo ; 
	) > _tk.ml
/usr/local/bin/ocamlrun ../compiler/pp < _tk.ml > tk.ml
rm -f _tk.ml
/usr/local/bin/ocamldep -slash -I ../support [a-z]*.mli [a-z]*.ml > .depend
cd labltk; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps tk.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps bell.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps bell.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps scale.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps scale.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps winfo.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps winfo.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps scrollbar.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps scrollbar.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps entry.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps entry.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps listbox.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps listbox.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps wm.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps wm.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps tkwait.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps tkwait.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps grab.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps grab.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps font.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps font.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps canvas.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps canvas.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps image.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps image.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps clipboard.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps clipboard.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps label.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps label.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps message.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps message.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps text.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps text.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps imagephoto.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps imagephoto.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps option.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps option.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps frame.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps frame.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps selection.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps selection.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps dialog.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps dialog.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps place.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps place.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps pixmap.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps pixmap.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps menubutton.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps menubutton.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps radiobutton.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps radiobutton.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps focus.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps focus.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps pack.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps pack.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps imagebitmap.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps imagebitmap.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps encoding.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps encoding.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps optionmenu.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps optionmenu.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps checkbutton.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps checkbutton.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps tkvars.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps tkvars.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps palette.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps palette.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps menu.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps menu.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps button.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps button.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps toplevel.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps toplevel.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps grid.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps grid.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps labltk.ml
cd camltk; /Library/Developer/CommandLineTools/usr/bin/make -f Makefile.gen
cd ..; /usr/local/bin/ocamlrun compiler/tkcompiler -camltk -outdir camltk
(echo '##define CAMLTK'; 
	 echo 'include Camltkwrap'; 
	 echo 'open Widget'; 
	 echo 'open Protocol'; 
	 echo 'open Textvariable'; 
	 echo ; 
	 cat ../builtin/report.ml; 
	 echo ; 
	 cat ../builtin/builtin_*.ml; 
	 echo ; 
	 cat _tkgen.ml; 
	 echo ; 
	 echo ; 
	 echo 'module Tkintf = struct'; 
	 cat ../builtin/builtini_*.ml; 
	 cat _tkigen.ml; 
	 echo 'end (* module Tkintf *)'; 
	 echo ; 
	 echo ; 
	 echo 'open Tkintf' ;
	 echo ; 
	 echo ; 
	 cat ../builtin/builtinf_*.ml; 
	 cat _tkfgen.ml; 
	 echo ; 
	) > _cTk.ml
/usr/local/bin/ocamlrun ../compiler/pp < _cTk.ml > cTk.ml
rm -f _cTk.ml
/usr/local/bin/ocamldep -slash -I ../support [a-z]*.mli [a-z]*.ml > .depend
cd camltk; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cTk.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cBell.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cBell.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cScale.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cScale.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cWinfo.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cWinfo.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cScrollbar.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cScrollbar.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cEntry.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cEntry.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cListbox.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cListbox.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cWm.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cWm.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cTkwait.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cTkwait.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cGrab.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cGrab.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cFont.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cFont.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cCanvas.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cCanvas.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cImage.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cImage.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cClipboard.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cClipboard.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cLabel.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cLabel.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cResource.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cResource.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cMessage.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cMessage.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cText.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cText.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cImagephoto.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cImagephoto.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cOption.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cOption.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cFrame.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cFrame.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cSelection.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cSelection.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cDialog.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cDialog.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPlace.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPlace.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPixmap.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPixmap.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cMenubutton.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cMenubutton.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cRadiobutton.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cRadiobutton.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cFocus.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cFocus.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPack.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPack.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cImagebitmap.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cImagebitmap.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cEncoding.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cEncoding.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cOptionmenu.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cOptionmenu.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cCheckbutton.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cCheckbutton.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cTkvars.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cTkvars.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPalette.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cPalette.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cMenu.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cMenu.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cButton.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cButton.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cToplevel.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cToplevel.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cGrid.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps cGrid.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../support -no-alias-deps camltk.ml
cd lib; /Library/Developer/CommandLineTools/usr/bin/make
/Library/Developer/CommandLineTools/usr/bin/make superclean
if test -f tk.cmo; then 
	  echo We have changes... Now lib directory has no .cmo files; 
	  rm -f *.cm* *.o; 
	fi
cd ../labltk; /Library/Developer/CommandLineTools/usr/bin/make
make[2]: Nothing to be done for `all'.
cd ../camltk; /Library/Developer/CommandLineTools/usr/bin/make
make[2]: Nothing to be done for `all'.
/usr/local/bin/ocamlmklib -ocamlc '/usr/local/bin/ocamlc' -o labltk 
	  -I ../labltk -I ../camltk ../support/support.cmo ../support/rawwidget.cmo ../support/widget.cmo ../support/protocol.cmo ../support/textvariable.cmo ../support/timer.cmo ../support/fileevent.cmo ../support/camltkwrap.cmo tk.cmo bell.cmo scale.cmo winfo.cmo scrollbar.cmo entry.cmo listbox.cmo wm.cmo tkwait.cmo grab.cmo font.cmo canvas.cmo image.cmo clipboard.cmo label.cmo message.cmo text.cmo imagephoto.cmo option.cmo frame.cmo selection.cmo dialog.cmo place.cmo pixmap.cmo menubutton.cmo radiobutton.cmo focus.cmo pack.cmo imagebitmap.cmo encoding.cmo optionmenu.cmo checkbutton.cmo tkvars.cmo palette.cmo menu.cmo button.cmo toplevel.cmo grid.cmo cTk.cmo cBell.cmo cScale.cmo cWinfo.cmo cScrollbar.cmo cEntry.cmo cListbox.cmo cWm.cmo cTkwait.cmo cGrab.cmo cFont.cmo cCanvas.cmo cImage.cmo cClipboard.cmo cLabel.cmo cResource.cmo cMessage.cmo cText.cmo cImagephoto.cmo cOption.cmo cFrame.cmo cSelection.cmo cDialog.cmo cPlace.cmo cPixmap.cmo cMenubutton.cmo cRadiobutton.cmo cFocus.cmo cPack.cmo cImagebitmap.cmo cEncoding.cmo cOptionmenu.cmo cCheckbutton.cmo cTkvars.cmo cPalette.cmo cMenu.cmo cButton.cmo cToplevel.cmo cGrid.cmo labltk.cmo camltk.cmo 
	  -cclib ""-framework Tcl -framework Tk ""
/usr/local/bin/ocamlc.opt -verbose -linkall -o labltktop -I ../support 
	       ocamlcommon.cma ocamlbytecomp.cma ocamltoplevel.cma 
	       -I +compiler-libs unix.cma 
	       -I ../labltk -I ../camltk labltk.cma 
	       str.cma 
	       topstart.cmo
Generate labltk
cd jpf; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support fileselect.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support fileselect.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support balloon.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support balloon.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support shell.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support shell.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support jpf_font.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../support jpf_font.ml
/usr/local/bin/ocamlc.opt -a -o jpflib.cma fileselect.cmo balloon.cmo shell.cmo jpf_font.cmo
cd frx; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_misc.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_misc.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_widget.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_widget.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_font.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_font.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_entry.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_entry.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_text.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_text.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_listbox.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_listbox.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_req.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_req.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_fillbox.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_fillbox.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_focus.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_focus.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_dialog.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_dialog.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_mem.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_mem.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_rpc.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_rpc.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_synth.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_synth.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_selection.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_selection.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_after.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_after.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_fit.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_fit.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_ctext.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_ctext.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_color.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../camltk -I ../support frx_color.ml
/usr/local/bin/ocamlc.opt -a -o frxlib.cma frx_misc.cmo frx_widget.cmo frx_font.cmo frx_entry.cmo frx_text.cmo frx_listbox.cmo frx_req.cmo frx_fillbox.cmo frx_focus.cmo frx_dialog.cmo frx_mem.cmo frx_rpc.cmo frx_synth.cmo frx_selection.cmo frx_after.cmo frx_fit.cmo frx_ctext.cmo frx_color.cmo
cd browser; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_tk.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_config.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_config.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_bind.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_bind.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_completion.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_completion.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_box.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_button.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_toplevel.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_text.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_text.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_message.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_message.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_menu.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_entry.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_multibox.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_multibox.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_memo.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs jg_memo.ml
/usr/local/bin/ocamlc.opt -a -o jglib.cma jg_tk.cmo	jg_config.cmo	jg_bind.cmo	jg_completion.cmo jg_box.cmo jg_button.cmo	jg_toplevel.cmo	jg_text.cmo	jg_message.cmo jg_menu.cmo	jg_entry.cmo	jg_multibox.cmo	jg_memo.cmo
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs list2.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs useunix.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs useunix.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs setpath.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs setpath.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs lexical.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs lexical.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs fileselect.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs fileselect.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs searchid.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs searchid.ml
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs searchpos.mli
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs searchpos.ml
File "searchpos.ml", line 833, characters 16-17:
833 |       List.iter l ~f:(search_case ~pos)
                      ^
Error: This expression has type Typedtree.computation Typedtree.case list
       but an expression was expected of type
         Typedtree.value Typedtree.case list
       Type Typedtree.computation is not compatible with type Typedtree.value
make[1]: *** [searchpos.cmo] Error 2
make: *** [all] Error 2

Any help would be appreciated.

@dunnface

The OCaml version:

someone:labltk-master someone$ ocaml --version
The OCaml toplevel, version 4.11.0+dev0-2019-10-18

@garrigue

OCamlBrowser is not compatible with development versions of OCaml. Either try with OCaml 4.10 or compile only the library, i.e. make library (see README for details)

@dunnface

I appreciate the prompt reply. So I will pick the 4.10 branch from ocaml-trunk and try again. Thank you.

@dunnface

Now I get an error with OCaml 4.09 not the dev version but the release version:

someone:labltk-master someone$ ./configure -tkdefs '-I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers' -tklibs '-framework Tcl -framework Tk' -tk-no-x11
Configuring LablTk...
tcl.h and tk.h version 8.6 found with "-I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers".
Tcl/Tk libraries found.

** Configuration summary **

Configuration for the "labltk" library:
        use tcl/tk version ....... 8.6
        options for compiling .... -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers
        options for linking ...... -framework Tcl -framework Tk
        use native compilers ..... yes
someone:labltk-master someone$ make
cd support; /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
cd compiler; /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
cd labltk; /Library/Developer/CommandLineTools/usr/bin/make -f Makefile.gen
make[1]: Nothing to be done for `all'.
cd labltk; /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
cd camltk; /Library/Developer/CommandLineTools/usr/bin/make -f Makefile.gen
make[1]: Nothing to be done for `all'.
cd camltk; /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
cd lib; /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
cd jpf; /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
cd frx; /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
cd browser; /Library/Developer/CommandLineTools/usr/bin/make
/usr/local/bin/ocamlc.opt -c -warn-error A-3 -I ../labltk -I ../lib -I ../support -I +compiler-libs searchpos.ml
File "searchpos.ml", line 1:
Error: ../support/support.cmi
       is not a compiled interface for this version of OCaml.
It seems to be for a newer version of OCaml.
make[1]: *** [searchpos.cmo] Error 2
make: *** [all] Error 2
someone:labltk-master someone$ ocaml --version
The OCaml toplevel, version 4.09.0

@garrigue

For the browser, you need the version of OCaml and labltk to match. See the following page for the corresponding releases.
https://garrigue.github.io/labltk/
You can also install matching versions automatically through opam.

@dunnface

Is it explained anywhere how to do this installation through opam?
Can you tell me what the commands would be to achieve a decently recent version of OCaml with LablTk ?
I know very little about opam at the moment.

@dunnface

Unfortunately the steps to solve the browser issue that you pointed me to are something of a mystery to me.
I can’t quite figure this out. What are all the steps to get any OCaml installed with LablTk?
This part with LablTk needing a «browser» really lost me and I can’t quite understand how to proceed from here.
Any help would be appreciated.

@garrigue

You just need to install opam, following the instructions on their page, and do

opam switch create 4.09.0
opam install ocamlbrowser

This will install both labltk and ocamlbrowser

@garrigue

Also, as I said above, if you don’t need ocamlbrowser, you can just compile with

make library
make install

@dunnface

Much appreciated.
I do want the ocamlbrowser. Here is the error I get now, after opam switch create 4.09.0 ran successfully:

someone:blah someone$ opam install ocamlbrowser
The following actions will be performed:
  ∗ install conf-pkg-config 1.1    [required by conf-tcl, conf-tk]
  ∗ install conf-m4         1      [required by ocamlfind]
  ∗ install conf-tk         1      [required by ocamlbrowser]
  ∗ install conf-tcl        1      [required by ocamlbrowser]
  ∗ install ocamlfind       1.8.1  [required by ocamlbrowser]
  ∗ install labltk          8.06.7 [required by ocamlbrowser]
  ∗ install ocamlbrowser    4.08.1
===== ∗ 7 =====
Do you want to continue? [Y/n] Y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
[labltk.8.06.7] downloaded from cache at https://opam.ocaml.org/cache
[ocamlfind.1.8.1] downloaded from cache at https://opam.ocaml.org/cache
[ocamlbrowser.4.08.1] downloaded from cache at https://opam.ocaml.org/cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
∗ installed conf-m4.1
∗ installed conf-pkg-config.1.1
∗ installed conf-tcl.1
[ERROR] The compilation of conf-tk failed at "/Users/someone/.opam/opam-init/hooks/sandbox.sh build sh
        check.sh".
∗ installed ocamlfind.1.8.1

#=== ERROR while compiling conf-tk.1 ==========================================#
# context     2.0.6 | macos/x86_64 | ocaml-base-compiler.4.09.0 | https://opam.ocaml.org#d74ac435
# path        ~/.opam/default/.opam-switch/build/conf-tk.1
# command     ~/.opam/opam-init/hooks/sandbox.sh build sh check.sh
# exit-code   1
# env-file    ~/.opam/log/conf-tk-82601-a4abd5.env
# output-file ~/.opam/log/conf-tk-82601-a4abd5.out
### output ###
# In file included from compiletest.c:2:
# /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found
# #       include <X11/Xlib.h>
#                 ^~~~~~~~~~~~
# 1 error generated.



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
┌─ The following actions failed
│ λ build conf-tk 1
└─
┌─ The following changes have been performed (the rest was aborted)
│ ∗ install conf-m4         1
│ ∗ install conf-pkg-config 1.1
│ ∗ install conf-tcl        1
│ ∗ install ocamlfind       1.8.1
└─

The former state can be restored with:
    opam switch import "/Users/someone/.opam/default/.opam-switch/backup/state-20200220034945.export"

Any idea how to fix this?
It seems to want X11 but shouldn’t there be a way to install without it?
I defer to you on the best course of action.

@garrigue

I see. This is a stupid error, as the configuration of labltk itself works, and it does not depend on conf-tk, which is just supposed to check the availability of Tk. It might be a better idea to remove the dependency if it is broken.

Now, you are using a Mac?
I checked on my machine, using MacOS 10.15.3 and Xcode 11.3.1, and conf-tk works.
I don’t think this is a problem of version, but it might be that you need to install Xdarwin to have the incriminated header. The native Tk does not rely on X11, but conf-tk seems to…

@garrigue

Note that the needed headers are actually already included in the Tk framework at

/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Headers/X11

So it should be sufficient to create a symbolic link to this directory inside

 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include

@dunnface

That seems to have worked!

someone:blah someone$ sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Headers/X11 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include
Password:
someone:blah someone$ opam install ocamlbrowser
The following actions will be performed:
  ∗ install conf-tk      1      [required by ocamlbrowser]
  ∗ install labltk       8.06.7 [required by ocamlbrowser]
  ∗ install ocamlbrowser 4.08.1
===== ∗ 3 =====
Do you want to continue? [Y/n] Y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
[labltk.8.06.7] found in cache
[ocamlbrowser.4.08.1] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
∗ installed conf-tk.1
∗ installed labltk.8.06.7
∗ installed ocamlbrowser.4.08.1
Done.

But it really seems like it is using X, since the interface is all buggy and will not draw button labels in a permanent way, among other graphical glitches.

Is there a way to force it not to use X? If I type wish and code some Tcl code it is clear that wish does not use X like LablTk is using now. Thank you.

See screenshot of some graphical glitches from the demo.ml example:
Screen Shot 2020-02-20 at 5 38 46 PM

@garrigue

If you use the native Tk, it is not using X.
However, LablTk programs may be used seldom exploited APIs, that are not well supported by this version.
It is somehow more stable if you use the X version Tk, installing it through macports for instance.
If it is installed, it will take precedence over the native version. Note that in that case it will really look like Tcl/Tk on X11, i.e. no round corners.

operator [] и get возвращают value_t * по значению, это означает, что и values["aaa"], и values.get("aaa") являются выражения prvalue, которые не могут быть назначены.

a function call or an overloaded operator expression, whose return type is non-reference, such as str.substr(1, 2), str1 + str2, or it++;

Вы можете проверить тип возвращаемого значения std::map::operator[], это ссылка на lvalue, тогда values.list["aaa"] является lvalue выражение и может быть назначено.

Вы можете изменить их тип возврата на value_t *&, чтобы решить проблему.

  • F000 ошибка kyocera 2040dn
  • F000 kyocera ошибка как исправить
  • F000 kyocera ошибка p3055
  • F000 kyocera 4200 ошибка
  • F00 ошибка протерм скат