???MashedPotatoes, 641 bytes, safe
synchronized(std::ignore){std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;std::cout<<"Hello,world!"<<std::endl;goto nullptr;WHILE 0.0f>`uniq-c`
s/++i//g
WEND goto __dict__;(format t"goto void(0);WHILE <> <(int)std::ignore
use strict qw/Object/;
WEND goto nullptr;goto __dict__;proc $ARGV{STDERR} {OUTPUT=*read-eval*}")}
Prints 1 to 100 as numbers, separated by newlines. Probably notProbably not too difficult but whatever.
I was worried it would be too difficulteasy since I used a language of my own design, but whateverI couldn't resist the opportunity to actually use this language for one of the few things it can actually do without being too awful.