xkapastel has quit [Quit: Connection closed for inactivity]
orivej has quit [Ping timeout: 250 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
Nistur has quit [Ping timeout: 265 seconds]
Nistur has joined #picolisp
<Regenaxer>
I would not waste my time with Ersatz
orivej has joined #picolisp
f8l has joined #picolisp
<tankf33der>
ersatz only for bootstraping and fun.
<Regenaxer>
Exactly
orivej has quit [Ping timeout: 268 seconds]
beneroth has joined #picolisp
rob_w has joined #picolisp
orivej has joined #picolisp
mtsd has joined #picolisp
cil_z has joined #picolisp
cil_z has quit [Ping timeout: 246 seconds]
<beneroth>
Good morning
<mtsd>
Good morning beneroth!
<beneroth>
Regenaxer, please check my answer to Kayshap for correctness, thanks :)
<beneroth>
Good morning mtsd :)
<mtsd>
Doing well, I hope?
<beneroth>
mostly yes. still to busy with too many projects in parallel.
<beneroth>
generally a good thing, but some stuff got delayed, and I agreed to too much work, so everything comes together :)
<beneroth>
but some parts of it I can do with picolisp, and that is more fun (and easier) :)
<beneroth>
how are you doing, dear mtsd ?
<Regenaxer>
Hi beneroth, mtsd!
<Regenaxer>
Thanks beneroth for the long mail!
<Regenaxer>
It looks very good. I read in detail later
<Regenaxer>
on phone atm
<mtsd>
Hi Regenaxer, hope you get a good day :)
<Regenaxer>
thanks! yess :)
<mtsd>
Good email, beneroth. I just read it.
<mtsd>
Prolog was the first programming language I encountered, it really is a different beast :)
<beneroth>
thank you :)
<beneroth>
prolog as first language? wow
<mtsd>
Yes, University times..Well, I had dabbled some in C before, but prolog was the first course :)
<mtsd>
Took some time to wrap my head around that one..
<beneroth>
My first language was C++ (self-study), I always profited from knowing about pointers and the "inner workings" which are less transparent in more abstract/bloated languages
<beneroth>
In school (for software programmer) we learned C without pointers "you will not need it for Java anyways")
<Regenaxer>
haha
<Regenaxer>
"evil pointers"
<Nistur>
my brother ( a physics student ) is currently learning C for his university course and is struggling to understand pointers
<Nistur>
he keeps sending me his (failed) attempts to write things
<Nistur>
which look an awful lot like, if it doesn't work, he just puts a * in places, and hopes it's correct
<Nistur>
also o/
<beneroth>
Nistur, aye
<beneroth>
I think of pointers as signposts
<beneroth>
in my school, in the java courses the error most often occuring was "NullPointerException". and people mixing up array and ArrayList (array of pointers like C++ vector)
<beneroth>
but yeah
<Nistur>
I haven't written much java in the past... 15 years I think. I did a _little_ before university, but since then it's only been to coax some Android builds for various things
<beneroth>
most work done by IT people these days is needed because of the flawed efforts of IT people
<beneroth>
at least in software, maybe valid for whole IT
<Regenaxer>
Hi Nistur!
<Regenaxer>
beneroth, wow!!! A very very good explanation in the mail!!
<Regenaxer>
impressive!
<Regenaxer>
It is a full documentation in itself
<Nistur>
we had a debate at work yesterday about pointers and references in C++. One of my colleagues was saying that they are semantically different in the language. My argument was that might be true in theory, but in practice, 99% of the time, the compiler will implement them as the same thing (the only exception, I think, is in the case where the reference is the same scope as the thing it's referencing,
<Nistur>
which is _normally_ not a valid use case) and as such, it's got almost all the same flaws as pointers, but more difficult to guard against. For example: "References can never be null" - no, it's difficult to purposefully make them null because the compiler/language won't allow it, but it's very easy to accidentally do so. I've seen it many times where I've debugged a program and a reference is
<Nistur>
referencing null because reasons. So in most practical use cases, pointers and references are indistinguishable at runtime
<mtsd>
beneroth, maybe turn the e-mail into a wiki article?
<Regenaxer>
Good idea
<Nistur>
o/ Regenaxer
<Regenaxer>
:)
<beneroth>
thanks Regenaxer
<beneroth>
wiki maybe later. Feel free to turn my mail into one. I'd like to do some more picolisp tutorial/documentation writing, but no time at the moment :( it's on the todo list...
<beneroth>
Nistur, with Java people you cannot even discuss about the C++ syntax difference of pointers and references, as Java (and .NET) made a point by not using the word pointer but only the word reference (which in these languages can be null)
<beneroth>
so for Java people pointer and reference is the same word, they cannot understand that in C++ it's two (related) things
<beneroth>
I often miss the NIL equals false semantic of picolisp (or the 0 equals false from C++) in C#. with shorter checks for null and empty strings, you could probably save a third or more LOC of a C# codebase.
<Nistur>
yeah, it's a bit annoying :P Buuuuuuut doing gamedev in Unity, they've overridden something (I forget which) that makes that work for anything that inherits from UnityEngine.Object (which is most things)
<beneroth>
ah nice
<Nistur>
ahh, it's an override conversion to bool
<Nistur>
public static implicit operator bool(Object obj){ return this == null; }
<Nistur>
at a guess
<beneroth>
nice thanks
andyjpb has joined #picolisp
orivej has quit [Ping timeout: 276 seconds]
mtsd has quit [Quit: Leaving]
beneroth has quit [Quit: Leaving]
beneroth has joined #picolisp
rob_w has quit [Remote host closed the connection]
orivej has joined #picolisp
beneroth has quit [Quit: Leaving]
Seteeri has joined #picolisp
Seteeri has quit [Remote host closed the connection]
beneroth has joined #picolisp
jibanes has quit [Ping timeout: 240 seconds]
jibanes has joined #picolisp
bitmapper has joined #picolisp
<bitmapper>
i think i may be able to directly embed the C versions of the missing functions in picolisp into ersatz picolisp
orivej has quit [Ping timeout: 268 seconds]
<beneroth>
hi bitmapper
<bitmapper>
hi!
<beneroth>
you attempt to make ersatz to a full picolisp edition?
<bitmapper>
i got it to compile to a native binary in graalvm
<beneroth>
but there are differences between the C version (pil32) and the pilASM version
<beneroth>
oh
<beneroth>
never heard of graalvm
<beneroth>
ah nice
<bitmapper>
oracle made a jvm that can compile to native binary + interop with js, c, any llvm lang, and python
<bitmapper>
the performance is much, much nicer, at 150% less memory usage
<bitmapper>
about 150% at least
<bitmapper>
it uses 2mb of ram, so a big improvement
<bitmapper>
doing this because i'm on macos for the time being, wanted to try picolisp
<beneroth>
a project by Oracle which doesn't suck? didn't thought there weren't doing such things anymore :D
<beneroth>
wow
<beneroth>
yeah
<beneroth>
pil and macos don't play well :(
<bitmapper>
and that's the *open source* graalvm's performance
<beneroth>
sounds like Java is on the way to be COBOLized
<bitmapper>
i think java itself is going to die, but the jvm won't
<beneroth>
same
<bitmapper>
jvm is pretty nice
<beneroth>
what do you prefer about pil in favour of clojure?
<bitmapper>
it's terseness
<bitmapper>
*its
<beneroth>
kinda the best argument, haha
<bitmapper>
hmm, i could mess around with it on my irix machine for the time being lol
<beneroth>
problem is, pil kinda expects linux, not merely posix. it plays well on BSDs, but I'm not so sure about all the other UNIXes
<bitmapper>
doesn't it have irix support?
<bitmapper>
kinda bizzare, but i'll take what i can
<beneroth>
should work on solaris. I got it working on an older solaris, but not the full picolisp (I think fork etc. had some issues), but I didn't invest much time
<beneroth>
dunno
<beneroth>
it might well have
<bitmapper>
i did get the 32 bit version building as a 64 bit binary on macos, with a big issue though
<bitmapper>
doesn't like big numbers
<beneroth>
no *.s file for irix
<bitmapper>
ahh, i was meaning the 32bit version
<beneroth>
ah well
<beneroth>
32bit should be easier than pil64
<bitmapper>
i did find a gas compatible assembler that can make binaries for macos in the process though!
<beneroth>
and you can always build pil64 as emu, then its 32bit C but emulating enough for the pil64 stuff to work, afaik
<beneroth>
oh!
<beneroth>
yeah gas on solaris was my biggest issue too
<bitmapper>
it can't make picolisp binaries, just due to no support, but it can handle the assembly