« first day (2176 days earlier)      last day (2661 days later) » 

12:04 AM
0
A: Sandbox for Proposed Challenges

sergiolPlay time Hello. It is time to play the most popular portuguese card game: Sueca! So for people who does not know the game, it is needed to print a wall poster to make them know the power and the points each card has. So, the job is to print an ASCII art wall as: 11 10 4 ...

 
12:15 AM
@flawr Very nice.
Populating the chessboard that way is a pretty clever way to figure out the stationary distribution.
 
Question: I have found lots of optimization for cheddar but will use more memory. Should I worry about memory usage or just do the things for speed?
 
How much memory?
 
can't give you an exact number
but it'll use a bit more
 
If it means going from N to N^2 memory for [system], probably not the best idea.
 
Kind of an unanswerable question
 
12:22 AM
It's more of a question of "how memory-efficient do you want a languaage to be (in a speed-v-memory senario)"
 
For me, not very.
 
Pretty efficient. Node is already bulky enough since it's a VM + GC
 
I don't maintain large databases, and I would rather the code finish faster.
 
@quartata V8 does not use VM?
 
> Node
 
12:23 AM
yeah?
 
Not VM in that sense obviously
The runtime
 
...
V8 does not use a VM
it compiles to native machine code
 
Oh Jegus.
Someone wrote the Quine.
 
@Downgoat It isn't what you would consider a traditional VM but it exists in the form of its runtime analysis and GC
 
0
A: Sandbox for Proposed Challenges

sergiolLeft-to-Right calculator Given the opinion I posted on http://ux.stackexchange.com/a/99984/51560 , I want to have a calculator where the least-significant least digits are placed on the left. The input must come from stdin. It only needs to support non-negative integers. Additions must support ...

 
12:27 AM
Whoah.
 
@quartata Barely. I'd hardly call it a VM anymore than compiled C code a VM
 
That's pretty good.
 
I mean yes it has little overhead to handle the type system but other than that there's very little
 
I wonder if Threead is TC with just one thread.
 
The GC is kind of the killer. If you're shaving off milliseconds at the cost of an increase in memory usage you'll probably lose that time to the GC later
 
12:29 AM
Also, Just finished my own quine.
 
@Downgoat A GC and the profiling is orders of magnitude more runtime overhead than C
 
I'm talking about doing things which allocates extra memory to the GC for speed at the cost of memory
 
@Downgoat I suspect you're doing something wrong if the GC is that big an issue then
 
@quartata Yes, of course, but I was using that analogy in the context of the VM
@quartata Yes, STDLIB takes 40%ish of runtime because it's being generated at startup so I am trying to cut down on that at the moment
 
I don't believe you have any but threads are often kryptonite for GCs
Does your profiler show heap usage
 
12:32 AM
"$$Bv$/s@$@c8$$$$$$vB$$p$/c6Bb_$f$vgs$@$/Bba&`&&$c5$$$$$1c5$$$$$p"


  >r +o< <_4      r>
  l +_2>^[ b rco < +>^]
"\"" _1     -_1     l
With some unprintable characters
 
@Downgoat except no one really cares that much about startup
 
@quartata kind of, you can see how much v8's heap management methods are being called
@quartata orly
Java is kinda fast except startup
but people therefore think it is slow
 
Well then they're dumb. Can't do much about that.
Think about it like this: the most speed critical applications are also usually the longest running. It amortizes out.
 
Lemme see the heap usage after loading the standard library
 
@quartata The last boss of undertale genocide is so much fun I've been randomly replaying just that fight for kicks and giggles.
Just beat it for like the 4th time.
 
12:38 AM
There's an infinite version online
That's how I practiced
 
Really? Where?
 
{ rss: 34365440, heapTotal: 18853888, heapUsed: 10506464 }
 
Don't remember, I saw it on reddit.
@Downgoat Human readable please
 
Haha, it's called bad time simulator
Anyway, that sounds less fun. The most rewarding part is surviving the pre-special attack
 
rss: 34.36544 megabytes
heapTotal: 18.853888 megabytes
heapUsed: 10.506464 megabytes
this is right before execution (i.e. standard library loaded, code parsed, callstack ready)
 
12:40 AM
BTW really good stat: percent of time spent in GC. NetBean's profiler shows that and it's much more telling than heap usage IMO
 
 [Summary]:
   ticks  total  nonlib   name
     32    8.3%    9.2%  JavaScript
    266   69.3%   76.7%  C++
      6    1.6%    1.7%  GC
     37    9.6%          Shared libraries
     49   12.8%          Unaccounted
aha
what what O_o
 
Ahahahaha you're probably loading symbols eagerly
 
what does that mean ._.
 
Wait is this memory?
 
no this is CPU usage
   ticks    cpp   total   name
    141   50.4%   36.7%  v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
API call might be either to load shared lib or JS/CPP interface
 
12:44 AM
I'd compare it to without your weird bindings
 
I think it'll be about the same
 
It could just be because you've outsourced the hard things to C++
So try it the way it was before
 
