code logs -> 2017 -> Mon, 05 Jun 2017< code.20170604.log - code.20170606.log >
--- Log opened Mon Jun 05 00:00:36 2017
00:24
<&ToxicFrog>
welp
00:24
<&ToxicFrog>
I just spent an hour debugging an issue where nothing worked on the AVR and everything worked on linux
00:25
<&ToxicFrog>
and it's because in the static dictionary declaration, I forgot to set the right flags on one of the words
00:25
<&ToxicFrog>
And in linux the flags I forgot are no-ops anyways because Von Neumann architecture
00:25
<&McMartin>
Can't trust them Von Neumann Machines >_>
00:32
<&ToxicFrog>
In happier news, it occurs to me that once I have if, I can implement ifelse as :ifelse { &exch exch if exec pop } defn
00:33
<&ToxicFrog>
Assuming the signature is (if-block else-block expr -- ?)
01:43 himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has joined #code
01:43 mode/#code [+o himi] by ChanServ
02:15 macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code
02:15 mode/#code [+o macdjord] by ChanServ
02:18 mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
03:40 * ToxicFrog implements & and list
03:45
<&ToxicFrog>
These are some exciting bugs in the compiler!
03:46
<&ToxicFrog>
[0] :two 2 const
03:46
<&ToxicFrog>
[0] :two' { two } defn
03:46
<&ToxicFrog>
[0] &two' list
03:46
<&ToxicFrog>
# word two'
03:46
<&ToxicFrog>
call word@0
03:46
<&ToxicFrog>
# end
03:47
<&ToxicFrog>
Also,
03:48
<&ToxicFrog>
it would be really nice if using -O0 -g STOPPED IT FROM OPTIMIZING AWAY FUNCTION ARGUMENTS
04:00
<~Vornicus>
what.
04:06
<&ToxicFrog>
Yeah, I know
04:07
<&ToxicFrog>
On the plus side, list now walks the dictionary to figure out what words are being called, even if they're direct C calls, where possible:
04:07
<&ToxicFrog>
[0] :^2 { dup * } defn &^2 list
04:07
<&ToxicFrog>
# word ^2
04:07
<&ToxicFrog>
call C@4198640 :dup
04:07
<&ToxicFrog>
call C@4198480 :*
04:24
<&ToxicFrog>
Hmm. Nested function definitions aren't working because `{` isn't declared immediate.
04:25
<&ToxicFrog>
Fixing this, in addition to being the correct thing, has performance benefits; a function's subfunctions will be compiled ahead of time and included in the function as embedded constants.
04:26
<&ToxicFrog>
This does, however, mean that they're chained into the dictionary as anonymous functions, and are (if I ever get around to writing that) subject to cleanup.
04:26
<&ToxicFrog>
And if cleaned up, the enclosing function stops working.
04:27
<&ToxicFrog>
For now I can just not implement cleanup and it's not a problem, but if I ever do implement it I'll need to distinguish between "anonymous functions that were created because the user was using `if` at the top level" and "anonymous functions that are part of another function and shouldn't be cleaned up until it is"
04:29
<&ToxicFrog>
(idea: anonymous functions have a NAME_IS_REFCOUNT flag which does what it says on the box. When you `freeword`, in addition to unlinking the word from the dictionary and free()ing all of its associated storage, it scans the wordlist, refdecs all anonymous words referenced within, and frees any that have their refcount go to 0 as a result of this.)
04:30
<&ToxicFrog>
(giving the function a name with `defn` clears this flag.)
05:05 celticminstrel is now known as celmin|sleep
05:08 JustLurk [justbob@ServerAdministrator.Nightstar.Net] has joined #code
05:08 JustBob [justbob@Nightstar.Customer.Dissatisfaction.Administrator] has quit [NickServ (RECOVER command used by JustLurk)]
05:08 mode/#code [+o JustLurk] by ChanServ
05:08 JustLurk is now known as JustBob
05:17 Turaiel is now known as Turaiel[Offline]
06:33 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
06:36 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
06:36 mode/#code [+o Alek] by ChanServ
07:11 Jessikat [Jessikat@Nightstar-i6t524.dab.02.net] has joined #code
07:11 Jessikat [Jessikat@Nightstar-i6t524.dab.02.net] has quit [The TLS connection was non-properly terminated.]
07:29 himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds]
08:53 Kindamoody[zZz] is now known as Kindamoody
09:18 himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code
09:18 mode/#code [+o himi] by ChanServ
10:33
<~Vornicus>
reading some code written for python 3.6. in 3.6 they improved the storage layout of the dictionary and as a side effect the dictionary now iterates in item insertion order.
11:03
<@himi>
Interesting
11:04
<@himi>
Does the language definition make that reliable?
11:11
<~Vornicus>
"The order-preserving aspect of this new implementation is considered an implementation detail and should not be relied upon" - it's mentioned that if they do keep it they'll still wait a couple of versions until it's actually official
11:13
<~Vornicus>
But it's *so fucking confusing* because I've been trained since forever that dictionaries have arbitrary order
11:13
<@TheWatcher>
Honestly, reading that, I'd just keep on assuming that anyway
11:13
<~Vornicus>
Right. It's not my code that's doing it
11:25 Kindamoody is now known as Kindamoody|afk
12:08
<&ToxicFrog>
Hmm. Do I really want & as a special form?
12:08
<&ToxicFrog>
Or do I just want it as a normal word that calls push(find_word(pop()))?
12:08
<&ToxicFrog>
So rather than &foo it would be :foo &
12:09
<&ToxicFrog>
Hmm. The latter case makes it easier to use on names not known at compile time. The former case avoids an allocation and a very easy memory leak.
12:14 mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code
12:14 mode/#code [+o mac] by ChanServ
12:17 macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
12:34
<@ErikMesoy>
siiiizeeeeers
12:37
<@TheWatcher>
Never include them in a program; it won't run with them unless it's misbehaving.
12:40
<@ErikMesoy>
TheWatcher: WTF? How do you do layout of UI elements, then?
12:42
<@TheWatcher>
Didn't your teachers tell you never to run with them?
12:42
<@ErikMesoy>
...oh. I think that pun was a bit of a reach.
12:42 * Vornicus throws TheWatcher into the pungeon
12:42
<~Vornicus>
(it's pungeont)
12:43
<@ErikMesoy>
also, namiiiing thiiiings
12:43
<@TheWatcher>
Hardest problem in computer science, that.
13:24
<&ToxicFrog>
:add { "push(pop() + pop());" } c/defn emits a definition reading "push + pop);" SPOT THE BUG
13:27
<@ErikMesoy>
Error, insufficient knowledge of spec.
13:46 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: WeeChat 1.7.1]
15:30 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
15:30 mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ
17:27 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Operation timed out]
17:31 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
17:31 mode/#code [+o Alek] by ChanServ
18:59
<@ErikMesoy>
Learning proper documentation through not understanding what I did last time.
19:20 Kindamoody|afk is now known as Kindamoody
19:23 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
19:26 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
19:26 mode/#code [+o Alek] by ChanServ
21:35 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
21:36 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
21:36 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
22:07 Turaiel[Offline] is now known as Turaiel
22:26
<&McMartin>
iOS 11 announced
22:27
<&McMartin>
Time to desperately start archiving documentation so I can migrate code to iOS 11 before they purge all the data I'd need to do it
22:27
< Mahal>
oh bugger.
22:28
<&McMartin>
Apple's approach to legacy support is problematic on several levels.
22:32
<@ErikMesoy>
This being the "why haven't you bought our shinier new version yet?" kind of legacy support?
22:35
<&McMartin>
No, like, "you want to have software where the same binary runs on the present and immediately previous version of iOS? Enjoy manually tweaking linking options and checking for symbol existence by hand"
22:35
<&McMartin>
"Because we don't run the 3-version deprecation cycle that would let you get that result by programming to a single API"
22:56 Kindamoody is now known as Kindamoody[zZz]
--- Log closed Tue Jun 06 00:00:37 2017
code logs -> 2017 -> Mon, 05 Jun 2017< code.20170604.log - code.20170606.log >

[ Latest log file ]