Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 05:31
    davidmlw commented #1490
  • Jan 24 18:47
    tgodzik synchronize #1662
  • Jan 24 18:00
    tgodzik synchronize #1662
  • Jan 22 10:21
    keynmol commented #1663
  • Jan 21 23:28
    oyvindberg opened #1663
  • Jan 21 19:54
    tgodzik synchronize #1662
  • Jan 21 19:06
    tgodzik synchronize #1662
  • Jan 21 18:25
    tgodzik closed #1477
  • Jan 21 18:25
    tgodzik commented #1477
  • Jan 21 18:24
    tgodzik opened #1662
  • Jan 20 22:24
    oyvindberg commented #1582
  • Jan 20 22:23
    oyvindberg closed #1582
  • Jan 20 22:23
    oyvindberg commented #1582
  • Jan 20 16:40
    kpodsiad opened #1661
  • Jan 17 20:32
    tgodzik commented #1660
  • Jan 17 18:55
    vikasdp commented #1660
  • Jan 17 17:42
    tgodzik commented #1660
  • Jan 17 17:34
    vikasdp opened #1660
  • Jan 17 07:46

    bloopoid on gh-pages

    Deploy website Deploy website … (compare)

  • Jan 17 07:23

    tgodzik on npm_and_yarn


Tomasz Godzik
btw. bloop seems to be an executable jar, that's what can be prepared using coursier
Siddhant Sanyam
I thought that too! LOG.info("Nail raised unhandled exception", t) would print the error but it didn't.
Steve Jones
@siddhant3s it's not enough to set the executable permissions. They are set appropriately. The file itself is not an executable.
And my .local has the correct ownership as well.
IOW, setting +x only determines the permissions of the file. It doesn't fundamentally change the type of file it is. And .bloop.aux is not an executable file, it's a shared object.
The problem is that bloop is a shell script attempting to execute .bloop.aux, which is not an executable file - it's a shared library object file.
Steve Jones
It's not enough to compile source to an object, it must be linked to be executable.
Tomasz Godzik
Sure, but this seems to work normally and it seems that notes point to .bloop.aux being the program https://github.com/scalacenter/bloop/blob/b32fe8c9bb2d6e8fcd1a6b7ca92f6232cf0ddf90/project/ReleaseUtils.scala#L295
I haven't worked on that part myself unfortunately, so I am just guessing
maybe you could try using the binaries from the page :https://github.com/scalacenter/bloop/releases/tag/v1.4.8
Tomasz Godzik
but anyway, bloop should be able to use .bloop.aux and that's what is normally happening
I don't think it matters that it is a shared library object, since it does work normally
what does coursier/bin/bloop contain ?
where do you see it executing explicitely the aux file?
Tomasz Godzik
ok, so it seems that cs actually downloads the jar and builds that shared library object using natve image
it should be able to use it, but somehow it doesn't seem to work on NixOS
prebuilt-only should help out here, but it seems it doesn't download the file itself
and just does the same
and JVM version is broken, which I will be fixing soon
Tomasz Godzik
@sjfloat just asked around and .bloop.aux is the copied native executable, bloop just sets up a couple of additional variables
Steve Jones
I'm confident that that's the intention. However the file that is actually being copied is a shared object.
$ readelf -l ~/.local/share/coursier/bin/.bloop.aux 

Elf file type is DYN (Shared object file)
Entry point 0x118240
There are 9 program headers, starting at offset 64

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000000040 0x0000000000000040
                 0x00000000000001f8 0x00000000000001f8  R      0x8
  INTERP         0x0000000000000238 0x0000000000000238 0x0000000000000238
                 0x000000000000001c 0x000000000000001c  R      0x1
      [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x00000000026afd48 0x00000000026afd48  R E    0x200000
  LOAD           0x00000000026b0748 0x00000000028b0748 0x00000000028b0748
                 0x0000000000006938 0x0000000000006d20  RW     0x200000
  DYNAMIC        0x00000000026b3928 0x00000000028b3928 0x00000000028b3928
                 0x0000000000000250 0x0000000000000250  RW     0x8
  NOTE           0x0000000000000254 0x0000000000000254 0x0000000000000254
                 0x0000000000000044 0x0000000000000044  R      0x4
  GNU_EH_FRAME   0x00000000026a98e0 0x00000000026a98e0 0x00000000026a98e0
                 0x0000000000000fb4 0x0000000000000fb4  R      0x4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0x10
  GNU_RELRO      0x00000000026b0748 0x00000000028b0748 0x00000000028b0748
                 0x00000000000038b8 0x00000000000038b8  R      0x1

 Section to Segment mapping:
  Segment Sections...
   01     .interp 
   02     .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .plt.got .text .fini .rodata .svm_heap .eh_frame_hdr .eh_frame 
   03     .init_array .fini_array .data.rel.ro .dynamic .got .data .bss 
   04     .dynamic 
   05     .note.ABI-tag .note.gnu.build-id 
   06     .eh_frame_hdr 
   08     .init_array .fini_array .data.rel.ro .dynamic .got
Steve Jones
It seems that the file .bloop.aux isn't being built correctly.
Steve Jones
OK, this is weird and unexpected. I install coursier itself with nix. And Somehow I'm getting version 2.0.16.
Tomasz Godzik
it seems that I also have shared library, but it's being correctly invoked with bloop
was that the same coursier version as before?
Steve Jones
Which is the latest version according to github. But 2.0.13 is the latest mentioned at https://get-coursier.io/
Which version is recommended?
In answer, I'm using 2.0.12 on one machine and 2.0.16 on another. But the behavior is the same on both.
What shell and shell version are you using? Maybe the shell is doing something magical in the working case.
I've never heard of anyone being able to execute a shared object file before.
Tomasz Godzik
it works on normal bash
Ubuntu + bash
Steve Jones
OK, and what version? I'm on 4.4.23 on one machine and 5.0.18 on the other.
(I tried zsh too, btw, just to see if was different -- it wasn't :( )
Tomasz Godzik
I think native image is creating an entry point and that's why it's possible to execute it https://www.graalvm.org/reference-manual/native-image/#build-a-shared-library
I don't think it has anything to do with bash
works on fish also
Steve Jones
(Agreed, I think the shell is not the problem)
Tomasz Godzik
this should work, as it works for many different apps that use coursier
and it's not really Bloop specific
you could try downloading the executable directly from the release page
as a workaround
Steve Jones
Are you able to execute .bloop.aux directly?
Steve Jones
I wouldn't expect it work correctly, of course.
Tomasz Godzik
it does :s
 ~/.l/s/c/bin .bloop.aux about                                                                                                        czw, 29 lip 2021, 19:05:54
bloop v1.4.8-19-4d9f966b

Using Scala v2.12.8 and Zinc v1.3.0-M4+46-edbe573e
Running on Java JDK v1.8.0_292 (/usr/lib/jvm/java-8-openjdk-amd64/jre)
  -> Supports debugging user code, Java Debug Interface (JDI) is available.
Maintained by the Scala Center (Jorge Vicente Cantero, Martin Duhem)
Steve Jones