Yup, it's about the exact same without C++ bindings
 
May I see?
 
@quartata sure:
:34741277  [Summary]:
   ticks  total  nonlib   name
     32    8.3%    9.2%  JavaScript
    266   69.3%   76.7%  C++
      6    1.6%    1.7%  GC
     37    9.6%          Shared libraries
     49   12.8%          Unaccounted

 [C++ entry points]:
   ticks    cpp   total   name
    141   50.4%   36.7%  v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
This is with 0 bindings
 
12:47 AM
0
Q: All squares that match a wildcard sequence

Alex L.This was inspired by part of the 2016 ARML competition Team Problem #6. Given a wildcard sequence, find all square numbers that match it. The meaning of this becomes more clear in the examples. Input Input will be given as a sequence matching the regex [0-9?]+, where ? can be any ASCII charact...

 
I can post full log if you want
 
@Downgoat ?? C++ is still there?
 
I'm really quite amazed how quickly that quine was pumped out.
 
@quartata C++ is refering to time spent executing C++ instructions while JavaScript refers to my code
 
That's exactly the same actually. No noise at all >_>
 
12:48 AM
wait what
oops, wrong file
 
hue hue
 
 [Summary]:
   ticks  total  nonlib   name
     29    6.8%    7.9%  JavaScript
    283   66.3%   76.9%  C++
      5    1.2%    1.4%  GC
     59   13.8%          Shared libraries
     56   13.1%          Unaccounted

 [C++ entry points]:
   ticks    cpp   total   name
    158   52.3%   37.0%  v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
there
 
So does time in the C++ bindings count towards C++?
Ticks in JS have gone down
How many iterations do you do?
 
@quartata I believe so however it might count in Shared Libraries or Unaccounted
@quartata iterations in what?
oh, just one
 [Summary]:
   ticks  total  nonlib   name
     32    8.2%    9.0%  JavaScript
    272   69.7%   76.8%  C++
      6    1.5%    1.7%  GC
     36    9.2%          Shared libraries
     50   12.8%          Unaccounted

 [C++ entry points]:
   ticks    cpp   total   name
    148   52.3%   37.9%  v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
so seem like there's a little noise but not too much
 
What code are you running
 
12:53 AM
I'm running cheddar with no code
this is 100% start up time
hm, ok a big bit of time (50 ticks) are spent on module resolution, lemme fix that
 
oh well no wonder
 
that's still only is 1/5th of it though
 
not what I was referring to
 
1:24 AM
@xnor i could say a few words, but maybe in another chat room? people seemed to be getting annoyed before
or, i could also not say a few words
 
@MitchSchwartz Ignore those people. Site discussion always takes precedence
That's what this is ostensibly for
(well aside from meta)
@Downgoat What's the comparison between the two like when you run, say, my primes benchmark
 
which two?
 
Profile of bindings and profile of not bindings
Although I want to see it in general too
Just to see GC partially
 
I found a 24 Byte Threead quine.
 
Do you have the Cheddar code? I think it's in the transcript
 
1:30 AM
um, ok then. well i think we have a little common ground, but at the core we have very different philosophies or something. i am the sole downvote on your answer here meta.codegolf.stackexchange.com/a/10132/2537 -- while i think upvoting trivial answers is quite silly, what bothers me much more than the silly voting is how seriously people take it, holding onto the ideal of what it "should" be rather than recognizing it for what it is
 
@TuxCopter are you around?
 
1:53 AM
Threead is still an unreadable mess.
 
there are a lot of fountains on this nethack level
 
0
A: Sandbox for Proposed Challenges

sergiol1 line ASCII Domino play The game is described on my own question I posted on Domino game maximum achievable points. The rules for scoring are on the link, so I think I don't need to repost them here The challenge is to write a game that is an ASCII one line domino game for me to play. Rules:...

 
If Threead is provably turing complete using only one Thread, I will attempt to remodel it.
 
....
I'm an idiot
4
I attacked a floating eye...
 
2:02 AM
yup
 
@ATaco how does Threead determine the order in which code is executed?
@DestructibleWatermelon I's a floating eye. Not suer what you expected.
 
Any read actions happen first, any write actions happen after.
As a write action can only effect one thread, itself, they cannot conflict.
 
Is that handled automatically?
 
Kind of, yeah.
 
If a function were to contain os.exit(), when would it run?
 
2:04 AM
I should explain it a bit more carefully.
 
@Pavel e is...
 
The threads themselves are run sequentially, 1 - 2 - 3. Before any thread is processed, the memory is copied to a readonly table. Any read done in any thread reads from this table, any write is done to the memory.
 
So simply calling os.exit() would prevent any output from occuring on the same column.
 
Any output occurring after it in the same column.
Output itself is one of the only things that care about the thread its on, if two outputs happen at the same time, the string is stacked like 123
 
I'll leave that to you, then. I suggest @ to terminate the program.
 
2:07 AM
1o
 @
2o
1 would print, 2 would not.
 
