fCPU


Factorio Customizable Processing Unit. Allow to write any logic on low level machine code. The fCPU acts like a programmable microcontroller with a vector coprocessor that supports many useful instructions.

Content
6 months ago
0.18 - 2.0
13.3K
Logistic network Circuit network

g PY Error

7 months ago

Greetings

Thx for taking the time to create this mod.

FYI: Playing with PY mods.
Used to work but now I get:

Failed to load mods: pypostprocessing/data-updates.lua:13: attempt to index field '?' (a nil value)
stack traceback:
pypostprocessing/data-updates.lua:13: in function 'set_underground_recipe'
pypostprocessing/data-updates.lua:36: in main chunk

Might be other mods causing the issue but only with fCPU active do I get the error.

Regards

Regards

7 months ago

Thank you for report.
The error tells that the issue is not in fCPU.
Anyway can you provide your modlist?

7 months ago

Ok, as I thought must be something in the PY set that is causing the issue.

Here is the mod list - quite a bit

MODSET:
{
["144-Slot-Wagons"] = "1.0.3",
["5dim-cats"] = "2.0.4",
["5dim_compatibility"] = "2.0.3",
["5dim_core"] = "2.0.39",
["5dim_module"] = "2.0.8",
["5dim_resources"] = "2.0.5",
["5dim_storage"] = "2.0.3",
["5dim_trains"] = "2.0.2",
["7seg"] = "2.0.1",
["Accessible-Signal-Icons"] = "2.0.0",
["Adjustable-Inventory-Size"] = "2.2.0",
["Advanced-Electric-Revamped-v16"] = "0.7.6",
Asteroid_Mining = "2.0.16",
AutoDeconstruct = "1.0.10",
Automatic_Train_Painter = "2.0.1",
BarrelFluidIcons = "1.1.1",
BaseModLibrary2 = "2.0.2",
["Better-Energy-production"] = "0.6.2",
BigAccumulator = "1.0.3",
BigLight = "0.3.0",
CarLogistics = "1.0.1",
ChangeInserterDropLane = "1.2.0",
["CircuitHUD-V2"] = "2.5.1",
CleanedConcrete = "2.0.0",
["Common-Industries"] = "1.0.2",
ConstructionPlannerContinued = "5.1.1",
["Constructron-Continued"] = "2.0.39",
["Cybersyn-Content-Reader"] = "1.0.2",
DeadlockLargerLamp_goakupdate = "0.0.4",
DeadlockStackingForVanilla = "2.0.3",
DeadlocksStackingForPyanadon = "0.6.7",
DiscoScience = "2.0.1",
DisplayPlatesForked = "1.6.1",
EditorExtensions = "2.5.2",
EnhancedCircuitNetworkVisibility = "2.0.0",
EvenDistributionLite = "1.4.5",
FNEI = "0.4.6",
FastGate = "1.1.0",
FilterChests = "1.2.0",
["Flow Control"] = "3.2.3",
["Fluid-level-indicator"] = "0.9.9",
FluidMustFlow = "1.4.4",
FluidWagonColorMask = "2.0.0",
GUI_Unifyer = "2.0.1",
GhostScanner4 = "4.0.6",
["Inventory Sensor"] = "2.0.6",
K1_Advanced_fluid_continued = "2.0.1",
K1_Advanced_storage_continued = "2.0.3",
KS_Power = "2.0.0",
Krastorio2Assets = "2.0.4",
["Kux-BlueprintExtensions"] = "3.3.16",
["Kux-CoreLib"] = "3.17.8",
MaxRateCalculator = "200.0.53",
Milestones = "1.4.7",
Mining_Drones = "2.0.2",
ModuleInserterEx = "7.3.2",
MoreStorageTanksFixed = "2.0.0",
["Nuclear Fuel"] = "1.2.5",
["PipeVisualizer-Updated"] = "2.4.4",
RailSignalPlanner = "2.0.3",
RateCalculator = "3.3.7",
RealisticOres = "9.200.1",
RecipeBook = "4.0.8",
SchallCircuitGroup = "2.0.1",
SchallCircuitScaling = "2.0.0",
SchallLampContrast = "2.0.1",
SchallRemainsPickup = "2.0.2",
SchallTransportGroup = "2.0.2",
SchallVirtualSignal = "2.0.0",
["Solar-Lamp"] = "0.2.1",
["Sort-All-Inventories"] = "1.0.0",
Tapeline = "3.0.4",
TjSignBoards = "1.200.4",
UltimateBeltsSpaceAge = "1.3.0",
UndergroundIndicatorsFixed = "1.3.6",
VehicleSnap = "2.0.3",
Warehousing = "1.0.3",
["Water-Friendly-Walls"] = "2.0.7",
Waterfill_v17 = "2.0.5",
WideChests = "6.2.4",
["WideChests-aai-reskin"] = "0.2.0",
WideChestsAllTypes = "2.0.0",
WideChestsLogistic = "3.1.1",
Wood_Gasification_updated = "4.2.1",
WoodenBrick = "1.0.11",
Wr_Enhanced_Map_Colors = "1.5.9",
["aai-containers"] = "0.3.2",
["aai-loaders"] = "0.2.7",
["aai-signal-transmission"] = "0.5.3",
["aai-signal-transmission-luarendered-channel-label"] = "2.1.1",
["aai-signals"] = "0.7.1",
["aai-vehicles-miner"] = "0.7.1",
["aai-zones"] = "0.7.2",
["accumulator-walls"] = "2.0.3",
["atan-null"] = "2.0.2",
["automatic-station-painter"] = "2.0.0",
["barrel-stages"] = "2.0.0",
base = "2.0.72",
["belt-visualizer"] = "2.0.2",
bobinserters = "2.0.1",
botReplacer = "2.0.0",
circuit_visualizer = "2.0.2",
["color-coding"] = "2.0.3",
color_whole_train = "2.1.0",
compaktcircuit = "2.0.26",
["concreep-redux"] = "3.3.2",
["construction-train-werl"] = "0.3.3",
cybersyn = "2.0.37",
["cybersyn-combinator"] = "2.7.3",
["deadlock-beltboxes-loaders"] = "2.6.0",
["deep-storage-unit"] = "1.6.8",
depressdog_updater_lib = "0.0.7",
["display-panel-symbols"] = "1.0.0",
electricboiler = "2.0.1",
["elevated-pipes"] = "1.4.5",
["est-tiny-storage-tank"] = "1.4.0",
["even-more-text-plates-2_0"] = "2.0.0",
["even-pickier-dollies"] = "2.7.2",
flib = "0.16.5",
["fluid-connection-indicators"] = "0.2.7",
["fluid-memory-storage"] = "1.7.9",
galore_lib = "1.6.2",
["gas-boiler"] = "0.2.1",
["ghost-painter"] = "1.0.0",
["hazard-stripes"] = "2.0.1",
helmod = "2.2.6",
["icon-badges"] = "1.2.6",
["infinite-radar"] = "2.4.5",
informatron = "0.4.0",
jalm = "2.0.1",
["k2-fluid-storage"] = "1.2.1",
["k2-greenhouse-plus"] = "1.2.0",
["k2-wind-turbine"] = "0.1.2",
kry_stdlib = "2.0.11",
["lane-balancers"] = "1.2.2",
["larger-display-panels"] = "1.0.0",
["loaders-modernized"] = "1.0.4",
["logistic-helper"] = "2.2.0",
["logistic-memory-units-fixed"] = "2.0.0",
lordodin_no_drains = "2.0.2",
["mining-patch-planner"] = "1.7.14",
miningdrones_aaiminer_space_age = "0.0.9",
["nco-LongStorageTanks"] = "2.0.0",
["nco-SmallTank"] = "2.0.0",
["nixie-tubes"] = "2.0.9",
["not-enough-parameters"] = "1.0.1",
["prismatic-belts"] = "2.0.9",
pump = "2.1.18",
pumping_station = "0.2.6",
pushbutton = "2.0.5",
["py-another-early-train"] = "0.1.3",
py_liquidfuel = "0.4.3",
pyalienlife = "3.0.60",
pyalienlifegraphics = "3.0.10",
pyalienlifegraphics2 = "3.0.2",
pyalienlifegraphics3 = "3.0.4",
pyalternativeenergy = "3.1.35",
pyalternativeenergygraphics = "3.0.5",
pycoalprocessing = "3.0.43",
pycoalprocessinggraphics = "3.0.9",
pycranes = "1.1.1",
pyfusionenergy = "3.0.16",
pyfusionenergygraphics = "3.0.4",
pyhightech = "3.0.17",
pyhightechgraphics = "3.0.2",
pyindustry = "3.0.19",
pyindustrygraphics = "3.0.2",
pymodpack = "3.0.0",
pypetroleumhandling = "3.0.21",
pypetroleumhandlinggraphics = "3.0.5",
pypostprocessing = "3.0.39",
pyrawores = "3.0.24",
pyraworesgraphics = "3.0.4",
qol_research = "3.4.2",
resourceMarker = "0.8.33",
["robotworld-continued"] = "2.0.0",
["rusty-locale"] = "1.0.17",
["show-fluid-temperature-in-pipe-and-tank-gui"] = "1.0.4",
["signal-lamp"] = "2.1.0",
smartchest = "2.0.1",
["solar-walls"] = "2.0.3",
["some-autoresearch"] = "2.0.6",
["speaker-signals-expansion-relaunched"] = "2.0.1",
splatter_guard_continued = "21.0.2",
["squeak-through-2"] = "0.1.2",
["stack-combinator-redux"] = "0.4.1",
["switch-button"] = "0.2.3",
textplates = "0.7.2",
["thermal-solar-power-lite"] = "2.1.20",
["tile-aligner"] = "1.0.0",
["tile-upgrade-planner"] = "20.0.1",
tree_collision = "2.0.0",
["turbines-plusplus-reloaded"] = "2.1.12",
["underground-heat-pipe"] = "2.2.2",
["underground-pipe-pack"] = "2.0.6",
valves = "2.1.0",
verysmallchests = "2.0.2",
["virtual-signals2"] = "1.3.0",
["vtk-deep-core-mining"] = "3.2.7",
["water-pumpjack"] = "2.4.2",
["what-is-it-really-used-for"] = "1.7.1",
["wide-aai-chests"] = "0.1.2",
["wide-containers-assets"] = "0.2.10",
["wide-steel-chests"] = "0.2.12",
["zithorian-extra-storage-tanks-port"] = "1.0.6"

7 months ago

Hello

Got the same error, I believe you can reproduce it easily by installing pyblock + fcpu.

I found the error by dichotomy & reproduced with that.

7 months ago
(updated 7 months ago)

Yes, byplock + fCPU fails to load with the specified string.
However, during debugging I found no evidence that fCPU is the cause.

The Py* mod performs many operations on recipes and fails in one of them.
The error appears to be in pypostprocessing_3.0.39/data-updates.lua:13 and can be fixed with the following change:

local recipe = data.raw.recipe[belt]:standardize()
local _, first = next(recipe.ingredients) -- fix
local belt_count = first.amount          -- fix
local fluid = false

After that fix pY mod failing to load with following more descriptive error: Failed to load mods: Error while loading recipe prototype "logistic-science-pack" (recipe): Value must be a list in property tree at ROOT.recipe.logistic-science-pack.ingredients Modifications: Base mod › Pyanodons Coal Processing › Pyanodons Alien Life › Pyanodons Post Processing

fCPU use logistic-science-pack for it's recipe, it is base technology.
I think that pY modify recipes in some way and fail to start

7 months ago

I able to run pY with fCPU https://pasteboard.co/c7gyzxjPubBe.png, when disabled:
- compaktcircuit (uses logistic-science-pack too)

3 months ago

The issue is https://gitlab.com/konstg/fcpu/-/blob/main/tests/__stdlib__/stdlib/utils/globals.lua#L223-240

You declare RECIPE and multiple other metas as global, which override pY's implementation. This causes an error when the differences in implementation conflict.

13 days ago

You declare RECIPE and multiple other metas as global, which override pY's implementation. This causes an error when the differences in implementation conflict.

The tests/ directory is not used in runtime

12 days ago

I dont know what to tell you, the reason it fails is because those are overridden or your mod edits the science pack recipe in a breaking way. melonlib cannot create recipes with misindexed ingredients, so its your mod causing the issue.

New response