Chicken and egg dependency



  • I don't know what more to say, really..

    Razor impossible installation requirement

     


  • Trolleybus Mechanic

     Did you try installing Razor first?



  • @Lorne Kates said:

    Did you try installing Razor first?
     

    No, he should run it first. Obviously.

    FTFYIA.



  • I think it is more of a recursion issue than a chicken and the egg dependency.

    A better chicken and egg pattern can be found in a set of three projects that I discovered on my current program:

    • Project A depends on Project B
    • Project B depends on Project C
    • Project C depends on a built dll version of project A

    My question to my coworker: what happens when I try to do a clean build? 

    And random side note, creationism solves the chicken and the egg problem: The chicken came first



  • @Anketam said:

    And random side note, creationism solves the chicken and the egg problem: The chicken came first

    So does evolution, though it decides on the egg...



  • This is exactly how gcc gets ported to new architectures. A stripped-down C compiler is written in the target platform's assembly dialect, then used to build gcc proper. Once it exists on a target platform, subsequent versions of the compiler can be built using the previous version.

    Obviously OP needs to write a machine-code implementation of Razor from scratch to install the canonical version. I mean, if you can't do it yourself, why bother using someone else's work, right?

     



  • All Mac problems are best solved using liberal amounts of diesel fuel and a good lighter.

    Now your job, on the other hand...



  • @mott555 said:

    Mac

    TRWTF



  • And it can't be solved by copying a working version of this Razor program from another computer? (Not that that makes it less of a WTF, but it might give you a way to get it to work.)



  • Is that an installer, or is it an UPDATER? It makes sense that an updater would require the program to already be installed.



  •  @Anketam said:

    I think it is more of a recursion issue than a chicken and the egg dependency.

    A better chicken and egg pattern can be found in a set of three projects that I discovered on my current program:

    • Project A depends on Project B
    • Project B depends on Project C
    • Project C depends on a built dll version of project A

    My question to my coworker: what happens when I try to do a clean build? 

    And random side note, creationism solves the chicken and the egg problem: The chicken came first

    Obviously to do a clean build, pick a random combination of A, B, C, build each cleanly in that order and repeat until the built binaries don't differ from the last iteration.

    To do a build from scratch, compile each project individually, get a cup of coffee, stab the responsible party in the eyesocket and split one of the projects in two or more pieces so there's no circular dependencies.

     



  • @Mo6eB said:

     @Anketam said:

    I think it is more of a recursion issue than a chicken and the egg dependency.

    A better chicken and egg pattern can be found in a set of three projects that I discovered on my current program:

    • Project A depends on Project B
    • Project B depends on Project C
    • Project C depends on a built dll version of project A

    My question to my coworker: what happens when I try to do a clean build? 

    And random side note, creationism solves the chicken and the egg problem: The chicken came first

    Obviously to do a clean build, pick a random combination of A, B, C, build each cleanly in that order and repeat until the built binaries don't differ from the last iteration.

    To do a build from scratch, compile each project individually, get a cup of coffee, stab the responsible party in the eyesocket and split one of the projects in two or more pieces so there's no circular dependencies.

    Problem with the stabby part is he does not work in the same building as me, so I would have to drive over to his building and the commute would be terrible.



  • @ekolis said:

    @Anketam said:
    And random side note, creationism solves the chicken and the egg problem: The chicken came first
    So does evolution, though it decides on the egg...
    The gradual change nature of evolution makes it problematic to define a point where the chicken and pre chicken cut off line would be, since the changes are so minor that the next generation could still breed with the previous generation (and thus not be a new species), but if you could theoretically breed two animals that are a few thousand generations apart they would not likely work and thus could be considered two different species.  Think of it like versions of software.  Software evolves over time with each version, and if you compare two adjacent versions they would come out to be rather similar and there would be some cross version compatibility.  But if you take the first version of the software and compare it to the most recent they can be totally different at which point is it a new program?  Compare the original versions of Internet Explorer or JAVA to their newest version and they are very different, well ok bad examples but you get my drift.



  • @ekolis said:

    @Anketam said:
    And random side note, creationism solves the chicken and the egg problem: The chicken came first

    So does evolution, though it decides on the egg...

    Empiricism suggests going to a diner, ordering both a chicken sandwich and an egg sandwich, and seeing for yourself which comes first.



  • @Gurth said:

    And it can't be solved by copying a working version of this Razor program from another computer? (Not that that makes it less of a WTF, but it might give you a way to get it to work.)
     

    To install the program:

    1. Copy the installed program from another machine to the target machine

    2. Install the program  on the target machine

     

    ...doesn't really classify as a "less of a WTF" to me.



  • @da Doctah said:

    @ekolis said:

    @Anketam said:
    And random side note, creationism solves the chicken and the egg problem: The chicken came first

    So does evolution, though it decides on the egg...

    Empiricism suggests going to a diner, ordering both a chicken sandwich and an egg sandwich, and seeing for yourself which comes first.

     

    Everybody can do science!

     



  • @dhromed said:

    @da Doctah said:

    @ekolis said:

    @Anketam said:
    And random side note, creationism solves the chicken and the egg problem: The chicken came first

    So does evolution, though it decides on the egg...

    Empiricism suggests going to a diner, ordering both a chicken sandwich and an egg sandwich, and seeing for yourself which comes first.

     

    Everybody can do science!

     

    Alternative reasoning: the egg came first, because breakfast comes before lunch.

     



  • I find it really amusing here: Every time someone mentions Mac.. it's apparently a giant WTF.. yet they advocate Windows. That's a little bit like saying "pissing in public is the worst thing ever, but being a serial killer is fantastic."



  • @curtmack said:

    This is exactly how gcc gets ported to new architectures. A stripped-down C compiler is written in the target platform's assembly dialect, then used to build gcc proper. Once it exists on a target platform, subsequent versions of the compiler can be built using the previous version.
     

    Is that really the default practice? I'd start by building a back-end for the architcture, and cross-compiling the first gcc with it. Saves the trouble of writting a C copiler in assemby, and the back-end must be written anyway.



  • Did you try uninstalling and installing it again?



  • @Mcoder said:

    @curtmack said:

    This is exactly how gcc gets ported to new architectures. A stripped-down C compiler is written in the target platform's assembly dialect, then used to build gcc proper. Once it exists on a target platform, subsequent versions of the compiler can be built using the previous version.
     

    Is that really the default practice? I'd start by building a back-end for the architcture, and cross-compiling the first gcc with it. Saves the trouble of writting a C copiler in assemby, and the back-end must be written anyway.

     

    I'd write the barebones compiles in some other language, like javascript. From then on, you can write the next level in a progressively fully-featured and/or lower-level language. The chain could be like, BASIC-VBscript-Javascript-Ruby-Python-Java-C#-C++-C-Assembly.

    Finally, you'd use INTERCAL.

     



  • @da Doctah said:

    @ekolis said:

    @Anketam said:
    And random side note, creationism solves the chicken and the egg problem: The chicken came first

    So does evolution, though it decides on the egg...

    Empiricism suggests going to a diner, ordering both a chicken sandwich and an egg sandwich, and seeing for yourself which comes first.

    Or put them in bed together, and have the chicken arrested for being a pedophile!



  • @Lorne Kates said:

     Did you try installing Razor first?

    *me: cleans off keyboard



  • @gu3st said:

    I find it really amusing here: Every time someone mentions Mac.. it's apparently a giant WTF.. yet they advocate Windows. That's a little bit like saying "pissing in public is the worst thing ever, but being a serial killer is fantastic."

    Yeah?  And your point is what exactly?



  • @Anketam said:

    Problem with the stabby part is he does not work in the same building as me, so I would have to drive over to his building and the commute would be terrible.
     

    Take a leaf from the stories here and outsource the stabby part to India.

     



  • @SEMI-HYBRID code said:

    @Gurth said:

    Not that that makes it less of a WTF
     

    To install the program:

    1. Copy the installed program from another machine to the target machine

    2. Install the program  on the target machine

     

    ...doesn't really classify as a "less of a WTF" to me.


    Which is exactly what I said …


  • ♿ (Parody)

    @gu3st said:

    I find it really amusing here: Every time someone mentions Mac.. it's apparently a giant WTF.. yet they advocate Windows. That's a little bit like saying "pissing in public is the worst thing ever, but being a serial killer is fantastic."

    This is all wrong. Firstly, you didn't even mention any cars. But I suppose we can write that off to the effect that the RDF is having on you. You should really see someone about that.



  • @Mcoder said:

    @curtmack said:

    This is exactly how gcc gets ported to new architectures. A stripped-down C compiler is written in the target platform's assembly dialect, then used to build gcc proper. Once it exists on a target platform, subsequent versions of the compiler can be built using the previous version.
     

    Is that really the default practice? I'd start by building a back-end for the architcture, and cross-compiling the first gcc with it. Saves the trouble of writting a C copiler in assemby, and the back-end must be written anyway.

    Afaik that is indeed the way, I think curtmack was confusing C-library with C-compiler, because always parts of the C library will have to be written in assembler and you can't run a cross-compiled program until you have the library.



  • @dtech said:

    @Mcoder said:

    @curtmack said:

    This is exactly how gcc gets ported to new architectures. A stripped-down C compiler is written in the target platform's assembly dialect, then used to build gcc proper. Once it exists on a target platform, subsequent versions of the compiler can be built using the previous version.
     

    Is that really the default practice? I'd start by building a back-end for the architcture, and cross-compiling the first gcc with it. Saves the trouble of writting a C copiler in assemby, and the back-end must be written anyway.

    Afaik that is indeed the way

    Yep, it is the most common and practical way to do it.  You can however do it the hard way if you want to.  The real tricky part is that parts of libgcc depend on libc being available, but you can't build libc using the compiler until you have built libgcc.  It is possible to work around this by iteratively building broken non-functional libraries that merely suffice to let subsequent compiles complete successfully.

    To answer the original question: 

    @Anketam said:

    A better chicken and egg pattern can be found in a set of three projects that I discovered on my current program:

    • Project A depends on Project B
    • Project B depends on Project C
    • Project C depends on a built dll version of project A

    I had to solve a similar problem to make libgcj build as a DLL on Windows, because DLLs can only support 65535 exported symbols, and libgcj has over 80000.  There wasn't any clean way I could find to partition it into two separate DLLs without circular dependencies, so what I had to do to make it work is:

    - build dummy version of first DLL that contains no code and simply exports required symbols to make other DLL link

    - build other DLL, linking against dummy DLL

    - rebuild genuine version of first DLL, this time containing code (that links to 'other' DLL), and exporting same symbols so that other DLL can load/link to it at runtime successfully.

    Because Windows just links by DLL name and export symbol, it doesn't matter that you built the 'other' DLL against a non-functional dummy, as long as you only install the genuine working versions everything will find each other just fine at runtime.  So you need to build a dummy projectA.dll (or in fact, just a dummy export library for project C to link against), then build C, then build B, then build A for real and discard the dummy A.

    Sounds dodgy I know, but it is reliable and works. 




  • @DaveK said:

    I had to solve a similar problem to make libgcj build as a DLL on Windows, because DLLs can only support 65535 exported symbols, and libgcj has over 80000

    I just felt a very disturbing vibe of despair and hatred, it appears to be coming from someone in the future that has to maintain that thing.



  • @Speakerphone Dude said:

    @DaveK said:

    I had to solve a similar problem to make libgcj build as a DLL on Windows, because DLLs can only support 65535 exported symbols, and libgcj has over 80000

    I just felt a very disturbing vibe of despair and hatred, it appears to be coming from someone in the future that has to maintain that thing.

    Wait, the entire Java programming language in one DLL? Shouldn't that be one per package? Or one per reasonably-useful-together-chunk?



  • @Ben L. said:

    Is that an installer, or is it an UPDATER? It makes sense that an updater would require the program to already be installed.

     

     Turns out that yes, it was an updater. However, it wasn't mentioned anywhere, the executable was called "Razor 1.2.0 installer Mac.mpkg", and the only way to know it was because the dmg file was called "Razor_120U_Mac.dmg", the U meaning an update.



  • Is it just me or does everyone pronounce ".dmg" as "damage", as in "yo dawg, this .dmg will totally damage your computer"?



  • @ekolis said:

    Is it just me or does everyone pronounce ".dmg" as "damage", as in "yo dawg, this .dmg will totally damage your computer"?
     

    I call it "dimage" as in "dim people age". Or something.

    The "cnt" files in Windows are better!



  • Easier to just expand it to disk image. or "DEE EM GEE" if they don't understand "disk image" the first time.



  • @ekolis said:

    Is it just me or does everyone pronounce ".dmg" as "damage", as in "yo dawg, this .dmg will totally damage your computer"?
     

    Read the post and wanted to post this as well. Yes, I pronounce (and read) it as "damage". Much easier than "dee em gee".



  • @mott555 said:

    All Mac problems are best solved using liberal amounts of diesel fuel and a good lighter.
    You may want to look up how a diesel engine works.

     



  • @Severity One said:

    @mott555 said:
    All Mac problems are best solved using liberal amounts of diesel fuel and a good lighter.
    You may want to look up how a diesel engine works.

    It has to be a really, really good lighter.



  • @Severity One said:

    @mott555 said:

    All Mac problems are best solved using liberal amounts of diesel fuel and a good lighter.
    You may want to look up how a diesel engine works.

     

    He never said you had to burn the fuel. What you should do is use the diesel fuel to ward off Mac fanboys while you burn their house down.



  • @blakeyrat said:

    It has to be a really, really good lighter.
     

     

     



  •  Note that Visual Studio gives a procedure for building mutually dependent DLLs.



  • @blakeyrat said:

    @Severity One said:
    @mott555 said:
    All Mac problems are best solved using liberal amounts of diesel fuel and a good lighter.
    You may want to look up how a diesel engine works.
    It has to be a really, really good lighter.

    I could have wasted precious forum space and everyone else's time by talking about how you have to have some newspaper, maybe some gasoline, or even a propane torch to start a diesel fire, but no I decided to not be a pedantic dickweed and just say "lighter." My mistake. Next time I try to be funny, I will make sure to include all the proper annotations, clarifications, and citations necessary to completely ruin the joke and appease the pedants.



  • @mott555 said:

    @blakeyrat said:
    @Severity One said:
    @mott555 said:
    All Mac problems are best solved using liberal amounts of diesel fuel and a good lighter.
    You may want to look up how a diesel engine works.
    It has to be a really, really good lighter.

    I could have wasted precious forum space and everyone else's time by talking about how you have to have some newspaper, maybe some gasoline, or even a propane torch to start a diesel fire, but no I decided to not be a pedantic dickweed and just say "lighter." My mistake. Next time I try to be funny, I will make sure to include all the proper annotations, clarifications, and citations necessary to completely ruin the joke and appease the pedants.

     

    Welcome to the world of politics.

     



  • @arh said:

    @mott555 said:

    @blakeyrat said:
    @Severity One said:
    @mott555 said:
    All Mac problems are best solved using liberal amounts of diesel fuel and a good lighter.
    You may want to look up how a diesel engine works.
    It has to be a really, really good lighter.

    I could have wasted precious forum space and everyone else's time by talking about how you have to have some newspaper, maybe some gasoline, or even a propane torch to start a diesel fire, but no I decided to not be a pedantic dickweed and just say "lighter." My mistake. Next time I try to be funny, I will make sure to include all the proper annotations, clarifications, and citations necessary to completely ruin the joke and appease the pedants.

     

    Welcome to the world of politics TDWTF.

    FTFY

    Home to the highest concentration of pedantic dickweedery this side of the intertubes.  Incidentally, also the home to the highest concentration of aspies and people with other crippling social disorders.



  • @C-Octothorpe said:

    Incidentally, also the home to the highest concentration of aspies and people with other crippling social disorders.

    Actually, I don't think this is true. That title probably belongs to the ASD forum.



  • @C-Octothorpe said:

    Home to the highest concentration of pedantic dickweedery this side of the intertubes.  Incidentally, also the home to the highest concentration of aspies and people with other crippling social disorders

    *swells with pride

    @Xyro said:

    Actually, I don't think this is true. That title probably belongs to the ASD forum.

    The Atrial Septal Defect forum?



  • @serguey123 said:

    @C-Octothorpe said:
    Home to the highest concentration of pedantic dickweedery this side of the intertubes.  Incidentally, also the home to the highest concentration of aspies and people with other crippling social disorders
    *swells with pride

    @Xyro said:

    Actually, I don't think this is true. That title probably belongs to the ASD forum.

    The Atrial Septal Defect forum?
     

    If you're normal you don't belong here. Now shoo, go play football or whatever you monkeys are doing.



  • @arh said:

    go play football or whatever you monkeys are doing.
     

    Actually, they call it "soccer".



  • @Cassidy said:

    @arh said:

    go play football or whatever you monkeys are doing.
     

    Actually, they call it "soccer".

     

     

    Football works both ways, as american football is the thug-sport in US as foot-football is in Europe. I thought about this when posting and was happy that the reply would retain its meaning regardless of where it was interpreted.

     


  • :belt_onion:

    @arh said:

    Football works both ways, as american football is the thug-sport in US as foot-football is in Europe
    foot-footbal? Now the name of both sports is wrong. Since in Europe the game is played by advancing a ball by using one's foot, just keep calling it "football" without any additional qualifiers needed. OTOH in the USA football is played by running around with an egg-shaped ball in one's hands, so why not just call that game "hand egg" instead?


Log in to reply