@ATaco are you making a lang? you got a github?
 
Yeah, Threead
I hope you like obscure whitespace dependent esolangs!
 
hmmmm, now I know how people who read my github for Turtlèd feel...
 
I have example scripts! :D
 
LUA is 0-indexed or 1-indexed?
 
2:16 AM
0
Q: Converting Numbers to a "Not quite place-value system"

Ando BandoLets create a system of numbers where the biggest digit in the nth place value (counting from right to left) of a number length m is always equal to m - n + 1. To give an example the largest 5 digit number expressible in this system is written 12345. Apart from the number of digits available to b...

 
1-Indexed.
 
strsub(s,i,j) gives [i,j] or [i,j)?
 
[i,j]
 
thx
funcs['*'] = function(this,left,right)
	local l = (readmemory[left][readpointer[left]] or 0)
	local r = (readmemory[right][readpointer[right]] or 0)
	if(type(l)=='string'and type(r)=='number')then
		memory[this][pointer[this]] = l:rep(r)
	elseif(type(r)=='string'and type(l)=='number')then
		memory[this][pointer[this]] = r:rep(l)
	else
		memory[this][pointer[this]] = l+r
	end
end
That + in the third to last line should be a *, I think.
 
Yep, not sure how I missed that.
 
2:22 AM
(Why did I delete that? I'm not sure why I deleted that)
 
I might make a 2d lang some time
 
I already fixed the * problem in the distro.
Also, Threead is technically not 2d.
Which makes it more confusing.
 
I added functions
 
esolang idea: python but without exec and without newlines
 
I can see that, but now it will Merge Conflict.
 
2:26 AM
or eval
 
Can you resolve the conflict? I'm not sure how that works.
 
Resolved.
 
Yay!
 
@DestructibleWatermelon what about ;?
 
no, you can use that probably
actually, could it be TC without ;?
 
2:33 AM
I'm just mulling over these functions, as I'm not sure how well they fit in with the idea of Threead.
 
@DestructibleWatermelon Probably
 
brb I'm gonna try implementing minsky machine
 
@DestructibleWatermelon that seems like a very boring esolang you've got there.
 
yeah, no ; if I can help it
hmmmmmm, how to have no ;...
starting to think might nor be possible
 
2:39 AM
@DestructibleWatermelon I'm trying rn and I think it is possible
 
I mean, how to assign or keep variables
hmmmmmmm, I'm thinking that maybe...
it might be possible...
 
If it can compile bf, it's TC
 
if only there was a do while
 
interpret*
 
That's not actually proven
If you can transpile BF to it, on the other hand...
 
2:41 AM
I'm making a recursive Brain-Flak interpreter
@Pavel That is
 
Oh, really?
Huh
 
you're using confusing terminology
 
Probably.
What does recursive Brain-Flak interpreter mean?
 
I am making a Brain-Flak interpreter with recursive lambdas
 
I did not know recursive lambdas were a thing.
 
2:43 AM
maybe with exactly 1 ;?
 
@WheatWizard can you call a recursive lambda in one line?
I know you can call a regular one via (lambda x: foo)(42)
 
oh I guess you do need to call it
its not a PPCG answer where you just define it
 
Well and a recursive lambda has to call itself
 
this is now very hard
 
import re,sys
r=re.compile('.*[\\n(exec)].*')
code=sys.argv[1]
if r.matches(code):
    sys.exit(1)
else:
    exec(code)
I think I did that right
 
2:53 AM
If that's a regex, that is not correct.
 
Aww.
Why not?
 
[] matches -any- character inside it.
 
@Pavel exec is not a single character
 
I though it worked if I suround it in parens
 
.*(\n|exec)
I think that should do the trick
 
2:55 AM
import re,sys
r=re.compile('.*\n|(exec)')
code=sys.argv[1]
if r.matches(code):
    sys.exit(1)
else:
    exec(code)
Doesn't that not match exec foobar?
 
Don't you just need \n|exec?
Does matcheshave to match the entire string or are partial string matches fine?
 
Or am I just getting regexes way wrong.
 
I don't speak Python, not for a long time.
 
@Pavel re.matches will match regardless of what comes after
 
Ah.
 
2:57 AM
re.search will match regardless of what comes before and after
 
Should probably stick a space after exec
 
and is probably what you want to use in this case
 
just realised it's Friday the 13th
 
so r.search(code) and for the regex just \n|(\W|^)exec(\W|$)
 
and [^\w] before
Right?
import re,sys
r=re.compile('.*\n|;|([\W]exec )')
code=sys.argv[1]
if r.matches(code):
    sys.exit(1)
else:
    exec(code)
 
2:59 AM
you are going to need something stronger than regex if you want to allow exec within strings
 
Problem solved.
\n|(\W|^)exec(\W|$)
 
but I don't think that will actually matter for the TC of the language
 
Yeah
 
Also, generally this is a pretty not great idea.
 
Well, yeah.
 

« first day (2176 days earlier)      last day (2661 days later) »