How Repl works (specifically HTML repls)
xxpertHacker (485)

Forewarning, this is a code question, but I'm pretty sure I'll need a Repl.it moderator.

Background

All Repls have a hidden .replit file, if you make your own file and configure it correctly, it will override the predefined .replit file.

Now here's the thing, part of that is pure conspiracy, I have never seen nor accessed the predefined file, I have no proof it even exists, but creating your own file does work. (If your a moderator please explain if anything here is wrong, and comment with what needs to be modified)

This can be applied to practically any Repl, but I found out it doesn't work with every Repl, as it failed on HTML Repls, so how do Repl.it's HTML Repls work? Are there any other Repls that will fail?

The actual question

If I'm correct, what do the predefined .replit files look like?

To the moderators: Is there any reason you wouldn't answer a question like this, are you trying to keep the data in them secret? Allowing open access to them can only give us greater control over our code and improve accessibility. Prior to finding out about .replit files, I had used Bash Repls where ever I needed to do something that I couldn't, like run C++ with extra compilation flags.

Ideally, I'm given the code that is used in every Repl, because I am extremely interested in what they contain (to enhance my programming abilities ofc), but I understand if that isn't possible.

The rules request that I include a Repl, I'm sorry... I'm including an old post: https://repl.it/talk/share/C-Approximation-of-p/32173
You are viewing a single comment. View All
eankeen (1385)

we know that repl handles html repls differently not just from those facts, but because loading time on html repls is much faster and doesn't have that loading / progress bar. i don't know precisely the differences between html repls and non-html repls.

you can find all repl types that are treated like non-html repls, or regular repls on their polygott repository. we know the environment of each repl of those different languages is the same. and by environment, i mean libraries (ex. libc), programming langauges (nodejs, python), binaries (ex. /bin/ls, /sbin/fdisk), and other stuff you would expect in a linux operating system. this is all pacakged up in a process container compliant with the OCI spec, (like a docker container). it does say 'base image', so i'm not sure exactly what kind of sugar they put on top, if any - would have to inspect a little bit more

and i doubt the difference in the existence and behaviors of a "predefined .replit file" is dependent on how the operating is setup. so it's not like replit patches the readdir syscall on the host machine or patches ls to specifically exclude .replit files, that would be absolutely ludicrous

and the only reference to .replit in their public code is in the same repository that i linked, in the polygott-gitignore file. they are specifically ignoring a folder called .replit

whether specifically this is stored in a file (unlikely) or whether the defaults can be accessed over an internal, beats me, so maybe someone else can shed some light over it

so if you actually open up one of the files in the repository i linked, you can see the defualt run command under the run stanza

so that directly answers your question XP

xxpertHacker (485)

@eankeen From what Highwayman informed me of, and my personal tests based upon that information, I’ve determined that their data isn’t stored in the “.replit” files. So I cannot know with 100% certainty what their default settings are, but thank you nonetheless

eankeen (1385)

@StudentFires you can see the defaults for each run command in the repository i linked

xxpertHacker (485)

@eankeen Umm... how is there a folder with a dot in its name?

eankeen (1385)

@StudentFires the ext4 filesystem stores files and folders exactly the same way with inodes (linux folers are files), and linux doesn't post that type of restrictions on files so i wouldn't see a reason why it wouldn't be totally valid.

but if you're asking about why it's there, maybe they plan to store extra replit-specific files in that folder in the future, and don't want that committed to version control, and don't want or can't (easily) update previous repls with the new .gitignore file (if they add it down the road instead of now). tbh i don't think there is much rhyme or reason, other than for 'just in case' and 'why not' purposes

xxpertHacker (485)

@eankeen I haven't tried this w/ a Linux, I believe Windows has this folder name restriction.

eankeen (1385)

@StudentFires oh really? sounds incredibly odd

xxpertHacker (485)

@eankeen This is actually awesome! This includes languages that Repl doesn't display. I've been wanting to start learning WASM for some time now, but to see that Repl already supports it is pretty encouraging.

pyelias (1753)

@eankeen The command in the file you linked is the one used by run-project. The run button uses a different one in some cases.

eankeen (1385)

@pyelias oh interesting, which ones are those?